two bytes for a short containing the number of serialized attributes. this supports
appending attributes to the schema, as we know how many attributes were written when deserializing
one byte for the size of the stored offsets, which will currently be either 2 (for shorts) or 4 (for ints)
a known number of bytes for metadata, which consists of:
2 byte short or 4 byte int (determined by the size as stored above)
per attribute for the offset to the start of the attribute in the serialized bytes
2 byte short or 4 byte int (determined by the size as stored above)
for the offset to the start of the user data (or end of the feature if no user data)
4 bytes per 32 attributes (or part thereof) to store a bitset tracking null attributes
Kryo feature serialization and deserialization.
The current serialization scheme (version 3):
withId
)withUserData
)