Documents
How a UI schema document identifies itself and its dialect.
A UI schema document is a root element that additionally
identifies itself and names the dialect it speaks. It carries type,
props, $id, and $schema; a document MUST NOT carry any other
top-level key:
{
"$id": "https://example.com/forms/signup/1",
"$schema": "https://example.com/ui-schema/app",
"type": "stack",
"props": {}
}Required
$id(string, URI): Identifies the document and its revision.$schema(string, URI): The dialect's identifier.type(string): The root element's type.
Optional
props(object): The root element's props.
Behavior
Documents are versioned by URI: a revised document is published under a new
$id, so anything referencing one (a stored record, a cache, another
system) pins the exact revision it saw.
An engine supports a set of dialects, and MAY support several revisions of
one side by side; a document selects among them through $schema. A
document naming a dialect the engine does not support is an error.
The shape mirrors JSON Schema, where a document is simply a root schema
carrying its own identity. A UI schema document is likewise a root element
carrying $id and $schema directly; there is no wrapper key around it.