Write a parser for a custom binary protocol used in vehicle-to-infrastructure communication for Waymo.
Implement parse_vehicle_messages(data) for a byte stream containing zero or more frames. Each frame is 0xA5 0x5A, followed by version, message_type, a two-byte little-endian payload length, the payload, and a two-byte little-endian checksum. The checksum is the sum of all bytes from version through the payload, modulo 65536.
Return valid frames as dictionaries with keys version, type, and payload, where payload is a list of integers. Ignore noise, invalid checksums, and incomplete frames, then continue scanning for later valid synchronization markers.
def parse_vehicle_messages(data):