{
  "archiveSha256": "ca4b1a00068b51c0b8c9fc2551ac836264a11391ee17e0cbaa459cd66c0472ad",
  "protocolVersions": [
    "2025-11-25",
    "2025-06-18",
    "2025-03-26",
    "2024-11-05",
    "2024-10-07"
  ],
  "latestProtocolVersion": "2025-11-25",
  "initialize": {
    "protocolVersion": "2025-11-25",
    "capabilities": {
      "tools": {},
      "resources": {},
      "extensions": {
        "io.modelcontextprotocol/ui": {}
      }
    },
    "serverInfo": {
      "name": "oods-foundry-adapter",
      "version": "0.11.2",
      "title": "OODS Foundry",
      "websiteUrl": "https://oods-foundry.com/",
      "icons": [
        {
          "src": "https://oods-foundry.com/icon-512.png",
          "mimeType": "image/png",
          "sizes": [
            "512x512"
          ]
        }
      ]
    },
    "instructions": "OODS Foundry is an object-oriented design system. Its tools read the component, object and trait registry; draft objects from schema files a team already has (OpenAPI, JSON Schema, Postgres, Prisma, dbt, OData, GraphQL); compose list, detail, form and timeline screens from objects and traits; generate them as React or Vue; create and apply brands from design tokens; and render data-bound charts and certify them for accessibility equivalence, determinism, contrast and accuracy. health_check reports the version and what is loaded. Each tool's annotations say whether it writes. Saved work stays on this machine under ~/.oods-foundry; applying a component mapping also writes adapter files into the project it names. Charts take inline data only."
  },
  "variants": {
    "default": {
      "results": {
        "ping": {},
        "tools/list": {
          "tools": [
            {
              "name": "tokens_build",
              "title": "Build Tokens",
              "description": "Compile registered brand tokens with the shipped compiler. Use it when you need fresh CSS and JSON; use brand_create to create a brand or brand_apply to change its source. Returns inline CSS variables, CSS and JSON plus artifact paths, hashes and sizes. apply:true builds in isolated artifact storage; omission previews the artifacts without writing. Requested brand/theme selects the inline scope; full CSS includes every registered scope. Source and shipped runtime files stay unchanged. Full schema: oods://schemas/tokens_build.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "Selects values compiled from current source, returned inline as CSS variables, CSS and JSON and written on apply. Full CSS includes all registered scopes; TypeScript and Tailwind artifacts retain A/light defaults."
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "dark",
                    "description": "Token theme."
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "Write on true; otherwise preview."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Build Tokens",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "structured_data_fetch",
              "title": "Fetch Structured Data",
              "description": "Fetch live registry datasets, archived token/export data, or captured-run artifacts. Use it when you need complete datasets; catalog_list selects components and object_registry reads definitions. Returns data with provenance, version and cache metadata. Full remains the default; detail:summary gives section counts and meta.next for inline pages; follow meta.next until absent. dataset selects registry/export mode; version pins an archived export and listVersions lists dates. kind plus runPath selects captured artifacts, while derived_analysis reads an analysis directory via runPath; version/listVersions are refused in kind mode. includeInternal exposes hidden objects, and ifNoneMatch checks the canonical payload ETag. Full schema: oods://schemas/structured_data_fetch.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "dataset": {
                    "type": "string",
                    "enum": [
                      "components",
                      "tokens",
                      "manifest"
                    ],
                    "description": "Local structured dataset to return (components/tokens/manifest). Mutually exclusive with kind+runPath."
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "identity_graph",
                      "capability_rollup",
                      "object_rollup",
                      "drift_report",
                      "derived_analysis",
                      "a11y_report",
                      "report_index",
                      "a11y_evidence",
                      "run_manifest"
                    ],
                    "description": "Stage1 artifact kind, with runPath; excludes dataset. See full schema for details."
                  },
                  "runPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Filesystem path to a Stage1 run directory or its artifacts/ subdirectory. Required when kind is set."
                  },
                  "ifNoneMatch": {
                    "type": "string",
                    "minLength": 8,
                    "description": "Return matched=true without payload when the ETag matches."
                  },
                  "includePayload": {
                    "type": "boolean",
                    "default": true,
                    "description": "When false, omit payload even if no ETag match occurs."
                  },
                  "version": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                    "description": "Request a specific date-stamped version (e.g., '2026-02-24'). Omit for latest. Applies to dataset mode only."
                  },
                  "listVersions": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, return available version dates instead of payload."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Live components dataset only: also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them; a dated export is served unchanged."
                  },
                  "payloadMode": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "file"
                    ],
                    "description": "Unset: inline, unless the payload exceeds 100,000 characters; then it is written to a file and warning OODS-W004 says so. inline always returns it; file always writes it and returns payloadFile."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "full"
                    ],
                    "description": "Dataset only. summary returns section counts and the call for page 1; full (default) preserves the dataset."
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Dataset only: read a 1-based page of lossless JSON Pointer entries, each reply below 100,000 characters. Omit for full data."
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100,
                    "description": "Dataset entries per page, default 10, also bounded by serialized size. Reply meta gives next and full calls."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Fetch Structured Data",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_apply",
              "title": "Apply Brand Changes",
              "description": "Preview or apply changes to an existing brand's canonical token source. Use it when editing a brand; use brand_create to create one. Returns validation, changed slots, before/after hashes and build evidence. delta is required and supports aliases or add/remove/replace patches. apply defaults to a dry run that writes nothing. apply:true validates first, then writes source and rebuilds; build failure leaves source edits in place. For shipped brands in the portable runtime, apply emits a review kit and reports source/build steps as skipped. User brands rebuild in their own folder. Full schema: oods://schemas/brand_apply.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "Target brand identifier. Must name a brand directory under packages/tokens/src/tokens/brands."
                  },
                  "delta": {
                    "type": [
                      "object",
                      "array"
                    ],
                    "description": "Alias changes (object) or an array using the supported add/remove/replace subset of RFC 6902 when strategy=patch.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "delta item. Fields: op, path, value. See full schema."
                    }
                  },
                  "strategy": {
                    "type": "string",
                    "enum": [
                      "alias",
                      "patch"
                    ],
                    "default": "alias",
                    "description": "Alias strategy rewrites token values; patch applies the supported add/remove/replace subset of RFC 6902."
                  },
                  "preview": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Preview response controls (apply=false).",
                    "properties": {
                      "verbosity": {
                        "type": "string",
                        "enum": [
                          "full",
                          "compact"
                        ],
                        "default": "full",
                        "description": "full includes structured before/after payloads; compact returns summary + hunks only."
                      }
                    }
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "Write on true; otherwise preview."
                  }
                },
                "required": [
                  "delta"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Apply Brand Changes",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_create",
              "title": "Create Brand",
              "description": "Create a brand or stage a local token intake draft. Use it when adding a brand; use brand_read for templates, validation, derivation and draft review, or brand_apply to edit a brand. Returns a staged draft or created brand with build results. apply needs draftId and accept:true. create accepts filled documents or a recipe, validates all themes, refuses replacement and removes a brand whose build fails. Full schema: oods://schemas/brand_create.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "create",
                      "draft",
                      "apply"
                    ],
                    "description": "Choose create, draft, apply."
                  },
                  "brand_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The id the brand will have. Actions: create (required), draft (required). See full schema for details."
                  },
                  "documents": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The filled template: one plain design-token document per theme, brand-relative (surface.canvas, not color.brand.<id>.surface.canvas), each slot {\"$type\": \"color\", \"$value\": \"<CSS colour>\"}. Actions: create.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "description": "The light theme."
                      },
                      "dark": {
                        "type": "object",
                        "description": "The dark theme."
                      },
                      "hc": {
                        "type": "object",
                        "description": "The high-contrast theme."
                      }
                    }
                  },
                  "recipe": {
                    "type": "object",
                    "description": "A brand recipe in place of documents: the brand it gives is checked, and for create written, like filled documents. Actions: create."
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false,
                    "description": "Actions: draft (required).",
                    "properties": {
                      "path": {
                        "type": "string",
                        "pattern": "^/[\\s\\S]*$",
                        "description": "path."
                      },
                      "modes": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "modes. Fields: base, dark. See full schema."
                      }
                    }
                  },
                  "bindings": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Actions: draft.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "base entry."
                        },
                        "description": "base."
                      },
                      "dark": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "dark entry."
                        },
                        "description": "dark."
                      }
                    }
                  },
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Actions: draft.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "brand."
                      },
                      "preset": {
                        "type": "string",
                        "description": "preset."
                      }
                    }
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^brand-[a-f0-9]{64}$",
                    "description": "Actions: apply (required)."
                  },
                  "accept": {
                    "type": "boolean",
                    "const": true,
                    "description": "Actions: apply (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Create Brand",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_read",
              "title": "Read Brand Data",
              "description": "Read brand templates, validate documents, derive recipes or inspect staged drafts. Use it when preparing a brand without saving; use brand_create to stage or create it. Returns complete template slots, validation findings, a recipe with provenance and gaps, or draft evidence. derive takes exactly one of tokens, css or absolute cssPath. Template replies use compact JSON so all themes fit inline. Full schema: oods://schemas/brand_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "template",
                      "validate",
                      "derive",
                      "show"
                    ],
                    "description": "Choose template, validate, derive, show."
                  },
                  "tokens": {
                    "type": "object",
                    "description": "A DTCG document with your own token names. Group $type is inherited; {group.token} aliases resolve inside the document. Actions: derive."
                  },
                  "css": {
                    "type": "string",
                    "description": "A shadcn theme CSS entry, in place of tokens. Actions: derive. See full schema for details."
                  },
                  "cssPath": {
                    "type": "string",
                    "pattern": "^/[\\s\\S]*$",
                    "description": "Absolute path to the shadcn theme CSS entry, in place of tokens or css. Read only. Actions: derive."
                  },
                  "hints": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Exact dot-separated token paths, or CSS custom property names, that override inference. Invalid hints produce gaps, never silent fallback. Actions: derive.",
                    "properties": {
                      "accent": {
                        "type": "string",
                        "minLength": 1,
                        "description": "accent."
                      },
                      "neutral": {
                        "type": "string",
                        "minLength": 1,
                        "description": "neutral."
                      },
                      "radius": {
                        "type": "string",
                        "minLength": 1,
                        "description": "radius."
                      },
                      "font": {
                        "type": "string",
                        "minLength": 1,
                        "description": "font."
                      },
                      "fontMono": {
                        "type": "string",
                        "minLength": 1,
                        "description": "font Mono."
                      }
                    }
                  },
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Where the starting values come from: an existing brand (default A), optionally with one of the shipped presets over it; or a recipe, which gives the complete brand, graded. Actions: template.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "An existing brand whose values the template starts from. Default: A."
                      },
                      "preset": {
                        "type": "string",
                        "minLength": 1,
                        "description": "A shipped preset id whose values go over the brand's; every template response lists the… See full schema for details."
                      },
                      "recipe": {
                        "type": "object",
                        "description": "A brand recipe: the neutral (a hue and a tint of 0 to 0.03), the accent hue, whether the… See full schema for details."
                      }
                    }
                  },
                  "brand_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The id the brand will have. Checked when given: capitals then digits (ACME, A1) or a letter then lower-case letters and digits (Acme, acme2), at most 32 characters, and no existing brand's id in any case. Actions: validate."
                  },
                  "documents": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The filled template: one plain design-token document per theme, brand-relative (surface.canvas, not color.brand.<id>.surface.canvas), each slot {\"$type\": \"color\", \"$value\": \"<CSS colour>\"}. Actions: validate.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "description": "The light theme."
                      },
                      "dark": {
                        "type": "object",
                        "description": "The dark theme."
                      },
                      "hc": {
                        "type": "object",
                        "description": "The high-contrast theme."
                      }
                    }
                  },
                  "recipe": {
                    "type": "object",
                    "description": "A brand recipe in place of documents: the brand it gives is checked, and for create written, like filled documents. Actions: validate."
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^brand-[a-f0-9]{64}$",
                    "description": "Actions: show (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Brand Data",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "catalog_list",
              "title": "List Components",
              "description": "List components from the live component-contract registry. Use it when selecting components; structured_data_fetch returns complete datasets. Returns component names, categories, readiness labels and availableCategories; detail controls added tags, contexts, regions, traits and evidence. includeInternal exposes hidden registry objects. Filtered calls without detail default to full pages of 10; nextPage continues. Explicit detail preserves unpaged output. Readiness evidence retains the build it measured and does not certify a new composition. Full schema: oods://schemas/catalog_list.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "Filter components by category (e.g., 'core', 'lifecycle', 'visual')"
                  },
                  "trait": {
                    "type": "string",
                    "description": "Filter components by trait (e.g., 'Editable', 'Searchable')"
                  },
                  "context": {
                    "type": "string",
                    "description": "Filter components by context (e.g., 'detail', 'list')"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "stable",
                      "beta",
                      "planned"
                    ],
                    "description": "Filter by legacy static-HTML status only: 'stable' = mapped HTML renderer; 'planned' = HTML fallback. Consult productReality.surfaces for React/Vue, generated-consumer and maturity evidence."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "brief",
                      "summary",
                      "full"
                    ],
                    "description": "Defaults to brief unfiltered, full with filters. Both defaults are paged (filtered: 10 entries). summary adds tags, contexts, regions and traits; full includes evidence. Explicit detail without paging preserves the unbounded legacy request."
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "1-based page index for pagination."
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Components per page. Filtered calls without detail default to 10; nextPage gives the next call."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects in registry.objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "List Components",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "code_generate",
              "title": "Generate Code",
              "description": "Generate React/Vue file sets or a standalone static HTML document from a validated UiSchema. Use it when a schema already exists; use design_compose instead to choose a layout or pipeline_run to compose, validate, render and generate together. Returns versioned artifacts, exact dependencies, required domain handlers and validationReceipt. Supply schema or schemaRef before its 30-minute expiry. profile selects draft/build/release; build performs static checks, while release verifies supplied evidence without rerunning it. options.output selects component/application; options.payloadMode:file returns file references, as does oversized output unless inline. Domain actions require consumer handlers. React and Vue shadcn mappings support components, screen apps and workflow apps. Full schema: oods://schemas/code_generate.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "schema": {
                    "type": "object",
                    "description": "A structurally valid UiSchema tree to generate code from. UiElement.state branches are checked against the canonical workflow-state vocabulary by the state-contract gate."
                  },
                  "schemaRef": {
                    "type": "string",
                    "description": "Reference to a cached UiSchema returned by design_compose."
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "html"
                    ],
                    "description": "Target framework. HTML uses the same record document renderer as repl render; build checks are static and do not execute a browser."
                  },
                  "profile": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "build",
                      "release"
                    ],
                    "description": "Validation profile. See full schema for details."
                  },
                  "releaseEvidence": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Evidence for release. See full schema for details.",
                    "properties": {
                      "rendered": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "interaction": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "accessibility": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "theme": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "determinism": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "performance": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "default": {},
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "description": "Application and embedded chart theme. See full schema for details."
                      },
                      "brand": {
                        "type": "string",
                        "description": "Token brand shared by the generated shell and embedded charts. See full schema for details."
                      },
                      "typescript": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true, emit TypeScript prop types (React) or typed defineProps (Vue). Ignored for HTML."
                      },
                      "styling": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "tokens",
                          "tailwind"
                        ],
                        "default": "tokens",
                        "description": "React/Vue styling strategy: inline style objects, design-token CSS variables, or Tailwind utility classes. See full schema for details."
                      },
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline, unless the artifact would exceed 100,000 characters, in which case it is… See full schema for details."
                      },
                      "output": {
                        "type": "string",
                        "enum": [
                          "component",
                          "application"
                        ],
                        "default": "component",
                        "description": "React/Vue: component output by default, or a runnable single-screen application. See full schema for details."
                      }
                    }
                  }
                },
                "required": [
                  "framework"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Generate Code",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_compose",
              "title": "Compose Design",
              "description": "Compose an object screen or workflow into a UiSchema. Use it when choosing layout and components; use pipeline_run instead for the complete generation flow or code_generate when you already have a schema. Returns schema, a 30-minute process-local schemaRef and durable compositionId/version lineage. Prefer explicit object and context over keyword-based intent. preferences controls region/field order and sample seed; compositionId appends a version, while options.transient records none. Save schemas with schema_store to reuse across sessions. Selected nodes snapshot component mappings; composition does not generate or run an app. Full schema: oods://schemas/design_compose.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "intent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A short intent sentence (e.g., 'dashboard with metrics and sidebar', 'user registration form'), matched against fixed keyword and phrase tables, not understood; a sentence with no layout keyword becomes a low-confidence… See full schema for details."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., 'Subscription', 'User'). When provided, composition uses trait-driven component placement via view_extensions."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition. See full schema for details."
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "dashboard",
                      "form",
                      "detail",
                      "list",
                      "card",
                      "timeline",
                      "landing",
                      "auto"
                    ],
                    "default": "auto",
                    "description": "Layout template to use. 'landing' is a content/marketing page (hero + sections + CTA), not bound to a data object. 'auto' infers the best template from intent keywords."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "Brand scope for data-bound charts; defaults to A."
                      },
                      "theme": {
                        "type": "string",
                        "description": "Theme token (e.g., 'light', 'dark')."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name → component-name overrides (e.g., { 'items': 'Table' })."
                      },
                      "regionOrder": {
                        "type": "array",
                        "minItems": 1,
                        "description": "The screen's regions (its direct children) by id in the desired order; regions not listed… See full schema for details.",
                        "items": {
                          "type": "string",
                          "description": "region Order item."
                        }
                      },
                      "fieldOrder": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "array",
                          "minItems": 1,
                          "description": "field Order entry.",
                          "items": {
                            "type": "string",
                            "description": "field Order entry item."
                          }
                        },
                        "description": "Region id → field names in the desired order among sibling field nodes of that region (a… See full schema for details."
                      },
                      "seed": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "Sample-data seed. See full schema for details."
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "validate": {
                        "type": "boolean",
                        "default": true,
                        "description": "Auto-validate the generated schema via the `repl` tool's `validate` action."
                      },
                      "topN": {
                        "type": "integer",
                        "default": 3,
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of component candidates to return per slot."
                      },
                      "transient": {
                        "type": "boolean",
                        "default": false,
                        "description": "Do not record a composition version; the result then carries no compositionId. For scratch compositions only."
                      },
                      "operation": {
                        "type": "string",
                        "enum": [
                          "recompose",
                          "reorder-region",
                          "swap-slot",
                          "reorder-fields",
                          "seed"
                        ],
                        "description": "With compositionId: the lineage operation recorded on the new version; default recompose. See full schema for details."
                      }
                    }
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "Record this composition as the next version of an existing composition (operation \"recompose\") instead of creating a new one."
                  },
                  "parentVersion": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "With compositionId: the version the new one derives from; default the latest."
                  },
                  "presentation": {
                    "type": "string",
                    "enum": [
                      "stage1-inspection"
                    ],
                    "description": "Named Stage1 inspection presentation: omit the accessibility score and prominently show measurement limits. Source records remain unchanged."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Compose Design",
                "readOnlyHint": false,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_preview",
              "title": "Preview Running Design",
              "description": "Render, compare, edit or accept a running React/Vue composition. Use it when reviewing generated behavior; use design_versions to inspect lineage without starting a host, or fidelity_preview for static drawings. Returns preview URLs, editable fields and measured or unmeasured evidence. Supply compositionId/version or object/context. Edits create versions; compare generates missing artifacts. accept records the generated version and a snapshot of its measurements as accepted, preserving prior acceptances. Full schema: oods://schemas/design_preview.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "render",
                      "compare",
                      "edit",
                      "accept"
                    ],
                    "default": "render",
                    "description": "Choose render, compare, edit, accept."
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "An existing composition from design_compose; with no version, its latest version opens."
                  },
                  "version": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "The version of compositionId to open."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., 'Subscription', 'User'); with context, composes a new composition (version 1) and opens it."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition. See full schema for details."
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "both"
                    ],
                    "default": "both",
                    "description": "Which generated app to compile and serve; both frameworks by default, each at its own URL."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "default": "light",
                        "description": "Theme the page mounts with (data-theme and the matching token CSS scope)."
                      },
                      "brand": {
                        "type": "string",
                        "default": "A",
                        "description": "Brand the page mounts with (data-brand and the matching token CSS scope)."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name → component-name overrides (e.g., { 'items': 'Table' })."
                      }
                    }
                  },
                  "against": {
                    "type": "object",
                    "required": [
                      "version"
                    ],
                    "additionalProperties": false,
                    "description": "action compare: the version on the right; the left is compositionId@version.",
                    "properties": {
                      "compositionId": {
                        "type": "string",
                        "pattern": "^cmp-[a-f0-9]{12}$",
                        "description": "The other composition; default the same composition."
                      },
                      "version": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "version."
                      }
                    }
                  },
                  "edit": {
                    "type": "object",
                    "description": "Edit one parent version: operation is reorder-region (regionOrder), swap-slot (slot, component), reorder-fields (fields), or seed (seed). Returns a new version."
                  },
                  "contextItems": {
                    "type": "array",
                    "maxItems": 200,
                    "description": "Decisions and evidence about this object that you already fetched, shown beside the running preview and stored on the version. See full schema for details.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "context Items item. Fields: source, id, title, body, excerpt, url, timestamp, query, fetchedAt, object, urn. See full schema."
                    }
                  },
                  "contextSearched": {
                    "type": "array",
                    "maxItems": 50,
                    "description": "What you searched that returned nothing, so an empty panel is a statement rather than a silence: the reader can tell 'nothing was found' from 'nobody asked'.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "context Searched item. Fields: source, query, fetchedAt, found. See full schema."
                    }
                  },
                  "runPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Stage1 run directory on this machine (out/stage1/<suite>/<run-uuid>) whose real records this version shows: the run itself for Run, its findings for Finding, its attested artifacts for CapturedArtifact. See full schema for details."
                  },
                  "observationRunPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Stage1 run directory on this machine (out/stage1/<suite>/<run-uuid>). See full schema for details."
                  },
                  "presentation": {
                    "type": "string",
                    "enum": [
                      "stage1-inspection"
                    ],
                    "description": "Named Stage1 inspection presentation: omit the accessibility score and prominently show measurement limits. Source records remain unchanged."
                  },
                  "recordId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact record ID for a fresh runPath or analysisPath detail/card/inline view. Unknown IDs refuse before composition; existing versions retain their selected record."
                  },
                  "analysisPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Portable Stage1 derived-analysis directory. Composes Comparison or ComparisonSignal from attested retained bytes, separate from runPath. Only read-only contexts; recordId selects an exact signal."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Preview Running Design",
                "readOnlyHint": false,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_versions",
              "title": "Read Design Versions",
              "description": "Read a composition's versions and accepted version. Use it when inspecting saved lineage; use design_preview to render, edit, compare or accept. Returns version metadata, latest and acceptance summary. Supply compositionId. Starts no preview host and returns no running URL. Full schema: oods://schemas/design_versions.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "versions"
                    ],
                    "description": "Choose versions."
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "An existing composition from design_compose; with no version, its latest version opens."
                  }
                },
                "required": [
                  "compositionId"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Read Design Versions",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "pipeline_run",
              "title": "Run Design Pipeline",
              "description": "Run composition, validation, rendering and code generation in one call. Use it when starting from an object/context or intent and needing generated output; use design_compose instead to inspect layout first or code_generate for an existing schema. Returns step results, schemaRef with expiry, versioned artifacts, dependencies and validationReceipt. options controls validation/render skipping and optional static accessibility checks; save persists the schema beyond its process-local 30-minute reference. Generation validation forwards draft/build/release without downgrade. Release verifies supplied evidence without rerunning it; unresolved accessibility pairs stay unmeasured. Oversized output goes to files unless options.payloadMode is inline. Calls may write composition and saved-schema records. Full schema: oods://schemas/pipeline_run.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., Subscription, User)."
                  },
                  "intent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A short intent sentence, matched against fixed keyword and phrase tables (a sentence that matches no layout keyword becomes a low-confidence dashboard). Prefer object and context."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition."
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "dashboard",
                      "form",
                      "detail",
                      "list",
                      "card",
                      "timeline",
                      "landing",
                      "auto"
                    ],
                    "description": "Layout template. 'landing' is a content page (hero, sections, call to action) bound to no object; 'auto' picks one from the intent."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "description": "Theme token (e.g., 'light', 'dark')."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "minLength": 1,
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name to component-name overrides (e.g., { 'items': 'Table' })."
                      }
                    }
                  },
                  "actionMappings": {
                    "type": "array",
                    "description": "action mappings: flat, verb-keyed entries.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "action Mappings item. Fields: verb, oodsTrait, trait, object, component, slot, confidence. See full schema."
                    }
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "html"
                    ],
                    "description": "Target framework for code generation."
                  },
                  "styling": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "tokens",
                      "tailwind"
                    ],
                    "description": "Styling strategy for code generation."
                  },
                  "profile": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "build",
                      "release"
                    ],
                    "description": "Validation profile passed to code_generate. build, the default, blocks on static checks; static checks do not install or run the generated app."
                  },
                  "releaseEvidence": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Hash-bound release evidence forwarded unchanged to code_generate.",
                    "properties": {
                      "rendered": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "interaction": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "accessibility": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "theme": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "determinism": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "performance": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      }
                    }
                  },
                  "save": {
                    "type": [
                      "string",
                      "object"
                    ],
                    "description": "Optional schema save config. String for name-only, or { name, tags } for full control. Variant fields: name, tags. Read the full schema for each variant."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline up to 100,000 characters, else file. See full schema for details."
                      },
                      "skipValidation": {
                        "type": "boolean",
                        "description": "Skip the validate step (default false)."
                      },
                      "skipRender": {
                        "type": "boolean",
                        "description": "Skip the render step (default false)."
                      },
                      "checkA11y": {
                        "type": "boolean",
                        "description": "Checks declared foreground/background pairs derived from shared component CSS against… See full schema for details."
                      },
                      "renderApply": {
                        "type": "boolean",
                        "description": "Render with apply=true to include HTML output (default true)."
                      },
                      "compact": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true (default), omit token CSS from render output and return tokenCssRef instead. See full schema for details."
                      },
                      "typescript": {
                        "type": "boolean",
                        "description": "Alias: enable TypeScript output in code generation."
                      },
                      "styling": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "tokens",
                          "tailwind"
                        ],
                        "description": "Alias: styling strategy. Overridden by top-level styling if both provided."
                      },
                      "framework": {
                        "type": "string",
                        "enum": [
                          "react",
                          "vue",
                          "html"
                        ],
                        "description": "Alias: target framework. Overridden by top-level framework if both provided."
                      }
                    }
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Run Design Pipeline",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "health_check",
              "title": "Check Health",
              "description": "Read server readiness, live registry/store counts and retained proof summaries. Use it when checking availability and built brand/theme scopes; use object_registry for definitions or registry_snapshot for mappings. Returns status, server uptime, registry counts, token scopes and productReality evidence. status:ok means sources were readable; retained proofs identify their measured build and do not automatically certify this one. includeChangelog and sinceVersion filter the reported DSL changelog. tokens.defaultScope is configured metadata rather than an observed consumer scope; missing scope data is unavailable. Full schema: oods://schemas/health_check.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "includeChangelog": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, include DSL version changelog in the response."
                  },
                  "sinceVersion": {
                    "type": "string",
                    "description": "When provided with includeChangelog, only return changelog entries since this version."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Check Health",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "registry_snapshot",
              "title": "Snapshot Registry",
              "description": "Read mappings together with active traits and objects in one snapshot. Use it when reading combined registry data; object_registry reads one definition and object_register saves one. Returns mappings, traits, objects, generatedAt, ETag and registry loader issues. Defaults to a summary; detail full adds schemas. includeInternal exposes hidden objects; otherwise hiddenInternal counts omitted entries. Team definitions and shadowing are reported from live sources. This read-only call writes no snapshot file. Historical mapping fields remain stored data and do not imply current capabilities. Full schema: oods://schemas/registry_snapshot.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "full"
                    ],
                    "default": "summary",
                    "description": "summary (default), or full definitions, best with names."
                  },
                  "names": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Exact trait and object names; misses go in notFound.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "names item."
                    }
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Snapshot Registry",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "viz_render",
              "title": "Render Chart",
              "description": "Render one data-bound chart from rows or a structured data operand. Use it when creating chart output; use artifact_certify instead to grade a normalized chart or dashboard_render for multiple panels and KPIs. Returns Vega-Lite or ECharts specs, chart identities and requested SVG/accessibility output. pattern uses bundled data and forbids explicit data/encoding/presentation overrides. Otherwise use chartType plus encodings, omit chartType for recommendations, or supply structured intent. ECharts-primary families require their matching hierarchy/network/geo operand. brand/theme controls pixels; output.includeNormalizedSpec returns the IR required by artifact_certify. Temporal rendering uses UTC. For native ECharts after JSON transport, restore currency and precision with @oods/foundry/echarts.js. Charts take inline data only; URLs, images and links in the input are refused. Full schema: oods://schemas/viz_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "Chart token theme. HC preserves system colors and needs a forced-colors browser to resolve them."
                  },
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "CSS token brand for chart pixels. Omission resolves light/A."
                  },
                  "opacity": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1,
                    "description": "Constant mark opacity for Cartesian charts only; omission keeps renderer defaults."
                  },
                  "rows": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 5000,
                    "description": "Inline flat data rows. Use either rows or datasetRef.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "rows item."
                    }
                  },
                  "datasetRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Previously cached dataset id; alternative to rows."
                  },
                  "hierarchy": {
                    "type": "object",
                    "description": "Treemap/sunburst: {type:\"nested\",data:{name,value,children}} or {type:\"adjacency_list\",data:[{id,parentId,value}]}. See full schema."
                  },
                  "sankey": {
                    "type": "object",
                    "description": "Sankey input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names. Use chartType:\"sankey\"."
                  },
                  "chord": {
                    "type": "object",
                    "description": "Chord input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names; each directed pair must be unique."
                  },
                  "network": {
                    "type": "object",
                    "description": "Force graph input: {nodes:[{id,group}],links:[{source,target,value}]}; max 250 nodes. Use chartType:\"force_graph\". Full contract: oods://schemas/viz_render.input.json."
                  },
                  "geo": {
                    "type": "object",
                    "description": "Inline geojson or topojson plus topoObjectName, rows, join, valueField; optional point/flow coordinate fields. No network fetch. Re-register echartsSpec.__registration before rendering. Read full schema."
                  },
                  "chartType": {
                    "type": "string",
                    "enum": [
                      "bar",
                      "line",
                      "area",
                      "scatter",
                      "heatmap",
                      "treemap",
                      "sunburst",
                      "sankey",
                      "force_graph",
                      "choropleth",
                      "bubble_map",
                      "flow_map",
                      "chord"
                    ],
                    "description": "Chart family for explicit mode. Cartesian charts need rows/datasetRef and encodings; other families need their named data input. Omit to suggest from rows."
                  },
                  "encodings": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Cartesian bindings: each needs field; optional type, aggregate, title, format (d3-format), currency (ISO 4217).",
                    "properties": {
                      "x": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "y": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "color": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "size": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "shape": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "detail": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      }
                    }
                  },
                  "id": {
                    "type": "string",
                    "description": "Optional stable identifier for the produced spec."
                  },
                  "name": {
                    "type": "string",
                    "description": "Optional human-friendly chart title."
                  },
                  "description": {
                    "type": "string",
                    "description": "Optional override for the synthesized accessibility description. When omitted, a non-empty description is generated from the encodings."
                  },
                  "strictFields": {
                    "type": "boolean",
                    "default": false,
                    "description": "Warn about unresolved fields and unmatched map joins (OODS-V131/V134). Default false preserves existing behavior."
                  },
                  "a11yEquivalence": {
                    "type": "boolean",
                    "default": true,
                    "description": "Check Vega-Lite accessible equivalents (default true). Errors stop rendering; warnings are returned. ECharts-primary scaffolds are not checked here."
                  },
                  "output": {
                    "type": "object",
                    "description": "Options: svg, width, height, compact, echarts, includeNormalizedSpec, includeA11y, includeVegaSpec, titlePlacement (chart or figure). SVG is opt-in; compact defaults true."
                  },
                  "intent": {
                    "type": "object",
                    "description": "Structured request: goal, measures:[{name}], dimensions:[{name}], optional chartFamily and measureRef. Uses rows or datasetRef; alternative to explicit chartType/encodings."
                  },
                  "pattern": {
                    "type": "string",
                    "enum": [
                      "pattern:viz:bubble-distribution",
                      "pattern:viz:correlation-matrix",
                      "pattern:viz:correlation-scatter",
                      "pattern:viz:detail-overview-bar",
                      "pattern:viz:diverging-bar",
                      "pattern:viz:drilldown-stacked-bar",
                      "pattern:viz:facet-small-multiples-line",
                      "pattern:viz:facet-target-band",
                      "pattern:viz:focus-context-line",
                      "pattern:viz:grouped-bar",
                      "pattern:viz:histogram",
                      "pattern:viz:layered-line-area",
                      "pattern:viz:multi-series-line",
                      "pattern:viz:running-total-area",
                      "pattern:viz:simple-bar",
                      "pattern:viz:sparkline-grid",
                      "pattern:viz:stacked-100-bar",
                      "pattern:viz:stacked-area-projection",
                      "pattern:viz:stacked-bar",
                      "pattern:viz:target-band-line",
                      "pattern:viz:time-grid-heatmap",
                      "pattern:viz:waterfall"
                    ],
                    "description": "Exact registered pattern identity; preserves source data and presentation. Cannot combine with chartType, data, intent or identity/presentation overrides."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Render Chart",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "dashboard_render",
              "title": "Render Dashboard",
              "description": "Render coordinated charts and KPIs from shared datasets and panel definitions. Use it when composing a dashboard; use viz_render instead for one chart or artifact_certify to grade each returned normalized chart. Returns layout, per-panel specs/hashes, computed KPI values, accessibility data and a reusable specRef. output.includeNormalizedSpec includes panel IR; output.html adds rendered HTML. brand/theme controls emitted pixels; selection and crossFilter apply caller-supplied filtering. resolveMeasures defaults true for governed measure references. output.contrastScan is a four-pair token preflight, not whole-document certification. Chord and flow_map are excluded from dashboards. Panels take inline data only. Full schema: oods://schemas/dashboard_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "CSS token theme for chart pixels, default light. See full schema for details."
                  },
                  "schemaVersion": {
                    "type": "string",
                    "const": "v0.1",
                    "description": "IR version discriminant (V01 convention). A future template/shape change bumps to v0.2."
                  },
                  "id": {
                    "type": "string",
                    "description": "Stable identifier for the dashboard instance."
                  },
                  "title": {
                    "type": "string",
                    "description": "Human-friendly dashboard title surfaced in UI + narration."
                  },
                  "datasets": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Shared, named tabular datasets. chart and KPI panels reference one by datasetId; panels that share a dataset can cross-filter each other.",
                    "items": {
                      "type": "object",
                      "description": "A named shared dataset. Panels reference it by id; cross-filter operates over its shared dimensional space."
                    }
                  },
                  "panels": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Heterogeneous panels: chart (11 of the 13 viz_render chartTypes; chord and flow_map are viz_render-only — plus its data branch) or kpi tiles.",
                    "items": {
                      "type": "object",
                      "description": "A dashboard panel: a chart panel (11 of the 13 viz_render chartTypes; chord and flow_map… See full schema for details."
                    }
                  },
                  "layout": {
                    "type": "object",
                    "description": "Optional layout hints consumed by the deterministic auto-layout resolver. Absent hints -> declared panel order + KPI-row-first defaults; the resolver emits abstract {x,y,w,h} (renderer-agnostic, the client sizes the canvas)."
                  },
                  "links": {
                    "type": "array",
                    "description": "Declared panel relationships, returned and shown as a labelled list in HTML. They apply no filters; cross-filtering uses selection and crossFilter.",
                    "items": {
                      "type": "object",
                      "description": "A declared source-to-target relationship displayed in the HTML reference list. See full schema for details."
                    }
                  },
                  "crossFilter": {
                    "type": "object",
                    "description": "Active selection combination. Each active source contributes a predicate; ignoreSelfSource controls whether its own panel is filtered. Declared links do not change this behavior."
                  },
                  "onPanelError": {
                    "type": "string",
                    "enum": [
                      "placeholder",
                      "omit"
                    ],
                    "default": "placeholder",
                    "description": "What a failed panel does: 'placeholder' (default) shows an accessible error panel in its place; 'omit' drops it from the layout."
                  },
                  "resolveMeasures": {
                    "type": "boolean",
                    "default": true,
                    "description": "Phase-3 governed-measure resolution switch. See full schema for details."
                  },
                  "strictFields": {
                    "type": "boolean",
                    "default": false,
                    "description": "Field-presence strict switch. See full schema for details."
                  },
                  "strictDatasets": {
                    "type": "boolean",
                    "default": false,
                    "description": "Unknown-datasetId strict switch. See full schema for details."
                  },
                  "a11yEquivalence": {
                    "type": "boolean",
                    "default": true,
                    "description": "A11y equivalence certify-at-emission switch. See full schema for details."
                  },
                  "a11y": {
                    "type": "object",
                    "description": "dashboard-level accessibility: a cross-panel summary + reading/focus order. The per-chart AccessibilitySpec stays per-panel; this is the dashboard envelope."
                  },
                  "tokenCssRef": {
                    "type": "string",
                    "description": "Token strategy. See full schema for details."
                  },
                  "brand": {
                    "type": "string",
                    "description": "CSS token brand for the dashboard document and chart pixels; defaults to A. The contrast scan grades the same scoped document tokens."
                  },
                  "selection": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "description": "One panel's active cross-filter selection (point/categorical only in v1)."
                    },
                    "description": "Optional accumulated cross-filter SelectionState, keyed by sourceWidgetId (one active selection per source). See full schema for details."
                  },
                  "output": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional render output controls (mirrors viz_render).",
                    "properties": {
                      "compact": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true, omit full token CSS and return a tokenCssRef instead."
                      },
                      "echarts": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, also include the ECharts option for tabular panels (ECharts-primary panels always include it)."
                      },
                      "includeNormalizedSpec": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, also return each successfully rendered chart panel's intermediate… See full schema for details."
                      },
                      "html": {
                        "type": "boolean",
                        "default": false,
                        "description": "Opt-in render-to-SVG export. See full schema for details."
                      },
                      "dataTable": {
                        "type": "boolean",
                        "default": false,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "contrastScan": {
                        "type": "boolean",
                        "default": false,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "dataQualityField": {
                        "type": "string",
                        "minLength": 1,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "includeA11y": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, attach a structured two-part text alternative (accessible data table +… See full schema for details."
                      }
                    }
                  }
                },
                "required": [
                  "schemaVersion",
                  "datasets",
                  "panels",
                  "a11y"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Render Dashboard",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "artifact_certify",
              "title": "Certify Artifact",
              "description": "Grade a normalized chart's accessibility equivalence, determinism, contrast and accuracy. Use it when checking the IR returned by viz_render or dashboard_render; use viz_render instead to create chart output and dashboard_render to compose panels. Returns coverage, conformant, findings and four pillar verdicts. Pass spec alone for Cartesian charts; ECharts-primary charts need the same matching data branch used for rendering. Spec-only ECharts remains uncertified. brand/theme must match rendering; high contrast reports forced-colors exemption without a numeric contrast grade. A certified chart may still be nonconformant; inspect all verdicts. This read-only check does not repair charts and never fetches a URL. Full schema: oods://schemas/artifact_certify.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "spec": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "An OODS Foundry normalized chart spec: the normalizedSpec that viz_render returns. The handler validates it against the full spec schema."
                  },
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional operand for the 8 ECharts-primary types (treemap/sunburst/sankey/force_graph/choropleth/bubble_map/flow_map/chord): the same data branch viz_render takes, so certify re-emits the option the render path would… See full schema for details.",
                    "properties": {
                      "hierarchy": {
                        "type": "object",
                        "description": "Hierarchy data for chartType 'treemap' or 'sunburst' (explicit-only) — used instead of… See full schema for details."
                      },
                      "sankey": {
                        "type": "object",
                        "description": "Flow data for chartType 'sankey' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "chord": {
                        "type": "object",
                        "description": "Chord data for chartType 'chord' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "network": {
                        "type": "object",
                        "description": "Network data for chartType 'force_graph' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "geo": {
                        "type": "object",
                        "description": "Geo data for chartType 'choropleth', 'bubble_map', or 'flow_map' (explicit-only) — used… See full schema for details."
                      }
                    }
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "CSS token theme for chart pixels, default light. See full schema for details."
                  },
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "CSS brand scope, matching viz_render for the same normalized spec and data operand."
                  }
                },
                "required": [
                  "spec"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Certify Artifact",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "fidelity_preview",
              "title": "Preview Fidelity",
              "description": "Draw object relationships or compositions at four fidelity levels. Use it when reviewing static structure or appearance; use design_preview instead to run generated React/Vue behavior. Returns SVG or HTML with fidelity-specific structure and provenance. fidelityKind selects boxes-arrows, wireframe, review or branded-mockup. Supply exactly one object, objects set, schema/schemaRef, fixture or legacy manifest; object/context composes a screen. Object diagrams show declared relationships; schema diagrams show containment. Wireframe/review show component bindings and recorded confidence, and branded mockups use static sample data. options.brandOverlay/theme selects built tokens. These drawings do not certify usability or referential integrity. Full schema: oods://schemas/fidelity_preview.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "fidelityKind": {
                    "type": "string",
                    "enum": [
                      "boxes-arrows",
                      "wireframe",
                      "review",
                      "branded-mockup"
                    ],
                    "description": "Which HTML fidelity emitter to invoke."
                  },
                  "fixture": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Named allow-listed Object Catalog fixture shipped in registry data; unknown names return OODS-FP-001."
                  },
                  "manifest": {
                    "type": "object",
                    "required": [
                      "entities"
                    ],
                    "description": "Inline Object Catalog manifest to render — an alternative to `fixture`. See full schema for details.",
                    "properties": {
                      "entities": {
                        "type": "array",
                        "description": "Object Catalog entities to render.",
                        "items": {
                          "type": "object",
                          "description": "One Object Catalog entity."
                        }
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "variant": {
                        "type": "string",
                        "description": "Projection-variant selector passed through to the emitter / runPreEmit())."
                      },
                      "brandOverlay": {
                        "type": "string",
                        "description": "Built brand for object relationship diagrams, composed wireframes, reviews, component… See full schema for details."
                      },
                      "reviewThreshold": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Recorded confidence below this threshold is flagged in review. See full schema for details."
                      },
                      "includeStyles": {
                        "type": "boolean",
                        "default": true,
                        "description": "Omit HTML style blocks when false. Diagram SVG retains its explicit paint attributes."
                      },
                      "depth": {
                        "type": "integer",
                        "default": 1,
                        "minimum": 0,
                        "maximum": 3,
                        "description": "Outgoing relationship depth for a single object. An explicit objects set is never expanded."
                      },
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "default": "light",
                        "description": "Built token scope for object relationship diagrams and composed branded mockups."
                      }
                    }
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Registered object. boxes-arrows draws its declared relationships; other views compose it in context."
                  },
                  "objects": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 32,
                    "description": "Explicit object set; draw only declared edges within this set. boxes-arrows only.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "objects item."
                    }
                  },
                  "schema": {
                    "type": "object",
                    "description": "Inline composed screen tree; validated as UiSchema."
                  },
                  "schemaRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Cached UiSchema from design_compose or schema load; missing/expired refs return a typed error."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "list",
                      "detail",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow",
                      "dashboard"
                    ],
                    "default": "detail",
                    "description": "Context to compose for a single object in wireframe, review or branded-mockup."
                  }
                },
                "required": [
                  "fidelityKind"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Preview Fidelity",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "component_map",
              "title": "Write Component Mappings",
              "description": "Write component substitutions or stage an intake draft. Use it when connecting React/Vue exports, shadcn source or built Storybook files; use component_map_read to list, resolve or review drafts. Returns staged evidence or write outcomes. apply with draftId requires accepted ids and writes adapters and mappings atomically. create takes one entry, mappings or mappingsPath; create and report-based apply preview unless apply:true. update and delete always write. Full schema: oods://schemas/component_map.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "apply",
                      "create",
                      "update",
                      "delete",
                      "draft"
                    ],
                    "description": "Choose apply, create, update, delete, draft."
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "For apply: When true, persist registry mutations. Defaults to dry-run. For create: When true, write changes to disk. Actions: apply, create."
                  },
                  "minConfidence": {
                    "type": "number",
                    "default": 0.75,
                    "minimum": 0,
                    "maximum": 1,
                    "description": "Minimum confidence to apply; lower candidates are queued. Actions: apply."
                  },
                  "reportPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Filesystem path to a reconciliation_report.json artifact. Actions: apply."
                  },
                  "report": {
                    "type": "object",
                    "description": "Reconciliation report. Actions: apply."
                  },
                  "mappings": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Create entries, each without apply. All entries are checked before one atomic write. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "A single-create payload without action or apply; the handler checks every value against… See full schema for details."
                    }
                  },
                  "mappingsPath": {
                    "type": "string",
                    "pattern": "^/[\\s\\S]*$",
                    "description": "Absolute path to a JSON document { mappings: [...] }, using the same entry shape. Actions: create."
                  },
                  "substitution": {
                    "type": "object",
                    "required": [
                      "component"
                    ],
                    "additionalProperties": false,
                    "description": "Component substitution with React/Vue exports and prop translations. Actions: create.",
                    "properties": {
                      "component": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The shipped OODS Foundry component id being replaced."
                      },
                      "react": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "react. Fields: localPath, package, export, version, passthrough, props, shadcn. See full schema."
                      },
                      "vue": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "vue. Fields: localPath, package, export, version, passthrough, props, shadcn. See full schema."
                      }
                    }
                  },
                  "externalSystem": {
                    "type": "string",
                    "minLength": 1,
                    "description": "External design system name (for example, 'team'). Actions: create, draft."
                  },
                  "externalComponent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "External component name. Actions: create."
                  },
                  "oodsTraits": {
                    "type": "array",
                    "minItems": 0,
                    "description": "OODS trait names this component maps to. Actions: create.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "oods Traits item."
                    }
                  },
                  "propMappings": {
                    "type": "array",
                    "description": "Property translations from external to OODS prop names. Actions: create.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "prop Mappings item. Fields: externalProp, oodsProp, coercion. See full schema."
                    }
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "manual"
                    ],
                    "default": "manual",
                    "description": "'auto' for machine-generated, 'manual' for human-curated. Actions: create."
                  },
                  "metadata": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Mapping metadata. Actions: create.",
                    "properties": {
                      "author": {
                        "type": "string",
                        "description": "author."
                      },
                      "notes": {
                        "type": "string",
                        "description": "notes."
                      }
                    }
                  },
                  "disambiguation_decisions": {
                    "type": "array",
                    "description": "Review decisions to append; does not gate creation. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Review decision record."
                    }
                  },
                  "preferred_terms": {
                    "type": "array",
                    "description": "Canonical terms to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Canonical term record."
                    }
                  },
                  "capabilities": {
                    "type": "array",
                    "description": "Capability definitions to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Capability record."
                    }
                  },
                  "projection_variants": {
                    "type": "array",
                    "description": "Cross-surface mapping variants to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Cross-surface variant record."
                    }
                  },
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Mapping ID. Actions: update (required), delete (required)."
                  },
                  "updates": {
                    "type": "object",
                    "description": "Fields to change: oodsTraits, confidence, propMappings, metadata, substitution. Omitted fields stay unchanged. Actions: update (required)."
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "project",
                      "format"
                    ],
                    "additionalProperties": false,
                    "description": "Actions: draft (required).",
                    "properties": {
                      "project": {
                        "type": "string",
                        "pattern": "^/[\\s\\S]*$",
                        "description": "project."
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "shadcn",
                          "storybook"
                        ],
                        "description": "format."
                      },
                      "storybook": {
                        "type": "string",
                        "description": "storybook."
                      }
                    }
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^components-[a-f0-9]{64}$",
                    "description": "Actions: apply (required)."
                  },
                  "accept": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Actions: apply (required).",
                    "items": {
                      "type": "string",
                      "description": "accept item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Write Component Mappings",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "component_map_read",
              "title": "Read Component Mappings",
              "description": "Read component substitutions and staged intake evidence. Use it when listing mappings, resolving an external component or reviewing a draftId; use component_map to stage or apply changes. Returns entries, matches or draft evidence including proposed adapters and unmatched elements. Reads local stores without generating adapters or changing project files. Full schema: oods://schemas/component_map_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "resolve",
                      "show"
                    ],
                    "description": "Choose list, resolve, show."
                  },
                  "externalSystem": {
                    "type": "string",
                    "minLength": 1,
                    "description": "For list: Filter mappings to a specific external system (e.g., 'team'). For resolve: External design system name (e.g., 'team'). Actions: list, resolve (required)."
                  },
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Pagination cursor. Use the previous page's nextCursor to continue. When cursor or limit is provided, pagination defaults to 100 items per page. Actions: list."
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500,
                    "description": "Page size for pagination. Omitting both cursor and limit preserves the legacy full-list response. Actions: list."
                  },
                  "externalComponent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Component name in the external system (e.g., 'Button'). Actions: resolve (required)."
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^components-[a-f0-9]{64}$",
                    "description": "Actions: show (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Component Mappings",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_store",
              "title": "Save Or Delete Schemas",
              "description": "Save or delete a named composition schema. Use it when retaining a UiSchema across sessions; use schema_read to list or load saved schemas. Returns the saved metadata or deletion result. save takes schemaRef, overwrites that name and increments its version; only the latest is loadable. Both actions write immediately. Full schema: oods://schemas/schema_store.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "save",
                      "delete"
                    ],
                    "description": "Choose save, delete."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_-]+$",
                    "description": "Saved schema name in slug format (letters, numbers, hyphens, underscores). Actions: save (required), delete (required)."
                  },
                  "schemaRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Reference to an in-memory schema produced by design_compose. Actions: save (required)."
                  },
                  "tags": {
                    "type": "array",
                    "description": "Optional tags for filtering and discovery. Actions: save.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "tags item."
                    }
                  },
                  "author": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Optional author metadata. Actions: save."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Save Or Delete Schemas",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_read",
              "title": "Read Saved Schemas",
              "description": "Read saved composition schemas. Use it when listing saved work or loading a named schema; use schema_store to save or delete one. Returns metadata or the schema with a new process-local schemaRef, valid for 30 minutes. Tool input schemas are separate MCP resources. Full schema: oods://schemas/schema_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "load"
                    ],
                    "description": "Choose list, load."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_-]+$",
                    "description": "Saved schema name in slug format. Actions: load (required)."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object filter. Actions: list."
                  },
                  "context": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Rendering-context filter. Actions: list."
                  },
                  "tags": {
                    "type": "array",
                    "description": "Actions: list.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "tags item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Saved Schemas",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_registry",
              "title": "Read Object Registry",
              "description": "Read object and trait definitions or validate YAML without saving. Use it when exploring shapes or checking a definition; use object_register to save one or object_import to draft from a schema file. Returns definitions, composed traits, validation findings or cache reload status. includeInternal reveals hidden objects; reload clears only process caches. Full schema: oods://schemas/object_registry.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "show",
                      "validate",
                      "reload"
                    ],
                    "description": "Choose list, show, validate, reload."
                  },
                  "domain": {
                    "type": "string",
                    "description": "Filter to objects in a specific domain (e.g. 'core.identity', 'saas.billing'). Actions: list."
                  },
                  "maturity": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "alpha",
                      "beta",
                      "stable"
                    ],
                    "description": "Filter by metadata maturity level. Actions: list."
                  },
                  "trait": {
                    "type": "string",
                    "description": "Filter to objects composing a given trait (e.g. 'Priceable', 'lifecycle/Stateful'). Actions: list."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and hiddenInternal counts them. Actions: list."
                  },
                  "name": {
                    "type": "string",
                    "description": "Object name to look up (e.g. 'User', 'Product', 'Invoice'). Actions: show (required)."
                  },
                  "context": {
                    "type": "string",
                    "description": "Optional: filter view_extensions to a single context (e.g. 'detail', 'list', 'form', 'timeline', 'card', 'inline'). Actions: show."
                  },
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The whole definition as YAML: an object file starts with \"object:\", a trait file with \"trait:\" (the same format as OODS Foundry's own objects/ and traits/). Actions: validate (required). See full schema for details."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Object Registry",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_register",
              "title": "Register Object Or Trait",
              "description": "Register an object or trait from reviewed YAML. Use it when saving a definition; use object_registry to list, inspect or validate without writing. Returns the saved definition and registry result. overwrite replaces your own definition. Team objects may shadow shipped objects; traits cannot reuse shipped names. Relationships must name valid targets and fields. Full schema: oods://schemas/object_register.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "register"
                    ],
                    "description": "Choose register."
                  },
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The whole definition as YAML: an object file starts with \"object:\", a trait file with \"trait:\" (the same format as OODS Foundry's own objects/ and traits/). Actions: register (required). See full schema for details."
                  },
                  "overwrite": {
                    "type": "boolean",
                    "default": false,
                    "description": "Replace a definition of yours with this name; without it a name you already registered is refused (OODS-C004). Actions: register."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Register Object Or Trait",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_render",
              "title": "Render Or Validate Schema",
              "description": "Validate a UiSchema or render static HTML and fragments. Use it when checking schema or patch contracts; use design_preview for a running app or schema_store to save. Returns diagnostics or rendered output. action selects validate/render; mode selects full/patch. apply:true enables rendering, without saving a schema. Render includes token CSS unless output.compact; oversized output or output.payloadMode:file writes only reply payloads. brand and scope options affect documents; ignored fragment options are diagnosed. Full schema: oods://schemas/schema_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "render",
                      "validate"
                    ],
                    "description": "Selects the per-action handler. 'render' -> schema_render action=render, 'validate' -> schema_render action=validate."
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "full",
                      "patch"
                    ],
                    "default": "full",
                    "description": "Full schema or patch mode. Actions: render, validate."
                  },
                  "schema": {
                    "type": "object",
                    "description": "UiSchema. Actions: render, validate."
                  },
                  "schemaRef": {
                    "type": "string",
                    "description": "Reference to a cached UiSchema returned by design_compose. Actions: render, validate."
                  },
                  "patch": {
                    "type": [
                      "array",
                      "object"
                    ],
                    "description": "Required when mode='patch'. Accepts JSON Patch array or node patch object(s). Actions: render, validate.",
                    "items": {
                      "type": "object",
                      "description": "patch item."
                    }
                  },
                  "baseTree": {
                    "type": "object",
                    "description": "Required when mode='patch' to provide the base UiSchema to patch. Actions: render, validate."
                  },
                  "brand": {
                    "type": "string",
                    "description": "Brand to render. Actions: render. See full schema for details."
                  },
                  "options": {
                    "type": "object",
                    "default": {},
                    "additionalProperties": false,
                    "description": "Operation options. Actions: render, validate.",
                    "properties": {
                      "includeTree": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for render."
                      },
                      "includeNormalized": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for validate."
                      },
                      "checkComponents": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for validate."
                      },
                      "checkA11y": {
                        "type": "boolean",
                        "default": false,
                        "description": "Checks declared foreground/background pairs derived from shared component CSS against… See full schema for details."
                      }
                    }
                  },
                  "output": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional render output controls. Omitting this object preserves full-document behavior. Actions: render.",
                    "properties": {
                      "format": {
                        "type": "string",
                        "enum": [
                          "document",
                          "fragments"
                        ],
                        "default": "document",
                        "description": "format."
                      },
                      "strict": {
                        "type": "boolean",
                        "default": false,
                        "description": "strict."
                      },
                      "includeCss": {
                        "type": "boolean",
                        "default": true,
                        "description": "include Css."
                      },
                      "compact": {
                        "type": "boolean",
                        "default": false,
                        "description": "Opt in to omitting token CSS; the default includes token CSS."
                      },
                      "showConfidence": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, emit data-oods-confidence and data-confidence-level attributes on rendered… See full schema for details."
                      },
                      "confidenceThreshold": {
                        "type": "number",
                        "default": 0.5,
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Confidence threshold for low-confidence affordance. See full schema for details."
                      },
                      "tokenOverlay": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Inline token-delta object resolved to a scoped :root{} override; applied only in document… See full schema for details."
                      },
                      "skinOverlay": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Inline measured-colour delta resolved against the OODS Foundry-owned style library to a… See full schema for details."
                      },
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline, unless the output would exceed 100,000 characters, in which case it is… See full schema for details."
                      }
                    }
                  },
                  "apply": {
                    "type": "boolean",
                    "description": "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."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Render Or Validate Schema",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_import",
              "title": "Import Objects",
              "description": "Draft objects from local OpenAPI, JSON Schema, Postgres SQL, Prisma, dbt, OData or GraphQL files, then apply accepted proposals. Use it when importing a schema; use object_import_read to review a staged object. Returns importId, staged files, proposal counts and re-import differences, or batch registration results. draft takes source.path or source.content; apply requires explicit objects and proposal ids. overwrite replaces team objects; confirmShipped names approved shipped replacements. No network fetch or code execution. Full schema: oods://schemas/object_import.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "apply"
                    ],
                    "description": "Choose draft, apply."
                  },
                  "source": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Local file/folder or inline schema. Used only by draft.",
                    "properties": {
                      "path": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Local file or folder. References must stay inside the source folder. Aggregate limit 128 MiB."
                      },
                      "content": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Inline schema text, at most 1 MiB. Set format for SQL, Prisma, OData XML or GraphQL SDL."
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "description": "File name for inline provenance; no directories."
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "openapi",
                          "json-schema",
                          "sql",
                          "prisma",
                          "dbt",
                          "odata",
                          "graphql"
                        ],
                        "description": "Explicit source format; inferred from file extension or document when omitted."
                      }
                    }
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Content-addressed import id from draft. Required by show and apply."
                  },
                  "objects": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Explicit accepted object names and optional proposal ids for apply.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "objects item. Fields: name, proposals, currencies. See full schema."
                    }
                  },
                  "overwrite": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow replacing existing team objects."
                  },
                  "confirmShipped": {
                    "type": "array",
                    "description": "Each shipped object name whose replacement is explicitly confirmed.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "confirm Shipped item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Import Objects",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "object_import_read",
              "title": "Read Import Draft",
              "description": "Read one staged object import. Use it when reviewing YAML, graded proposals and unmapped elements before acceptance; use object_import to draft or apply. Returns the named object, proposals and differences from its registered definition. Supply importId and the exact object name. Reading never rewrites the staged report. Full schema: oods://schemas/object_import_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "show"
                    ],
                    "description": "Choose show."
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Content-addressed import id from draft. Required by show and apply."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact draft object name for show."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Import Draft",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            }
          ]
        },
        "resources/list": {
          "resources": [
            {
              "uri": "ui://oods-forge/preview/a1ccf996c571/app.html",
              "name": "OODS Foundry design preview",
              "title": "OODS Foundry design preview",
              "description": "The running-app preview of a composition version, for a client that renders MCP Apps inside the conversation (revision a1ccf996c571, 2346476 bytes, self-contained).",
              "mimeType": "text/html;profile=mcp-app"
            },
            {
              "uri": "oods://schemas/tokens_build.input.json",
              "name": "tokens_build input schema",
              "title": "Build Tokens Schema",
              "description": "Full server validation schema for tokens_build; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/structured_data_fetch.input.json",
              "name": "structured_data_fetch input schema",
              "title": "Fetch Structured Data Schema",
              "description": "Full server validation schema for structured_data_fetch; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_apply.input.json",
              "name": "brand_apply input schema",
              "title": "Apply Brand Changes Schema",
              "description": "Full server validation schema for brand_apply; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_create.input.json",
              "name": "brand_create input schema",
              "title": "Create Brand Schema",
              "description": "Full server validation schema for brand_create; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_read.input.json",
              "name": "brand_read input schema",
              "title": "Read Brand Data Schema",
              "description": "Full server validation schema for brand_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/catalog_list.input.json",
              "name": "catalog_list input schema",
              "title": "List Components Schema",
              "description": "Full server validation schema for catalog_list; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/code_generate.input.json",
              "name": "code_generate input schema",
              "title": "Generate Code Schema",
              "description": "Full server validation schema for code_generate; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_compose.input.json",
              "name": "design_compose input schema",
              "title": "Compose Design Schema",
              "description": "Full server validation schema for design_compose; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_preview.input.json",
              "name": "design_preview input schema",
              "title": "Preview Running Design Schema",
              "description": "Full server validation schema for design_preview; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_versions.input.json",
              "name": "design_versions input schema",
              "title": "Read Design Versions Schema",
              "description": "Full server validation schema for design_versions; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/pipeline_run.input.json",
              "name": "pipeline_run input schema",
              "title": "Run Design Pipeline Schema",
              "description": "Full server validation schema for pipeline_run; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/health_check.input.json",
              "name": "health_check input schema",
              "title": "Check Health Schema",
              "description": "Full server validation schema for health_check; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/registry_snapshot.input.json",
              "name": "registry_snapshot input schema",
              "title": "Snapshot Registry Schema",
              "description": "Full server validation schema for registry_snapshot; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/viz_render.input.json",
              "name": "viz_render input schema",
              "title": "Render Chart Schema",
              "description": "Full server validation schema for viz_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/dashboard_render.input.json",
              "name": "dashboard_render input schema",
              "title": "Render Dashboard Schema",
              "description": "Full server validation schema for dashboard_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/artifact_certify.input.json",
              "name": "artifact_certify input schema",
              "title": "Certify Artifact Schema",
              "description": "Full server validation schema for artifact_certify; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/fidelity_preview.input.json",
              "name": "fidelity_preview input schema",
              "title": "Preview Fidelity Schema",
              "description": "Full server validation schema for fidelity_preview; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/component_map.input.json",
              "name": "component_map input schema",
              "title": "Write Component Mappings Schema",
              "description": "Full server validation schema for component_map; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/component_map_read.input.json",
              "name": "component_map_read input schema",
              "title": "Read Component Mappings Schema",
              "description": "Full server validation schema for component_map_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_store.input.json",
              "name": "schema_store input schema",
              "title": "Save Or Delete Schemas Schema",
              "description": "Full server validation schema for schema_store; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_read.input.json",
              "name": "schema_read input schema",
              "title": "Read Saved Schemas Schema",
              "description": "Full server validation schema for schema_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_registry.input.json",
              "name": "object_registry input schema",
              "title": "Read Object Registry Schema",
              "description": "Full server validation schema for object_registry; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_register.input.json",
              "name": "object_register input schema",
              "title": "Register Object Or Trait Schema",
              "description": "Full server validation schema for object_register; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_render.input.json",
              "name": "schema_render input schema",
              "title": "Render Or Validate Schema Schema",
              "description": "Full server validation schema for schema_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_import.input.json",
              "name": "object_import input schema",
              "title": "Import Objects Schema",
              "description": "Full server validation schema for object_import; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_import_read.input.json",
              "name": "object_import_read input schema",
              "title": "Read Import Draft Schema",
              "description": "Full server validation schema for object_import_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            }
          ]
        },
        "resources/templates/list": {
          "resourceTemplates": [
            {
              "uriTemplate": "oods://schemas/{file}",
              "name": "tool schemas",
              "title": "Tool Schemas",
              "description": "Full server validation schemas, one JSON Schema file per tool and the files they reference.",
              "mimeType": "application/schema+json"
            },
            {
              "uriTemplate": "ui://oods-forge/compositions/{compositionId}/{version}/{framework}.js{?brand,theme}",
              "name": "composition module",
              "title": "Composition Module",
              "description": "The compiled module of one composition version, framework react or vue.",
              "mimeType": "text/javascript"
            },
            {
              "uriTemplate": "ui://oods-forge/compositions/{compositionId}/{version}/{framework}.css{?brand,theme}",
              "name": "composition styles",
              "title": "Composition Styles",
              "description": "The stylesheet of one composition version, framework react or vue.",
              "mimeType": "text/css"
            }
          ]
        }
      },
      "errors": {
        "prompts/list": {
          "code": -32601,
          "message": "Method not found"
        },
        "prompts/get": {
          "code": -32601,
          "message": "Method not found"
        },
        "completion/complete": {
          "code": -32601,
          "message": "Method not found"
        },
        "logging/setLevel": {
          "code": -32601,
          "message": "Method not found"
        },
        "resources/subscribe": {
          "code": -32601,
          "message": "Method not found"
        },
        "resources/unsubscribe": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/get": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/result": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/list": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/cancel": {
          "code": -32601,
          "message": "Method not found"
        }
      }
    },
    "default+ui": {
      "results": {
        "ping": {},
        "tools/list": {
          "tools": [
            {
              "name": "tokens_build",
              "title": "Build Tokens",
              "description": "Compile registered brand tokens with the shipped compiler. Use it when you need fresh CSS and JSON; use brand_create to create a brand or brand_apply to change its source. Returns inline CSS variables, CSS and JSON plus artifact paths, hashes and sizes. apply:true builds in isolated artifact storage; omission previews the artifacts without writing. Requested brand/theme selects the inline scope; full CSS includes every registered scope. Source and shipped runtime files stay unchanged. Full schema: oods://schemas/tokens_build.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "Selects values compiled from current source, returned inline as CSS variables, CSS and JSON and written on apply. Full CSS includes all registered scopes; TypeScript and Tailwind artifacts retain A/light defaults."
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "dark",
                    "description": "Token theme."
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "Write on true; otherwise preview."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Build Tokens",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "structured_data_fetch",
              "title": "Fetch Structured Data",
              "description": "Fetch live registry datasets, archived token/export data, or captured-run artifacts. Use it when you need complete datasets; catalog_list selects components and object_registry reads definitions. Returns data with provenance, version and cache metadata. Full remains the default; detail:summary gives section counts and meta.next for inline pages; follow meta.next until absent. dataset selects registry/export mode; version pins an archived export and listVersions lists dates. kind plus runPath selects captured artifacts, while derived_analysis reads an analysis directory via runPath; version/listVersions are refused in kind mode. includeInternal exposes hidden objects, and ifNoneMatch checks the canonical payload ETag. Full schema: oods://schemas/structured_data_fetch.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "dataset": {
                    "type": "string",
                    "enum": [
                      "components",
                      "tokens",
                      "manifest"
                    ],
                    "description": "Local structured dataset to return (components/tokens/manifest). Mutually exclusive with kind+runPath."
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "identity_graph",
                      "capability_rollup",
                      "object_rollup",
                      "drift_report",
                      "derived_analysis",
                      "a11y_report",
                      "report_index",
                      "a11y_evidence",
                      "run_manifest"
                    ],
                    "description": "Stage1 artifact kind, with runPath; excludes dataset. See full schema for details."
                  },
                  "runPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Filesystem path to a Stage1 run directory or its artifacts/ subdirectory. Required when kind is set."
                  },
                  "ifNoneMatch": {
                    "type": "string",
                    "minLength": 8,
                    "description": "Return matched=true without payload when the ETag matches."
                  },
                  "includePayload": {
                    "type": "boolean",
                    "default": true,
                    "description": "When false, omit payload even if no ETag match occurs."
                  },
                  "version": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                    "description": "Request a specific date-stamped version (e.g., '2026-02-24'). Omit for latest. Applies to dataset mode only."
                  },
                  "listVersions": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, return available version dates instead of payload."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Live components dataset only: also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them; a dated export is served unchanged."
                  },
                  "payloadMode": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "file"
                    ],
                    "description": "Unset: inline, unless the payload exceeds 100,000 characters; then it is written to a file and warning OODS-W004 says so. inline always returns it; file always writes it and returns payloadFile."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "full"
                    ],
                    "description": "Dataset only. summary returns section counts and the call for page 1; full (default) preserves the dataset."
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Dataset only: read a 1-based page of lossless JSON Pointer entries, each reply below 100,000 characters. Omit for full data."
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100,
                    "description": "Dataset entries per page, default 10, also bounded by serialized size. Reply meta gives next and full calls."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Fetch Structured Data",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_apply",
              "title": "Apply Brand Changes",
              "description": "Preview or apply changes to an existing brand's canonical token source. Use it when editing a brand; use brand_create to create one. Returns validation, changed slots, before/after hashes and build evidence. delta is required and supports aliases or add/remove/replace patches. apply defaults to a dry run that writes nothing. apply:true validates first, then writes source and rebuilds; build failure leaves source edits in place. For shipped brands in the portable runtime, apply emits a review kit and reports source/build steps as skipped. User brands rebuild in their own folder. Full schema: oods://schemas/brand_apply.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "Target brand identifier. Must name a brand directory under packages/tokens/src/tokens/brands."
                  },
                  "delta": {
                    "type": [
                      "object",
                      "array"
                    ],
                    "description": "Alias changes (object) or an array using the supported add/remove/replace subset of RFC 6902 when strategy=patch.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "delta item. Fields: op, path, value. See full schema."
                    }
                  },
                  "strategy": {
                    "type": "string",
                    "enum": [
                      "alias",
                      "patch"
                    ],
                    "default": "alias",
                    "description": "Alias strategy rewrites token values; patch applies the supported add/remove/replace subset of RFC 6902."
                  },
                  "preview": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Preview response controls (apply=false).",
                    "properties": {
                      "verbosity": {
                        "type": "string",
                        "enum": [
                          "full",
                          "compact"
                        ],
                        "default": "full",
                        "description": "full includes structured before/after payloads; compact returns summary + hunks only."
                      }
                    }
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "Write on true; otherwise preview."
                  }
                },
                "required": [
                  "delta"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Apply Brand Changes",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_create",
              "title": "Create Brand",
              "description": "Create a brand or stage a local token intake draft. Use it when adding a brand; use brand_read for templates, validation, derivation and draft review, or brand_apply to edit a brand. Returns a staged draft or created brand with build results. apply needs draftId and accept:true. create accepts filled documents or a recipe, validates all themes, refuses replacement and removes a brand whose build fails. Full schema: oods://schemas/brand_create.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "create",
                      "draft",
                      "apply"
                    ],
                    "description": "Choose create, draft, apply."
                  },
                  "brand_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The id the brand will have. Actions: create (required), draft (required). See full schema for details."
                  },
                  "documents": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The filled template: one plain design-token document per theme, brand-relative (surface.canvas, not color.brand.<id>.surface.canvas), each slot {\"$type\": \"color\", \"$value\": \"<CSS colour>\"}. Actions: create.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "description": "The light theme."
                      },
                      "dark": {
                        "type": "object",
                        "description": "The dark theme."
                      },
                      "hc": {
                        "type": "object",
                        "description": "The high-contrast theme."
                      }
                    }
                  },
                  "recipe": {
                    "type": "object",
                    "description": "A brand recipe in place of documents: the brand it gives is checked, and for create written, like filled documents. Actions: create."
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false,
                    "description": "Actions: draft (required).",
                    "properties": {
                      "path": {
                        "type": "string",
                        "pattern": "^/[\\s\\S]*$",
                        "description": "path."
                      },
                      "modes": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "modes. Fields: base, dark. See full schema."
                      }
                    }
                  },
                  "bindings": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Actions: draft.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "base entry."
                        },
                        "description": "base."
                      },
                      "dark": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "dark entry."
                        },
                        "description": "dark."
                      }
                    }
                  },
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Actions: draft.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "brand."
                      },
                      "preset": {
                        "type": "string",
                        "description": "preset."
                      }
                    }
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^brand-[a-f0-9]{64}$",
                    "description": "Actions: apply (required)."
                  },
                  "accept": {
                    "type": "boolean",
                    "const": true,
                    "description": "Actions: apply (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Create Brand",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_read",
              "title": "Read Brand Data",
              "description": "Read brand templates, validate documents, derive recipes or inspect staged drafts. Use it when preparing a brand without saving; use brand_create to stage or create it. Returns complete template slots, validation findings, a recipe with provenance and gaps, or draft evidence. derive takes exactly one of tokens, css or absolute cssPath. Template replies use compact JSON so all themes fit inline. Full schema: oods://schemas/brand_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "template",
                      "validate",
                      "derive",
                      "show"
                    ],
                    "description": "Choose template, validate, derive, show."
                  },
                  "tokens": {
                    "type": "object",
                    "description": "A DTCG document with your own token names. Group $type is inherited; {group.token} aliases resolve inside the document. Actions: derive."
                  },
                  "css": {
                    "type": "string",
                    "description": "A shadcn theme CSS entry, in place of tokens. Actions: derive. See full schema for details."
                  },
                  "cssPath": {
                    "type": "string",
                    "pattern": "^/[\\s\\S]*$",
                    "description": "Absolute path to the shadcn theme CSS entry, in place of tokens or css. Read only. Actions: derive."
                  },
                  "hints": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Exact dot-separated token paths, or CSS custom property names, that override inference. Invalid hints produce gaps, never silent fallback. Actions: derive.",
                    "properties": {
                      "accent": {
                        "type": "string",
                        "minLength": 1,
                        "description": "accent."
                      },
                      "neutral": {
                        "type": "string",
                        "minLength": 1,
                        "description": "neutral."
                      },
                      "radius": {
                        "type": "string",
                        "minLength": 1,
                        "description": "radius."
                      },
                      "font": {
                        "type": "string",
                        "minLength": 1,
                        "description": "font."
                      },
                      "fontMono": {
                        "type": "string",
                        "minLength": 1,
                        "description": "font Mono."
                      }
                    }
                  },
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Where the starting values come from: an existing brand (default A), optionally with one of the shipped presets over it; or a recipe, which gives the complete brand, graded. Actions: template.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "An existing brand whose values the template starts from. Default: A."
                      },
                      "preset": {
                        "type": "string",
                        "minLength": 1,
                        "description": "A shipped preset id whose values go over the brand's; every template response lists the… See full schema for details."
                      },
                      "recipe": {
                        "type": "object",
                        "description": "A brand recipe: the neutral (a hue and a tint of 0 to 0.03), the accent hue, whether the… See full schema for details."
                      }
                    }
                  },
                  "brand_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The id the brand will have. Checked when given: capitals then digits (ACME, A1) or a letter then lower-case letters and digits (Acme, acme2), at most 32 characters, and no existing brand's id in any case. Actions: validate."
                  },
                  "documents": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The filled template: one plain design-token document per theme, brand-relative (surface.canvas, not color.brand.<id>.surface.canvas), each slot {\"$type\": \"color\", \"$value\": \"<CSS colour>\"}. Actions: validate.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "description": "The light theme."
                      },
                      "dark": {
                        "type": "object",
                        "description": "The dark theme."
                      },
                      "hc": {
                        "type": "object",
                        "description": "The high-contrast theme."
                      }
                    }
                  },
                  "recipe": {
                    "type": "object",
                    "description": "A brand recipe in place of documents: the brand it gives is checked, and for create written, like filled documents. Actions: validate."
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^brand-[a-f0-9]{64}$",
                    "description": "Actions: show (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Brand Data",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "catalog_list",
              "title": "List Components",
              "description": "List components from the live component-contract registry. Use it when selecting components; structured_data_fetch returns complete datasets. Returns component names, categories, readiness labels and availableCategories; detail controls added tags, contexts, regions, traits and evidence. includeInternal exposes hidden registry objects. Filtered calls without detail default to full pages of 10; nextPage continues. Explicit detail preserves unpaged output. Readiness evidence retains the build it measured and does not certify a new composition. Full schema: oods://schemas/catalog_list.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "Filter components by category (e.g., 'core', 'lifecycle', 'visual')"
                  },
                  "trait": {
                    "type": "string",
                    "description": "Filter components by trait (e.g., 'Editable', 'Searchable')"
                  },
                  "context": {
                    "type": "string",
                    "description": "Filter components by context (e.g., 'detail', 'list')"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "stable",
                      "beta",
                      "planned"
                    ],
                    "description": "Filter by legacy static-HTML status only: 'stable' = mapped HTML renderer; 'planned' = HTML fallback. Consult productReality.surfaces for React/Vue, generated-consumer and maturity evidence."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "brief",
                      "summary",
                      "full"
                    ],
                    "description": "Defaults to brief unfiltered, full with filters. Both defaults are paged (filtered: 10 entries). summary adds tags, contexts, regions and traits; full includes evidence. Explicit detail without paging preserves the unbounded legacy request."
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "1-based page index for pagination."
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Components per page. Filtered calls without detail default to 10; nextPage gives the next call."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects in registry.objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "List Components",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "code_generate",
              "title": "Generate Code",
              "description": "Generate React/Vue file sets or a standalone static HTML document from a validated UiSchema. Use it when a schema already exists; use design_compose instead to choose a layout or pipeline_run to compose, validate, render and generate together. Returns versioned artifacts, exact dependencies, required domain handlers and validationReceipt. Supply schema or schemaRef before its 30-minute expiry. profile selects draft/build/release; build performs static checks, while release verifies supplied evidence without rerunning it. options.output selects component/application; options.payloadMode:file returns file references, as does oversized output unless inline. Domain actions require consumer handlers. React and Vue shadcn mappings support components, screen apps and workflow apps. Full schema: oods://schemas/code_generate.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "schema": {
                    "type": "object",
                    "description": "A structurally valid UiSchema tree to generate code from. UiElement.state branches are checked against the canonical workflow-state vocabulary by the state-contract gate."
                  },
                  "schemaRef": {
                    "type": "string",
                    "description": "Reference to a cached UiSchema returned by design_compose."
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "html"
                    ],
                    "description": "Target framework. HTML uses the same record document renderer as repl render; build checks are static and do not execute a browser."
                  },
                  "profile": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "build",
                      "release"
                    ],
                    "description": "Validation profile. See full schema for details."
                  },
                  "releaseEvidence": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Evidence for release. See full schema for details.",
                    "properties": {
                      "rendered": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "interaction": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "accessibility": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "theme": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "determinism": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "performance": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "default": {},
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "description": "Application and embedded chart theme. See full schema for details."
                      },
                      "brand": {
                        "type": "string",
                        "description": "Token brand shared by the generated shell and embedded charts. See full schema for details."
                      },
                      "typescript": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true, emit TypeScript prop types (React) or typed defineProps (Vue). Ignored for HTML."
                      },
                      "styling": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "tokens",
                          "tailwind"
                        ],
                        "default": "tokens",
                        "description": "React/Vue styling strategy: inline style objects, design-token CSS variables, or Tailwind utility classes. See full schema for details."
                      },
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline, unless the artifact would exceed 100,000 characters, in which case it is… See full schema for details."
                      },
                      "output": {
                        "type": "string",
                        "enum": [
                          "component",
                          "application"
                        ],
                        "default": "component",
                        "description": "React/Vue: component output by default, or a runnable single-screen application. See full schema for details."
                      }
                    }
                  }
                },
                "required": [
                  "framework"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Generate Code",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_compose",
              "title": "Compose Design",
              "description": "Compose an object screen or workflow into a UiSchema. Use it when choosing layout and components; use pipeline_run instead for the complete generation flow or code_generate when you already have a schema. Returns schema, a 30-minute process-local schemaRef and durable compositionId/version lineage. Prefer explicit object and context over keyword-based intent. preferences controls region/field order and sample seed; compositionId appends a version, while options.transient records none. Save schemas with schema_store to reuse across sessions. Selected nodes snapshot component mappings; composition does not generate or run an app. Full schema: oods://schemas/design_compose.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "intent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A short intent sentence (e.g., 'dashboard with metrics and sidebar', 'user registration form'), matched against fixed keyword and phrase tables, not understood; a sentence with no layout keyword becomes a low-confidence… See full schema for details."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., 'Subscription', 'User'). When provided, composition uses trait-driven component placement via view_extensions."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition. See full schema for details."
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "dashboard",
                      "form",
                      "detail",
                      "list",
                      "card",
                      "timeline",
                      "landing",
                      "auto"
                    ],
                    "default": "auto",
                    "description": "Layout template to use. 'landing' is a content/marketing page (hero + sections + CTA), not bound to a data object. 'auto' infers the best template from intent keywords."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "Brand scope for data-bound charts; defaults to A."
                      },
                      "theme": {
                        "type": "string",
                        "description": "Theme token (e.g., 'light', 'dark')."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name → component-name overrides (e.g., { 'items': 'Table' })."
                      },
                      "regionOrder": {
                        "type": "array",
                        "minItems": 1,
                        "description": "The screen's regions (its direct children) by id in the desired order; regions not listed… See full schema for details.",
                        "items": {
                          "type": "string",
                          "description": "region Order item."
                        }
                      },
                      "fieldOrder": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "array",
                          "minItems": 1,
                          "description": "field Order entry.",
                          "items": {
                            "type": "string",
                            "description": "field Order entry item."
                          }
                        },
                        "description": "Region id → field names in the desired order among sibling field nodes of that region (a… See full schema for details."
                      },
                      "seed": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "Sample-data seed. See full schema for details."
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "validate": {
                        "type": "boolean",
                        "default": true,
                        "description": "Auto-validate the generated schema via the `repl` tool's `validate` action."
                      },
                      "topN": {
                        "type": "integer",
                        "default": 3,
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of component candidates to return per slot."
                      },
                      "transient": {
                        "type": "boolean",
                        "default": false,
                        "description": "Do not record a composition version; the result then carries no compositionId. For scratch compositions only."
                      },
                      "operation": {
                        "type": "string",
                        "enum": [
                          "recompose",
                          "reorder-region",
                          "swap-slot",
                          "reorder-fields",
                          "seed"
                        ],
                        "description": "With compositionId: the lineage operation recorded on the new version; default recompose. See full schema for details."
                      }
                    }
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "Record this composition as the next version of an existing composition (operation \"recompose\") instead of creating a new one."
                  },
                  "parentVersion": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "With compositionId: the version the new one derives from; default the latest."
                  },
                  "presentation": {
                    "type": "string",
                    "enum": [
                      "stage1-inspection"
                    ],
                    "description": "Named Stage1 inspection presentation: omit the accessibility score and prominently show measurement limits. Source records remain unchanged."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Compose Design",
                "readOnlyHint": false,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_preview",
              "title": "Preview Running Design",
              "description": "Render, compare, edit or accept a running React/Vue composition. Use it when reviewing generated behavior; use design_versions to inspect lineage without starting a host, or fidelity_preview for static drawings. Returns preview URLs, editable fields and measured or unmeasured evidence. Supply compositionId/version or object/context. Edits create versions; compare generates missing artifacts. accept records the generated version and a snapshot of its measurements as accepted, preserving prior acceptances. Full schema: oods://schemas/design_preview.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "render",
                      "compare",
                      "edit",
                      "accept"
                    ],
                    "default": "render",
                    "description": "Choose render, compare, edit, accept."
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "An existing composition from design_compose; with no version, its latest version opens."
                  },
                  "version": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "The version of compositionId to open."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., 'Subscription', 'User'); with context, composes a new composition (version 1) and opens it."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition. See full schema for details."
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "both"
                    ],
                    "default": "both",
                    "description": "Which generated app to compile and serve; both frameworks by default, each at its own URL."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "default": "light",
                        "description": "Theme the page mounts with (data-theme and the matching token CSS scope)."
                      },
                      "brand": {
                        "type": "string",
                        "default": "A",
                        "description": "Brand the page mounts with (data-brand and the matching token CSS scope)."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name → component-name overrides (e.g., { 'items': 'Table' })."
                      }
                    }
                  },
                  "against": {
                    "type": "object",
                    "required": [
                      "version"
                    ],
                    "additionalProperties": false,
                    "description": "action compare: the version on the right; the left is compositionId@version.",
                    "properties": {
                      "compositionId": {
                        "type": "string",
                        "pattern": "^cmp-[a-f0-9]{12}$",
                        "description": "The other composition; default the same composition."
                      },
                      "version": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "version."
                      }
                    }
                  },
                  "edit": {
                    "type": "object",
                    "description": "Edit one parent version: operation is reorder-region (regionOrder), swap-slot (slot, component), reorder-fields (fields), or seed (seed). Returns a new version."
                  },
                  "contextItems": {
                    "type": "array",
                    "maxItems": 200,
                    "description": "Decisions and evidence about this object that you already fetched, shown beside the running preview and stored on the version. See full schema for details.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "context Items item. Fields: source, id, title, body, excerpt, url, timestamp, query, fetchedAt, object, urn. See full schema."
                    }
                  },
                  "contextSearched": {
                    "type": "array",
                    "maxItems": 50,
                    "description": "What you searched that returned nothing, so an empty panel is a statement rather than a silence: the reader can tell 'nothing was found' from 'nobody asked'.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "context Searched item. Fields: source, query, fetchedAt, found. See full schema."
                    }
                  },
                  "runPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Stage1 run directory on this machine (out/stage1/<suite>/<run-uuid>) whose real records this version shows: the run itself for Run, its findings for Finding, its attested artifacts for CapturedArtifact. See full schema for details."
                  },
                  "observationRunPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Stage1 run directory on this machine (out/stage1/<suite>/<run-uuid>). See full schema for details."
                  },
                  "presentation": {
                    "type": "string",
                    "enum": [
                      "stage1-inspection"
                    ],
                    "description": "Named Stage1 inspection presentation: omit the accessibility score and prominently show measurement limits. Source records remain unchanged."
                  },
                  "recordId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact record ID for a fresh runPath or analysisPath detail/card/inline view. Unknown IDs refuse before composition; existing versions retain their selected record."
                  },
                  "analysisPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Portable Stage1 derived-analysis directory. Composes Comparison or ComparisonSignal from attested retained bytes, separate from runPath. Only read-only contexts; recordId selects an exact signal."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Preview Running Design",
                "readOnlyHint": false,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              },
              "_meta": {
                "ui": {
                  "resourceUri": "ui://oods-forge/preview/a1ccf996c571/app.html"
                },
                "ui/resourceUri": "ui://oods-forge/preview/a1ccf996c571/app.html"
              }
            },
            {
              "name": "design_versions",
              "title": "Read Design Versions",
              "description": "Read a composition's versions and accepted version. Use it when inspecting saved lineage; use design_preview to render, edit, compare or accept. Returns version metadata, latest and acceptance summary. Supply compositionId. Starts no preview host and returns no running URL. Full schema: oods://schemas/design_versions.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "versions"
                    ],
                    "description": "Choose versions."
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "An existing composition from design_compose; with no version, its latest version opens."
                  }
                },
                "required": [
                  "compositionId"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Read Design Versions",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "pipeline_run",
              "title": "Run Design Pipeline",
              "description": "Run composition, validation, rendering and code generation in one call. Use it when starting from an object/context or intent and needing generated output; use design_compose instead to inspect layout first or code_generate for an existing schema. Returns step results, schemaRef with expiry, versioned artifacts, dependencies and validationReceipt. options controls validation/render skipping and optional static accessibility checks; save persists the schema beyond its process-local 30-minute reference. Generation validation forwards draft/build/release without downgrade. Release verifies supplied evidence without rerunning it; unresolved accessibility pairs stay unmeasured. Oversized output goes to files unless options.payloadMode is inline. Calls may write composition and saved-schema records. Full schema: oods://schemas/pipeline_run.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., Subscription, User)."
                  },
                  "intent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A short intent sentence, matched against fixed keyword and phrase tables (a sentence that matches no layout keyword becomes a low-confidence dashboard). Prefer object and context."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition."
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "dashboard",
                      "form",
                      "detail",
                      "list",
                      "card",
                      "timeline",
                      "landing",
                      "auto"
                    ],
                    "description": "Layout template. 'landing' is a content page (hero, sections, call to action) bound to no object; 'auto' picks one from the intent."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "description": "Theme token (e.g., 'light', 'dark')."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "minLength": 1,
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name to component-name overrides (e.g., { 'items': 'Table' })."
                      }
                    }
                  },
                  "actionMappings": {
                    "type": "array",
                    "description": "action mappings: flat, verb-keyed entries.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "action Mappings item. Fields: verb, oodsTrait, trait, object, component, slot, confidence. See full schema."
                    }
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "html"
                    ],
                    "description": "Target framework for code generation."
                  },
                  "styling": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "tokens",
                      "tailwind"
                    ],
                    "description": "Styling strategy for code generation."
                  },
                  "profile": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "build",
                      "release"
                    ],
                    "description": "Validation profile passed to code_generate. build, the default, blocks on static checks; static checks do not install or run the generated app."
                  },
                  "releaseEvidence": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Hash-bound release evidence forwarded unchanged to code_generate.",
                    "properties": {
                      "rendered": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "interaction": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "accessibility": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "theme": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "determinism": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "performance": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      }
                    }
                  },
                  "save": {
                    "type": [
                      "string",
                      "object"
                    ],
                    "description": "Optional schema save config. String for name-only, or { name, tags } for full control. Variant fields: name, tags. Read the full schema for each variant."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline up to 100,000 characters, else file. See full schema for details."
                      },
                      "skipValidation": {
                        "type": "boolean",
                        "description": "Skip the validate step (default false)."
                      },
                      "skipRender": {
                        "type": "boolean",
                        "description": "Skip the render step (default false)."
                      },
                      "checkA11y": {
                        "type": "boolean",
                        "description": "Checks declared foreground/background pairs derived from shared component CSS against… See full schema for details."
                      },
                      "renderApply": {
                        "type": "boolean",
                        "description": "Render with apply=true to include HTML output (default true)."
                      },
                      "compact": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true (default), omit token CSS from render output and return tokenCssRef instead. See full schema for details."
                      },
                      "typescript": {
                        "type": "boolean",
                        "description": "Alias: enable TypeScript output in code generation."
                      },
                      "styling": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "tokens",
                          "tailwind"
                        ],
                        "description": "Alias: styling strategy. Overridden by top-level styling if both provided."
                      },
                      "framework": {
                        "type": "string",
                        "enum": [
                          "react",
                          "vue",
                          "html"
                        ],
                        "description": "Alias: target framework. Overridden by top-level framework if both provided."
                      }
                    }
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Run Design Pipeline",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "health_check",
              "title": "Check Health",
              "description": "Read server readiness, live registry/store counts and retained proof summaries. Use it when checking availability and built brand/theme scopes; use object_registry for definitions or registry_snapshot for mappings. Returns status, server uptime, registry counts, token scopes and productReality evidence. status:ok means sources were readable; retained proofs identify their measured build and do not automatically certify this one. includeChangelog and sinceVersion filter the reported DSL changelog. tokens.defaultScope is configured metadata rather than an observed consumer scope; missing scope data is unavailable. Full schema: oods://schemas/health_check.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "includeChangelog": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, include DSL version changelog in the response."
                  },
                  "sinceVersion": {
                    "type": "string",
                    "description": "When provided with includeChangelog, only return changelog entries since this version."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Check Health",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "registry_snapshot",
              "title": "Snapshot Registry",
              "description": "Read mappings together with active traits and objects in one snapshot. Use it when reading combined registry data; object_registry reads one definition and object_register saves one. Returns mappings, traits, objects, generatedAt, ETag and registry loader issues. Defaults to a summary; detail full adds schemas. includeInternal exposes hidden objects; otherwise hiddenInternal counts omitted entries. Team definitions and shadowing are reported from live sources. This read-only call writes no snapshot file. Historical mapping fields remain stored data and do not imply current capabilities. Full schema: oods://schemas/registry_snapshot.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "full"
                    ],
                    "default": "summary",
                    "description": "summary (default), or full definitions, best with names."
                  },
                  "names": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Exact trait and object names; misses go in notFound.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "names item."
                    }
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Snapshot Registry",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "viz_render",
              "title": "Render Chart",
              "description": "Render one data-bound chart from rows or a structured data operand. Use it when creating chart output; use artifact_certify instead to grade a normalized chart or dashboard_render for multiple panels and KPIs. Returns Vega-Lite or ECharts specs, chart identities and requested SVG/accessibility output. pattern uses bundled data and forbids explicit data/encoding/presentation overrides. Otherwise use chartType plus encodings, omit chartType for recommendations, or supply structured intent. ECharts-primary families require their matching hierarchy/network/geo operand. brand/theme controls pixels; output.includeNormalizedSpec returns the IR required by artifact_certify. Temporal rendering uses UTC. For native ECharts after JSON transport, restore currency and precision with @oods/foundry/echarts.js. Charts take inline data only; URLs, images and links in the input are refused. Full schema: oods://schemas/viz_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "Chart token theme. HC preserves system colors and needs a forced-colors browser to resolve them."
                  },
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "CSS token brand for chart pixels. Omission resolves light/A."
                  },
                  "opacity": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1,
                    "description": "Constant mark opacity for Cartesian charts only; omission keeps renderer defaults."
                  },
                  "rows": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 5000,
                    "description": "Inline flat data rows. Use either rows or datasetRef.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "rows item."
                    }
                  },
                  "datasetRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Previously cached dataset id; alternative to rows."
                  },
                  "hierarchy": {
                    "type": "object",
                    "description": "Treemap/sunburst: {type:\"nested\",data:{name,value,children}} or {type:\"adjacency_list\",data:[{id,parentId,value}]}. See full schema."
                  },
                  "sankey": {
                    "type": "object",
                    "description": "Sankey input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names. Use chartType:\"sankey\"."
                  },
                  "chord": {
                    "type": "object",
                    "description": "Chord input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names; each directed pair must be unique."
                  },
                  "network": {
                    "type": "object",
                    "description": "Force graph input: {nodes:[{id,group}],links:[{source,target,value}]}; max 250 nodes. Use chartType:\"force_graph\". Full contract: oods://schemas/viz_render.input.json."
                  },
                  "geo": {
                    "type": "object",
                    "description": "Inline geojson or topojson plus topoObjectName, rows, join, valueField; optional point/flow coordinate fields. No network fetch. Re-register echartsSpec.__registration before rendering. Read full schema."
                  },
                  "chartType": {
                    "type": "string",
                    "enum": [
                      "bar",
                      "line",
                      "area",
                      "scatter",
                      "heatmap",
                      "treemap",
                      "sunburst",
                      "sankey",
                      "force_graph",
                      "choropleth",
                      "bubble_map",
                      "flow_map",
                      "chord"
                    ],
                    "description": "Chart family for explicit mode. Cartesian charts need rows/datasetRef and encodings; other families need their named data input. Omit to suggest from rows."
                  },
                  "encodings": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Cartesian bindings: each needs field; optional type, aggregate, title, format (d3-format), currency (ISO 4217).",
                    "properties": {
                      "x": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "y": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "color": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "size": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "shape": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "detail": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      }
                    }
                  },
                  "id": {
                    "type": "string",
                    "description": "Optional stable identifier for the produced spec."
                  },
                  "name": {
                    "type": "string",
                    "description": "Optional human-friendly chart title."
                  },
                  "description": {
                    "type": "string",
                    "description": "Optional override for the synthesized accessibility description. When omitted, a non-empty description is generated from the encodings."
                  },
                  "strictFields": {
                    "type": "boolean",
                    "default": false,
                    "description": "Warn about unresolved fields and unmatched map joins (OODS-V131/V134). Default false preserves existing behavior."
                  },
                  "a11yEquivalence": {
                    "type": "boolean",
                    "default": true,
                    "description": "Check Vega-Lite accessible equivalents (default true). Errors stop rendering; warnings are returned. ECharts-primary scaffolds are not checked here."
                  },
                  "output": {
                    "type": "object",
                    "description": "Options: svg, width, height, compact, echarts, includeNormalizedSpec, includeA11y, includeVegaSpec, titlePlacement (chart or figure). SVG is opt-in; compact defaults true."
                  },
                  "intent": {
                    "type": "object",
                    "description": "Structured request: goal, measures:[{name}], dimensions:[{name}], optional chartFamily and measureRef. Uses rows or datasetRef; alternative to explicit chartType/encodings."
                  },
                  "pattern": {
                    "type": "string",
                    "enum": [
                      "pattern:viz:bubble-distribution",
                      "pattern:viz:correlation-matrix",
                      "pattern:viz:correlation-scatter",
                      "pattern:viz:detail-overview-bar",
                      "pattern:viz:diverging-bar",
                      "pattern:viz:drilldown-stacked-bar",
                      "pattern:viz:facet-small-multiples-line",
                      "pattern:viz:facet-target-band",
                      "pattern:viz:focus-context-line",
                      "pattern:viz:grouped-bar",
                      "pattern:viz:histogram",
                      "pattern:viz:layered-line-area",
                      "pattern:viz:multi-series-line",
                      "pattern:viz:running-total-area",
                      "pattern:viz:simple-bar",
                      "pattern:viz:sparkline-grid",
                      "pattern:viz:stacked-100-bar",
                      "pattern:viz:stacked-area-projection",
                      "pattern:viz:stacked-bar",
                      "pattern:viz:target-band-line",
                      "pattern:viz:time-grid-heatmap",
                      "pattern:viz:waterfall"
                    ],
                    "description": "Exact registered pattern identity; preserves source data and presentation. Cannot combine with chartType, data, intent or identity/presentation overrides."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Render Chart",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "dashboard_render",
              "title": "Render Dashboard",
              "description": "Render coordinated charts and KPIs from shared datasets and panel definitions. Use it when composing a dashboard; use viz_render instead for one chart or artifact_certify to grade each returned normalized chart. Returns layout, per-panel specs/hashes, computed KPI values, accessibility data and a reusable specRef. output.includeNormalizedSpec includes panel IR; output.html adds rendered HTML. brand/theme controls emitted pixels; selection and crossFilter apply caller-supplied filtering. resolveMeasures defaults true for governed measure references. output.contrastScan is a four-pair token preflight, not whole-document certification. Chord and flow_map are excluded from dashboards. Panels take inline data only. Full schema: oods://schemas/dashboard_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "CSS token theme for chart pixels, default light. See full schema for details."
                  },
                  "schemaVersion": {
                    "type": "string",
                    "const": "v0.1",
                    "description": "IR version discriminant (V01 convention). A future template/shape change bumps to v0.2."
                  },
                  "id": {
                    "type": "string",
                    "description": "Stable identifier for the dashboard instance."
                  },
                  "title": {
                    "type": "string",
                    "description": "Human-friendly dashboard title surfaced in UI + narration."
                  },
                  "datasets": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Shared, named tabular datasets. chart and KPI panels reference one by datasetId; panels that share a dataset can cross-filter each other.",
                    "items": {
                      "type": "object",
                      "description": "A named shared dataset. Panels reference it by id; cross-filter operates over its shared dimensional space."
                    }
                  },
                  "panels": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Heterogeneous panels: chart (11 of the 13 viz_render chartTypes; chord and flow_map are viz_render-only — plus its data branch) or kpi tiles.",
                    "items": {
                      "type": "object",
                      "description": "A dashboard panel: a chart panel (11 of the 13 viz_render chartTypes; chord and flow_map… See full schema for details."
                    }
                  },
                  "layout": {
                    "type": "object",
                    "description": "Optional layout hints consumed by the deterministic auto-layout resolver. Absent hints -> declared panel order + KPI-row-first defaults; the resolver emits abstract {x,y,w,h} (renderer-agnostic, the client sizes the canvas)."
                  },
                  "links": {
                    "type": "array",
                    "description": "Declared panel relationships, returned and shown as a labelled list in HTML. They apply no filters; cross-filtering uses selection and crossFilter.",
                    "items": {
                      "type": "object",
                      "description": "A declared source-to-target relationship displayed in the HTML reference list. See full schema for details."
                    }
                  },
                  "crossFilter": {
                    "type": "object",
                    "description": "Active selection combination. Each active source contributes a predicate; ignoreSelfSource controls whether its own panel is filtered. Declared links do not change this behavior."
                  },
                  "onPanelError": {
                    "type": "string",
                    "enum": [
                      "placeholder",
                      "omit"
                    ],
                    "default": "placeholder",
                    "description": "What a failed panel does: 'placeholder' (default) shows an accessible error panel in its place; 'omit' drops it from the layout."
                  },
                  "resolveMeasures": {
                    "type": "boolean",
                    "default": true,
                    "description": "Phase-3 governed-measure resolution switch. See full schema for details."
                  },
                  "strictFields": {
                    "type": "boolean",
                    "default": false,
                    "description": "Field-presence strict switch. See full schema for details."
                  },
                  "strictDatasets": {
                    "type": "boolean",
                    "default": false,
                    "description": "Unknown-datasetId strict switch. See full schema for details."
                  },
                  "a11yEquivalence": {
                    "type": "boolean",
                    "default": true,
                    "description": "A11y equivalence certify-at-emission switch. See full schema for details."
                  },
                  "a11y": {
                    "type": "object",
                    "description": "dashboard-level accessibility: a cross-panel summary + reading/focus order. The per-chart AccessibilitySpec stays per-panel; this is the dashboard envelope."
                  },
                  "tokenCssRef": {
                    "type": "string",
                    "description": "Token strategy. See full schema for details."
                  },
                  "brand": {
                    "type": "string",
                    "description": "CSS token brand for the dashboard document and chart pixels; defaults to A. The contrast scan grades the same scoped document tokens."
                  },
                  "selection": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "description": "One panel's active cross-filter selection (point/categorical only in v1)."
                    },
                    "description": "Optional accumulated cross-filter SelectionState, keyed by sourceWidgetId (one active selection per source). See full schema for details."
                  },
                  "output": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional render output controls (mirrors viz_render).",
                    "properties": {
                      "compact": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true, omit full token CSS and return a tokenCssRef instead."
                      },
                      "echarts": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, also include the ECharts option for tabular panels (ECharts-primary panels always include it)."
                      },
                      "includeNormalizedSpec": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, also return each successfully rendered chart panel's intermediate… See full schema for details."
                      },
                      "html": {
                        "type": "boolean",
                        "default": false,
                        "description": "Opt-in render-to-SVG export. See full schema for details."
                      },
                      "dataTable": {
                        "type": "boolean",
                        "default": false,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "contrastScan": {
                        "type": "boolean",
                        "default": false,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "dataQualityField": {
                        "type": "string",
                        "minLength": 1,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "includeA11y": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, attach a structured two-part text alternative (accessible data table +… See full schema for details."
                      }
                    }
                  }
                },
                "required": [
                  "schemaVersion",
                  "datasets",
                  "panels",
                  "a11y"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Render Dashboard",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "artifact_certify",
              "title": "Certify Artifact",
              "description": "Grade a normalized chart's accessibility equivalence, determinism, contrast and accuracy. Use it when checking the IR returned by viz_render or dashboard_render; use viz_render instead to create chart output and dashboard_render to compose panels. Returns coverage, conformant, findings and four pillar verdicts. Pass spec alone for Cartesian charts; ECharts-primary charts need the same matching data branch used for rendering. Spec-only ECharts remains uncertified. brand/theme must match rendering; high contrast reports forced-colors exemption without a numeric contrast grade. A certified chart may still be nonconformant; inspect all verdicts. This read-only check does not repair charts and never fetches a URL. Full schema: oods://schemas/artifact_certify.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "spec": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "An OODS Foundry normalized chart spec: the normalizedSpec that viz_render returns. The handler validates it against the full spec schema."
                  },
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional operand for the 8 ECharts-primary types (treemap/sunburst/sankey/force_graph/choropleth/bubble_map/flow_map/chord): the same data branch viz_render takes, so certify re-emits the option the render path would… See full schema for details.",
                    "properties": {
                      "hierarchy": {
                        "type": "object",
                        "description": "Hierarchy data for chartType 'treemap' or 'sunburst' (explicit-only) — used instead of… See full schema for details."
                      },
                      "sankey": {
                        "type": "object",
                        "description": "Flow data for chartType 'sankey' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "chord": {
                        "type": "object",
                        "description": "Chord data for chartType 'chord' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "network": {
                        "type": "object",
                        "description": "Network data for chartType 'force_graph' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "geo": {
                        "type": "object",
                        "description": "Geo data for chartType 'choropleth', 'bubble_map', or 'flow_map' (explicit-only) — used… See full schema for details."
                      }
                    }
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "CSS token theme for chart pixels, default light. See full schema for details."
                  },
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "CSS brand scope, matching viz_render for the same normalized spec and data operand."
                  }
                },
                "required": [
                  "spec"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Certify Artifact",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "fidelity_preview",
              "title": "Preview Fidelity",
              "description": "Draw object relationships or compositions at four fidelity levels. Use it when reviewing static structure or appearance; use design_preview instead to run generated React/Vue behavior. Returns SVG or HTML with fidelity-specific structure and provenance. fidelityKind selects boxes-arrows, wireframe, review or branded-mockup. Supply exactly one object, objects set, schema/schemaRef, fixture or legacy manifest; object/context composes a screen. Object diagrams show declared relationships; schema diagrams show containment. Wireframe/review show component bindings and recorded confidence, and branded mockups use static sample data. options.brandOverlay/theme selects built tokens. These drawings do not certify usability or referential integrity. Full schema: oods://schemas/fidelity_preview.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "fidelityKind": {
                    "type": "string",
                    "enum": [
                      "boxes-arrows",
                      "wireframe",
                      "review",
                      "branded-mockup"
                    ],
                    "description": "Which HTML fidelity emitter to invoke."
                  },
                  "fixture": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Named allow-listed Object Catalog fixture shipped in registry data; unknown names return OODS-FP-001."
                  },
                  "manifest": {
                    "type": "object",
                    "required": [
                      "entities"
                    ],
                    "description": "Inline Object Catalog manifest to render — an alternative to `fixture`. See full schema for details.",
                    "properties": {
                      "entities": {
                        "type": "array",
                        "description": "Object Catalog entities to render.",
                        "items": {
                          "type": "object",
                          "description": "One Object Catalog entity."
                        }
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "variant": {
                        "type": "string",
                        "description": "Projection-variant selector passed through to the emitter / runPreEmit())."
                      },
                      "brandOverlay": {
                        "type": "string",
                        "description": "Built brand for object relationship diagrams, composed wireframes, reviews, component… See full schema for details."
                      },
                      "reviewThreshold": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Recorded confidence below this threshold is flagged in review. See full schema for details."
                      },
                      "includeStyles": {
                        "type": "boolean",
                        "default": true,
                        "description": "Omit HTML style blocks when false. Diagram SVG retains its explicit paint attributes."
                      },
                      "depth": {
                        "type": "integer",
                        "default": 1,
                        "minimum": 0,
                        "maximum": 3,
                        "description": "Outgoing relationship depth for a single object. An explicit objects set is never expanded."
                      },
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "default": "light",
                        "description": "Built token scope for object relationship diagrams and composed branded mockups."
                      }
                    }
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Registered object. boxes-arrows draws its declared relationships; other views compose it in context."
                  },
                  "objects": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 32,
                    "description": "Explicit object set; draw only declared edges within this set. boxes-arrows only.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "objects item."
                    }
                  },
                  "schema": {
                    "type": "object",
                    "description": "Inline composed screen tree; validated as UiSchema."
                  },
                  "schemaRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Cached UiSchema from design_compose or schema load; missing/expired refs return a typed error."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "list",
                      "detail",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow",
                      "dashboard"
                    ],
                    "default": "detail",
                    "description": "Context to compose for a single object in wireframe, review or branded-mockup."
                  }
                },
                "required": [
                  "fidelityKind"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Preview Fidelity",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "component_map",
              "title": "Write Component Mappings",
              "description": "Write component substitutions or stage an intake draft. Use it when connecting React/Vue exports, shadcn source or built Storybook files; use component_map_read to list, resolve or review drafts. Returns staged evidence or write outcomes. apply with draftId requires accepted ids and writes adapters and mappings atomically. create takes one entry, mappings or mappingsPath; create and report-based apply preview unless apply:true. update and delete always write. Full schema: oods://schemas/component_map.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "apply",
                      "create",
                      "update",
                      "delete",
                      "draft"
                    ],
                    "description": "Choose apply, create, update, delete, draft."
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "For apply: When true, persist registry mutations. Defaults to dry-run. For create: When true, write changes to disk. Actions: apply, create."
                  },
                  "minConfidence": {
                    "type": "number",
                    "default": 0.75,
                    "minimum": 0,
                    "maximum": 1,
                    "description": "Minimum confidence to apply; lower candidates are queued. Actions: apply."
                  },
                  "reportPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Filesystem path to a reconciliation_report.json artifact. Actions: apply."
                  },
                  "report": {
                    "type": "object",
                    "description": "Reconciliation report. Actions: apply."
                  },
                  "mappings": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Create entries, each without apply. All entries are checked before one atomic write. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "A single-create payload without action or apply; the handler checks every value against… See full schema for details."
                    }
                  },
                  "mappingsPath": {
                    "type": "string",
                    "pattern": "^/[\\s\\S]*$",
                    "description": "Absolute path to a JSON document { mappings: [...] }, using the same entry shape. Actions: create."
                  },
                  "substitution": {
                    "type": "object",
                    "required": [
                      "component"
                    ],
                    "additionalProperties": false,
                    "description": "Component substitution with React/Vue exports and prop translations. Actions: create.",
                    "properties": {
                      "component": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The shipped OODS Foundry component id being replaced."
                      },
                      "react": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "react. Fields: localPath, package, export, version, passthrough, props, shadcn. See full schema."
                      },
                      "vue": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "vue. Fields: localPath, package, export, version, passthrough, props, shadcn. See full schema."
                      }
                    }
                  },
                  "externalSystem": {
                    "type": "string",
                    "minLength": 1,
                    "description": "External design system name (for example, 'team'). Actions: create, draft."
                  },
                  "externalComponent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "External component name. Actions: create."
                  },
                  "oodsTraits": {
                    "type": "array",
                    "minItems": 0,
                    "description": "OODS trait names this component maps to. Actions: create.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "oods Traits item."
                    }
                  },
                  "propMappings": {
                    "type": "array",
                    "description": "Property translations from external to OODS prop names. Actions: create.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "prop Mappings item. Fields: externalProp, oodsProp, coercion. See full schema."
                    }
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "manual"
                    ],
                    "default": "manual",
                    "description": "'auto' for machine-generated, 'manual' for human-curated. Actions: create."
                  },
                  "metadata": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Mapping metadata. Actions: create.",
                    "properties": {
                      "author": {
                        "type": "string",
                        "description": "author."
                      },
                      "notes": {
                        "type": "string",
                        "description": "notes."
                      }
                    }
                  },
                  "disambiguation_decisions": {
                    "type": "array",
                    "description": "Review decisions to append; does not gate creation. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Review decision record."
                    }
                  },
                  "preferred_terms": {
                    "type": "array",
                    "description": "Canonical terms to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Canonical term record."
                    }
                  },
                  "capabilities": {
                    "type": "array",
                    "description": "Capability definitions to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Capability record."
                    }
                  },
                  "projection_variants": {
                    "type": "array",
                    "description": "Cross-surface mapping variants to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Cross-surface variant record."
                    }
                  },
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Mapping ID. Actions: update (required), delete (required)."
                  },
                  "updates": {
                    "type": "object",
                    "description": "Fields to change: oodsTraits, confidence, propMappings, metadata, substitution. Omitted fields stay unchanged. Actions: update (required)."
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "project",
                      "format"
                    ],
                    "additionalProperties": false,
                    "description": "Actions: draft (required).",
                    "properties": {
                      "project": {
                        "type": "string",
                        "pattern": "^/[\\s\\S]*$",
                        "description": "project."
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "shadcn",
                          "storybook"
                        ],
                        "description": "format."
                      },
                      "storybook": {
                        "type": "string",
                        "description": "storybook."
                      }
                    }
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^components-[a-f0-9]{64}$",
                    "description": "Actions: apply (required)."
                  },
                  "accept": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Actions: apply (required).",
                    "items": {
                      "type": "string",
                      "description": "accept item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Write Component Mappings",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "component_map_read",
              "title": "Read Component Mappings",
              "description": "Read component substitutions and staged intake evidence. Use it when listing mappings, resolving an external component or reviewing a draftId; use component_map to stage or apply changes. Returns entries, matches or draft evidence including proposed adapters and unmatched elements. Reads local stores without generating adapters or changing project files. Full schema: oods://schemas/component_map_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "resolve",
                      "show"
                    ],
                    "description": "Choose list, resolve, show."
                  },
                  "externalSystem": {
                    "type": "string",
                    "minLength": 1,
                    "description": "For list: Filter mappings to a specific external system (e.g., 'team'). For resolve: External design system name (e.g., 'team'). Actions: list, resolve (required)."
                  },
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Pagination cursor. Use the previous page's nextCursor to continue. When cursor or limit is provided, pagination defaults to 100 items per page. Actions: list."
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500,
                    "description": "Page size for pagination. Omitting both cursor and limit preserves the legacy full-list response. Actions: list."
                  },
                  "externalComponent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Component name in the external system (e.g., 'Button'). Actions: resolve (required)."
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^components-[a-f0-9]{64}$",
                    "description": "Actions: show (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Component Mappings",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_store",
              "title": "Save Or Delete Schemas",
              "description": "Save or delete a named composition schema. Use it when retaining a UiSchema across sessions; use schema_read to list or load saved schemas. Returns the saved metadata or deletion result. save takes schemaRef, overwrites that name and increments its version; only the latest is loadable. Both actions write immediately. Full schema: oods://schemas/schema_store.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "save",
                      "delete"
                    ],
                    "description": "Choose save, delete."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_-]+$",
                    "description": "Saved schema name in slug format (letters, numbers, hyphens, underscores). Actions: save (required), delete (required)."
                  },
                  "schemaRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Reference to an in-memory schema produced by design_compose. Actions: save (required)."
                  },
                  "tags": {
                    "type": "array",
                    "description": "Optional tags for filtering and discovery. Actions: save.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "tags item."
                    }
                  },
                  "author": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Optional author metadata. Actions: save."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Save Or Delete Schemas",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_read",
              "title": "Read Saved Schemas",
              "description": "Read saved composition schemas. Use it when listing saved work or loading a named schema; use schema_store to save or delete one. Returns metadata or the schema with a new process-local schemaRef, valid for 30 minutes. Tool input schemas are separate MCP resources. Full schema: oods://schemas/schema_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "load"
                    ],
                    "description": "Choose list, load."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_-]+$",
                    "description": "Saved schema name in slug format. Actions: load (required)."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object filter. Actions: list."
                  },
                  "context": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Rendering-context filter. Actions: list."
                  },
                  "tags": {
                    "type": "array",
                    "description": "Actions: list.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "tags item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Saved Schemas",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_registry",
              "title": "Read Object Registry",
              "description": "Read object and trait definitions or validate YAML without saving. Use it when exploring shapes or checking a definition; use object_register to save one or object_import to draft from a schema file. Returns definitions, composed traits, validation findings or cache reload status. includeInternal reveals hidden objects; reload clears only process caches. Full schema: oods://schemas/object_registry.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "show",
                      "validate",
                      "reload"
                    ],
                    "description": "Choose list, show, validate, reload."
                  },
                  "domain": {
                    "type": "string",
                    "description": "Filter to objects in a specific domain (e.g. 'core.identity', 'saas.billing'). Actions: list."
                  },
                  "maturity": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "alpha",
                      "beta",
                      "stable"
                    ],
                    "description": "Filter by metadata maturity level. Actions: list."
                  },
                  "trait": {
                    "type": "string",
                    "description": "Filter to objects composing a given trait (e.g. 'Priceable', 'lifecycle/Stateful'). Actions: list."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and hiddenInternal counts them. Actions: list."
                  },
                  "name": {
                    "type": "string",
                    "description": "Object name to look up (e.g. 'User', 'Product', 'Invoice'). Actions: show (required)."
                  },
                  "context": {
                    "type": "string",
                    "description": "Optional: filter view_extensions to a single context (e.g. 'detail', 'list', 'form', 'timeline', 'card', 'inline'). Actions: show."
                  },
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The whole definition as YAML: an object file starts with \"object:\", a trait file with \"trait:\" (the same format as OODS Foundry's own objects/ and traits/). Actions: validate (required). See full schema for details."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Object Registry",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_register",
              "title": "Register Object Or Trait",
              "description": "Register an object or trait from reviewed YAML. Use it when saving a definition; use object_registry to list, inspect or validate without writing. Returns the saved definition and registry result. overwrite replaces your own definition. Team objects may shadow shipped objects; traits cannot reuse shipped names. Relationships must name valid targets and fields. Full schema: oods://schemas/object_register.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "register"
                    ],
                    "description": "Choose register."
                  },
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The whole definition as YAML: an object file starts with \"object:\", a trait file with \"trait:\" (the same format as OODS Foundry's own objects/ and traits/). Actions: register (required). See full schema for details."
                  },
                  "overwrite": {
                    "type": "boolean",
                    "default": false,
                    "description": "Replace a definition of yours with this name; without it a name you already registered is refused (OODS-C004). Actions: register."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Register Object Or Trait",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_render",
              "title": "Render Or Validate Schema",
              "description": "Validate a UiSchema or render static HTML and fragments. Use it when checking schema or patch contracts; use design_preview for a running app or schema_store to save. Returns diagnostics or rendered output. action selects validate/render; mode selects full/patch. apply:true enables rendering, without saving a schema. Render includes token CSS unless output.compact; oversized output or output.payloadMode:file writes only reply payloads. brand and scope options affect documents; ignored fragment options are diagnosed. Full schema: oods://schemas/schema_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "render",
                      "validate"
                    ],
                    "description": "Selects the per-action handler. 'render' -> schema_render action=render, 'validate' -> schema_render action=validate."
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "full",
                      "patch"
                    ],
                    "default": "full",
                    "description": "Full schema or patch mode. Actions: render, validate."
                  },
                  "schema": {
                    "type": "object",
                    "description": "UiSchema. Actions: render, validate."
                  },
                  "schemaRef": {
                    "type": "string",
                    "description": "Reference to a cached UiSchema returned by design_compose. Actions: render, validate."
                  },
                  "patch": {
                    "type": [
                      "array",
                      "object"
                    ],
                    "description": "Required when mode='patch'. Accepts JSON Patch array or node patch object(s). Actions: render, validate.",
                    "items": {
                      "type": "object",
                      "description": "patch item."
                    }
                  },
                  "baseTree": {
                    "type": "object",
                    "description": "Required when mode='patch' to provide the base UiSchema to patch. Actions: render, validate."
                  },
                  "brand": {
                    "type": "string",
                    "description": "Brand to render. Actions: render. See full schema for details."
                  },
                  "options": {
                    "type": "object",
                    "default": {},
                    "additionalProperties": false,
                    "description": "Operation options. Actions: render, validate.",
                    "properties": {
                      "includeTree": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for render."
                      },
                      "includeNormalized": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for validate."
                      },
                      "checkComponents": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for validate."
                      },
                      "checkA11y": {
                        "type": "boolean",
                        "default": false,
                        "description": "Checks declared foreground/background pairs derived from shared component CSS against… See full schema for details."
                      }
                    }
                  },
                  "output": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional render output controls. Omitting this object preserves full-document behavior. Actions: render.",
                    "properties": {
                      "format": {
                        "type": "string",
                        "enum": [
                          "document",
                          "fragments"
                        ],
                        "default": "document",
                        "description": "format."
                      },
                      "strict": {
                        "type": "boolean",
                        "default": false,
                        "description": "strict."
                      },
                      "includeCss": {
                        "type": "boolean",
                        "default": true,
                        "description": "include Css."
                      },
                      "compact": {
                        "type": "boolean",
                        "default": false,
                        "description": "Opt in to omitting token CSS; the default includes token CSS."
                      },
                      "showConfidence": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, emit data-oods-confidence and data-confidence-level attributes on rendered… See full schema for details."
                      },
                      "confidenceThreshold": {
                        "type": "number",
                        "default": 0.5,
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Confidence threshold for low-confidence affordance. See full schema for details."
                      },
                      "tokenOverlay": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Inline token-delta object resolved to a scoped :root{} override; applied only in document… See full schema for details."
                      },
                      "skinOverlay": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Inline measured-colour delta resolved against the OODS Foundry-owned style library to a… See full schema for details."
                      },
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline, unless the output would exceed 100,000 characters, in which case it is… See full schema for details."
                      }
                    }
                  },
                  "apply": {
                    "type": "boolean",
                    "description": "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."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Render Or Validate Schema",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_import",
              "title": "Import Objects",
              "description": "Draft objects from local OpenAPI, JSON Schema, Postgres SQL, Prisma, dbt, OData or GraphQL files, then apply accepted proposals. Use it when importing a schema; use object_import_read to review a staged object. Returns importId, staged files, proposal counts and re-import differences, or batch registration results. draft takes source.path or source.content; apply requires explicit objects and proposal ids. overwrite replaces team objects; confirmShipped names approved shipped replacements. No network fetch or code execution. Full schema: oods://schemas/object_import.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "apply"
                    ],
                    "description": "Choose draft, apply."
                  },
                  "source": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Local file/folder or inline schema. Used only by draft.",
                    "properties": {
                      "path": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Local file or folder. References must stay inside the source folder. Aggregate limit 128 MiB."
                      },
                      "content": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Inline schema text, at most 1 MiB. Set format for SQL, Prisma, OData XML or GraphQL SDL."
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "description": "File name for inline provenance; no directories."
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "openapi",
                          "json-schema",
                          "sql",
                          "prisma",
                          "dbt",
                          "odata",
                          "graphql"
                        ],
                        "description": "Explicit source format; inferred from file extension or document when omitted."
                      }
                    }
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Content-addressed import id from draft. Required by show and apply."
                  },
                  "objects": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Explicit accepted object names and optional proposal ids for apply.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "objects item. Fields: name, proposals, currencies. See full schema."
                    }
                  },
                  "overwrite": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow replacing existing team objects."
                  },
                  "confirmShipped": {
                    "type": "array",
                    "description": "Each shipped object name whose replacement is explicitly confirmed.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "confirm Shipped item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Import Objects",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "object_import_read",
              "title": "Read Import Draft",
              "description": "Read one staged object import. Use it when reviewing YAML, graded proposals and unmapped elements before acceptance; use object_import to draft or apply. Returns the named object, proposals and differences from its registered definition. Supply importId and the exact object name. Reading never rewrites the staged report. Full schema: oods://schemas/object_import_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "show"
                    ],
                    "description": "Choose show."
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Content-addressed import id from draft. Required by show and apply."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact draft object name for show."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Import Draft",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            }
          ]
        },
        "resources/list": {
          "resources": [
            {
              "uri": "ui://oods-forge/preview/a1ccf996c571/app.html",
              "name": "OODS Foundry design preview",
              "title": "OODS Foundry design preview",
              "description": "The running-app preview of a composition version, for a client that renders MCP Apps inside the conversation (revision a1ccf996c571, 2346476 bytes, self-contained).",
              "mimeType": "text/html;profile=mcp-app"
            },
            {
              "uri": "oods://schemas/tokens_build.input.json",
              "name": "tokens_build input schema",
              "title": "Build Tokens Schema",
              "description": "Full server validation schema for tokens_build; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/structured_data_fetch.input.json",
              "name": "structured_data_fetch input schema",
              "title": "Fetch Structured Data Schema",
              "description": "Full server validation schema for structured_data_fetch; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_apply.input.json",
              "name": "brand_apply input schema",
              "title": "Apply Brand Changes Schema",
              "description": "Full server validation schema for brand_apply; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_create.input.json",
              "name": "brand_create input schema",
              "title": "Create Brand Schema",
              "description": "Full server validation schema for brand_create; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_read.input.json",
              "name": "brand_read input schema",
              "title": "Read Brand Data Schema",
              "description": "Full server validation schema for brand_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/catalog_list.input.json",
              "name": "catalog_list input schema",
              "title": "List Components Schema",
              "description": "Full server validation schema for catalog_list; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/code_generate.input.json",
              "name": "code_generate input schema",
              "title": "Generate Code Schema",
              "description": "Full server validation schema for code_generate; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_compose.input.json",
              "name": "design_compose input schema",
              "title": "Compose Design Schema",
              "description": "Full server validation schema for design_compose; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_preview.input.json",
              "name": "design_preview input schema",
              "title": "Preview Running Design Schema",
              "description": "Full server validation schema for design_preview; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_versions.input.json",
              "name": "design_versions input schema",
              "title": "Read Design Versions Schema",
              "description": "Full server validation schema for design_versions; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/pipeline_run.input.json",
              "name": "pipeline_run input schema",
              "title": "Run Design Pipeline Schema",
              "description": "Full server validation schema for pipeline_run; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/health_check.input.json",
              "name": "health_check input schema",
              "title": "Check Health Schema",
              "description": "Full server validation schema for health_check; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/registry_snapshot.input.json",
              "name": "registry_snapshot input schema",
              "title": "Snapshot Registry Schema",
              "description": "Full server validation schema for registry_snapshot; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/viz_render.input.json",
              "name": "viz_render input schema",
              "title": "Render Chart Schema",
              "description": "Full server validation schema for viz_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/dashboard_render.input.json",
              "name": "dashboard_render input schema",
              "title": "Render Dashboard Schema",
              "description": "Full server validation schema for dashboard_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/artifact_certify.input.json",
              "name": "artifact_certify input schema",
              "title": "Certify Artifact Schema",
              "description": "Full server validation schema for artifact_certify; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/fidelity_preview.input.json",
              "name": "fidelity_preview input schema",
              "title": "Preview Fidelity Schema",
              "description": "Full server validation schema for fidelity_preview; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/component_map.input.json",
              "name": "component_map input schema",
              "title": "Write Component Mappings Schema",
              "description": "Full server validation schema for component_map; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/component_map_read.input.json",
              "name": "component_map_read input schema",
              "title": "Read Component Mappings Schema",
              "description": "Full server validation schema for component_map_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_store.input.json",
              "name": "schema_store input schema",
              "title": "Save Or Delete Schemas Schema",
              "description": "Full server validation schema for schema_store; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_read.input.json",
              "name": "schema_read input schema",
              "title": "Read Saved Schemas Schema",
              "description": "Full server validation schema for schema_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_registry.input.json",
              "name": "object_registry input schema",
              "title": "Read Object Registry Schema",
              "description": "Full server validation schema for object_registry; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_register.input.json",
              "name": "object_register input schema",
              "title": "Register Object Or Trait Schema",
              "description": "Full server validation schema for object_register; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_render.input.json",
              "name": "schema_render input schema",
              "title": "Render Or Validate Schema Schema",
              "description": "Full server validation schema for schema_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_import.input.json",
              "name": "object_import input schema",
              "title": "Import Objects Schema",
              "description": "Full server validation schema for object_import; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_import_read.input.json",
              "name": "object_import_read input schema",
              "title": "Read Import Draft Schema",
              "description": "Full server validation schema for object_import_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            }
          ]
        },
        "resources/templates/list": {
          "resourceTemplates": [
            {
              "uriTemplate": "oods://schemas/{file}",
              "name": "tool schemas",
              "title": "Tool Schemas",
              "description": "Full server validation schemas, one JSON Schema file per tool and the files they reference.",
              "mimeType": "application/schema+json"
            },
            {
              "uriTemplate": "ui://oods-forge/compositions/{compositionId}/{version}/{framework}.js{?brand,theme}",
              "name": "composition module",
              "title": "Composition Module",
              "description": "The compiled module of one composition version, framework react or vue.",
              "mimeType": "text/javascript"
            },
            {
              "uriTemplate": "ui://oods-forge/compositions/{compositionId}/{version}/{framework}.css{?brand,theme}",
              "name": "composition styles",
              "title": "Composition Styles",
              "description": "The stylesheet of one composition version, framework react or vue.",
              "mimeType": "text/css"
            }
          ]
        }
      },
      "errors": {
        "prompts/list": {
          "code": -32601,
          "message": "Method not found"
        },
        "prompts/get": {
          "code": -32601,
          "message": "Method not found"
        },
        "completion/complete": {
          "code": -32601,
          "message": "Method not found"
        },
        "logging/setLevel": {
          "code": -32601,
          "message": "Method not found"
        },
        "resources/subscribe": {
          "code": -32601,
          "message": "Method not found"
        },
        "resources/unsubscribe": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/get": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/result": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/list": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/cancel": {
          "code": -32601,
          "message": "Method not found"
        }
      }
    },
    "all": {
      "results": {
        "ping": {},
        "tools/list": {
          "tools": [
            {
              "name": "tokens_build",
              "title": "Build Tokens",
              "description": "Compile registered brand tokens with the shipped compiler. Use it when you need fresh CSS and JSON; use brand_create to create a brand or brand_apply to change its source. Returns inline CSS variables, CSS and JSON plus artifact paths, hashes and sizes. apply:true builds in isolated artifact storage; omission previews the artifacts without writing. Requested brand/theme selects the inline scope; full CSS includes every registered scope. Source and shipped runtime files stay unchanged. Full schema: oods://schemas/tokens_build.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "Selects values compiled from current source, returned inline as CSS variables, CSS and JSON and written on apply. Full CSS includes all registered scopes; TypeScript and Tailwind artifacts retain A/light defaults."
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "dark",
                    "description": "Token theme."
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "Write on true; otherwise preview."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Build Tokens",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "structured_data_fetch",
              "title": "Fetch Structured Data",
              "description": "Fetch live registry datasets, archived token/export data, or captured-run artifacts. Use it when you need complete datasets; catalog_list selects components and object_registry reads definitions. Returns data with provenance, version and cache metadata. Full remains the default; detail:summary gives section counts and meta.next for inline pages; follow meta.next until absent. dataset selects registry/export mode; version pins an archived export and listVersions lists dates. kind plus runPath selects captured artifacts, while derived_analysis reads an analysis directory via runPath; version/listVersions are refused in kind mode. includeInternal exposes hidden objects, and ifNoneMatch checks the canonical payload ETag. Full schema: oods://schemas/structured_data_fetch.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "dataset": {
                    "type": "string",
                    "enum": [
                      "components",
                      "tokens",
                      "manifest"
                    ],
                    "description": "Local structured dataset to return (components/tokens/manifest). Mutually exclusive with kind+runPath."
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "identity_graph",
                      "capability_rollup",
                      "object_rollup",
                      "drift_report",
                      "derived_analysis",
                      "a11y_report",
                      "report_index",
                      "a11y_evidence",
                      "run_manifest"
                    ],
                    "description": "Stage1 artifact kind, with runPath; excludes dataset. See full schema for details."
                  },
                  "runPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Filesystem path to a Stage1 run directory or its artifacts/ subdirectory. Required when kind is set."
                  },
                  "ifNoneMatch": {
                    "type": "string",
                    "minLength": 8,
                    "description": "Return matched=true without payload when the ETag matches."
                  },
                  "includePayload": {
                    "type": "boolean",
                    "default": true,
                    "description": "When false, omit payload even if no ETag match occurs."
                  },
                  "version": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                    "description": "Request a specific date-stamped version (e.g., '2026-02-24'). Omit for latest. Applies to dataset mode only."
                  },
                  "listVersions": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, return available version dates instead of payload."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Live components dataset only: also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them; a dated export is served unchanged."
                  },
                  "payloadMode": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "file"
                    ],
                    "description": "Unset: inline, unless the payload exceeds 100,000 characters; then it is written to a file and warning OODS-W004 says so. inline always returns it; file always writes it and returns payloadFile."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "full"
                    ],
                    "description": "Dataset only. summary returns section counts and the call for page 1; full (default) preserves the dataset."
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Dataset only: read a 1-based page of lossless JSON Pointer entries, each reply below 100,000 characters. Omit for full data."
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100,
                    "description": "Dataset entries per page, default 10, also bounded by serialized size. Reply meta gives next and full calls."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Fetch Structured Data",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_apply",
              "title": "Apply Brand Changes",
              "description": "Preview or apply changes to an existing brand's canonical token source. Use it when editing a brand; use brand_create to create one. Returns validation, changed slots, before/after hashes and build evidence. delta is required and supports aliases or add/remove/replace patches. apply defaults to a dry run that writes nothing. apply:true validates first, then writes source and rebuilds; build failure leaves source edits in place. For shipped brands in the portable runtime, apply emits a review kit and reports source/build steps as skipped. User brands rebuild in their own folder. Full schema: oods://schemas/brand_apply.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "Target brand identifier. Must name a brand directory under packages/tokens/src/tokens/brands."
                  },
                  "delta": {
                    "type": [
                      "object",
                      "array"
                    ],
                    "description": "Alias changes (object) or an array using the supported add/remove/replace subset of RFC 6902 when strategy=patch.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "delta item. Fields: op, path, value. See full schema."
                    }
                  },
                  "strategy": {
                    "type": "string",
                    "enum": [
                      "alias",
                      "patch"
                    ],
                    "default": "alias",
                    "description": "Alias strategy rewrites token values; patch applies the supported add/remove/replace subset of RFC 6902."
                  },
                  "preview": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Preview response controls (apply=false).",
                    "properties": {
                      "verbosity": {
                        "type": "string",
                        "enum": [
                          "full",
                          "compact"
                        ],
                        "default": "full",
                        "description": "full includes structured before/after payloads; compact returns summary + hunks only."
                      }
                    }
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "Write on true; otherwise preview."
                  }
                },
                "required": [
                  "delta"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Apply Brand Changes",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_create",
              "title": "Create Brand",
              "description": "Create a brand or stage a local token intake draft. Use it when adding a brand; use brand_read for templates, validation, derivation and draft review, or brand_apply to edit a brand. Returns a staged draft or created brand with build results. apply needs draftId and accept:true. create accepts filled documents or a recipe, validates all themes, refuses replacement and removes a brand whose build fails. Full schema: oods://schemas/brand_create.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "create",
                      "draft",
                      "apply"
                    ],
                    "description": "Choose create, draft, apply."
                  },
                  "brand_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The id the brand will have. Actions: create (required), draft (required). See full schema for details."
                  },
                  "documents": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The filled template: one plain design-token document per theme, brand-relative (surface.canvas, not color.brand.<id>.surface.canvas), each slot {\"$type\": \"color\", \"$value\": \"<CSS colour>\"}. Actions: create.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "description": "The light theme."
                      },
                      "dark": {
                        "type": "object",
                        "description": "The dark theme."
                      },
                      "hc": {
                        "type": "object",
                        "description": "The high-contrast theme."
                      }
                    }
                  },
                  "recipe": {
                    "type": "object",
                    "description": "A brand recipe in place of documents: the brand it gives is checked, and for create written, like filled documents. Actions: create."
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false,
                    "description": "Actions: draft (required).",
                    "properties": {
                      "path": {
                        "type": "string",
                        "pattern": "^/[\\s\\S]*$",
                        "description": "path."
                      },
                      "modes": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "modes. Fields: base, dark. See full schema."
                      }
                    }
                  },
                  "bindings": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Actions: draft.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "base entry."
                        },
                        "description": "base."
                      },
                      "dark": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "dark entry."
                        },
                        "description": "dark."
                      }
                    }
                  },
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Actions: draft.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "brand."
                      },
                      "preset": {
                        "type": "string",
                        "description": "preset."
                      }
                    }
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^brand-[a-f0-9]{64}$",
                    "description": "Actions: apply (required)."
                  },
                  "accept": {
                    "type": "boolean",
                    "const": true,
                    "description": "Actions: apply (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Create Brand",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_read",
              "title": "Read Brand Data",
              "description": "Read brand templates, validate documents, derive recipes or inspect staged drafts. Use it when preparing a brand without saving; use brand_create to stage or create it. Returns complete template slots, validation findings, a recipe with provenance and gaps, or draft evidence. derive takes exactly one of tokens, css or absolute cssPath. Template replies use compact JSON so all themes fit inline. Full schema: oods://schemas/brand_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "template",
                      "validate",
                      "derive",
                      "show"
                    ],
                    "description": "Choose template, validate, derive, show."
                  },
                  "tokens": {
                    "type": "object",
                    "description": "A DTCG document with your own token names. Group $type is inherited; {group.token} aliases resolve inside the document. Actions: derive."
                  },
                  "css": {
                    "type": "string",
                    "description": "A shadcn theme CSS entry, in place of tokens. Actions: derive. See full schema for details."
                  },
                  "cssPath": {
                    "type": "string",
                    "pattern": "^/[\\s\\S]*$",
                    "description": "Absolute path to the shadcn theme CSS entry, in place of tokens or css. Read only. Actions: derive."
                  },
                  "hints": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Exact dot-separated token paths, or CSS custom property names, that override inference. Invalid hints produce gaps, never silent fallback. Actions: derive.",
                    "properties": {
                      "accent": {
                        "type": "string",
                        "minLength": 1,
                        "description": "accent."
                      },
                      "neutral": {
                        "type": "string",
                        "minLength": 1,
                        "description": "neutral."
                      },
                      "radius": {
                        "type": "string",
                        "minLength": 1,
                        "description": "radius."
                      },
                      "font": {
                        "type": "string",
                        "minLength": 1,
                        "description": "font."
                      },
                      "fontMono": {
                        "type": "string",
                        "minLength": 1,
                        "description": "font Mono."
                      }
                    }
                  },
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Where the starting values come from: an existing brand (default A), optionally with one of the shipped presets over it; or a recipe, which gives the complete brand, graded. Actions: template.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "An existing brand whose values the template starts from. Default: A."
                      },
                      "preset": {
                        "type": "string",
                        "minLength": 1,
                        "description": "A shipped preset id whose values go over the brand's; every template response lists the… See full schema for details."
                      },
                      "recipe": {
                        "type": "object",
                        "description": "A brand recipe: the neutral (a hue and a tint of 0 to 0.03), the accent hue, whether the… See full schema for details."
                      }
                    }
                  },
                  "brand_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The id the brand will have. Checked when given: capitals then digits (ACME, A1) or a letter then lower-case letters and digits (Acme, acme2), at most 32 characters, and no existing brand's id in any case. Actions: validate."
                  },
                  "documents": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The filled template: one plain design-token document per theme, brand-relative (surface.canvas, not color.brand.<id>.surface.canvas), each slot {\"$type\": \"color\", \"$value\": \"<CSS colour>\"}. Actions: validate.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "description": "The light theme."
                      },
                      "dark": {
                        "type": "object",
                        "description": "The dark theme."
                      },
                      "hc": {
                        "type": "object",
                        "description": "The high-contrast theme."
                      }
                    }
                  },
                  "recipe": {
                    "type": "object",
                    "description": "A brand recipe in place of documents: the brand it gives is checked, and for create written, like filled documents. Actions: validate."
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^brand-[a-f0-9]{64}$",
                    "description": "Actions: show (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Brand Data",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "catalog_list",
              "title": "List Components",
              "description": "List components from the live component-contract registry. Use it when selecting components; structured_data_fetch returns complete datasets. Returns component names, categories, readiness labels and availableCategories; detail controls added tags, contexts, regions, traits and evidence. includeInternal exposes hidden registry objects. Filtered calls without detail default to full pages of 10; nextPage continues. Explicit detail preserves unpaged output. Readiness evidence retains the build it measured and does not certify a new composition. Full schema: oods://schemas/catalog_list.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "Filter components by category (e.g., 'core', 'lifecycle', 'visual')"
                  },
                  "trait": {
                    "type": "string",
                    "description": "Filter components by trait (e.g., 'Editable', 'Searchable')"
                  },
                  "context": {
                    "type": "string",
                    "description": "Filter components by context (e.g., 'detail', 'list')"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "stable",
                      "beta",
                      "planned"
                    ],
                    "description": "Filter by legacy static-HTML status only: 'stable' = mapped HTML renderer; 'planned' = HTML fallback. Consult productReality.surfaces for React/Vue, generated-consumer and maturity evidence."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "brief",
                      "summary",
                      "full"
                    ],
                    "description": "Defaults to brief unfiltered, full with filters. Both defaults are paged (filtered: 10 entries). summary adds tags, contexts, regions and traits; full includes evidence. Explicit detail without paging preserves the unbounded legacy request."
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "1-based page index for pagination."
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Components per page. Filtered calls without detail default to 10; nextPage gives the next call."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects in registry.objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "List Components",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "code_generate",
              "title": "Generate Code",
              "description": "Generate React/Vue file sets or a standalone static HTML document from a validated UiSchema. Use it when a schema already exists; use design_compose instead to choose a layout or pipeline_run to compose, validate, render and generate together. Returns versioned artifacts, exact dependencies, required domain handlers and validationReceipt. Supply schema or schemaRef before its 30-minute expiry. profile selects draft/build/release; build performs static checks, while release verifies supplied evidence without rerunning it. options.output selects component/application; options.payloadMode:file returns file references, as does oversized output unless inline. Domain actions require consumer handlers. React and Vue shadcn mappings support components, screen apps and workflow apps. Full schema: oods://schemas/code_generate.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "schema": {
                    "type": "object",
                    "description": "A structurally valid UiSchema tree to generate code from. UiElement.state branches are checked against the canonical workflow-state vocabulary by the state-contract gate."
                  },
                  "schemaRef": {
                    "type": "string",
                    "description": "Reference to a cached UiSchema returned by design_compose."
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "html"
                    ],
                    "description": "Target framework. HTML uses the same record document renderer as repl render; build checks are static and do not execute a browser."
                  },
                  "profile": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "build",
                      "release"
                    ],
                    "description": "Validation profile. See full schema for details."
                  },
                  "releaseEvidence": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Evidence for release. See full schema for details.",
                    "properties": {
                      "rendered": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "interaction": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "accessibility": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "theme": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "determinism": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "performance": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "default": {},
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "description": "Application and embedded chart theme. See full schema for details."
                      },
                      "brand": {
                        "type": "string",
                        "description": "Token brand shared by the generated shell and embedded charts. See full schema for details."
                      },
                      "typescript": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true, emit TypeScript prop types (React) or typed defineProps (Vue). Ignored for HTML."
                      },
                      "styling": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "tokens",
                          "tailwind"
                        ],
                        "default": "tokens",
                        "description": "React/Vue styling strategy: inline style objects, design-token CSS variables, or Tailwind utility classes. See full schema for details."
                      },
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline, unless the artifact would exceed 100,000 characters, in which case it is… See full schema for details."
                      },
                      "output": {
                        "type": "string",
                        "enum": [
                          "component",
                          "application"
                        ],
                        "default": "component",
                        "description": "React/Vue: component output by default, or a runnable single-screen application. See full schema for details."
                      }
                    }
                  }
                },
                "required": [
                  "framework"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Generate Code",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_compose",
              "title": "Compose Design",
              "description": "Compose an object screen or workflow into a UiSchema. Use it when choosing layout and components; use pipeline_run instead for the complete generation flow or code_generate when you already have a schema. Returns schema, a 30-minute process-local schemaRef and durable compositionId/version lineage. Prefer explicit object and context over keyword-based intent. preferences controls region/field order and sample seed; compositionId appends a version, while options.transient records none. Save schemas with schema_store to reuse across sessions. Selected nodes snapshot component mappings; composition does not generate or run an app. Full schema: oods://schemas/design_compose.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "intent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A short intent sentence (e.g., 'dashboard with metrics and sidebar', 'user registration form'), matched against fixed keyword and phrase tables, not understood; a sentence with no layout keyword becomes a low-confidence… See full schema for details."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., 'Subscription', 'User'). When provided, composition uses trait-driven component placement via view_extensions."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition. See full schema for details."
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "dashboard",
                      "form",
                      "detail",
                      "list",
                      "card",
                      "timeline",
                      "landing",
                      "auto"
                    ],
                    "default": "auto",
                    "description": "Layout template to use. 'landing' is a content/marketing page (hero + sections + CTA), not bound to a data object. 'auto' infers the best template from intent keywords."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "Brand scope for data-bound charts; defaults to A."
                      },
                      "theme": {
                        "type": "string",
                        "description": "Theme token (e.g., 'light', 'dark')."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name → component-name overrides (e.g., { 'items': 'Table' })."
                      },
                      "regionOrder": {
                        "type": "array",
                        "minItems": 1,
                        "description": "The screen's regions (its direct children) by id in the desired order; regions not listed… See full schema for details.",
                        "items": {
                          "type": "string",
                          "description": "region Order item."
                        }
                      },
                      "fieldOrder": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "array",
                          "minItems": 1,
                          "description": "field Order entry.",
                          "items": {
                            "type": "string",
                            "description": "field Order entry item."
                          }
                        },
                        "description": "Region id → field names in the desired order among sibling field nodes of that region (a… See full schema for details."
                      },
                      "seed": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "Sample-data seed. See full schema for details."
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "validate": {
                        "type": "boolean",
                        "default": true,
                        "description": "Auto-validate the generated schema via the `repl` tool's `validate` action."
                      },
                      "topN": {
                        "type": "integer",
                        "default": 3,
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of component candidates to return per slot."
                      },
                      "transient": {
                        "type": "boolean",
                        "default": false,
                        "description": "Do not record a composition version; the result then carries no compositionId. For scratch compositions only."
                      },
                      "operation": {
                        "type": "string",
                        "enum": [
                          "recompose",
                          "reorder-region",
                          "swap-slot",
                          "reorder-fields",
                          "seed"
                        ],
                        "description": "With compositionId: the lineage operation recorded on the new version; default recompose. See full schema for details."
                      }
                    }
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "Record this composition as the next version of an existing composition (operation \"recompose\") instead of creating a new one."
                  },
                  "parentVersion": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "With compositionId: the version the new one derives from; default the latest."
                  },
                  "presentation": {
                    "type": "string",
                    "enum": [
                      "stage1-inspection"
                    ],
                    "description": "Named Stage1 inspection presentation: omit the accessibility score and prominently show measurement limits. Source records remain unchanged."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Compose Design",
                "readOnlyHint": false,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_preview",
              "title": "Preview Running Design",
              "description": "Render, compare, edit or accept a running React/Vue composition. Use it when reviewing generated behavior; use design_versions to inspect lineage without starting a host, or fidelity_preview for static drawings. Returns preview URLs, editable fields and measured or unmeasured evidence. Supply compositionId/version or object/context. Edits create versions; compare generates missing artifacts. accept records the generated version and a snapshot of its measurements as accepted, preserving prior acceptances. Full schema: oods://schemas/design_preview.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "render",
                      "compare",
                      "edit",
                      "accept"
                    ],
                    "default": "render",
                    "description": "Choose render, compare, edit, accept."
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "An existing composition from design_compose; with no version, its latest version opens."
                  },
                  "version": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "The version of compositionId to open."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., 'Subscription', 'User'); with context, composes a new composition (version 1) and opens it."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition. See full schema for details."
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "both"
                    ],
                    "default": "both",
                    "description": "Which generated app to compile and serve; both frameworks by default, each at its own URL."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "default": "light",
                        "description": "Theme the page mounts with (data-theme and the matching token CSS scope)."
                      },
                      "brand": {
                        "type": "string",
                        "default": "A",
                        "description": "Brand the page mounts with (data-brand and the matching token CSS scope)."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name → component-name overrides (e.g., { 'items': 'Table' })."
                      }
                    }
                  },
                  "against": {
                    "type": "object",
                    "required": [
                      "version"
                    ],
                    "additionalProperties": false,
                    "description": "action compare: the version on the right; the left is compositionId@version.",
                    "properties": {
                      "compositionId": {
                        "type": "string",
                        "pattern": "^cmp-[a-f0-9]{12}$",
                        "description": "The other composition; default the same composition."
                      },
                      "version": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "version."
                      }
                    }
                  },
                  "edit": {
                    "type": "object",
                    "description": "Edit one parent version: operation is reorder-region (regionOrder), swap-slot (slot, component), reorder-fields (fields), or seed (seed). Returns a new version."
                  },
                  "contextItems": {
                    "type": "array",
                    "maxItems": 200,
                    "description": "Decisions and evidence about this object that you already fetched, shown beside the running preview and stored on the version. See full schema for details.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "context Items item. Fields: source, id, title, body, excerpt, url, timestamp, query, fetchedAt, object, urn. See full schema."
                    }
                  },
                  "contextSearched": {
                    "type": "array",
                    "maxItems": 50,
                    "description": "What you searched that returned nothing, so an empty panel is a statement rather than a silence: the reader can tell 'nothing was found' from 'nobody asked'.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "context Searched item. Fields: source, query, fetchedAt, found. See full schema."
                    }
                  },
                  "runPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Stage1 run directory on this machine (out/stage1/<suite>/<run-uuid>) whose real records this version shows: the run itself for Run, its findings for Finding, its attested artifacts for CapturedArtifact. See full schema for details."
                  },
                  "observationRunPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Stage1 run directory on this machine (out/stage1/<suite>/<run-uuid>). See full schema for details."
                  },
                  "presentation": {
                    "type": "string",
                    "enum": [
                      "stage1-inspection"
                    ],
                    "description": "Named Stage1 inspection presentation: omit the accessibility score and prominently show measurement limits. Source records remain unchanged."
                  },
                  "recordId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact record ID for a fresh runPath or analysisPath detail/card/inline view. Unknown IDs refuse before composition; existing versions retain their selected record."
                  },
                  "analysisPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Portable Stage1 derived-analysis directory. Composes Comparison or ComparisonSignal from attested retained bytes, separate from runPath. Only read-only contexts; recordId selects an exact signal."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Preview Running Design",
                "readOnlyHint": false,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_versions",
              "title": "Read Design Versions",
              "description": "Read a composition's versions and accepted version. Use it when inspecting saved lineage; use design_preview to render, edit, compare or accept. Returns version metadata, latest and acceptance summary. Supply compositionId. Starts no preview host and returns no running URL. Full schema: oods://schemas/design_versions.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "versions"
                    ],
                    "description": "Choose versions."
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "An existing composition from design_compose; with no version, its latest version opens."
                  }
                },
                "required": [
                  "compositionId"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Read Design Versions",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "pipeline_run",
              "title": "Run Design Pipeline",
              "description": "Run composition, validation, rendering and code generation in one call. Use it when starting from an object/context or intent and needing generated output; use design_compose instead to inspect layout first or code_generate for an existing schema. Returns step results, schemaRef with expiry, versioned artifacts, dependencies and validationReceipt. options controls validation/render skipping and optional static accessibility checks; save persists the schema beyond its process-local 30-minute reference. Generation validation forwards draft/build/release without downgrade. Release verifies supplied evidence without rerunning it; unresolved accessibility pairs stay unmeasured. Oversized output goes to files unless options.payloadMode is inline. Calls may write composition and saved-schema records. Full schema: oods://schemas/pipeline_run.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., Subscription, User)."
                  },
                  "intent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A short intent sentence, matched against fixed keyword and phrase tables (a sentence that matches no layout keyword becomes a low-confidence dashboard). Prefer object and context."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition."
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "dashboard",
                      "form",
                      "detail",
                      "list",
                      "card",
                      "timeline",
                      "landing",
                      "auto"
                    ],
                    "description": "Layout template. 'landing' is a content page (hero, sections, call to action) bound to no object; 'auto' picks one from the intent."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "description": "Theme token (e.g., 'light', 'dark')."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "minLength": 1,
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name to component-name overrides (e.g., { 'items': 'Table' })."
                      }
                    }
                  },
                  "actionMappings": {
                    "type": "array",
                    "description": "action mappings: flat, verb-keyed entries.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "action Mappings item. Fields: verb, oodsTrait, trait, object, component, slot, confidence. See full schema."
                    }
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "html"
                    ],
                    "description": "Target framework for code generation."
                  },
                  "styling": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "tokens",
                      "tailwind"
                    ],
                    "description": "Styling strategy for code generation."
                  },
                  "profile": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "build",
                      "release"
                    ],
                    "description": "Validation profile passed to code_generate. build, the default, blocks on static checks; static checks do not install or run the generated app."
                  },
                  "releaseEvidence": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Hash-bound release evidence forwarded unchanged to code_generate.",
                    "properties": {
                      "rendered": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "interaction": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "accessibility": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "theme": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "determinism": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "performance": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      }
                    }
                  },
                  "save": {
                    "type": [
                      "string",
                      "object"
                    ],
                    "description": "Optional schema save config. String for name-only, or { name, tags } for full control. Variant fields: name, tags. Read the full schema for each variant."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline up to 100,000 characters, else file. See full schema for details."
                      },
                      "skipValidation": {
                        "type": "boolean",
                        "description": "Skip the validate step (default false)."
                      },
                      "skipRender": {
                        "type": "boolean",
                        "description": "Skip the render step (default false)."
                      },
                      "checkA11y": {
                        "type": "boolean",
                        "description": "Checks declared foreground/background pairs derived from shared component CSS against… See full schema for details."
                      },
                      "renderApply": {
                        "type": "boolean",
                        "description": "Render with apply=true to include HTML output (default true)."
                      },
                      "compact": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true (default), omit token CSS from render output and return tokenCssRef instead. See full schema for details."
                      },
                      "typescript": {
                        "type": "boolean",
                        "description": "Alias: enable TypeScript output in code generation."
                      },
                      "styling": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "tokens",
                          "tailwind"
                        ],
                        "description": "Alias: styling strategy. Overridden by top-level styling if both provided."
                      },
                      "framework": {
                        "type": "string",
                        "enum": [
                          "react",
                          "vue",
                          "html"
                        ],
                        "description": "Alias: target framework. Overridden by top-level framework if both provided."
                      }
                    }
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Run Design Pipeline",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "health_check",
              "title": "Check Health",
              "description": "Read server readiness, live registry/store counts and retained proof summaries. Use it when checking availability and built brand/theme scopes; use object_registry for definitions or registry_snapshot for mappings. Returns status, server uptime, registry counts, token scopes and productReality evidence. status:ok means sources were readable; retained proofs identify their measured build and do not automatically certify this one. includeChangelog and sinceVersion filter the reported DSL changelog. tokens.defaultScope is configured metadata rather than an observed consumer scope; missing scope data is unavailable. Full schema: oods://schemas/health_check.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "includeChangelog": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, include DSL version changelog in the response."
                  },
                  "sinceVersion": {
                    "type": "string",
                    "description": "When provided with includeChangelog, only return changelog entries since this version."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Check Health",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "registry_snapshot",
              "title": "Snapshot Registry",
              "description": "Read mappings together with active traits and objects in one snapshot. Use it when reading combined registry data; object_registry reads one definition and object_register saves one. Returns mappings, traits, objects, generatedAt, ETag and registry loader issues. Defaults to a summary; detail full adds schemas. includeInternal exposes hidden objects; otherwise hiddenInternal counts omitted entries. Team definitions and shadowing are reported from live sources. This read-only call writes no snapshot file. Historical mapping fields remain stored data and do not imply current capabilities. Full schema: oods://schemas/registry_snapshot.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "full"
                    ],
                    "default": "summary",
                    "description": "summary (default), or full definitions, best with names."
                  },
                  "names": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Exact trait and object names; misses go in notFound.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "names item."
                    }
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Snapshot Registry",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "viz_render",
              "title": "Render Chart",
              "description": "Render one data-bound chart from rows or a structured data operand. Use it when creating chart output; use artifact_certify instead to grade a normalized chart or dashboard_render for multiple panels and KPIs. Returns Vega-Lite or ECharts specs, chart identities and requested SVG/accessibility output. pattern uses bundled data and forbids explicit data/encoding/presentation overrides. Otherwise use chartType plus encodings, omit chartType for recommendations, or supply structured intent. ECharts-primary families require their matching hierarchy/network/geo operand. brand/theme controls pixels; output.includeNormalizedSpec returns the IR required by artifact_certify. Temporal rendering uses UTC. For native ECharts after JSON transport, restore currency and precision with @oods/foundry/echarts.js. Charts take inline data only; URLs, images and links in the input are refused. Full schema: oods://schemas/viz_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "Chart token theme. HC preserves system colors and needs a forced-colors browser to resolve them."
                  },
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "CSS token brand for chart pixels. Omission resolves light/A."
                  },
                  "opacity": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1,
                    "description": "Constant mark opacity for Cartesian charts only; omission keeps renderer defaults."
                  },
                  "rows": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 5000,
                    "description": "Inline flat data rows. Use either rows or datasetRef.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "rows item."
                    }
                  },
                  "datasetRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Previously cached dataset id; alternative to rows."
                  },
                  "hierarchy": {
                    "type": "object",
                    "description": "Treemap/sunburst: {type:\"nested\",data:{name,value,children}} or {type:\"adjacency_list\",data:[{id,parentId,value}]}. See full schema."
                  },
                  "sankey": {
                    "type": "object",
                    "description": "Sankey input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names. Use chartType:\"sankey\"."
                  },
                  "chord": {
                    "type": "object",
                    "description": "Chord input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names; each directed pair must be unique."
                  },
                  "network": {
                    "type": "object",
                    "description": "Force graph input: {nodes:[{id,group}],links:[{source,target,value}]}; max 250 nodes. Use chartType:\"force_graph\". Full contract: oods://schemas/viz_render.input.json."
                  },
                  "geo": {
                    "type": "object",
                    "description": "Inline geojson or topojson plus topoObjectName, rows, join, valueField; optional point/flow coordinate fields. No network fetch. Re-register echartsSpec.__registration before rendering. Read full schema."
                  },
                  "chartType": {
                    "type": "string",
                    "enum": [
                      "bar",
                      "line",
                      "area",
                      "scatter",
                      "heatmap",
                      "treemap",
                      "sunburst",
                      "sankey",
                      "force_graph",
                      "choropleth",
                      "bubble_map",
                      "flow_map",
                      "chord"
                    ],
                    "description": "Chart family for explicit mode. Cartesian charts need rows/datasetRef and encodings; other families need their named data input. Omit to suggest from rows."
                  },
                  "encodings": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Cartesian bindings: each needs field; optional type, aggregate, title, format (d3-format), currency (ISO 4217).",
                    "properties": {
                      "x": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "y": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "color": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "size": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "shape": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "detail": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      }
                    }
                  },
                  "id": {
                    "type": "string",
                    "description": "Optional stable identifier for the produced spec."
                  },
                  "name": {
                    "type": "string",
                    "description": "Optional human-friendly chart title."
                  },
                  "description": {
                    "type": "string",
                    "description": "Optional override for the synthesized accessibility description. When omitted, a non-empty description is generated from the encodings."
                  },
                  "strictFields": {
                    "type": "boolean",
                    "default": false,
                    "description": "Warn about unresolved fields and unmatched map joins (OODS-V131/V134). Default false preserves existing behavior."
                  },
                  "a11yEquivalence": {
                    "type": "boolean",
                    "default": true,
                    "description": "Check Vega-Lite accessible equivalents (default true). Errors stop rendering; warnings are returned. ECharts-primary scaffolds are not checked here."
                  },
                  "output": {
                    "type": "object",
                    "description": "Options: svg, width, height, compact, echarts, includeNormalizedSpec, includeA11y, includeVegaSpec, titlePlacement (chart or figure). SVG is opt-in; compact defaults true."
                  },
                  "intent": {
                    "type": "object",
                    "description": "Structured request: goal, measures:[{name}], dimensions:[{name}], optional chartFamily and measureRef. Uses rows or datasetRef; alternative to explicit chartType/encodings."
                  },
                  "pattern": {
                    "type": "string",
                    "enum": [
                      "pattern:viz:bubble-distribution",
                      "pattern:viz:correlation-matrix",
                      "pattern:viz:correlation-scatter",
                      "pattern:viz:detail-overview-bar",
                      "pattern:viz:diverging-bar",
                      "pattern:viz:drilldown-stacked-bar",
                      "pattern:viz:facet-small-multiples-line",
                      "pattern:viz:facet-target-band",
                      "pattern:viz:focus-context-line",
                      "pattern:viz:grouped-bar",
                      "pattern:viz:histogram",
                      "pattern:viz:layered-line-area",
                      "pattern:viz:multi-series-line",
                      "pattern:viz:running-total-area",
                      "pattern:viz:simple-bar",
                      "pattern:viz:sparkline-grid",
                      "pattern:viz:stacked-100-bar",
                      "pattern:viz:stacked-area-projection",
                      "pattern:viz:stacked-bar",
                      "pattern:viz:target-band-line",
                      "pattern:viz:time-grid-heatmap",
                      "pattern:viz:waterfall"
                    ],
                    "description": "Exact registered pattern identity; preserves source data and presentation. Cannot combine with chartType, data, intent or identity/presentation overrides."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Render Chart",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "dashboard_render",
              "title": "Render Dashboard",
              "description": "Render coordinated charts and KPIs from shared datasets and panel definitions. Use it when composing a dashboard; use viz_render instead for one chart or artifact_certify to grade each returned normalized chart. Returns layout, per-panel specs/hashes, computed KPI values, accessibility data and a reusable specRef. output.includeNormalizedSpec includes panel IR; output.html adds rendered HTML. brand/theme controls emitted pixels; selection and crossFilter apply caller-supplied filtering. resolveMeasures defaults true for governed measure references. output.contrastScan is a four-pair token preflight, not whole-document certification. Chord and flow_map are excluded from dashboards. Panels take inline data only. Full schema: oods://schemas/dashboard_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "CSS token theme for chart pixels, default light. See full schema for details."
                  },
                  "schemaVersion": {
                    "type": "string",
                    "const": "v0.1",
                    "description": "IR version discriminant (V01 convention). A future template/shape change bumps to v0.2."
                  },
                  "id": {
                    "type": "string",
                    "description": "Stable identifier for the dashboard instance."
                  },
                  "title": {
                    "type": "string",
                    "description": "Human-friendly dashboard title surfaced in UI + narration."
                  },
                  "datasets": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Shared, named tabular datasets. chart and KPI panels reference one by datasetId; panels that share a dataset can cross-filter each other.",
                    "items": {
                      "type": "object",
                      "description": "A named shared dataset. Panels reference it by id; cross-filter operates over its shared dimensional space."
                    }
                  },
                  "panels": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Heterogeneous panels: chart (11 of the 13 viz_render chartTypes; chord and flow_map are viz_render-only — plus its data branch) or kpi tiles.",
                    "items": {
                      "type": "object",
                      "description": "A dashboard panel: a chart panel (11 of the 13 viz_render chartTypes; chord and flow_map… See full schema for details."
                    }
                  },
                  "layout": {
                    "type": "object",
                    "description": "Optional layout hints consumed by the deterministic auto-layout resolver. Absent hints -> declared panel order + KPI-row-first defaults; the resolver emits abstract {x,y,w,h} (renderer-agnostic, the client sizes the canvas)."
                  },
                  "links": {
                    "type": "array",
                    "description": "Declared panel relationships, returned and shown as a labelled list in HTML. They apply no filters; cross-filtering uses selection and crossFilter.",
                    "items": {
                      "type": "object",
                      "description": "A declared source-to-target relationship displayed in the HTML reference list. See full schema for details."
                    }
                  },
                  "crossFilter": {
                    "type": "object",
                    "description": "Active selection combination. Each active source contributes a predicate; ignoreSelfSource controls whether its own panel is filtered. Declared links do not change this behavior."
                  },
                  "onPanelError": {
                    "type": "string",
                    "enum": [
                      "placeholder",
                      "omit"
                    ],
                    "default": "placeholder",
                    "description": "What a failed panel does: 'placeholder' (default) shows an accessible error panel in its place; 'omit' drops it from the layout."
                  },
                  "resolveMeasures": {
                    "type": "boolean",
                    "default": true,
                    "description": "Phase-3 governed-measure resolution switch. See full schema for details."
                  },
                  "strictFields": {
                    "type": "boolean",
                    "default": false,
                    "description": "Field-presence strict switch. See full schema for details."
                  },
                  "strictDatasets": {
                    "type": "boolean",
                    "default": false,
                    "description": "Unknown-datasetId strict switch. See full schema for details."
                  },
                  "a11yEquivalence": {
                    "type": "boolean",
                    "default": true,
                    "description": "A11y equivalence certify-at-emission switch. See full schema for details."
                  },
                  "a11y": {
                    "type": "object",
                    "description": "dashboard-level accessibility: a cross-panel summary + reading/focus order. The per-chart AccessibilitySpec stays per-panel; this is the dashboard envelope."
                  },
                  "tokenCssRef": {
                    "type": "string",
                    "description": "Token strategy. See full schema for details."
                  },
                  "brand": {
                    "type": "string",
                    "description": "CSS token brand for the dashboard document and chart pixels; defaults to A. The contrast scan grades the same scoped document tokens."
                  },
                  "selection": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "description": "One panel's active cross-filter selection (point/categorical only in v1)."
                    },
                    "description": "Optional accumulated cross-filter SelectionState, keyed by sourceWidgetId (one active selection per source). See full schema for details."
                  },
                  "output": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional render output controls (mirrors viz_render).",
                    "properties": {
                      "compact": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true, omit full token CSS and return a tokenCssRef instead."
                      },
                      "echarts": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, also include the ECharts option for tabular panels (ECharts-primary panels always include it)."
                      },
                      "includeNormalizedSpec": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, also return each successfully rendered chart panel's intermediate… See full schema for details."
                      },
                      "html": {
                        "type": "boolean",
                        "default": false,
                        "description": "Opt-in render-to-SVG export. See full schema for details."
                      },
                      "dataTable": {
                        "type": "boolean",
                        "default": false,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "contrastScan": {
                        "type": "boolean",
                        "default": false,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "dataQualityField": {
                        "type": "string",
                        "minLength": 1,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "includeA11y": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, attach a structured two-part text alternative (accessible data table +… See full schema for details."
                      }
                    }
                  }
                },
                "required": [
                  "schemaVersion",
                  "datasets",
                  "panels",
                  "a11y"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Render Dashboard",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "artifact_certify",
              "title": "Certify Artifact",
              "description": "Grade a normalized chart's accessibility equivalence, determinism, contrast and accuracy. Use it when checking the IR returned by viz_render or dashboard_render; use viz_render instead to create chart output and dashboard_render to compose panels. Returns coverage, conformant, findings and four pillar verdicts. Pass spec alone for Cartesian charts; ECharts-primary charts need the same matching data branch used for rendering. Spec-only ECharts remains uncertified. brand/theme must match rendering; high contrast reports forced-colors exemption without a numeric contrast grade. A certified chart may still be nonconformant; inspect all verdicts. This read-only check does not repair charts and never fetches a URL. Full schema: oods://schemas/artifact_certify.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "spec": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "An OODS Foundry normalized chart spec: the normalizedSpec that viz_render returns. The handler validates it against the full spec schema."
                  },
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional operand for the 8 ECharts-primary types (treemap/sunburst/sankey/force_graph/choropleth/bubble_map/flow_map/chord): the same data branch viz_render takes, so certify re-emits the option the render path would… See full schema for details.",
                    "properties": {
                      "hierarchy": {
                        "type": "object",
                        "description": "Hierarchy data for chartType 'treemap' or 'sunburst' (explicit-only) — used instead of… See full schema for details."
                      },
                      "sankey": {
                        "type": "object",
                        "description": "Flow data for chartType 'sankey' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "chord": {
                        "type": "object",
                        "description": "Chord data for chartType 'chord' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "network": {
                        "type": "object",
                        "description": "Network data for chartType 'force_graph' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "geo": {
                        "type": "object",
                        "description": "Geo data for chartType 'choropleth', 'bubble_map', or 'flow_map' (explicit-only) — used… See full schema for details."
                      }
                    }
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "CSS token theme for chart pixels, default light. See full schema for details."
                  },
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "CSS brand scope, matching viz_render for the same normalized spec and data operand."
                  }
                },
                "required": [
                  "spec"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Certify Artifact",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "fidelity_preview",
              "title": "Preview Fidelity",
              "description": "Draw object relationships or compositions at four fidelity levels. Use it when reviewing static structure or appearance; use design_preview instead to run generated React/Vue behavior. Returns SVG or HTML with fidelity-specific structure and provenance. fidelityKind selects boxes-arrows, wireframe, review or branded-mockup. Supply exactly one object, objects set, schema/schemaRef, fixture or legacy manifest; object/context composes a screen. Object diagrams show declared relationships; schema diagrams show containment. Wireframe/review show component bindings and recorded confidence, and branded mockups use static sample data. options.brandOverlay/theme selects built tokens. These drawings do not certify usability or referential integrity. Full schema: oods://schemas/fidelity_preview.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "fidelityKind": {
                    "type": "string",
                    "enum": [
                      "boxes-arrows",
                      "wireframe",
                      "review",
                      "branded-mockup"
                    ],
                    "description": "Which HTML fidelity emitter to invoke."
                  },
                  "fixture": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Named allow-listed Object Catalog fixture shipped in registry data; unknown names return OODS-FP-001."
                  },
                  "manifest": {
                    "type": "object",
                    "required": [
                      "entities"
                    ],
                    "description": "Inline Object Catalog manifest to render — an alternative to `fixture`. See full schema for details.",
                    "properties": {
                      "entities": {
                        "type": "array",
                        "description": "Object Catalog entities to render.",
                        "items": {
                          "type": "object",
                          "description": "One Object Catalog entity."
                        }
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "variant": {
                        "type": "string",
                        "description": "Projection-variant selector passed through to the emitter / runPreEmit())."
                      },
                      "brandOverlay": {
                        "type": "string",
                        "description": "Built brand for object relationship diagrams, composed wireframes, reviews, component… See full schema for details."
                      },
                      "reviewThreshold": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Recorded confidence below this threshold is flagged in review. See full schema for details."
                      },
                      "includeStyles": {
                        "type": "boolean",
                        "default": true,
                        "description": "Omit HTML style blocks when false. Diagram SVG retains its explicit paint attributes."
                      },
                      "depth": {
                        "type": "integer",
                        "default": 1,
                        "minimum": 0,
                        "maximum": 3,
                        "description": "Outgoing relationship depth for a single object. An explicit objects set is never expanded."
                      },
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "default": "light",
                        "description": "Built token scope for object relationship diagrams and composed branded mockups."
                      }
                    }
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Registered object. boxes-arrows draws its declared relationships; other views compose it in context."
                  },
                  "objects": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 32,
                    "description": "Explicit object set; draw only declared edges within this set. boxes-arrows only.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "objects item."
                    }
                  },
                  "schema": {
                    "type": "object",
                    "description": "Inline composed screen tree; validated as UiSchema."
                  },
                  "schemaRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Cached UiSchema from design_compose or schema load; missing/expired refs return a typed error."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "list",
                      "detail",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow",
                      "dashboard"
                    ],
                    "default": "detail",
                    "description": "Context to compose for a single object in wireframe, review or branded-mockup."
                  }
                },
                "required": [
                  "fidelityKind"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Preview Fidelity",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "component_map",
              "title": "Write Component Mappings",
              "description": "Write component substitutions or stage an intake draft. Use it when connecting React/Vue exports, shadcn source or built Storybook files; use component_map_read to list, resolve or review drafts. Returns staged evidence or write outcomes. apply with draftId requires accepted ids and writes adapters and mappings atomically. create takes one entry, mappings or mappingsPath; create and report-based apply preview unless apply:true. update and delete always write. Full schema: oods://schemas/component_map.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "apply",
                      "create",
                      "update",
                      "delete",
                      "draft"
                    ],
                    "description": "Choose apply, create, update, delete, draft."
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "For apply: When true, persist registry mutations. Defaults to dry-run. For create: When true, write changes to disk. Actions: apply, create."
                  },
                  "minConfidence": {
                    "type": "number",
                    "default": 0.75,
                    "minimum": 0,
                    "maximum": 1,
                    "description": "Minimum confidence to apply; lower candidates are queued. Actions: apply."
                  },
                  "reportPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Filesystem path to a reconciliation_report.json artifact. Actions: apply."
                  },
                  "report": {
                    "type": "object",
                    "description": "Reconciliation report. Actions: apply."
                  },
                  "mappings": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Create entries, each without apply. All entries are checked before one atomic write. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "A single-create payload without action or apply; the handler checks every value against… See full schema for details."
                    }
                  },
                  "mappingsPath": {
                    "type": "string",
                    "pattern": "^/[\\s\\S]*$",
                    "description": "Absolute path to a JSON document { mappings: [...] }, using the same entry shape. Actions: create."
                  },
                  "substitution": {
                    "type": "object",
                    "required": [
                      "component"
                    ],
                    "additionalProperties": false,
                    "description": "Component substitution with React/Vue exports and prop translations. Actions: create.",
                    "properties": {
                      "component": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The shipped OODS Foundry component id being replaced."
                      },
                      "react": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "react. Fields: localPath, package, export, version, passthrough, props, shadcn. See full schema."
                      },
                      "vue": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "vue. Fields: localPath, package, export, version, passthrough, props, shadcn. See full schema."
                      }
                    }
                  },
                  "externalSystem": {
                    "type": "string",
                    "minLength": 1,
                    "description": "External design system name (for example, 'team'). Actions: create, draft."
                  },
                  "externalComponent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "External component name. Actions: create."
                  },
                  "oodsTraits": {
                    "type": "array",
                    "minItems": 0,
                    "description": "OODS trait names this component maps to. Actions: create.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "oods Traits item."
                    }
                  },
                  "propMappings": {
                    "type": "array",
                    "description": "Property translations from external to OODS prop names. Actions: create.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "prop Mappings item. Fields: externalProp, oodsProp, coercion. See full schema."
                    }
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "manual"
                    ],
                    "default": "manual",
                    "description": "'auto' for machine-generated, 'manual' for human-curated. Actions: create."
                  },
                  "metadata": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Mapping metadata. Actions: create.",
                    "properties": {
                      "author": {
                        "type": "string",
                        "description": "author."
                      },
                      "notes": {
                        "type": "string",
                        "description": "notes."
                      }
                    }
                  },
                  "disambiguation_decisions": {
                    "type": "array",
                    "description": "Review decisions to append; does not gate creation. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Review decision record."
                    }
                  },
                  "preferred_terms": {
                    "type": "array",
                    "description": "Canonical terms to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Canonical term record."
                    }
                  },
                  "capabilities": {
                    "type": "array",
                    "description": "Capability definitions to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Capability record."
                    }
                  },
                  "projection_variants": {
                    "type": "array",
                    "description": "Cross-surface mapping variants to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Cross-surface variant record."
                    }
                  },
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Mapping ID. Actions: update (required), delete (required)."
                  },
                  "updates": {
                    "type": "object",
                    "description": "Fields to change: oodsTraits, confidence, propMappings, metadata, substitution. Omitted fields stay unchanged. Actions: update (required)."
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "project",
                      "format"
                    ],
                    "additionalProperties": false,
                    "description": "Actions: draft (required).",
                    "properties": {
                      "project": {
                        "type": "string",
                        "pattern": "^/[\\s\\S]*$",
                        "description": "project."
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "shadcn",
                          "storybook"
                        ],
                        "description": "format."
                      },
                      "storybook": {
                        "type": "string",
                        "description": "storybook."
                      }
                    }
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^components-[a-f0-9]{64}$",
                    "description": "Actions: apply (required)."
                  },
                  "accept": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Actions: apply (required).",
                    "items": {
                      "type": "string",
                      "description": "accept item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Write Component Mappings",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "component_map_read",
              "title": "Read Component Mappings",
              "description": "Read component substitutions and staged intake evidence. Use it when listing mappings, resolving an external component or reviewing a draftId; use component_map to stage or apply changes. Returns entries, matches or draft evidence including proposed adapters and unmatched elements. Reads local stores without generating adapters or changing project files. Full schema: oods://schemas/component_map_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "resolve",
                      "show"
                    ],
                    "description": "Choose list, resolve, show."
                  },
                  "externalSystem": {
                    "type": "string",
                    "minLength": 1,
                    "description": "For list: Filter mappings to a specific external system (e.g., 'team'). For resolve: External design system name (e.g., 'team'). Actions: list, resolve (required)."
                  },
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Pagination cursor. Use the previous page's nextCursor to continue. When cursor or limit is provided, pagination defaults to 100 items per page. Actions: list."
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500,
                    "description": "Page size for pagination. Omitting both cursor and limit preserves the legacy full-list response. Actions: list."
                  },
                  "externalComponent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Component name in the external system (e.g., 'Button'). Actions: resolve (required)."
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^components-[a-f0-9]{64}$",
                    "description": "Actions: show (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Component Mappings",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_store",
              "title": "Save Or Delete Schemas",
              "description": "Save or delete a named composition schema. Use it when retaining a UiSchema across sessions; use schema_read to list or load saved schemas. Returns the saved metadata or deletion result. save takes schemaRef, overwrites that name and increments its version; only the latest is loadable. Both actions write immediately. Full schema: oods://schemas/schema_store.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "save",
                      "delete"
                    ],
                    "description": "Choose save, delete."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_-]+$",
                    "description": "Saved schema name in slug format (letters, numbers, hyphens, underscores). Actions: save (required), delete (required)."
                  },
                  "schemaRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Reference to an in-memory schema produced by design_compose. Actions: save (required)."
                  },
                  "tags": {
                    "type": "array",
                    "description": "Optional tags for filtering and discovery. Actions: save.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "tags item."
                    }
                  },
                  "author": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Optional author metadata. Actions: save."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Save Or Delete Schemas",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_read",
              "title": "Read Saved Schemas",
              "description": "Read saved composition schemas. Use it when listing saved work or loading a named schema; use schema_store to save or delete one. Returns metadata or the schema with a new process-local schemaRef, valid for 30 minutes. Tool input schemas are separate MCP resources. Full schema: oods://schemas/schema_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "load"
                    ],
                    "description": "Choose list, load."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_-]+$",
                    "description": "Saved schema name in slug format. Actions: load (required)."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object filter. Actions: list."
                  },
                  "context": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Rendering-context filter. Actions: list."
                  },
                  "tags": {
                    "type": "array",
                    "description": "Actions: list.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "tags item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Saved Schemas",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_registry",
              "title": "Read Object Registry",
              "description": "Read object and trait definitions or validate YAML without saving. Use it when exploring shapes or checking a definition; use object_register to save one or object_import to draft from a schema file. Returns definitions, composed traits, validation findings or cache reload status. includeInternal reveals hidden objects; reload clears only process caches. Full schema: oods://schemas/object_registry.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "show",
                      "validate",
                      "reload"
                    ],
                    "description": "Choose list, show, validate, reload."
                  },
                  "domain": {
                    "type": "string",
                    "description": "Filter to objects in a specific domain (e.g. 'core.identity', 'saas.billing'). Actions: list."
                  },
                  "maturity": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "alpha",
                      "beta",
                      "stable"
                    ],
                    "description": "Filter by metadata maturity level. Actions: list."
                  },
                  "trait": {
                    "type": "string",
                    "description": "Filter to objects composing a given trait (e.g. 'Priceable', 'lifecycle/Stateful'). Actions: list."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and hiddenInternal counts them. Actions: list."
                  },
                  "name": {
                    "type": "string",
                    "description": "Object name to look up (e.g. 'User', 'Product', 'Invoice'). Actions: show (required)."
                  },
                  "context": {
                    "type": "string",
                    "description": "Optional: filter view_extensions to a single context (e.g. 'detail', 'list', 'form', 'timeline', 'card', 'inline'). Actions: show."
                  },
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The whole definition as YAML: an object file starts with \"object:\", a trait file with \"trait:\" (the same format as OODS Foundry's own objects/ and traits/). Actions: validate (required). See full schema for details."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Object Registry",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_register",
              "title": "Register Object Or Trait",
              "description": "Register an object or trait from reviewed YAML. Use it when saving a definition; use object_registry to list, inspect or validate without writing. Returns the saved definition and registry result. overwrite replaces your own definition. Team objects may shadow shipped objects; traits cannot reuse shipped names. Relationships must name valid targets and fields. Full schema: oods://schemas/object_register.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "register"
                    ],
                    "description": "Choose register."
                  },
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The whole definition as YAML: an object file starts with \"object:\", a trait file with \"trait:\" (the same format as OODS Foundry's own objects/ and traits/). Actions: register (required). See full schema for details."
                  },
                  "overwrite": {
                    "type": "boolean",
                    "default": false,
                    "description": "Replace a definition of yours with this name; without it a name you already registered is refused (OODS-C004). Actions: register."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Register Object Or Trait",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_render",
              "title": "Render Or Validate Schema",
              "description": "Validate a UiSchema or render static HTML and fragments. Use it when checking schema or patch contracts; use design_preview for a running app or schema_store to save. Returns diagnostics or rendered output. action selects validate/render; mode selects full/patch. apply:true enables rendering, without saving a schema. Render includes token CSS unless output.compact; oversized output or output.payloadMode:file writes only reply payloads. brand and scope options affect documents; ignored fragment options are diagnosed. Full schema: oods://schemas/schema_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "render",
                      "validate"
                    ],
                    "description": "Selects the per-action handler. 'render' -> schema_render action=render, 'validate' -> schema_render action=validate."
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "full",
                      "patch"
                    ],
                    "default": "full",
                    "description": "Full schema or patch mode. Actions: render, validate."
                  },
                  "schema": {
                    "type": "object",
                    "description": "UiSchema. Actions: render, validate."
                  },
                  "schemaRef": {
                    "type": "string",
                    "description": "Reference to a cached UiSchema returned by design_compose. Actions: render, validate."
                  },
                  "patch": {
                    "type": [
                      "array",
                      "object"
                    ],
                    "description": "Required when mode='patch'. Accepts JSON Patch array or node patch object(s). Actions: render, validate.",
                    "items": {
                      "type": "object",
                      "description": "patch item."
                    }
                  },
                  "baseTree": {
                    "type": "object",
                    "description": "Required when mode='patch' to provide the base UiSchema to patch. Actions: render, validate."
                  },
                  "brand": {
                    "type": "string",
                    "description": "Brand to render. Actions: render. See full schema for details."
                  },
                  "options": {
                    "type": "object",
                    "default": {},
                    "additionalProperties": false,
                    "description": "Operation options. Actions: render, validate.",
                    "properties": {
                      "includeTree": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for render."
                      },
                      "includeNormalized": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for validate."
                      },
                      "checkComponents": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for validate."
                      },
                      "checkA11y": {
                        "type": "boolean",
                        "default": false,
                        "description": "Checks declared foreground/background pairs derived from shared component CSS against… See full schema for details."
                      }
                    }
                  },
                  "output": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional render output controls. Omitting this object preserves full-document behavior. Actions: render.",
                    "properties": {
                      "format": {
                        "type": "string",
                        "enum": [
                          "document",
                          "fragments"
                        ],
                        "default": "document",
                        "description": "format."
                      },
                      "strict": {
                        "type": "boolean",
                        "default": false,
                        "description": "strict."
                      },
                      "includeCss": {
                        "type": "boolean",
                        "default": true,
                        "description": "include Css."
                      },
                      "compact": {
                        "type": "boolean",
                        "default": false,
                        "description": "Opt in to omitting token CSS; the default includes token CSS."
                      },
                      "showConfidence": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, emit data-oods-confidence and data-confidence-level attributes on rendered… See full schema for details."
                      },
                      "confidenceThreshold": {
                        "type": "number",
                        "default": 0.5,
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Confidence threshold for low-confidence affordance. See full schema for details."
                      },
                      "tokenOverlay": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Inline token-delta object resolved to a scoped :root{} override; applied only in document… See full schema for details."
                      },
                      "skinOverlay": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Inline measured-colour delta resolved against the OODS Foundry-owned style library to a… See full schema for details."
                      },
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline, unless the output would exceed 100,000 characters, in which case it is… See full schema for details."
                      }
                    }
                  },
                  "apply": {
                    "type": "boolean",
                    "description": "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."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Render Or Validate Schema",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_import",
              "title": "Import Objects",
              "description": "Draft objects from local OpenAPI, JSON Schema, Postgres SQL, Prisma, dbt, OData or GraphQL files, then apply accepted proposals. Use it when importing a schema; use object_import_read to review a staged object. Returns importId, staged files, proposal counts and re-import differences, or batch registration results. draft takes source.path or source.content; apply requires explicit objects and proposal ids. overwrite replaces team objects; confirmShipped names approved shipped replacements. No network fetch or code execution. Full schema: oods://schemas/object_import.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "apply"
                    ],
                    "description": "Choose draft, apply."
                  },
                  "source": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Local file/folder or inline schema. Used only by draft.",
                    "properties": {
                      "path": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Local file or folder. References must stay inside the source folder. Aggregate limit 128 MiB."
                      },
                      "content": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Inline schema text, at most 1 MiB. Set format for SQL, Prisma, OData XML or GraphQL SDL."
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "description": "File name for inline provenance; no directories."
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "openapi",
                          "json-schema",
                          "sql",
                          "prisma",
                          "dbt",
                          "odata",
                          "graphql"
                        ],
                        "description": "Explicit source format; inferred from file extension or document when omitted."
                      }
                    }
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Content-addressed import id from draft. Required by show and apply."
                  },
                  "objects": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Explicit accepted object names and optional proposal ids for apply.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "objects item. Fields: name, proposals, currencies. See full schema."
                    }
                  },
                  "overwrite": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow replacing existing team objects."
                  },
                  "confirmShipped": {
                    "type": "array",
                    "description": "Each shipped object name whose replacement is explicitly confirmed.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "confirm Shipped item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Import Objects",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "object_import_read",
              "title": "Read Import Draft",
              "description": "Read one staged object import. Use it when reviewing YAML, graded proposals and unmapped elements before acceptance; use object_import to draft or apply. Returns the named object, proposals and differences from its registered definition. Supply importId and the exact object name. Reading never rewrites the staged report. Full schema: oods://schemas/object_import_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "show"
                    ],
                    "description": "Choose show."
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Content-addressed import id from draft. Required by show and apply."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact draft object name for show."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Import Draft",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "a11y_scan",
              "title": "Scan Accessibility",
              "description": "Grade built token contrast and optional static screen accessibility. Use it when checking component token pairs and HTML structure; use artifact_certify for chart pillars or design_preview for measured browser evidence. Checks button states per intent, text at 4.5:1, and icons/progress/meter marks at 3:1. Returns measured pairs, document findings and explicit unmeasured cases. Without a schema it checks every built brand/theme; a UiSchema scopes pairs to its components and adds static HTML checks. Dynamic/inherited/system paints remain unmeasured. Browser layout, keyboard/focus and screen-reader behavior are not tested. apply:true writes the report, transcript and bundle index; omission writes nothing. Full schema: oods://schemas/a11y_scan.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, write the a11y report artifact to the artifacts directory."
                  },
                  "schema": {
                    "type": "object",
                    "description": "Render this UiSchema in memory and inspect its HTML; select declared token pairs for its rendered components."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Scan Accessibility",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            }
          ]
        },
        "resources/list": {
          "resources": [
            {
              "uri": "ui://oods-forge/preview/a1ccf996c571/app.html",
              "name": "OODS Foundry design preview",
              "title": "OODS Foundry design preview",
              "description": "The running-app preview of a composition version, for a client that renders MCP Apps inside the conversation (revision a1ccf996c571, 2346476 bytes, self-contained).",
              "mimeType": "text/html;profile=mcp-app"
            },
            {
              "uri": "oods://schemas/tokens_build.input.json",
              "name": "tokens_build input schema",
              "title": "Build Tokens Schema",
              "description": "Full server validation schema for tokens_build; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/structured_data_fetch.input.json",
              "name": "structured_data_fetch input schema",
              "title": "Fetch Structured Data Schema",
              "description": "Full server validation schema for structured_data_fetch; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_apply.input.json",
              "name": "brand_apply input schema",
              "title": "Apply Brand Changes Schema",
              "description": "Full server validation schema for brand_apply; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_create.input.json",
              "name": "brand_create input schema",
              "title": "Create Brand Schema",
              "description": "Full server validation schema for brand_create; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_read.input.json",
              "name": "brand_read input schema",
              "title": "Read Brand Data Schema",
              "description": "Full server validation schema for brand_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/catalog_list.input.json",
              "name": "catalog_list input schema",
              "title": "List Components Schema",
              "description": "Full server validation schema for catalog_list; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/code_generate.input.json",
              "name": "code_generate input schema",
              "title": "Generate Code Schema",
              "description": "Full server validation schema for code_generate; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_compose.input.json",
              "name": "design_compose input schema",
              "title": "Compose Design Schema",
              "description": "Full server validation schema for design_compose; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_preview.input.json",
              "name": "design_preview input schema",
              "title": "Preview Running Design Schema",
              "description": "Full server validation schema for design_preview; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_versions.input.json",
              "name": "design_versions input schema",
              "title": "Read Design Versions Schema",
              "description": "Full server validation schema for design_versions; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/pipeline_run.input.json",
              "name": "pipeline_run input schema",
              "title": "Run Design Pipeline Schema",
              "description": "Full server validation schema for pipeline_run; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/health_check.input.json",
              "name": "health_check input schema",
              "title": "Check Health Schema",
              "description": "Full server validation schema for health_check; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/registry_snapshot.input.json",
              "name": "registry_snapshot input schema",
              "title": "Snapshot Registry Schema",
              "description": "Full server validation schema for registry_snapshot; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/viz_render.input.json",
              "name": "viz_render input schema",
              "title": "Render Chart Schema",
              "description": "Full server validation schema for viz_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/dashboard_render.input.json",
              "name": "dashboard_render input schema",
              "title": "Render Dashboard Schema",
              "description": "Full server validation schema for dashboard_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/artifact_certify.input.json",
              "name": "artifact_certify input schema",
              "title": "Certify Artifact Schema",
              "description": "Full server validation schema for artifact_certify; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/fidelity_preview.input.json",
              "name": "fidelity_preview input schema",
              "title": "Preview Fidelity Schema",
              "description": "Full server validation schema for fidelity_preview; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/component_map.input.json",
              "name": "component_map input schema",
              "title": "Write Component Mappings Schema",
              "description": "Full server validation schema for component_map; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/component_map_read.input.json",
              "name": "component_map_read input schema",
              "title": "Read Component Mappings Schema",
              "description": "Full server validation schema for component_map_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_store.input.json",
              "name": "schema_store input schema",
              "title": "Save Or Delete Schemas Schema",
              "description": "Full server validation schema for schema_store; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_read.input.json",
              "name": "schema_read input schema",
              "title": "Read Saved Schemas Schema",
              "description": "Full server validation schema for schema_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_registry.input.json",
              "name": "object_registry input schema",
              "title": "Read Object Registry Schema",
              "description": "Full server validation schema for object_registry; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_register.input.json",
              "name": "object_register input schema",
              "title": "Register Object Or Trait Schema",
              "description": "Full server validation schema for object_register; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_render.input.json",
              "name": "schema_render input schema",
              "title": "Render Or Validate Schema Schema",
              "description": "Full server validation schema for schema_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_import.input.json",
              "name": "object_import input schema",
              "title": "Import Objects Schema",
              "description": "Full server validation schema for object_import; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_import_read.input.json",
              "name": "object_import_read input schema",
              "title": "Read Import Draft Schema",
              "description": "Full server validation schema for object_import_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/a11y_scan.input.json",
              "name": "a11y_scan input schema",
              "title": "Scan Accessibility Schema",
              "description": "Full server validation schema for a11y_scan; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            }
          ]
        },
        "resources/templates/list": {
          "resourceTemplates": [
            {
              "uriTemplate": "oods://schemas/{file}",
              "name": "tool schemas",
              "title": "Tool Schemas",
              "description": "Full server validation schemas, one JSON Schema file per tool and the files they reference.",
              "mimeType": "application/schema+json"
            },
            {
              "uriTemplate": "ui://oods-forge/compositions/{compositionId}/{version}/{framework}.js{?brand,theme}",
              "name": "composition module",
              "title": "Composition Module",
              "description": "The compiled module of one composition version, framework react or vue.",
              "mimeType": "text/javascript"
            },
            {
              "uriTemplate": "ui://oods-forge/compositions/{compositionId}/{version}/{framework}.css{?brand,theme}",
              "name": "composition styles",
              "title": "Composition Styles",
              "description": "The stylesheet of one composition version, framework react or vue.",
              "mimeType": "text/css"
            }
          ]
        }
      },
      "errors": {
        "prompts/list": {
          "code": -32601,
          "message": "Method not found"
        },
        "prompts/get": {
          "code": -32601,
          "message": "Method not found"
        },
        "completion/complete": {
          "code": -32601,
          "message": "Method not found"
        },
        "logging/setLevel": {
          "code": -32601,
          "message": "Method not found"
        },
        "resources/subscribe": {
          "code": -32601,
          "message": "Method not found"
        },
        "resources/unsubscribe": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/get": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/result": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/list": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/cancel": {
          "code": -32601,
          "message": "Method not found"
        }
      }
    },
    "all+ui": {
      "results": {
        "ping": {},
        "tools/list": {
          "tools": [
            {
              "name": "tokens_build",
              "title": "Build Tokens",
              "description": "Compile registered brand tokens with the shipped compiler. Use it when you need fresh CSS and JSON; use brand_create to create a brand or brand_apply to change its source. Returns inline CSS variables, CSS and JSON plus artifact paths, hashes and sizes. apply:true builds in isolated artifact storage; omission previews the artifacts without writing. Requested brand/theme selects the inline scope; full CSS includes every registered scope. Source and shipped runtime files stay unchanged. Full schema: oods://schemas/tokens_build.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "Selects values compiled from current source, returned inline as CSS variables, CSS and JSON and written on apply. Full CSS includes all registered scopes; TypeScript and Tailwind artifacts retain A/light defaults."
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "dark",
                    "description": "Token theme."
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "Write on true; otherwise preview."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Build Tokens",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "structured_data_fetch",
              "title": "Fetch Structured Data",
              "description": "Fetch live registry datasets, archived token/export data, or captured-run artifacts. Use it when you need complete datasets; catalog_list selects components and object_registry reads definitions. Returns data with provenance, version and cache metadata. Full remains the default; detail:summary gives section counts and meta.next for inline pages; follow meta.next until absent. dataset selects registry/export mode; version pins an archived export and listVersions lists dates. kind plus runPath selects captured artifacts, while derived_analysis reads an analysis directory via runPath; version/listVersions are refused in kind mode. includeInternal exposes hidden objects, and ifNoneMatch checks the canonical payload ETag. Full schema: oods://schemas/structured_data_fetch.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "dataset": {
                    "type": "string",
                    "enum": [
                      "components",
                      "tokens",
                      "manifest"
                    ],
                    "description": "Local structured dataset to return (components/tokens/manifest). Mutually exclusive with kind+runPath."
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "identity_graph",
                      "capability_rollup",
                      "object_rollup",
                      "drift_report",
                      "derived_analysis",
                      "a11y_report",
                      "report_index",
                      "a11y_evidence",
                      "run_manifest"
                    ],
                    "description": "Stage1 artifact kind, with runPath; excludes dataset. See full schema for details."
                  },
                  "runPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Filesystem path to a Stage1 run directory or its artifacts/ subdirectory. Required when kind is set."
                  },
                  "ifNoneMatch": {
                    "type": "string",
                    "minLength": 8,
                    "description": "Return matched=true without payload when the ETag matches."
                  },
                  "includePayload": {
                    "type": "boolean",
                    "default": true,
                    "description": "When false, omit payload even if no ETag match occurs."
                  },
                  "version": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                    "description": "Request a specific date-stamped version (e.g., '2026-02-24'). Omit for latest. Applies to dataset mode only."
                  },
                  "listVersions": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, return available version dates instead of payload."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Live components dataset only: also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them; a dated export is served unchanged."
                  },
                  "payloadMode": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "file"
                    ],
                    "description": "Unset: inline, unless the payload exceeds 100,000 characters; then it is written to a file and warning OODS-W004 says so. inline always returns it; file always writes it and returns payloadFile."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "full"
                    ],
                    "description": "Dataset only. summary returns section counts and the call for page 1; full (default) preserves the dataset."
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Dataset only: read a 1-based page of lossless JSON Pointer entries, each reply below 100,000 characters. Omit for full data."
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100,
                    "description": "Dataset entries per page, default 10, also bounded by serialized size. Reply meta gives next and full calls."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Fetch Structured Data",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_apply",
              "title": "Apply Brand Changes",
              "description": "Preview or apply changes to an existing brand's canonical token source. Use it when editing a brand; use brand_create to create one. Returns validation, changed slots, before/after hashes and build evidence. delta is required and supports aliases or add/remove/replace patches. apply defaults to a dry run that writes nothing. apply:true validates first, then writes source and rebuilds; build failure leaves source edits in place. For shipped brands in the portable runtime, apply emits a review kit and reports source/build steps as skipped. User brands rebuild in their own folder. Full schema: oods://schemas/brand_apply.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "Target brand identifier. Must name a brand directory under packages/tokens/src/tokens/brands."
                  },
                  "delta": {
                    "type": [
                      "object",
                      "array"
                    ],
                    "description": "Alias changes (object) or an array using the supported add/remove/replace subset of RFC 6902 when strategy=patch.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "delta item. Fields: op, path, value. See full schema."
                    }
                  },
                  "strategy": {
                    "type": "string",
                    "enum": [
                      "alias",
                      "patch"
                    ],
                    "default": "alias",
                    "description": "Alias strategy rewrites token values; patch applies the supported add/remove/replace subset of RFC 6902."
                  },
                  "preview": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Preview response controls (apply=false).",
                    "properties": {
                      "verbosity": {
                        "type": "string",
                        "enum": [
                          "full",
                          "compact"
                        ],
                        "default": "full",
                        "description": "full includes structured before/after payloads; compact returns summary + hunks only."
                      }
                    }
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "Write on true; otherwise preview."
                  }
                },
                "required": [
                  "delta"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Apply Brand Changes",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_create",
              "title": "Create Brand",
              "description": "Create a brand or stage a local token intake draft. Use it when adding a brand; use brand_read for templates, validation, derivation and draft review, or brand_apply to edit a brand. Returns a staged draft or created brand with build results. apply needs draftId and accept:true. create accepts filled documents or a recipe, validates all themes, refuses replacement and removes a brand whose build fails. Full schema: oods://schemas/brand_create.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "create",
                      "draft",
                      "apply"
                    ],
                    "description": "Choose create, draft, apply."
                  },
                  "brand_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The id the brand will have. Actions: create (required), draft (required). See full schema for details."
                  },
                  "documents": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The filled template: one plain design-token document per theme, brand-relative (surface.canvas, not color.brand.<id>.surface.canvas), each slot {\"$type\": \"color\", \"$value\": \"<CSS colour>\"}. Actions: create.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "description": "The light theme."
                      },
                      "dark": {
                        "type": "object",
                        "description": "The dark theme."
                      },
                      "hc": {
                        "type": "object",
                        "description": "The high-contrast theme."
                      }
                    }
                  },
                  "recipe": {
                    "type": "object",
                    "description": "A brand recipe in place of documents: the brand it gives is checked, and for create written, like filled documents. Actions: create."
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "path"
                    ],
                    "additionalProperties": false,
                    "description": "Actions: draft (required).",
                    "properties": {
                      "path": {
                        "type": "string",
                        "pattern": "^/[\\s\\S]*$",
                        "description": "path."
                      },
                      "modes": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "modes. Fields: base, dark. See full schema."
                      }
                    }
                  },
                  "bindings": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Actions: draft.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "base entry."
                        },
                        "description": "base."
                      },
                      "dark": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "dark entry."
                        },
                        "description": "dark."
                      }
                    }
                  },
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Actions: draft.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "brand."
                      },
                      "preset": {
                        "type": "string",
                        "description": "preset."
                      }
                    }
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^brand-[a-f0-9]{64}$",
                    "description": "Actions: apply (required)."
                  },
                  "accept": {
                    "type": "boolean",
                    "const": true,
                    "description": "Actions: apply (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Create Brand",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "brand_read",
              "title": "Read Brand Data",
              "description": "Read brand templates, validate documents, derive recipes or inspect staged drafts. Use it when preparing a brand without saving; use brand_create to stage or create it. Returns complete template slots, validation findings, a recipe with provenance and gaps, or draft evidence. derive takes exactly one of tokens, css or absolute cssPath. Template replies use compact JSON so all themes fit inline. Full schema: oods://schemas/brand_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "template",
                      "validate",
                      "derive",
                      "show"
                    ],
                    "description": "Choose template, validate, derive, show."
                  },
                  "tokens": {
                    "type": "object",
                    "description": "A DTCG document with your own token names. Group $type is inherited; {group.token} aliases resolve inside the document. Actions: derive."
                  },
                  "css": {
                    "type": "string",
                    "description": "A shadcn theme CSS entry, in place of tokens. Actions: derive. See full schema for details."
                  },
                  "cssPath": {
                    "type": "string",
                    "pattern": "^/[\\s\\S]*$",
                    "description": "Absolute path to the shadcn theme CSS entry, in place of tokens or css. Read only. Actions: derive."
                  },
                  "hints": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Exact dot-separated token paths, or CSS custom property names, that override inference. Invalid hints produce gaps, never silent fallback. Actions: derive.",
                    "properties": {
                      "accent": {
                        "type": "string",
                        "minLength": 1,
                        "description": "accent."
                      },
                      "neutral": {
                        "type": "string",
                        "minLength": 1,
                        "description": "neutral."
                      },
                      "radius": {
                        "type": "string",
                        "minLength": 1,
                        "description": "radius."
                      },
                      "font": {
                        "type": "string",
                        "minLength": 1,
                        "description": "font."
                      },
                      "fontMono": {
                        "type": "string",
                        "minLength": 1,
                        "description": "font Mono."
                      }
                    }
                  },
                  "from": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Where the starting values come from: an existing brand (default A), optionally with one of the shipped presets over it; or a recipe, which gives the complete brand, graded. Actions: template.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "An existing brand whose values the template starts from. Default: A."
                      },
                      "preset": {
                        "type": "string",
                        "minLength": 1,
                        "description": "A shipped preset id whose values go over the brand's; every template response lists the… See full schema for details."
                      },
                      "recipe": {
                        "type": "object",
                        "description": "A brand recipe: the neutral (a hue and a tint of 0 to 0.03), the accent hue, whether the… See full schema for details."
                      }
                    }
                  },
                  "brand_id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The id the brand will have. Checked when given: capitals then digits (ACME, A1) or a letter then lower-case letters and digits (Acme, acme2), at most 32 characters, and no existing brand's id in any case. Actions: validate."
                  },
                  "documents": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "The filled template: one plain design-token document per theme, brand-relative (surface.canvas, not color.brand.<id>.surface.canvas), each slot {\"$type\": \"color\", \"$value\": \"<CSS colour>\"}. Actions: validate.",
                    "properties": {
                      "base": {
                        "type": "object",
                        "description": "The light theme."
                      },
                      "dark": {
                        "type": "object",
                        "description": "The dark theme."
                      },
                      "hc": {
                        "type": "object",
                        "description": "The high-contrast theme."
                      }
                    }
                  },
                  "recipe": {
                    "type": "object",
                    "description": "A brand recipe in place of documents: the brand it gives is checked, and for create written, like filled documents. Actions: validate."
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^brand-[a-f0-9]{64}$",
                    "description": "Actions: show (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Brand Data",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "catalog_list",
              "title": "List Components",
              "description": "List components from the live component-contract registry. Use it when selecting components; structured_data_fetch returns complete datasets. Returns component names, categories, readiness labels and availableCategories; detail controls added tags, contexts, regions, traits and evidence. includeInternal exposes hidden registry objects. Filtered calls without detail default to full pages of 10; nextPage continues. Explicit detail preserves unpaged output. Readiness evidence retains the build it measured and does not certify a new composition. Full schema: oods://schemas/catalog_list.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "Filter components by category (e.g., 'core', 'lifecycle', 'visual')"
                  },
                  "trait": {
                    "type": "string",
                    "description": "Filter components by trait (e.g., 'Editable', 'Searchable')"
                  },
                  "context": {
                    "type": "string",
                    "description": "Filter components by context (e.g., 'detail', 'list')"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "stable",
                      "beta",
                      "planned"
                    ],
                    "description": "Filter by legacy static-HTML status only: 'stable' = mapped HTML renderer; 'planned' = HTML fallback. Consult productReality.surfaces for React/Vue, generated-consumer and maturity evidence."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "brief",
                      "summary",
                      "full"
                    ],
                    "description": "Defaults to brief unfiltered, full with filters. Both defaults are paged (filtered: 10 entries). summary adds tags, contexts, regions and traits; full includes evidence. Explicit detail without paging preserves the unbounded legacy request."
                  },
                  "page": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "1-based page index for pagination."
                  },
                  "pageSize": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Components per page. Filtered calls without detail default to 10; nextPage gives the next call."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects in registry.objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "List Components",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "code_generate",
              "title": "Generate Code",
              "description": "Generate React/Vue file sets or a standalone static HTML document from a validated UiSchema. Use it when a schema already exists; use design_compose instead to choose a layout or pipeline_run to compose, validate, render and generate together. Returns versioned artifacts, exact dependencies, required domain handlers and validationReceipt. Supply schema or schemaRef before its 30-minute expiry. profile selects draft/build/release; build performs static checks, while release verifies supplied evidence without rerunning it. options.output selects component/application; options.payloadMode:file returns file references, as does oversized output unless inline. Domain actions require consumer handlers. React and Vue shadcn mappings support components, screen apps and workflow apps. Full schema: oods://schemas/code_generate.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "schema": {
                    "type": "object",
                    "description": "A structurally valid UiSchema tree to generate code from. UiElement.state branches are checked against the canonical workflow-state vocabulary by the state-contract gate."
                  },
                  "schemaRef": {
                    "type": "string",
                    "description": "Reference to a cached UiSchema returned by design_compose."
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "html"
                    ],
                    "description": "Target framework. HTML uses the same record document renderer as repl render; build checks are static and do not execute a browser."
                  },
                  "profile": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "build",
                      "release"
                    ],
                    "description": "Validation profile. See full schema for details."
                  },
                  "releaseEvidence": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Evidence for release. See full schema for details.",
                    "properties": {
                      "rendered": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "interaction": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "accessibility": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "theme": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "determinism": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "performance": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "default": {},
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "description": "Application and embedded chart theme. See full schema for details."
                      },
                      "brand": {
                        "type": "string",
                        "description": "Token brand shared by the generated shell and embedded charts. See full schema for details."
                      },
                      "typescript": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true, emit TypeScript prop types (React) or typed defineProps (Vue). Ignored for HTML."
                      },
                      "styling": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "tokens",
                          "tailwind"
                        ],
                        "default": "tokens",
                        "description": "React/Vue styling strategy: inline style objects, design-token CSS variables, or Tailwind utility classes. See full schema for details."
                      },
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline, unless the artifact would exceed 100,000 characters, in which case it is… See full schema for details."
                      },
                      "output": {
                        "type": "string",
                        "enum": [
                          "component",
                          "application"
                        ],
                        "default": "component",
                        "description": "React/Vue: component output by default, or a runnable single-screen application. See full schema for details."
                      }
                    }
                  }
                },
                "required": [
                  "framework"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Generate Code",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_compose",
              "title": "Compose Design",
              "description": "Compose an object screen or workflow into a UiSchema. Use it when choosing layout and components; use pipeline_run instead for the complete generation flow or code_generate when you already have a schema. Returns schema, a 30-minute process-local schemaRef and durable compositionId/version lineage. Prefer explicit object and context over keyword-based intent. preferences controls region/field order and sample seed; compositionId appends a version, while options.transient records none. Save schemas with schema_store to reuse across sessions. Selected nodes snapshot component mappings; composition does not generate or run an app. Full schema: oods://schemas/design_compose.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "intent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A short intent sentence (e.g., 'dashboard with metrics and sidebar', 'user registration form'), matched against fixed keyword and phrase tables, not understood; a sentence with no layout keyword becomes a low-confidence… See full schema for details."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., 'Subscription', 'User'). When provided, composition uses trait-driven component placement via view_extensions."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition. See full schema for details."
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "dashboard",
                      "form",
                      "detail",
                      "list",
                      "card",
                      "timeline",
                      "landing",
                      "auto"
                    ],
                    "default": "auto",
                    "description": "Layout template to use. 'landing' is a content/marketing page (hero + sections + CTA), not bound to a data object. 'auto' infers the best template from intent keywords."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "brand": {
                        "type": "string",
                        "description": "Brand scope for data-bound charts; defaults to A."
                      },
                      "theme": {
                        "type": "string",
                        "description": "Theme token (e.g., 'light', 'dark')."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name → component-name overrides (e.g., { 'items': 'Table' })."
                      },
                      "regionOrder": {
                        "type": "array",
                        "minItems": 1,
                        "description": "The screen's regions (its direct children) by id in the desired order; regions not listed… See full schema for details.",
                        "items": {
                          "type": "string",
                          "description": "region Order item."
                        }
                      },
                      "fieldOrder": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "array",
                          "minItems": 1,
                          "description": "field Order entry.",
                          "items": {
                            "type": "string",
                            "description": "field Order entry item."
                          }
                        },
                        "description": "Region id → field names in the desired order among sibling field nodes of that region (a… See full schema for details."
                      },
                      "seed": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64,
                        "description": "Sample-data seed. See full schema for details."
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "validate": {
                        "type": "boolean",
                        "default": true,
                        "description": "Auto-validate the generated schema via the `repl` tool's `validate` action."
                      },
                      "topN": {
                        "type": "integer",
                        "default": 3,
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of component candidates to return per slot."
                      },
                      "transient": {
                        "type": "boolean",
                        "default": false,
                        "description": "Do not record a composition version; the result then carries no compositionId. For scratch compositions only."
                      },
                      "operation": {
                        "type": "string",
                        "enum": [
                          "recompose",
                          "reorder-region",
                          "swap-slot",
                          "reorder-fields",
                          "seed"
                        ],
                        "description": "With compositionId: the lineage operation recorded on the new version; default recompose. See full schema for details."
                      }
                    }
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "Record this composition as the next version of an existing composition (operation \"recompose\") instead of creating a new one."
                  },
                  "parentVersion": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "With compositionId: the version the new one derives from; default the latest."
                  },
                  "presentation": {
                    "type": "string",
                    "enum": [
                      "stage1-inspection"
                    ],
                    "description": "Named Stage1 inspection presentation: omit the accessibility score and prominently show measurement limits. Source records remain unchanged."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Compose Design",
                "readOnlyHint": false,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "design_preview",
              "title": "Preview Running Design",
              "description": "Render, compare, edit or accept a running React/Vue composition. Use it when reviewing generated behavior; use design_versions to inspect lineage without starting a host, or fidelity_preview for static drawings. Returns preview URLs, editable fields and measured or unmeasured evidence. Supply compositionId/version or object/context. Edits create versions; compare generates missing artifacts. accept records the generated version and a snapshot of its measurements as accepted, preserving prior acceptances. Full schema: oods://schemas/design_preview.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "render",
                      "compare",
                      "edit",
                      "accept"
                    ],
                    "default": "render",
                    "description": "Choose render, compare, edit, accept."
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "An existing composition from design_compose; with no version, its latest version opens."
                  },
                  "version": {
                    "type": "integer",
                    "minimum": 1,
                    "description": "The version of compositionId to open."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., 'Subscription', 'User'); with context, composes a new composition (version 1) and opens it."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition. See full schema for details."
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "both"
                    ],
                    "default": "both",
                    "description": "Which generated app to compile and serve; both frameworks by default, each at its own URL."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "default": "light",
                        "description": "Theme the page mounts with (data-theme and the matching token CSS scope)."
                      },
                      "brand": {
                        "type": "string",
                        "default": "A",
                        "description": "Brand the page mounts with (data-brand and the matching token CSS scope)."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name → component-name overrides (e.g., { 'items': 'Table' })."
                      }
                    }
                  },
                  "against": {
                    "type": "object",
                    "required": [
                      "version"
                    ],
                    "additionalProperties": false,
                    "description": "action compare: the version on the right; the left is compositionId@version.",
                    "properties": {
                      "compositionId": {
                        "type": "string",
                        "pattern": "^cmp-[a-f0-9]{12}$",
                        "description": "The other composition; default the same composition."
                      },
                      "version": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "version."
                      }
                    }
                  },
                  "edit": {
                    "type": "object",
                    "description": "Edit one parent version: operation is reorder-region (regionOrder), swap-slot (slot, component), reorder-fields (fields), or seed (seed). Returns a new version."
                  },
                  "contextItems": {
                    "type": "array",
                    "maxItems": 200,
                    "description": "Decisions and evidence about this object that you already fetched, shown beside the running preview and stored on the version. See full schema for details.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "context Items item. Fields: source, id, title, body, excerpt, url, timestamp, query, fetchedAt, object, urn. See full schema."
                    }
                  },
                  "contextSearched": {
                    "type": "array",
                    "maxItems": 50,
                    "description": "What you searched that returned nothing, so an empty panel is a statement rather than a silence: the reader can tell 'nothing was found' from 'nobody asked'.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "context Searched item. Fields: source, query, fetchedAt, found. See full schema."
                    }
                  },
                  "runPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Stage1 run directory on this machine (out/stage1/<suite>/<run-uuid>) whose real records this version shows: the run itself for Run, its findings for Finding, its attested artifacts for CapturedArtifact. See full schema for details."
                  },
                  "observationRunPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A Stage1 run directory on this machine (out/stage1/<suite>/<run-uuid>). See full schema for details."
                  },
                  "presentation": {
                    "type": "string",
                    "enum": [
                      "stage1-inspection"
                    ],
                    "description": "Named Stage1 inspection presentation: omit the accessibility score and prominently show measurement limits. Source records remain unchanged."
                  },
                  "recordId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact record ID for a fresh runPath or analysisPath detail/card/inline view. Unknown IDs refuse before composition; existing versions retain their selected record."
                  },
                  "analysisPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Portable Stage1 derived-analysis directory. Composes Comparison or ComparisonSignal from attested retained bytes, separate from runPath. Only read-only contexts; recordId selects an exact signal."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Preview Running Design",
                "readOnlyHint": false,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              },
              "_meta": {
                "ui": {
                  "resourceUri": "ui://oods-forge/preview/a1ccf996c571/app.html"
                },
                "ui/resourceUri": "ui://oods-forge/preview/a1ccf996c571/app.html"
              }
            },
            {
              "name": "design_versions",
              "title": "Read Design Versions",
              "description": "Read a composition's versions and accepted version. Use it when inspecting saved lineage; use design_preview to render, edit, compare or accept. Returns version metadata, latest and acceptance summary. Supply compositionId. Starts no preview host and returns no running URL. Full schema: oods://schemas/design_versions.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "versions"
                    ],
                    "description": "Choose versions."
                  },
                  "compositionId": {
                    "type": "string",
                    "pattern": "^cmp-[a-f0-9]{12}$",
                    "description": "An existing composition from design_compose; with no version, its latest version opens."
                  }
                },
                "required": [
                  "compositionId"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Read Design Versions",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "pipeline_run",
              "title": "Run Design Pipeline",
              "description": "Run composition, validation, rendering and code generation in one call. Use it when starting from an object/context or intent and needing generated output; use design_compose instead to inspect layout first or code_generate for an existing schema. Returns step results, schemaRef with expiry, versioned artifacts, dependencies and validationReceipt. options controls validation/render skipping and optional static accessibility checks; save persists the schema beyond its process-local 30-minute reference. Generation validation forwards draft/build/release without downgrade. Release verifies supplied evidence without rerunning it; unresolved accessibility pairs stay unmeasured. Oversized output goes to files unless options.payloadMode is inline. Calls may write composition and saved-schema records. Full schema: oods://schemas/pipeline_run.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object name from the OODS registry (e.g., Subscription, User)."
                  },
                  "intent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "A short intent sentence, matched against fixed keyword and phrase tables (a sentence that matches no layout keyword becomes a low-confidence dashboard). Prefer object and context."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "detail",
                      "list",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow"
                    ],
                    "description": "View context for object-aware composition."
                  },
                  "layout": {
                    "type": "string",
                    "enum": [
                      "dashboard",
                      "form",
                      "detail",
                      "list",
                      "card",
                      "timeline",
                      "landing",
                      "auto"
                    ],
                    "description": "Layout template. 'landing' is a content page (hero, sections, call to action) bound to no object; 'auto' picks one from the intent."
                  },
                  "preferences": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Layout and appearance preferences.",
                    "properties": {
                      "theme": {
                        "type": "string",
                        "description": "Theme token (e.g., 'light', 'dark')."
                      },
                      "metricColumns": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12,
                        "description": "Number of metric columns for dashboard layout."
                      },
                      "fieldGroups": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 20,
                        "description": "Number of field groups for form layout."
                      },
                      "tabCount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 10,
                        "description": "Number of tabs for detail layout."
                      },
                      "tabLabels": {
                        "type": "array",
                        "description": "Custom tab labels for detail layout.",
                        "items": {
                          "type": "string",
                          "description": "tab Labels item."
                        }
                      },
                      "componentOverrides": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string",
                          "minLength": 1,
                          "description": "component Overrides entry."
                        },
                        "description": "Slot-name to component-name overrides (e.g., { 'items': 'Table' })."
                      }
                    }
                  },
                  "actionMappings": {
                    "type": "array",
                    "description": "action mappings: flat, verb-keyed entries.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "action Mappings item. Fields: verb, oodsTrait, trait, object, component, slot, confidence. See full schema."
                    }
                  },
                  "framework": {
                    "type": "string",
                    "enum": [
                      "react",
                      "vue",
                      "html"
                    ],
                    "description": "Target framework for code generation."
                  },
                  "styling": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "tokens",
                      "tailwind"
                    ],
                    "description": "Styling strategy for code generation."
                  },
                  "profile": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "build",
                      "release"
                    ],
                    "description": "Validation profile passed to code_generate. build, the default, blocks on static checks; static checks do not install or run the generated app."
                  },
                  "releaseEvidence": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Hash-bound release evidence forwarded unchanged to code_generate.",
                    "properties": {
                      "rendered": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "interaction": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "accessibility": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "theme": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "determinism": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      },
                      "performance": {
                        "type": "object",
                        "description": "Structured input; read the full schema (#/$defs/releaseEvidenceItem) for its contract."
                      }
                    }
                  },
                  "save": {
                    "type": [
                      "string",
                      "object"
                    ],
                    "description": "Optional schema save config. String for name-only, or { name, tags } for full control. Variant fields: name, tags. Read the full schema for each variant."
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline up to 100,000 characters, else file. See full schema for details."
                      },
                      "skipValidation": {
                        "type": "boolean",
                        "description": "Skip the validate step (default false)."
                      },
                      "skipRender": {
                        "type": "boolean",
                        "description": "Skip the render step (default false)."
                      },
                      "checkA11y": {
                        "type": "boolean",
                        "description": "Checks declared foreground/background pairs derived from shared component CSS against… See full schema for details."
                      },
                      "renderApply": {
                        "type": "boolean",
                        "description": "Render with apply=true to include HTML output (default true)."
                      },
                      "compact": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true (default), omit token CSS from render output and return tokenCssRef instead. See full schema for details."
                      },
                      "typescript": {
                        "type": "boolean",
                        "description": "Alias: enable TypeScript output in code generation."
                      },
                      "styling": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "tokens",
                          "tailwind"
                        ],
                        "description": "Alias: styling strategy. Overridden by top-level styling if both provided."
                      },
                      "framework": {
                        "type": "string",
                        "enum": [
                          "react",
                          "vue",
                          "html"
                        ],
                        "description": "Alias: target framework. Overridden by top-level framework if both provided."
                      }
                    }
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Run Design Pipeline",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "health_check",
              "title": "Check Health",
              "description": "Read server readiness, live registry/store counts and retained proof summaries. Use it when checking availability and built brand/theme scopes; use object_registry for definitions or registry_snapshot for mappings. Returns status, server uptime, registry counts, token scopes and productReality evidence. status:ok means sources were readable; retained proofs identify their measured build and do not automatically certify this one. includeChangelog and sinceVersion filter the reported DSL changelog. tokens.defaultScope is configured metadata rather than an observed consumer scope; missing scope data is unavailable. Full schema: oods://schemas/health_check.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "includeChangelog": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, include DSL version changelog in the response."
                  },
                  "sinceVersion": {
                    "type": "string",
                    "description": "When provided with includeChangelog, only return changelog entries since this version."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Check Health",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "registry_snapshot",
              "title": "Snapshot Registry",
              "description": "Read mappings together with active traits and objects in one snapshot. Use it when reading combined registry data; object_registry reads one definition and object_register saves one. Returns mappings, traits, objects, generatedAt, ETag and registry loader issues. Defaults to a summary; detail full adds schemas. includeInternal exposes hidden objects; otherwise hiddenInternal counts omitted entries. Team definitions and shadowing are reported from live sources. This read-only call writes no snapshot file. Historical mapping fields remain stored data and do not imply current capabilities. Full schema: oods://schemas/registry_snapshot.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and registry.hiddenInternal counts them."
                  },
                  "detail": {
                    "type": "string",
                    "enum": [
                      "summary",
                      "full"
                    ],
                    "default": "summary",
                    "description": "summary (default), or full definitions, best with names."
                  },
                  "names": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Exact trait and object names; misses go in notFound.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "names item."
                    }
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Snapshot Registry",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "viz_render",
              "title": "Render Chart",
              "description": "Render one data-bound chart from rows or a structured data operand. Use it when creating chart output; use artifact_certify instead to grade a normalized chart or dashboard_render for multiple panels and KPIs. Returns Vega-Lite or ECharts specs, chart identities and requested SVG/accessibility output. pattern uses bundled data and forbids explicit data/encoding/presentation overrides. Otherwise use chartType plus encodings, omit chartType for recommendations, or supply structured intent. ECharts-primary families require their matching hierarchy/network/geo operand. brand/theme controls pixels; output.includeNormalizedSpec returns the IR required by artifact_certify. Temporal rendering uses UTC. For native ECharts after JSON transport, restore currency and precision with @oods/foundry/echarts.js. Charts take inline data only; URLs, images and links in the input are refused. Full schema: oods://schemas/viz_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "Chart token theme. HC preserves system colors and needs a forced-colors browser to resolve them."
                  },
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "CSS token brand for chart pixels. Omission resolves light/A."
                  },
                  "opacity": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1,
                    "description": "Constant mark opacity for Cartesian charts only; omission keeps renderer defaults."
                  },
                  "rows": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 5000,
                    "description": "Inline flat data rows. Use either rows or datasetRef.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "rows item."
                    }
                  },
                  "datasetRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Previously cached dataset id; alternative to rows."
                  },
                  "hierarchy": {
                    "type": "object",
                    "description": "Treemap/sunburst: {type:\"nested\",data:{name,value,children}} or {type:\"adjacency_list\",data:[{id,parentId,value}]}. See full schema."
                  },
                  "sankey": {
                    "type": "object",
                    "description": "Sankey input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names. Use chartType:\"sankey\"."
                  },
                  "chord": {
                    "type": "object",
                    "description": "Chord input: {nodes:[{name}],links:[{source,target,value}]}; links refer to node names; each directed pair must be unique."
                  },
                  "network": {
                    "type": "object",
                    "description": "Force graph input: {nodes:[{id,group}],links:[{source,target,value}]}; max 250 nodes. Use chartType:\"force_graph\". Full contract: oods://schemas/viz_render.input.json."
                  },
                  "geo": {
                    "type": "object",
                    "description": "Inline geojson or topojson plus topoObjectName, rows, join, valueField; optional point/flow coordinate fields. No network fetch. Re-register echartsSpec.__registration before rendering. Read full schema."
                  },
                  "chartType": {
                    "type": "string",
                    "enum": [
                      "bar",
                      "line",
                      "area",
                      "scatter",
                      "heatmap",
                      "treemap",
                      "sunburst",
                      "sankey",
                      "force_graph",
                      "choropleth",
                      "bubble_map",
                      "flow_map",
                      "chord"
                    ],
                    "description": "Chart family for explicit mode. Cartesian charts need rows/datasetRef and encodings; other families need their named data input. Omit to suggest from rows."
                  },
                  "encodings": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Cartesian bindings: each needs field; optional type, aggregate, title, format (d3-format), currency (ISO 4217).",
                    "properties": {
                      "x": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "y": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "color": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "size": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "shape": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      },
                      "detail": {
                        "type": [
                          "string",
                          "object"
                        ],
                        "description": "Field name or binding."
                      }
                    }
                  },
                  "id": {
                    "type": "string",
                    "description": "Optional stable identifier for the produced spec."
                  },
                  "name": {
                    "type": "string",
                    "description": "Optional human-friendly chart title."
                  },
                  "description": {
                    "type": "string",
                    "description": "Optional override for the synthesized accessibility description. When omitted, a non-empty description is generated from the encodings."
                  },
                  "strictFields": {
                    "type": "boolean",
                    "default": false,
                    "description": "Warn about unresolved fields and unmatched map joins (OODS-V131/V134). Default false preserves existing behavior."
                  },
                  "a11yEquivalence": {
                    "type": "boolean",
                    "default": true,
                    "description": "Check Vega-Lite accessible equivalents (default true). Errors stop rendering; warnings are returned. ECharts-primary scaffolds are not checked here."
                  },
                  "output": {
                    "type": "object",
                    "description": "Options: svg, width, height, compact, echarts, includeNormalizedSpec, includeA11y, includeVegaSpec, titlePlacement (chart or figure). SVG is opt-in; compact defaults true."
                  },
                  "intent": {
                    "type": "object",
                    "description": "Structured request: goal, measures:[{name}], dimensions:[{name}], optional chartFamily and measureRef. Uses rows or datasetRef; alternative to explicit chartType/encodings."
                  },
                  "pattern": {
                    "type": "string",
                    "enum": [
                      "pattern:viz:bubble-distribution",
                      "pattern:viz:correlation-matrix",
                      "pattern:viz:correlation-scatter",
                      "pattern:viz:detail-overview-bar",
                      "pattern:viz:diverging-bar",
                      "pattern:viz:drilldown-stacked-bar",
                      "pattern:viz:facet-small-multiples-line",
                      "pattern:viz:facet-target-band",
                      "pattern:viz:focus-context-line",
                      "pattern:viz:grouped-bar",
                      "pattern:viz:histogram",
                      "pattern:viz:layered-line-area",
                      "pattern:viz:multi-series-line",
                      "pattern:viz:running-total-area",
                      "pattern:viz:simple-bar",
                      "pattern:viz:sparkline-grid",
                      "pattern:viz:stacked-100-bar",
                      "pattern:viz:stacked-area-projection",
                      "pattern:viz:stacked-bar",
                      "pattern:viz:target-band-line",
                      "pattern:viz:time-grid-heatmap",
                      "pattern:viz:waterfall"
                    ],
                    "description": "Exact registered pattern identity; preserves source data and presentation. Cannot combine with chartType, data, intent or identity/presentation overrides."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Render Chart",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "dashboard_render",
              "title": "Render Dashboard",
              "description": "Render coordinated charts and KPIs from shared datasets and panel definitions. Use it when composing a dashboard; use viz_render instead for one chart or artifact_certify to grade each returned normalized chart. Returns layout, per-panel specs/hashes, computed KPI values, accessibility data and a reusable specRef. output.includeNormalizedSpec includes panel IR; output.html adds rendered HTML. brand/theme controls emitted pixels; selection and crossFilter apply caller-supplied filtering. resolveMeasures defaults true for governed measure references. output.contrastScan is a four-pair token preflight, not whole-document certification. Chord and flow_map are excluded from dashboards. Panels take inline data only. Full schema: oods://schemas/dashboard_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "CSS token theme for chart pixels, default light. See full schema for details."
                  },
                  "schemaVersion": {
                    "type": "string",
                    "const": "v0.1",
                    "description": "IR version discriminant (V01 convention). A future template/shape change bumps to v0.2."
                  },
                  "id": {
                    "type": "string",
                    "description": "Stable identifier for the dashboard instance."
                  },
                  "title": {
                    "type": "string",
                    "description": "Human-friendly dashboard title surfaced in UI + narration."
                  },
                  "datasets": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Shared, named tabular datasets. chart and KPI panels reference one by datasetId; panels that share a dataset can cross-filter each other.",
                    "items": {
                      "type": "object",
                      "description": "A named shared dataset. Panels reference it by id; cross-filter operates over its shared dimensional space."
                    }
                  },
                  "panels": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Heterogeneous panels: chart (11 of the 13 viz_render chartTypes; chord and flow_map are viz_render-only — plus its data branch) or kpi tiles.",
                    "items": {
                      "type": "object",
                      "description": "A dashboard panel: a chart panel (11 of the 13 viz_render chartTypes; chord and flow_map… See full schema for details."
                    }
                  },
                  "layout": {
                    "type": "object",
                    "description": "Optional layout hints consumed by the deterministic auto-layout resolver. Absent hints -> declared panel order + KPI-row-first defaults; the resolver emits abstract {x,y,w,h} (renderer-agnostic, the client sizes the canvas)."
                  },
                  "links": {
                    "type": "array",
                    "description": "Declared panel relationships, returned and shown as a labelled list in HTML. They apply no filters; cross-filtering uses selection and crossFilter.",
                    "items": {
                      "type": "object",
                      "description": "A declared source-to-target relationship displayed in the HTML reference list. See full schema for details."
                    }
                  },
                  "crossFilter": {
                    "type": "object",
                    "description": "Active selection combination. Each active source contributes a predicate; ignoreSelfSource controls whether its own panel is filtered. Declared links do not change this behavior."
                  },
                  "onPanelError": {
                    "type": "string",
                    "enum": [
                      "placeholder",
                      "omit"
                    ],
                    "default": "placeholder",
                    "description": "What a failed panel does: 'placeholder' (default) shows an accessible error panel in its place; 'omit' drops it from the layout."
                  },
                  "resolveMeasures": {
                    "type": "boolean",
                    "default": true,
                    "description": "Phase-3 governed-measure resolution switch. See full schema for details."
                  },
                  "strictFields": {
                    "type": "boolean",
                    "default": false,
                    "description": "Field-presence strict switch. See full schema for details."
                  },
                  "strictDatasets": {
                    "type": "boolean",
                    "default": false,
                    "description": "Unknown-datasetId strict switch. See full schema for details."
                  },
                  "a11yEquivalence": {
                    "type": "boolean",
                    "default": true,
                    "description": "A11y equivalence certify-at-emission switch. See full schema for details."
                  },
                  "a11y": {
                    "type": "object",
                    "description": "dashboard-level accessibility: a cross-panel summary + reading/focus order. The per-chart AccessibilitySpec stays per-panel; this is the dashboard envelope."
                  },
                  "tokenCssRef": {
                    "type": "string",
                    "description": "Token strategy. See full schema for details."
                  },
                  "brand": {
                    "type": "string",
                    "description": "CSS token brand for the dashboard document and chart pixels; defaults to A. The contrast scan grades the same scoped document tokens."
                  },
                  "selection": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "description": "One panel's active cross-filter selection (point/categorical only in v1)."
                    },
                    "description": "Optional accumulated cross-filter SelectionState, keyed by sourceWidgetId (one active selection per source). See full schema for details."
                  },
                  "output": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional render output controls (mirrors viz_render).",
                    "properties": {
                      "compact": {
                        "type": "boolean",
                        "default": true,
                        "description": "When true, omit full token CSS and return a tokenCssRef instead."
                      },
                      "echarts": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, also include the ECharts option for tabular panels (ECharts-primary panels always include it)."
                      },
                      "includeNormalizedSpec": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, also return each successfully rendered chart panel's intermediate… See full schema for details."
                      },
                      "html": {
                        "type": "boolean",
                        "default": false,
                        "description": "Opt-in render-to-SVG export. See full schema for details."
                      },
                      "dataTable": {
                        "type": "boolean",
                        "default": false,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "contrastScan": {
                        "type": "boolean",
                        "default": false,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "dataQualityField": {
                        "type": "string",
                        "minLength": 1,
                        "description": "A11y completeness. See full schema for details."
                      },
                      "includeA11y": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, attach a structured two-part text alternative (accessible data table +… See full schema for details."
                      }
                    }
                  }
                },
                "required": [
                  "schemaVersion",
                  "datasets",
                  "panels",
                  "a11y"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Render Dashboard",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "artifact_certify",
              "title": "Certify Artifact",
              "description": "Grade a normalized chart's accessibility equivalence, determinism, contrast and accuracy. Use it when checking the IR returned by viz_render or dashboard_render; use viz_render instead to create chart output and dashboard_render to compose panels. Returns coverage, conformant, findings and four pillar verdicts. Pass spec alone for Cartesian charts; ECharts-primary charts need the same matching data branch used for rendering. Spec-only ECharts remains uncertified. brand/theme must match rendering; high contrast reports forced-colors exemption without a numeric contrast grade. A certified chart may still be nonconformant; inspect all verdicts. This read-only check does not repair charts and never fetches a URL. Full schema: oods://schemas/artifact_certify.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "spec": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "An OODS Foundry normalized chart spec: the normalizedSpec that viz_render returns. The handler validates it against the full spec schema."
                  },
                  "data": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional operand for the 8 ECharts-primary types (treemap/sunburst/sankey/force_graph/choropleth/bubble_map/flow_map/chord): the same data branch viz_render takes, so certify re-emits the option the render path would… See full schema for details.",
                    "properties": {
                      "hierarchy": {
                        "type": "object",
                        "description": "Hierarchy data for chartType 'treemap' or 'sunburst' (explicit-only) — used instead of… See full schema for details."
                      },
                      "sankey": {
                        "type": "object",
                        "description": "Flow data for chartType 'sankey' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "chord": {
                        "type": "object",
                        "description": "Chord data for chartType 'chord' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "network": {
                        "type": "object",
                        "description": "Network data for chartType 'force_graph' (explicit-only) — used instead of rows/datasetRef + x/y encodings. See full schema for details."
                      },
                      "geo": {
                        "type": "object",
                        "description": "Geo data for chartType 'choropleth', 'bubble_map', or 'flow_map' (explicit-only) — used… See full schema for details."
                      }
                    }
                  },
                  "theme": {
                    "type": "string",
                    "enum": [
                      "light",
                      "dark",
                      "hc"
                    ],
                    "default": "light",
                    "description": "CSS token theme for chart pixels, default light. See full schema for details."
                  },
                  "brand": {
                    "type": "string",
                    "default": "A",
                    "description": "CSS brand scope, matching viz_render for the same normalized spec and data operand."
                  }
                },
                "required": [
                  "spec"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Certify Artifact",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "fidelity_preview",
              "title": "Preview Fidelity",
              "description": "Draw object relationships or compositions at four fidelity levels. Use it when reviewing static structure or appearance; use design_preview instead to run generated React/Vue behavior. Returns SVG or HTML with fidelity-specific structure and provenance. fidelityKind selects boxes-arrows, wireframe, review or branded-mockup. Supply exactly one object, objects set, schema/schemaRef, fixture or legacy manifest; object/context composes a screen. Object diagrams show declared relationships; schema diagrams show containment. Wireframe/review show component bindings and recorded confidence, and branded mockups use static sample data. options.brandOverlay/theme selects built tokens. These drawings do not certify usability or referential integrity. Full schema: oods://schemas/fidelity_preview.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "fidelityKind": {
                    "type": "string",
                    "enum": [
                      "boxes-arrows",
                      "wireframe",
                      "review",
                      "branded-mockup"
                    ],
                    "description": "Which HTML fidelity emitter to invoke."
                  },
                  "fixture": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Named allow-listed Object Catalog fixture shipped in registry data; unknown names return OODS-FP-001."
                  },
                  "manifest": {
                    "type": "object",
                    "required": [
                      "entities"
                    ],
                    "description": "Inline Object Catalog manifest to render — an alternative to `fixture`. See full schema for details.",
                    "properties": {
                      "entities": {
                        "type": "array",
                        "description": "Object Catalog entities to render.",
                        "items": {
                          "type": "object",
                          "description": "One Object Catalog entity."
                        }
                      }
                    }
                  },
                  "options": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Operation options.",
                    "properties": {
                      "variant": {
                        "type": "string",
                        "description": "Projection-variant selector passed through to the emitter / runPreEmit())."
                      },
                      "brandOverlay": {
                        "type": "string",
                        "description": "Built brand for object relationship diagrams, composed wireframes, reviews, component… See full schema for details."
                      },
                      "reviewThreshold": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Recorded confidence below this threshold is flagged in review. See full schema for details."
                      },
                      "includeStyles": {
                        "type": "boolean",
                        "default": true,
                        "description": "Omit HTML style blocks when false. Diagram SVG retains its explicit paint attributes."
                      },
                      "depth": {
                        "type": "integer",
                        "default": 1,
                        "minimum": 0,
                        "maximum": 3,
                        "description": "Outgoing relationship depth for a single object. An explicit objects set is never expanded."
                      },
                      "theme": {
                        "type": "string",
                        "enum": [
                          "light",
                          "dark",
                          "hc"
                        ],
                        "default": "light",
                        "description": "Built token scope for object relationship diagrams and composed branded mockups."
                      }
                    }
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Registered object. boxes-arrows draws its declared relationships; other views compose it in context."
                  },
                  "objects": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 32,
                    "description": "Explicit object set; draw only declared edges within this set. boxes-arrows only.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "objects item."
                    }
                  },
                  "schema": {
                    "type": "object",
                    "description": "Inline composed screen tree; validated as UiSchema."
                  },
                  "schemaRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Cached UiSchema from design_compose or schema load; missing/expired refs return a typed error."
                  },
                  "context": {
                    "type": "string",
                    "enum": [
                      "list",
                      "detail",
                      "form",
                      "timeline",
                      "card",
                      "inline",
                      "workflow",
                      "dashboard"
                    ],
                    "default": "detail",
                    "description": "Context to compose for a single object in wireframe, review or branded-mockup."
                  }
                },
                "required": [
                  "fidelityKind"
                ],
                "additionalProperties": false
              },
              "annotations": {
                "title": "Preview Fidelity",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "component_map",
              "title": "Write Component Mappings",
              "description": "Write component substitutions or stage an intake draft. Use it when connecting React/Vue exports, shadcn source or built Storybook files; use component_map_read to list, resolve or review drafts. Returns staged evidence or write outcomes. apply with draftId requires accepted ids and writes adapters and mappings atomically. create takes one entry, mappings or mappingsPath; create and report-based apply preview unless apply:true. update and delete always write. Full schema: oods://schemas/component_map.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "apply",
                      "create",
                      "update",
                      "delete",
                      "draft"
                    ],
                    "description": "Choose apply, create, update, delete, draft."
                  },
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "For apply: When true, persist registry mutations. Defaults to dry-run. For create: When true, write changes to disk. Actions: apply, create."
                  },
                  "minConfidence": {
                    "type": "number",
                    "default": 0.75,
                    "minimum": 0,
                    "maximum": 1,
                    "description": "Minimum confidence to apply; lower candidates are queued. Actions: apply."
                  },
                  "reportPath": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Filesystem path to a reconciliation_report.json artifact. Actions: apply."
                  },
                  "report": {
                    "type": "object",
                    "description": "Reconciliation report. Actions: apply."
                  },
                  "mappings": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Create entries, each without apply. All entries are checked before one atomic write. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "A single-create payload without action or apply; the handler checks every value against… See full schema for details."
                    }
                  },
                  "mappingsPath": {
                    "type": "string",
                    "pattern": "^/[\\s\\S]*$",
                    "description": "Absolute path to a JSON document { mappings: [...] }, using the same entry shape. Actions: create."
                  },
                  "substitution": {
                    "type": "object",
                    "required": [
                      "component"
                    ],
                    "additionalProperties": false,
                    "description": "Component substitution with React/Vue exports and prop translations. Actions: create.",
                    "properties": {
                      "component": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The shipped OODS Foundry component id being replaced."
                      },
                      "react": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "react. Fields: localPath, package, export, version, passthrough, props, shadcn. See full schema."
                      },
                      "vue": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "vue. Fields: localPath, package, export, version, passthrough, props, shadcn. See full schema."
                      }
                    }
                  },
                  "externalSystem": {
                    "type": "string",
                    "minLength": 1,
                    "description": "External design system name (for example, 'team'). Actions: create, draft."
                  },
                  "externalComponent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "External component name. Actions: create."
                  },
                  "oodsTraits": {
                    "type": "array",
                    "minItems": 0,
                    "description": "OODS trait names this component maps to. Actions: create.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "oods Traits item."
                    }
                  },
                  "propMappings": {
                    "type": "array",
                    "description": "Property translations from external to OODS prop names. Actions: create.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "prop Mappings item. Fields: externalProp, oodsProp, coercion. See full schema."
                    }
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "auto",
                      "manual"
                    ],
                    "default": "manual",
                    "description": "'auto' for machine-generated, 'manual' for human-curated. Actions: create."
                  },
                  "metadata": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Mapping metadata. Actions: create.",
                    "properties": {
                      "author": {
                        "type": "string",
                        "description": "author."
                      },
                      "notes": {
                        "type": "string",
                        "description": "notes."
                      }
                    }
                  },
                  "disambiguation_decisions": {
                    "type": "array",
                    "description": "Review decisions to append; does not gate creation. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Review decision record."
                    }
                  },
                  "preferred_terms": {
                    "type": "array",
                    "description": "Canonical terms to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Canonical term record."
                    }
                  },
                  "capabilities": {
                    "type": "array",
                    "description": "Capability definitions to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Capability record."
                    }
                  },
                  "projection_variants": {
                    "type": "array",
                    "description": "Cross-surface mapping variants to append. Actions: create.",
                    "items": {
                      "type": "object",
                      "description": "Cross-surface variant record."
                    }
                  },
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Mapping ID. Actions: update (required), delete (required)."
                  },
                  "updates": {
                    "type": "object",
                    "description": "Fields to change: oodsTraits, confidence, propMappings, metadata, substitution. Omitted fields stay unchanged. Actions: update (required)."
                  },
                  "source": {
                    "type": "object",
                    "required": [
                      "project",
                      "format"
                    ],
                    "additionalProperties": false,
                    "description": "Actions: draft (required).",
                    "properties": {
                      "project": {
                        "type": "string",
                        "pattern": "^/[\\s\\S]*$",
                        "description": "project."
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "shadcn",
                          "storybook"
                        ],
                        "description": "format."
                      },
                      "storybook": {
                        "type": "string",
                        "description": "storybook."
                      }
                    }
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^components-[a-f0-9]{64}$",
                    "description": "Actions: apply (required)."
                  },
                  "accept": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Actions: apply (required).",
                    "items": {
                      "type": "string",
                      "description": "accept item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Write Component Mappings",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "component_map_read",
              "title": "Read Component Mappings",
              "description": "Read component substitutions and staged intake evidence. Use it when listing mappings, resolving an external component or reviewing a draftId; use component_map to stage or apply changes. Returns entries, matches or draft evidence including proposed adapters and unmatched elements. Reads local stores without generating adapters or changing project files. Full schema: oods://schemas/component_map_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "resolve",
                      "show"
                    ],
                    "description": "Choose list, resolve, show."
                  },
                  "externalSystem": {
                    "type": "string",
                    "minLength": 1,
                    "description": "For list: Filter mappings to a specific external system (e.g., 'team'). For resolve: External design system name (e.g., 'team'). Actions: list, resolve (required)."
                  },
                  "cursor": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Pagination cursor. Use the previous page's nextCursor to continue. When cursor or limit is provided, pagination defaults to 100 items per page. Actions: list."
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500,
                    "description": "Page size for pagination. Omitting both cursor and limit preserves the legacy full-list response. Actions: list."
                  },
                  "externalComponent": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Component name in the external system (e.g., 'Button'). Actions: resolve (required)."
                  },
                  "draftId": {
                    "type": "string",
                    "pattern": "^components-[a-f0-9]{64}$",
                    "description": "Actions: show (required)."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Component Mappings",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_store",
              "title": "Save Or Delete Schemas",
              "description": "Save or delete a named composition schema. Use it when retaining a UiSchema across sessions; use schema_read to list or load saved schemas. Returns the saved metadata or deletion result. save takes schemaRef, overwrites that name and increments its version; only the latest is loadable. Both actions write immediately. Full schema: oods://schemas/schema_store.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "save",
                      "delete"
                    ],
                    "description": "Choose save, delete."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_-]+$",
                    "description": "Saved schema name in slug format (letters, numbers, hyphens, underscores). Actions: save (required), delete (required)."
                  },
                  "schemaRef": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Reference to an in-memory schema produced by design_compose. Actions: save (required)."
                  },
                  "tags": {
                    "type": "array",
                    "description": "Optional tags for filtering and discovery. Actions: save.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "tags item."
                    }
                  },
                  "author": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Optional author metadata. Actions: save."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Save Or Delete Schemas",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_read",
              "title": "Read Saved Schemas",
              "description": "Read saved composition schemas. Use it when listing saved work or loading a named schema; use schema_store to save or delete one. Returns metadata or the schema with a new process-local schemaRef, valid for 30 minutes. Tool input schemas are separate MCP resources. Full schema: oods://schemas/schema_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "load"
                    ],
                    "description": "Choose list, load."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9_-]+$",
                    "description": "Saved schema name in slug format. Actions: load (required)."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Object filter. Actions: list."
                  },
                  "context": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Rendering-context filter. Actions: list."
                  },
                  "tags": {
                    "type": "array",
                    "description": "Actions: list.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "tags item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Saved Schemas",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_registry",
              "title": "Read Object Registry",
              "description": "Read object and trait definitions or validate YAML without saving. Use it when exploring shapes or checking a definition; use object_register to save one or object_import to draft from a schema file. Returns definitions, composed traits, validation findings or cache reload status. includeInternal reveals hidden objects; reload clears only process caches. Full schema: oods://schemas/object_registry.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "list",
                      "show",
                      "validate",
                      "reload"
                    ],
                    "description": "Choose list, show, validate, reload."
                  },
                  "domain": {
                    "type": "string",
                    "description": "Filter to objects in a specific domain (e.g. 'core.identity', 'saas.billing'). Actions: list."
                  },
                  "maturity": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "alpha",
                      "beta",
                      "stable"
                    ],
                    "description": "Filter by metadata maturity level. Actions: list."
                  },
                  "trait": {
                    "type": "string",
                    "description": "Filter to objects composing a given trait (e.g. 'Priceable', 'lifecycle/Stateful'). Actions: list."
                  },
                  "includeInternal": {
                    "type": "boolean",
                    "default": false,
                    "description": "Also list OODS Foundry's internal (non-business) objects, after the business objects. Without it they are left out and hiddenInternal counts them. Actions: list."
                  },
                  "name": {
                    "type": "string",
                    "description": "Object name to look up (e.g. 'User', 'Product', 'Invoice'). Actions: show (required)."
                  },
                  "context": {
                    "type": "string",
                    "description": "Optional: filter view_extensions to a single context (e.g. 'detail', 'list', 'form', 'timeline', 'card', 'inline'). Actions: show."
                  },
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The whole definition as YAML: an object file starts with \"object:\", a trait file with \"trait:\" (the same format as OODS Foundry's own objects/ and traits/). Actions: validate (required). See full schema for details."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Object Registry",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_register",
              "title": "Register Object Or Trait",
              "description": "Register an object or trait from reviewed YAML. Use it when saving a definition; use object_registry to list, inspect or validate without writing. Returns the saved definition and registry result. overwrite replaces your own definition. Team objects may shadow shipped objects; traits cannot reuse shipped names. Relationships must name valid targets and fields. Full schema: oods://schemas/object_register.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "register"
                    ],
                    "description": "Choose register."
                  },
                  "yaml": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The whole definition as YAML: an object file starts with \"object:\", a trait file with \"trait:\" (the same format as OODS Foundry's own objects/ and traits/). Actions: register (required). See full schema for details."
                  },
                  "overwrite": {
                    "type": "boolean",
                    "default": false,
                    "description": "Replace a definition of yours with this name; without it a name you already registered is refused (OODS-C004). Actions: register."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Register Object Or Trait",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "schema_render",
              "title": "Render Or Validate Schema",
              "description": "Validate a UiSchema or render static HTML and fragments. Use it when checking schema or patch contracts; use design_preview for a running app or schema_store to save. Returns diagnostics or rendered output. action selects validate/render; mode selects full/patch. apply:true enables rendering, without saving a schema. Render includes token CSS unless output.compact; oversized output or output.payloadMode:file writes only reply payloads. brand and scope options affect documents; ignored fragment options are diagnosed. Full schema: oods://schemas/schema_render.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "render",
                      "validate"
                    ],
                    "description": "Selects the per-action handler. 'render' -> schema_render action=render, 'validate' -> schema_render action=validate."
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "full",
                      "patch"
                    ],
                    "default": "full",
                    "description": "Full schema or patch mode. Actions: render, validate."
                  },
                  "schema": {
                    "type": "object",
                    "description": "UiSchema. Actions: render, validate."
                  },
                  "schemaRef": {
                    "type": "string",
                    "description": "Reference to a cached UiSchema returned by design_compose. Actions: render, validate."
                  },
                  "patch": {
                    "type": [
                      "array",
                      "object"
                    ],
                    "description": "Required when mode='patch'. Accepts JSON Patch array or node patch object(s). Actions: render, validate.",
                    "items": {
                      "type": "object",
                      "description": "patch item."
                    }
                  },
                  "baseTree": {
                    "type": "object",
                    "description": "Required when mode='patch' to provide the base UiSchema to patch. Actions: render, validate."
                  },
                  "brand": {
                    "type": "string",
                    "description": "Brand to render. Actions: render. See full schema for details."
                  },
                  "options": {
                    "type": "object",
                    "default": {},
                    "additionalProperties": false,
                    "description": "Operation options. Actions: render, validate.",
                    "properties": {
                      "includeTree": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for render."
                      },
                      "includeNormalized": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for validate."
                      },
                      "checkComponents": {
                        "type": "boolean",
                        "default": true,
                        "description": "Only for validate."
                      },
                      "checkA11y": {
                        "type": "boolean",
                        "default": false,
                        "description": "Checks declared foreground/background pairs derived from shared component CSS against… See full schema for details."
                      }
                    }
                  },
                  "output": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Optional render output controls. Omitting this object preserves full-document behavior. Actions: render.",
                    "properties": {
                      "format": {
                        "type": "string",
                        "enum": [
                          "document",
                          "fragments"
                        ],
                        "default": "document",
                        "description": "format."
                      },
                      "strict": {
                        "type": "boolean",
                        "default": false,
                        "description": "strict."
                      },
                      "includeCss": {
                        "type": "boolean",
                        "default": true,
                        "description": "include Css."
                      },
                      "compact": {
                        "type": "boolean",
                        "default": false,
                        "description": "Opt in to omitting token CSS; the default includes token CSS."
                      },
                      "showConfidence": {
                        "type": "boolean",
                        "default": false,
                        "description": "When true, emit data-oods-confidence and data-confidence-level attributes on rendered… See full schema for details."
                      },
                      "confidenceThreshold": {
                        "type": "number",
                        "default": 0.5,
                        "minimum": 0,
                        "maximum": 1,
                        "description": "Confidence threshold for low-confidence affordance. See full schema for details."
                      },
                      "tokenOverlay": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Inline token-delta object resolved to a scoped :root{} override; applied only in document… See full schema for details."
                      },
                      "skinOverlay": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Inline measured-colour delta resolved against the OODS Foundry-owned style library to a… See full schema for details."
                      },
                      "payloadMode": {
                        "type": "string",
                        "enum": [
                          "inline",
                          "file"
                        ],
                        "description": "Unset: inline, unless the output would exceed 100,000 characters, in which case it is… See full schema for details."
                      }
                    }
                  },
                  "apply": {
                    "type": "boolean",
                    "description": "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."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Render Or Validate Schema",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "object_import",
              "title": "Import Objects",
              "description": "Draft objects from local OpenAPI, JSON Schema, Postgres SQL, Prisma, dbt, OData or GraphQL files, then apply accepted proposals. Use it when importing a schema; use object_import_read to review a staged object. Returns importId, staged files, proposal counts and re-import differences, or batch registration results. draft takes source.path or source.content; apply requires explicit objects and proposal ids. overwrite replaces team objects; confirmShipped names approved shipped replacements. No network fetch or code execution. Full schema: oods://schemas/object_import.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "apply"
                    ],
                    "description": "Choose draft, apply."
                  },
                  "source": {
                    "type": "object",
                    "additionalProperties": false,
                    "description": "Local file/folder or inline schema. Used only by draft.",
                    "properties": {
                      "path": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Local file or folder. References must stay inside the source folder. Aggregate limit 128 MiB."
                      },
                      "content": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Inline schema text, at most 1 MiB. Set format for SQL, Prisma, OData XML or GraphQL SDL."
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "description": "File name for inline provenance; no directories."
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "openapi",
                          "json-schema",
                          "sql",
                          "prisma",
                          "dbt",
                          "odata",
                          "graphql"
                        ],
                        "description": "Explicit source format; inferred from file extension or document when omitted."
                      }
                    }
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Content-addressed import id from draft. Required by show and apply."
                  },
                  "objects": {
                    "type": "array",
                    "minItems": 1,
                    "description": "Explicit accepted object names and optional proposal ids for apply.",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "objects item. Fields: name, proposals, currencies. See full schema."
                    }
                  },
                  "overwrite": {
                    "type": "boolean",
                    "default": false,
                    "description": "Allow replacing existing team objects."
                  },
                  "confirmShipped": {
                    "type": "array",
                    "description": "Each shipped object name whose replacement is explicitly confirmed.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "description": "confirm Shipped item."
                    }
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Import Objects",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            },
            {
              "name": "object_import_read",
              "title": "Read Import Draft",
              "description": "Read one staged object import. Use it when reviewing YAML, graded proposals and unmapped elements before acceptance; use object_import to draft or apply. Returns the named object, proposals and differences from its registered definition. Supply importId and the exact object name. Reading never rewrites the staged report. Full schema: oods://schemas/object_import_read.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "show"
                    ],
                    "description": "Choose show."
                  },
                  "importId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Content-addressed import id from draft. Required by show and apply."
                  },
                  "object": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Exact draft object name for show."
                  }
                },
                "required": [
                  "action"
                ]
              },
              "annotations": {
                "title": "Read Import Draft",
                "readOnlyHint": true,
                "destructiveHint": false,
                "idempotentHint": true,
                "openWorldHint": false
              }
            },
            {
              "name": "a11y_scan",
              "title": "Scan Accessibility",
              "description": "Grade built token contrast and optional static screen accessibility. Use it when checking component token pairs and HTML structure; use artifact_certify for chart pillars or design_preview for measured browser evidence. Checks button states per intent, text at 4.5:1, and icons/progress/meter marks at 3:1. Returns measured pairs, document findings and explicit unmeasured cases. Without a schema it checks every built brand/theme; a UiSchema scopes pairs to its components and adds static HTML checks. Dynamic/inherited/system paints remain unmeasured. Browser layout, keyboard/focus and screen-reader behavior are not tested. apply:true writes the report, transcript and bundle index; omission writes nothing. Full schema: oods://schemas/a11y_scan.input.json.",
              "inputSchema": {
                "type": "object",
                "properties": {
                  "apply": {
                    "type": "boolean",
                    "default": false,
                    "description": "When true, write the a11y report artifact to the artifacts directory."
                  },
                  "schema": {
                    "type": "object",
                    "description": "Render this UiSchema in memory and inspect its HTML; select declared token pairs for its rendered components."
                  }
                },
                "additionalProperties": false
              },
              "annotations": {
                "title": "Scan Accessibility",
                "readOnlyHint": false,
                "destructiveHint": true,
                "idempotentHint": false,
                "openWorldHint": false
              }
            }
          ]
        },
        "resources/list": {
          "resources": [
            {
              "uri": "ui://oods-forge/preview/a1ccf996c571/app.html",
              "name": "OODS Foundry design preview",
              "title": "OODS Foundry design preview",
              "description": "The running-app preview of a composition version, for a client that renders MCP Apps inside the conversation (revision a1ccf996c571, 2346476 bytes, self-contained).",
              "mimeType": "text/html;profile=mcp-app"
            },
            {
              "uri": "oods://schemas/tokens_build.input.json",
              "name": "tokens_build input schema",
              "title": "Build Tokens Schema",
              "description": "Full server validation schema for tokens_build; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/structured_data_fetch.input.json",
              "name": "structured_data_fetch input schema",
              "title": "Fetch Structured Data Schema",
              "description": "Full server validation schema for structured_data_fetch; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_apply.input.json",
              "name": "brand_apply input schema",
              "title": "Apply Brand Changes Schema",
              "description": "Full server validation schema for brand_apply; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_create.input.json",
              "name": "brand_create input schema",
              "title": "Create Brand Schema",
              "description": "Full server validation schema for brand_create; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/brand_read.input.json",
              "name": "brand_read input schema",
              "title": "Read Brand Data Schema",
              "description": "Full server validation schema for brand_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/catalog_list.input.json",
              "name": "catalog_list input schema",
              "title": "List Components Schema",
              "description": "Full server validation schema for catalog_list; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/code_generate.input.json",
              "name": "code_generate input schema",
              "title": "Generate Code Schema",
              "description": "Full server validation schema for code_generate; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_compose.input.json",
              "name": "design_compose input schema",
              "title": "Compose Design Schema",
              "description": "Full server validation schema for design_compose; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_preview.input.json",
              "name": "design_preview input schema",
              "title": "Preview Running Design Schema",
              "description": "Full server validation schema for design_preview; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/design_versions.input.json",
              "name": "design_versions input schema",
              "title": "Read Design Versions Schema",
              "description": "Full server validation schema for design_versions; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/pipeline_run.input.json",
              "name": "pipeline_run input schema",
              "title": "Run Design Pipeline Schema",
              "description": "Full server validation schema for pipeline_run; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/health_check.input.json",
              "name": "health_check input schema",
              "title": "Check Health Schema",
              "description": "Full server validation schema for health_check; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/registry_snapshot.input.json",
              "name": "registry_snapshot input schema",
              "title": "Snapshot Registry Schema",
              "description": "Full server validation schema for registry_snapshot; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/viz_render.input.json",
              "name": "viz_render input schema",
              "title": "Render Chart Schema",
              "description": "Full server validation schema for viz_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/dashboard_render.input.json",
              "name": "dashboard_render input schema",
              "title": "Render Dashboard Schema",
              "description": "Full server validation schema for dashboard_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/artifact_certify.input.json",
              "name": "artifact_certify input schema",
              "title": "Certify Artifact Schema",
              "description": "Full server validation schema for artifact_certify; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/fidelity_preview.input.json",
              "name": "fidelity_preview input schema",
              "title": "Preview Fidelity Schema",
              "description": "Full server validation schema for fidelity_preview; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/component_map.input.json",
              "name": "component_map input schema",
              "title": "Write Component Mappings Schema",
              "description": "Full server validation schema for component_map; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/component_map_read.input.json",
              "name": "component_map_read input schema",
              "title": "Read Component Mappings Schema",
              "description": "Full server validation schema for component_map_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_store.input.json",
              "name": "schema_store input schema",
              "title": "Save Or Delete Schemas Schema",
              "description": "Full server validation schema for schema_store; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_read.input.json",
              "name": "schema_read input schema",
              "title": "Read Saved Schemas Schema",
              "description": "Full server validation schema for schema_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_registry.input.json",
              "name": "object_registry input schema",
              "title": "Read Object Registry Schema",
              "description": "Full server validation schema for object_registry; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_register.input.json",
              "name": "object_register input schema",
              "title": "Register Object Or Trait Schema",
              "description": "Full server validation schema for object_register; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/schema_render.input.json",
              "name": "schema_render input schema",
              "title": "Render Or Validate Schema Schema",
              "description": "Full server validation schema for schema_render; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_import.input.json",
              "name": "object_import input schema",
              "title": "Import Objects Schema",
              "description": "Full server validation schema for object_import; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/object_import_read.input.json",
              "name": "object_import_read input schema",
              "title": "Read Import Draft Schema",
              "description": "Full server validation schema for object_import_read; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            },
            {
              "uri": "oods://schemas/a11y_scan.input.json",
              "name": "a11y_scan input schema",
              "title": "Scan Accessibility Schema",
              "description": "Full server validation schema for a11y_scan; relative schema references are readable under oods://schemas/.",
              "mimeType": "application/schema+json"
            }
          ]
        },
        "resources/templates/list": {
          "resourceTemplates": [
            {
              "uriTemplate": "oods://schemas/{file}",
              "name": "tool schemas",
              "title": "Tool Schemas",
              "description": "Full server validation schemas, one JSON Schema file per tool and the files they reference.",
              "mimeType": "application/schema+json"
            },
            {
              "uriTemplate": "ui://oods-forge/compositions/{compositionId}/{version}/{framework}.js{?brand,theme}",
              "name": "composition module",
              "title": "Composition Module",
              "description": "The compiled module of one composition version, framework react or vue.",
              "mimeType": "text/javascript"
            },
            {
              "uriTemplate": "ui://oods-forge/compositions/{compositionId}/{version}/{framework}.css{?brand,theme}",
              "name": "composition styles",
              "title": "Composition Styles",
              "description": "The stylesheet of one composition version, framework react or vue.",
              "mimeType": "text/css"
            }
          ]
        }
      },
      "errors": {
        "prompts/list": {
          "code": -32601,
          "message": "Method not found"
        },
        "prompts/get": {
          "code": -32601,
          "message": "Method not found"
        },
        "completion/complete": {
          "code": -32601,
          "message": "Method not found"
        },
        "logging/setLevel": {
          "code": -32601,
          "message": "Method not found"
        },
        "resources/subscribe": {
          "code": -32601,
          "message": "Method not found"
        },
        "resources/unsubscribe": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/get": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/result": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/list": {
          "code": -32601,
          "message": "Method not found"
        },
        "tasks/cancel": {
          "code": -32601,
          "message": "Method not found"
        }
      }
    }
  }
}
