Design-and-parse binary formats with the struct module. The format (all little-endian):
b"FRG1", then the record count as uint32id as uint32, score as float64, then the name's UTF-8 byte length as uint16, then the name bytesImplement:
pack_records(records): records is a list of (id, score, name) tuples. Return the bytes.unpack_records(data): the inverse. Raise ValueError for a bad magic number, truncated data, or extra bytes after the last record.record_size(name): the encoded size of one record in bytes