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.

On this page