Schemas
A schema defines what a record is allowed to contain—its fields, their types, and who can change them. Schemas make records predictable: any client that knows a schema can read and write records conforming to it, regardless of who created them.
Schemas are stored as blobs and referenced by hash. Because blobs are immutable, a schema never changes after it is published. Records reference the exact schema they were built against.
Field Types
Schemas support the usual primitives (strings, numbers, booleans, bytes) as well as structured containers: lists, maps, and trees. Fields can be marked optional, and individual fields can have their own access restrictions.
For example, a schema may define a field that anyone can read but only the owner can write.
Interoperability
Shared schemas are how different clients or objects understand each other’s data. A space schema defines what an environment looks like. An avatar schema defines how a character is to be rendered. Applications that agree on a schema can work with each other’s records without further coordination.