Current field value.
Whether to render as read-only display.
Whether to render as an empty input.
Schema metadata for this field.
Constraints from schema checks.
Dot-separated path from root (e.g. "address.city").
OptionalexamplesExample values from the schema's examples keyword.
Walked field tree for recursive rendering.
Callback to propagate the next value back to the host element.
Renderers wire DOM events (@input, @change, @click on add /
remove controls) to this callback. The host element catches the
resulting change and emits a change Custom Event on itself so
framework consumers can observe via standard addEventListener.
Render a child field. Resolver overrides call this to recursively render nested structures (object fields, array elements, union options) without re-running the resolver dispatch loop.
The walked field tree for the child
The child's current value
Callback receiving the child's next value
OptionalpathSuffix: stringPath segment from the parent (e.g. city for
an object key, [0] for an array index). Required for every
container — without it children inherit no path and DOM id
derivation throws.
Props handed to a Lit render function.
Shares the same per-field data as
RenderProps(React) andHtmlRenderProps(HTML-string) but with arenderChildtyped over Lit's TemplateResult. Editable fields receive achangecallback that emits a Custom Event up the DOM tree — unlike React's prop-callback model, Custom Elements communicate via DOM events, so the renderer wires the input event to adispatchEvent(new CustomEvent("sc-change", { detail: { value } }))on the host element.Renderers narrow on
tree.typefor per-variant data (object fields, array element schema, union options, etc.) — the walker's discriminated union enforces type-correct access.