Use it when checking schema/patch contracts or exporting static output; use design_preview for a running React/Vue app, code_generate for file sets, or schema_store for persistence. Returns validation diagnostics or rendered output with warnings and artifact references. action selects validate/render; mode selects full schema or patch, with schemaRef available for reuse. Render defaults to a document with token CSS; output.compact omits CSS. brand and output scope options affect documents; ignored fragment options are diagnosed. apply:true emits render artifacts; output.payloadMode:file writes payloads and returns paths, as does an oversized document unless inline. Reference: TOOL-REFERENCE.md#schema_render; full schema: oods://schemas/schema_render.input.json.

Inputs

Name Type Required Description
action "render" | "validate" yes Selects the per-action handler. 'render' -> repl.render, 'validate' -> repl.validate.
mode "full" | "patch" no Full schema or patch mode. Actions: render, validate.
schema object no UiSchema. Actions: render, validate.
schemaRef string no Reference to a cached UiSchema returned by design.compose. Actions: render, validate.
patch array | object no Required when mode='patch'. Accepts JSON Patch array or node patch object(s). Actions: render, validate.
baseTree object no Required when mode='patch' to provide the base UiSchema to patch. Actions: render, validate.
brand string no Brand to render. Actions: render. See full schema for details.
options object no Operation options. Actions: render, validate.
output object no Optional render output controls. Omitting this object preserves full-document behavior. Actions: render.
apply boolean no For render: When true and the schema validates, render it: the HTML document in html, or per-node fragments with output.format 'fragments'. Actions: render, validate. See full schema for details.

Outputs

The package ships no output schema for this tool.

A real call

Recorded by this site's tools run, step schema-render-validate, with the published OODS Foundry 0.10.1.

Its input:

{
  "action": "validate",
  "schemaRef": "compose-948411f3"
}

Its result, first lines:

{
  "status": "ok",
  "mode": "full",
  "dslVersion": "2026.02",
  "registryVersion": "2026-10-06",
  "errors": [],
  "warnings": [],
  "normalizedTree": {
    "version": "2026.02",
    "screens": [
      {
        "id": "screen-detail-13",
        "component": "Stack",
        "layout": {
          "type": "stack",
          "gapToken": "cluster-default"
        },
        "children": [
          {
            "id": "detail-header-1",
            "component": "Stack",
            "layout": {
              "type": "stack",
              "align": "space-between",
              "gapToken": "stack-default"
            },
            "children": [
              {
                "id": "detail-header-1-record-title",
                "component": "DetailHeader",
                "props": {
                  "titleField": "name",
                  "headingLevel": 1
                }
              },
              {
                "id": "screen-detail-13-record-summary",
                "component": "Stack",
                "layout": {
                  "type": "inline",
                  "gapToken": "cluster-tight"
                },
                "meta": {
                  "intent": "record-summary"
                },
                "children": [
                  {
                    "id": "screen-detail-13-record-summary-1",
                    "component": "StatusBadge",
                    "props": {
                      "tone": "lifecycle",
                      "statusField": "status",
                      "domain": "lifecycle"
                    }
                  }
                ]
              },
              {
                "id": "slot-header-2",
                "component": "Stack",

The whole call, 44 KB of JSON