Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 field that anyone can read but only the owner can write.

Interoperability

Shared schemas are how different clients and spaces understand each other’s data. A space schema defines what an environment looks like. An avatar schema defines how a character is described. Applications that agree on a schema can work with each other’s records without coordination.