1. data

data

The data type is a serializable struct meant to easily represent packed binary data. One could do this with only using value structs but it would be really wordy and declare too many global names. Also, you may use a reference to a data struct as a type in the type declaration section when defining a key in data.

data may have a sister type, format, which is a variant that does not define serializability keys (except size).

data must define the following keys:

The data struct should be able to export any reasonable object notation syntax. Definitely static RPL and JSON. It should also be capable of exporting bin type, which is essentially a pass-through.

If an entity is used by another export as a value that will be imported then this entity should not be exported in the object notation. For instance, if a following entity uses it as its size or if a graphic struct uses it as its width.