{
  "generatedAt": "2026-09-18T15:27:37.923Z",
  "contracts": [
    {
      "id": "mkt-global-navigation",
      "criticality": "Critical",
      "api": {
        "stableId": "mkt-global-navigation",
        "rootSelector": "[data-component=\"mkt-global-navigation\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"mkt-global-navigation\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "brand link",
          "order": 1
        },
        {
          "name": "manifesto link",
          "order": 2
        },
        {
          "name": "team link",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "default and narrow-width navigation are observed; open-menu behavior is not claimed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Enter activates each anchor; focus follows document order.",
      "contentLimits": "Link labels stay one line; three links observed.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 keeps the horizontal link row; 1440 retains the top edge alignment.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": "[data-component=\"mkt-global-navigation\"]",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "links",
          "type": "NavLink[]",
          "default": [
            {
              "label": "TypeSafe AI",
              "href": "/"
            },
            {
              "label": "Manifesto",
              "href": "/manifesto"
            },
            {
              "label": "Our Team",
              "href": "/team"
            }
          ],
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "link activation",
          "to": "route"
        }
      ],
      "typeDefinitions": {
        "NavLink": {
          "fields": [
            {
              "name": "label",
              "type": "string",
              "required": true
            },
            {
              "name": "href",
              "type": "string",
              "required": true
            },
            {
              "name": "current",
              "type": "boolean",
              "required": false
            }
          ]
        }
      }
    },
    {
      "id": "mkt-announcement-strip",
      "criticality": "Standard",
      "api": {
        "stableId": "mkt-announcement-strip",
        "rootSelector": "[data-component=\"mkt-announcement-strip\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"mkt-announcement-strip\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "date/category",
          "order": 1
        },
        {
          "name": "article title",
          "order": 2
        },
        {
          "name": "read-more anchor",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "default only observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Anchor is keyboard-operable with Enter.",
      "contentLimits": "Title and metadata may wrap inside the strip.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 is a 300px-wide centered strip; desktop remains a compact announcement row.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": "[data-component=\"mkt-announcement-strip\"]",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "date",
          "type": "string",
          "default": "Sept 15, 2026",
          "required": true
        },
        {
          "name": "href",
          "type": "string",
          "default": "article route",
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "article activation",
          "to": "article route"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "mkt-hero-headline",
      "criticality": "Important",
      "api": {
        "stableId": "mkt-hero-headline",
        "rootSelector": "[data-component=\"mkt-hero-headline\"]",
        "domHooks": [],
        "callbacks": []
      },
      "anatomy": [
        {
          "name": "eyebrow",
          "order": 1
        },
        {
          "name": "headline",
          "order": 2
        },
        {
          "name": "primary action row",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "content and responsive typography observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "No widget focus; actions carry the focus.",
      "contentLimits": "Headline is authored copy; allow wrap, never crop.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "Observed source headline is 54px/43.2px at 390 and wraps across the hero; 1440 uses its source-sized desktop measure.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": "[data-component=\"mkt-hero-headline\"]",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "headline",
          "type": "string",
          "default": "The First (Public) System One Model…",
          "required": true
        },
        {
          "name": "actions",
          "type": "Action[]",
          "default": [
            {
              "label": "Join Waitlist",
              "opensDialog": true
            },
            {
              "label": "Join Discord",
              "href": "https://discord.gg/typesafe"
            }
          ],
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "static",
          "on": "none",
          "to": "static"
        }
      ],
      "typeDefinitions": {
        "Action": {
          "fields": [
            {
              "name": "label",
              "type": "string",
              "required": true
            },
            {
              "name": "href",
              "type": "string",
              "required": false
            },
            {
              "name": "opensDialog",
              "type": "boolean",
              "required": false
            }
          ]
        }
      }
    },
    {
      "id": "mkt-action-link",
      "criticality": "Critical",
      "api": {
        "stableId": "mkt-action-link",
        "rootSelector": ".text-action, .large-link",
        "domHooks": [
          {
            "event": "navigate",
            "selector": ".text-action, .large-link"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "action label",
          "order": 1
        },
        {
          "name": "arrow/icon",
          "order": 2
        },
        {
          "name": "anchor target",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "link default observed; hover/focus not separately captured",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Enter activates anchor; visible focus is required.",
      "contentLimits": "Use a short label; wrap only when the source link wraps.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "At 390 actions use the hero’s two-column/stacked available space; desktop follows its parent row.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": ".text-action, .large-link",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "label",
          "type": "string",
          "default": "visible link text",
          "required": true
        },
        {
          "name": "href",
          "type": "string",
          "default": "destination",
          "required": true
        },
        {
          "name": "external",
          "type": "boolean",
          "default": "false",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "anchor activation",
          "to": "destination"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "mkt-product-media",
      "criticality": "Important",
      "api": {
        "stableId": "mkt-product-media",
        "rootSelector": "[data-component=\"mkt-product-media\"]",
        "domHooks": [
          {
            "event": "scenariochange",
            "selector": "[data-component=\"mkt-product-media\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onScenariochange",
            "payload": {
              "scenario": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "frame",
          "order": 1
        },
        {
          "name": "scenario selector",
          "order": 2
        },
        {
          "name": "code/output panel",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "scenariochange",
          "payload": {
            "scenario": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "loaded/scrolled media observed; playback controls not claimed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Selector is a native control; Tab and Enter/Space use native behavior.",
      "contentLimits": "One named scenario and one output panel per fixture.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "The framed demo narrows at 390 while inner controls remain legible; 1440 permits the full side-by-side view.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": "[data-component=\"mkt-product-media\"]",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "scenario",
          "type": "string",
          "default": "fixture default",
          "required": true
        },
        {
          "name": "mediaAlt",
          "type": "string",
          "default": "product demonstration",
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "default",
          "on": "scenario select",
          "to": "scenario result"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "mkt-metric-claim",
      "criticality": "Standard",
      "api": {
        "stableId": "mkt-metric-claim",
        "rootSelector": "[data-component=\"mkt-metric-claim\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"mkt-metric-claim\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "metric value",
          "order": 1
        },
        {
          "name": "qualifier",
          "order": 2
        },
        {
          "name": "proof link",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "default and responsive text wrapping observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Only the optional proof anchor is focusable.",
      "contentLimits": "Metric and qualifier must wrap instead of clipping.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 stacks metric language in the measured section width; desktop preserves the claim’s larger whitespace.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": "[data-component=\"mkt-metric-claim\"]",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "value",
          "type": "string",
          "default": "193.6x",
          "required": true
        },
        {
          "name": "label",
          "type": "string",
          "default": "Faster / Cheaper",
          "required": true
        },
        {
          "name": "proofHref",
          "type": "string",
          "default": "optional proof route",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "proof activation",
          "to": "proof route"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "mkt-blog-card",
      "criticality": "Standard",
      "api": {
        "stableId": "mkt-blog-card",
        "rootSelector": "[data-component=\"mkt-blog-card\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"mkt-blog-card\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "card link",
          "order": 1
        },
        {
          "name": "title",
          "order": 2
        },
        {
          "name": "summary",
          "order": 3
        },
        {
          "name": "read-more",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "default card composition observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "One anchor target; Enter opens it.",
      "contentLimits": "One title plus a short excerpt.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 cards occupy the single column; desktop cards participate in the article grid.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": "[data-component=\"mkt-blog-card\"]",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "title",
          "type": "string",
          "default": "article title",
          "required": true
        },
        {
          "name": "summary",
          "type": "string",
          "default": "article excerpt",
          "required": true
        },
        {
          "name": "href",
          "type": "string",
          "default": "article route",
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "card activation",
          "to": "article route"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "mkt-faq-disclosure",
      "criticality": "Critical",
      "api": {
        "stableId": "mkt-faq-disclosure",
        "rootSelector": "[data-component=\"mkt-faq-disclosure\"]",
        "domHooks": [
          {
            "event": "toggle",
            "selector": "[data-component=\"mkt-faq-disclosure\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onToggle",
            "payload": {
              "open": "boolean"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "question trigger",
          "order": 1
        },
        {
          "name": "answer panel",
          "order": 2
        },
        {
          "name": "expansion indicator",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "toggle",
          "payload": {
            "open": "boolean"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "candidate only until the associated state capture is reconciled",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Source question is a public clickable text control; reconstruction uses a button with aria-expanded and Enter/Space.",
      "contentLimits": "Question is one concise line where possible; answer expands vertically.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 FAQ is a narrow dark stack; desktop uses the wider section without fixed answer height.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": "[data-component=\"mkt-faq-disclosure\"]",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "items",
          "type": "FaqItem[]",
          "default": [
            {
              "question": "Is Jev Just A Smaller LLM?",
              "answer": "Observed public answer is expanded only in state evidence."
            }
          ],
          "required": true
        },
        {
          "name": "openIndex",
          "type": "number|null",
          "default": "null",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "closed",
          "on": "question activation",
          "to": "open"
        },
        {
          "from": "open",
          "on": "question activation",
          "to": "closed"
        }
      ],
      "typeDefinitions": {
        "FaqItem": {
          "fields": [
            {
              "name": "question",
              "type": "string",
              "required": true
            },
            {
              "name": "answer",
              "type": "string",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "mkt-waitlist-contact",
      "criticality": "Critical",
      "api": {
        "stableId": "mkt-waitlist-contact",
        "rootSelector": ".retro-dialog, [data-dialog-open=\"waitlist\"]",
        "domHooks": [
          {
            "event": "open",
            "selector": ".retro-dialog, [data-dialog-open=\"waitlist\"]"
          },
          {
            "event": "validate",
            "selector": ".retro-dialog, [data-dialog-open=\"waitlist\"]"
          },
          {
            "event": "close",
            "selector": ".retro-dialog, [data-dialog-open=\"waitlist\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onOpen",
            "payload": {
              "open": true
            },
            "required": false,
            "boundary": "Local fixture callback only."
          },
          {
            "name": "onValidate",
            "payload": {
              "email": "string",
              "valid": "boolean"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          },
          {
            "name": "onClose",
            "payload": {
              "open": false
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "trigger link",
          "order": 1
        },
        {
          "name": "anchored dialog",
          "order": 2
        },
        {
          "name": "email input",
          "order": 3
        },
        {
          "name": "submit button",
          "order": 4
        },
        {
          "name": "close control",
          "order": 5
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "open",
          "payload": {
            "open": true
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        },
        {
          "name": "validate",
          "payload": {
            "email": "string",
            "valid": "boolean"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        },
        {
          "name": "close",
          "payload": {
            "open": false
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "candidate only; no side-effectful state exercised",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Open moves focus to email; Escape and close return focus to trigger; native required email validation.",
      "contentLimits": "One visible email field only; placeholder “your email”.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "Source-open popup is anchored near the trigger: 300×118 desktop and 290×118 mobile, with a dim backdrop; never center it.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/home.html",
      "localDom": {
        "selector": ".retro-dialog, [data-dialog-open=\"waitlist\"]",
        "recipe": "examples/home.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "email",
          "type": "email",
          "default": "empty",
          "required": true
        },
        {
          "name": "open",
          "type": "boolean",
          "default": "false",
          "required": false
        },
        {
          "name": "submitLabel",
          "type": "string",
          "default": "submit",
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "closed",
          "on": "waitlist link",
          "to": "open"
        },
        {
          "from": "open",
          "on": "submit invalid email",
          "to": "invalid"
        },
        {
          "from": "open",
          "on": "Escape/close",
          "to": "closed"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "team-profile-gallery",
      "criticality": "Critical",
      "api": {
        "stableId": "team-profile-gallery",
        "rootSelector": "[data-component=\"team-profile-gallery\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"team-profile-gallery\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "profile image",
          "order": 1
        },
        {
          "name": "name",
          "order": 2
        },
        {
          "name": "role/bio",
          "order": 3
        },
        {
          "name": "profile link",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "default and interactive-control presence observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Profile links, if supplied, are regular anchors.",
      "contentLimits": "Each item needs an image alt and short name/role copy.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 collapses to the measured narrow gallery; desktop lays profiles out across the page.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/team.html",
      "localDom": {
        "selector": "[data-component=\"team-profile-gallery\"]",
        "recipe": "examples/team.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "people",
          "type": "Profile[]",
          "default": [
            {
              "name": "Observed team member",
              "role": "Team profile",
              "image": "public source image"
            }
          ],
          "required": true
        },
        {
          "name": "columns",
          "type": "number",
          "default": "source layout",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "profile link activation",
          "to": "profile route"
        }
      ],
      "typeDefinitions": {
        "Profile": {
          "fields": [
            {
              "name": "name",
              "type": "string",
              "required": true
            },
            {
              "name": "role",
              "type": "string",
              "required": true
            },
            {
              "name": "image",
              "type": "string",
              "required": true
            },
            {
              "name": "href",
              "type": "string",
              "required": false
            }
          ]
        }
      }
    },
    {
      "id": "blog-article-body",
      "criticality": "Critical",
      "api": {
        "stableId": "blog-article-body",
        "rootSelector": "[data-component=\"blog-article-body\"]",
        "domHooks": [],
        "callbacks": []
      },
      "anatomy": [
        {
          "name": "article header",
          "order": 1
        },
        {
          "name": "byline/date",
          "order": 2
        },
        {
          "name": "prose sections",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "basic and technical variants observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Document headings and links participate in normal reading order.",
      "contentLimits": "Prose width is parent-owned; no fixed body height.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 wraps article headings and prose; desktop retains the source article measure.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/launch.html",
      "localDom": {
        "selector": "[data-component=\"blog-article-body\"]",
        "recipe": "examples/launch.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "title",
          "type": "string",
          "default": "article title",
          "required": true
        },
        {
          "name": "sections",
          "type": "RichTextSection[]",
          "default": [
            {
              "heading": "Article",
              "body": "Local source-derived article fixture."
            }
          ],
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "static",
          "on": "none",
          "to": "static"
        }
      ],
      "typeDefinitions": {
        "RichTextSection": {
          "fields": [
            {
              "name": "heading",
              "type": "string",
              "required": false
            },
            {
              "name": "body",
              "type": "string",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "blog-rich-media",
      "criticality": "Standard",
      "api": {
        "stableId": "blog-rich-media",
        "rootSelector": "[data-component=\"blog-rich-media\"]",
        "domHooks": [
          {
            "event": "play",
            "selector": "[data-component=\"blog-rich-media\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onPlay",
            "payload": {
              "playing": true
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "figure/frame",
          "order": 1
        },
        {
          "name": "caption",
          "order": 2
        },
        {
          "name": "media or code payload",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "play",
          "payload": {
            "playing": true
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "content-dependent variants observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Only supplied controls are focusable; image alt is required for meaningful images.",
      "contentLimits": "Caption is optional; media must preserve aspect ratio.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "Media scales to article width at 390 and desktop without overflowing it.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/launch.html",
      "localDom": {
        "selector": "[data-component=\"blog-rich-media\"]",
        "recipe": "examples/launch.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "kind",
          "type": "image|video|code|table",
          "default": "image",
          "required": true
        },
        {
          "name": "caption",
          "type": "string",
          "default": "empty",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "paused",
          "on": "visible media control",
          "to": "playing"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "legal-document-embed",
      "criticality": "Critical",
      "api": {
        "stableId": "legal-document-embed",
        "rootSelector": "[data-component=\"legal-document-embed\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"legal-document-embed\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "document title",
          "order": 1
        },
        {
          "name": "section heading",
          "order": 2
        },
        {
          "name": "legal prose",
          "order": 3
        },
        {
          "name": "inline links",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "responsive outer shell observed; embedded content behavior uninspected",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Semantic headings and native anchors.",
      "contentLimits": "Legal text wraps freely and remains selectable.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 uses the document column; desktop uses the source legal reading width.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/terms.html",
      "localDom": {
        "selector": "[data-component=\"legal-document-embed\"]",
        "recipe": "examples/terms.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "title",
          "type": "string",
          "default": "Terms of Use",
          "required": true
        },
        {
          "name": "sections",
          "type": "LegalSection[]",
          "default": [
            {
              "heading": "Terms",
              "body": "Local legal reading fixture."
            }
          ],
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "inline link activation",
          "to": "linked legal route"
        }
      ],
      "typeDefinitions": {
        "LegalSection": {
          "fields": [
            {
              "name": "heading",
              "type": "string",
              "required": true
            },
            {
              "name": "body",
              "type": "string",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "docs-shell",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-shell",
        "rootSelector": "[data-component=\"docs-shell\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"docs-shell\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "skip link",
          "order": 1
        },
        {
          "name": "top bar",
          "order": 2
        },
        {
          "name": "sidebar",
          "order": 3
        },
        {
          "name": "breadcrumb bar",
          "order": 4
        },
        {
          "name": "main article",
          "order": 5
        },
        {
          "name": "on-page nav",
          "order": 6
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "desktop shell and responsive screenshots captured",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Skip link precedes shell; landmarks are header/nav/main.",
      "contentLimits": "Shell owns outer columns; children own internal spacing.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "Source-sized 48px top bar and 56px mobile breadcrumb bar; 390 hides desktop sidebar.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": "[data-component=\"docs-shell\"]",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "activePath",
          "type": "string",
          "default": "/introduction",
          "required": true
        },
        {
          "name": "theme",
          "type": "light|dark",
          "default": "dark",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "docs link",
          "to": "route"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "docs-navigation",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-navigation",
        "rootSelector": "[data-component=\"docs-navigation\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"docs-navigation\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "group heading",
          "order": 1
        },
        {
          "name": "route link",
          "order": 2
        },
        {
          "name": "active marker",
          "order": 3
        },
        {
          "name": "mobile menu trigger",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "collapsed/mobile behavior is a state candidate",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Links use Enter; mobile trigger uses button semantics and Escape closes if present.",
      "contentLimits": "Group labels and links may wrap, active route remains identifiable.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 substitutes the desktop sidebar with the compact navigation affordance.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": "[data-component=\"docs-navigation\"]",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "groups",
          "type": "NavGroup[]",
          "default": [
            {
              "label": "INTRODUCTION",
              "links": [
                {
                  "label": "Introduction",
                  "href": "docs-intro.html"
                }
              ]
            }
          ],
          "required": true
        },
        {
          "name": "activePath",
          "type": "string",
          "default": "/introduction",
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "route link",
          "to": "route"
        }
      ],
      "typeDefinitions": {
        "NavGroup": {
          "fields": [
            {
              "name": "label",
              "type": "string",
              "required": true
            },
            {
              "name": "links",
              "type": "NavLink[]",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "docs-breadcrumb",
      "criticality": "Standard",
      "api": {
        "stableId": "docs-breadcrumb",
        "rootSelector": "[data-component=\"docs-breadcrumb\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"docs-breadcrumb\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "back/section link",
          "order": 1
        },
        {
          "name": "current page label",
          "order": 2
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "default observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Ancestor entries are anchors; current item is not an interactive duplicate.",
      "contentLimits": "Keep a short ancestor chain.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 occupies the 56px breadcrumb bar; desktop shares the top content rail.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": "[data-component=\"docs-breadcrumb\"]",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "items",
          "type": "BreadcrumbItem[]",
          "default": [
            {
              "label": "INTRODUCTION",
              "href": "docs-intro.html"
            }
          ],
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "ancestor link",
          "to": "route"
        }
      ],
      "typeDefinitions": {
        "BreadcrumbItem": {
          "fields": [
            {
              "name": "label",
              "type": "string",
              "required": true
            },
            {
              "name": "href",
              "type": "string",
              "required": false
            }
          ]
        }
      }
    },
    {
      "id": "docs-search-trigger-dialog",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-search-trigger-dialog",
        "rootSelector": ".dr-search, .dr-search-dialog",
        "domHooks": [
          {
            "event": "open",
            "selector": ".dr-search, .dr-search-dialog"
          },
          {
            "event": "query",
            "selector": ".dr-search, .dr-search-dialog"
          },
          {
            "event": "close",
            "selector": ".dr-search, .dr-search-dialog"
          }
        ],
        "callbacks": [
          {
            "name": "onOpen",
            "payload": {
              "open": true
            },
            "required": false,
            "boundary": "Local fixture callback only."
          },
          {
            "name": "onQuery",
            "payload": {
              "query": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          },
          {
            "name": "onClose",
            "payload": {
              "open": false
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "search trigger",
          "order": 1
        },
        {
          "name": "dialog",
          "order": 2
        },
        {
          "name": "query input",
          "order": 3
        },
        {
          "name": "results list",
          "order": 4
        },
        {
          "name": "close affordance",
          "order": 5
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "open",
          "payload": {
            "open": true
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        },
        {
          "name": "query",
          "payload": {
            "query": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        },
        {
          "name": "close",
          "payload": {
            "open": false
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "trigger observed; dialog-open state owned by state-extraction worker",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Trigger is labelled Open search; focus enters query on open and returns on close.",
      "contentLimits": "Query is short; result list is source-backed only.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 uses the 32px icon trigger; desktop shows the wider “Search… Ctrl K” trigger.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": ".dr-search, .dr-search-dialog",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "open",
          "type": "boolean",
          "default": "false",
          "required": false
        },
        {
          "name": "query",
          "type": "string",
          "default": "empty",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "closed",
          "on": "trigger or Ctrl+K",
          "to": "open"
        },
        {
          "from": "open",
          "on": "input",
          "to": "filtered results"
        },
        {
          "from": "open",
          "on": "Escape",
          "to": "closed"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "docs-theme-control",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-theme-control",
        "rootSelector": ".dr-theme",
        "domHooks": [
          {
            "event": "toggle",
            "selector": ".dr-theme"
          }
        ],
        "callbacks": [
          {
            "name": "onToggle",
            "payload": {
              "open": "boolean"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "theme button",
          "order": 1
        },
        {
          "name": "sun/moon icon",
          "order": 2
        },
        {
          "name": "pressed state",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "toggle",
          "payload": {
            "open": "boolean"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "trigger observed; dark-theme state owned by state-extraction worker",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "A labelled button with aria-pressed/current theme text; Enter/Space toggle.",
      "contentLimits": "No visible text requirement when the icon has an accessible name.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "Control stays in the header action cluster at both sampled widths.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": ".dr-theme",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "theme",
          "type": "light|dark",
          "default": "dark",
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "dark",
          "on": "button activation",
          "to": "light"
        },
        {
          "from": "light",
          "on": "button activation",
          "to": "dark"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "docs-article-header",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-article-header",
        "rootSelector": "[data-component=\"docs-article-header\"]",
        "domHooks": [],
        "callbacks": []
      },
      "anatomy": [
        {
          "name": "eyebrow/breadcrumb",
          "order": 1
        },
        {
          "name": "h1",
          "order": 2
        },
        {
          "name": "lead",
          "order": 3
        },
        {
          "name": "metadata",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "short and long titles observed across crawl",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "One document h1; links are separate anchors.",
      "contentLimits": "H1/lead wrap naturally; do not truncate.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "Mobile source-sized h1 is 61.6px; desktop uses the measured article rail.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": "[data-component=\"docs-article-header\"]",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "title",
          "type": "string",
          "default": "Introduction",
          "required": true
        },
        {
          "name": "lead",
          "type": "string",
          "default": "source lead copy",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "static",
          "on": "none",
          "to": "static"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "docs-prose-and-callout",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-prose-and-callout",
        "rootSelector": "[data-component=\"docs-prose-and-callout\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"docs-prose-and-callout\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "paragraph",
          "order": 1
        },
        {
          "name": "list",
          "order": 2
        },
        {
          "name": "callout frame",
          "order": 3
        },
        {
          "name": "callout icon/title",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "content-dependent",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Native links and list semantics; callout is supplemental content.",
      "contentLimits": "No fixed paragraph/callout height; preserve text density.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 keeps a single readable column; desktop follows main article max width.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": "[data-component=\"docs-prose-and-callout\"]",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "blocks",
          "type": "ProseBlock[]",
          "default": [
            {
              "kind": "paragraph",
              "content": "Local source-derived prose fixture."
            }
          ],
          "required": true
        },
        {
          "name": "tone",
          "type": "note|warning|tip",
          "default": "note",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "inline link",
          "to": "destination"
        }
      ],
      "typeDefinitions": {
        "ProseBlock": {
          "fields": [
            {
              "name": "kind",
              "type": "paragraph|list|callout",
              "required": true
            },
            {
              "name": "content",
              "type": "string",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "docs-code-block",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-code-block",
        "rootSelector": "[data-component=\"docs-code-block\"]",
        "domHooks": [
          {
            "event": "copy",
            "selector": "[data-component=\"docs-code-block\"]"
          },
          {
            "event": "reset",
            "selector": "[data-component=\"docs-code-block\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onCopy",
            "payload": {
              "copied": true
            },
            "required": false,
            "boundary": "Local fixture callback only."
          },
          {
            "name": "onReset",
            "payload": {
              "copied": false
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "Copy button",
          "order": 1
        },
        {
          "name": "pre",
          "order": 2
        },
        {
          "name": "status paragraph",
          "order": 3
        }
      ],
      "observedSourceAnatomy": [
        {
          "name": "Copy button",
          "selector": "button[data-copy-docs]",
          "order": 1
        },
        {
          "name": "code text",
          "selector": "pre",
          "order": 2
        },
        {
          "name": "copy status",
          "selector": "p[role=status]",
          "order": 3
        }
      ],
      "localAnatomy": [
        {
          "name": "Copy button",
          "selector": "button[data-copy-docs]",
          "order": 1
        },
        {
          "name": "code text",
          "selector": "pre",
          "order": 2
        },
        {
          "name": "copy status",
          "selector": "p[role=status]",
          "order": 3
        }
      ],
      "relationships": "The three elements are direct children of [data-component=docs-code-block]. The rendered recipe has no language-label element and no nested code element.",
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "copy",
          "payload": {
            "copied": true
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        },
        {
          "name": "reset",
          "payload": {
            "copied": false
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "multiple-code-block content observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Copy button uses aria-label “Copy the contents from the code block”; Tab reaches it.",
      "contentLimits": "Code preserves whitespace and scrolls horizontally rather than wraps arbitrarily.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 code frame retains horizontal overflow; desktop fits the article rail.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/quickstart.html",
      "localDom": {
        "selector": "[data-component=\"docs-code-block\"]",
        "recipe": "examples/quickstart.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "code",
          "type": "string",
          "default": "fixture code",
          "required": true
        },
        {
          "name": "language",
          "type": "string",
          "default": "text",
          "required": false
        },
        {
          "name": "copied",
          "type": "boolean",
          "default": "false",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "ready",
          "on": "copy button",
          "to": "copied"
        },
        {
          "from": "copied",
          "on": "feedback timeout",
          "to": "ready"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "docs-code-tabs",
      "criticality": "Standard",
      "api": {
        "stableId": "docs-code-tabs",
        "rootSelector": "[data-component=\"docs-code-tabs\"]",
        "domHooks": [
          {
            "event": "select",
            "selector": "[data-component=\"docs-code-tabs\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onSelect",
            "payload": {
              "selected": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "tablist",
          "order": 1
        },
        {
          "name": "tab",
          "order": 2
        }
      ],
      "observedSourceAnatomy": [
        {
          "name": "tablist",
          "selector": "[data-component=docs-code-tabs][role=tablist]",
          "order": 1
        },
        {
          "name": "install-method tabs",
          "selector": "button[role=tab]",
          "order": 2
        }
      ],
      "localAnatomy": [
        {
          "name": "tablist",
          "selector": "[data-component=docs-code-tabs][role=tablist]",
          "order": 1
        },
        {
          "name": "install-method tabs",
          "selector": "button[role=tab]",
          "order": 2
        }
      ],
      "relationships": "Each tab's aria-controls names a sibling pre[role=tabpanel] in the same .dr-steps li. The panel's aria-labelledby names the selected tab. The panel and docs-code-block are not descendants of the docs-code-tabs root.",
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "select",
          "payload": {
            "selected": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "selected/unselected states are observed candidates",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Source tabs expose role=tab, aria-selected, aria-controls and roving tabindex; arrow-key behavior is unverified unless local handler supplies it.",
      "contentLimits": "Use one short label per tab and one associated panel.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 permits horizontal tab overflow; desktop keeps tabs across the code frame.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/quickstart.html",
      "localDom": {
        "selector": "[data-component=\"docs-code-tabs\"]",
        "recipe": "examples/quickstart.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "tabs",
          "type": "CodeTab[]",
          "default": [
            {
              "id": "pip",
              "label": "pip",
              "code": "pip install typesafe-sdk --extra-index-url https://pypi.typesafe.ai/"
            }
          ],
          "required": true
        },
        {
          "name": "selected",
          "type": "string",
          "default": "first tab",
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "any tab",
          "on": "tab activation",
          "to": "selected tab panel"
        }
      ],
      "typeDefinitions": {
        "CodeTab": {
          "fields": [
            {
              "name": "id",
              "type": "string",
              "required": true
            },
            {
              "name": "label",
              "type": "string",
              "required": true
            },
            {
              "name": "code",
              "type": "string",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "docs-table",
      "criticality": "Standard",
      "api": {
        "stableId": "docs-table",
        "rootSelector": "[data-component=\"docs-table\"]",
        "domHooks": [],
        "callbacks": []
      },
      "anatomy": [
        {
          "name": "table",
          "order": 1
        },
        {
          "name": "header row",
          "order": 2
        },
        {
          "name": "body row",
          "order": 3
        },
        {
          "name": "cell",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "content-dependent",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Use native table semantics with th scope where applicable.",
      "contentLimits": "Cell content wraps; no clipped columns.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 makes the table scrollable inside its article container; desktop shows its full measured width.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": "[data-component=\"docs-table\"]",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "columns",
          "type": "TableColumn[]",
          "default": [
            {
              "label": "Field",
              "key": "field"
            }
          ],
          "required": true
        },
        {
          "name": "rows",
          "type": "TableRow[]",
          "default": [
            {
              "cells": [
                "score"
              ]
            }
          ],
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "static",
          "on": "none",
          "to": "static"
        }
      ],
      "typeDefinitions": {
        "TableColumn": {
          "fields": [
            {
              "name": "label",
              "type": "string",
              "required": true
            },
            {
              "name": "key",
              "type": "string",
              "required": true
            }
          ]
        },
        "TableRow": {
          "fields": [
            {
              "name": "cells",
              "type": "string[]",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "docs-steps",
      "criticality": "Standard",
      "api": {
        "stableId": "docs-steps",
        "rootSelector": "[data-component=\"docs-steps\"]",
        "domHooks": [],
        "callbacks": []
      },
      "anatomy": [
        {
          "name": "ordered list",
          "order": 1
        },
        {
          "name": "step number",
          "order": 2
        },
        {
          "name": "step title",
          "order": 3
        },
        {
          "name": "step body",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "observed on two routes",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Use an ordered list so sequence is announced.",
      "contentLimits": "At least one titled step; step body can contain code/links.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 maintains vertical numbered steps; desktop uses the same source article column.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/quickstart.html",
      "localDom": {
        "selector": "[data-component=\"docs-steps\"]",
        "recipe": "examples/quickstart.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "steps",
          "type": "Step[]",
          "default": [
            {
              "title": "Install the client",
              "body": "pip install typesafe-sdk --extra-index-url https://pypi.typesafe.ai/"
            }
          ],
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "static",
          "on": "none",
          "to": "static"
        }
      ],
      "typeDefinitions": {
        "Step": {
          "fields": [
            {
              "name": "title",
              "type": "string",
              "required": true
            },
            {
              "name": "body",
              "type": "string",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "docs-disclosure",
      "criticality": "Standard",
      "api": {
        "stableId": "docs-disclosure",
        "rootSelector": "[data-component=\"docs-disclosure\"]",
        "domHooks": [
          {
            "event": "toggle",
            "selector": "[data-component=\"docs-disclosure\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onToggle",
            "payload": {
              "open": "boolean"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "question button",
          "order": 1
        },
        {
          "name": "expanded answer",
          "order": 2
        },
        {
          "name": "chevron",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "toggle",
          "payload": {
            "open": "boolean"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "collapsed default observed; expanded state candidate",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Source uses button[aria-expanded]; Enter/Space toggle and answer is tied to the control.",
      "contentLimits": "Question can wrap; expanded body grows vertically.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "Disclosure spans the article width at 390 and 1440.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/score.html",
      "localDom": {
        "selector": "[data-component=\"docs-disclosure\"]",
        "recipe": "examples/score.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "label",
          "type": "string",
          "default": "source question",
          "required": true
        },
        {
          "name": "open",
          "type": "boolean",
          "default": "false",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "collapsed",
          "on": "button activation",
          "to": "expanded"
        },
        {
          "from": "expanded",
          "on": "button activation",
          "to": "collapsed"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "docs-api-member-navigation",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-api-member-navigation",
        "rootSelector": "[data-component=\"docs-api-member-navigation\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"docs-api-member-navigation\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "API group",
          "order": 1
        },
        {
          "name": "member link",
          "order": 2
        },
        {
          "name": "active member",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "default section controls observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Member links are normal anchors in navigation order.",
      "contentLimits": "Member names stay intact; long names wrap or scroll safely.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 uses the compact docs navigation pattern; desktop remains in the side rail.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/python-api.html",
      "localDom": {
        "selector": "[data-component=\"docs-api-member-navigation\"]",
        "recipe": "examples/python-api.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "members",
          "type": "ApiMember[]",
          "default": [
            {
              "name": "AsyncTypeSafeClient",
              "href": "python-api.html"
            }
          ],
          "required": true
        },
        {
          "name": "activeMember",
          "type": "string",
          "default": "current member",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "member link",
          "to": "member anchor/route"
        }
      ],
      "typeDefinitions": {
        "ApiMember": {
          "fields": [
            {
              "name": "name",
              "type": "string",
              "required": true
            },
            {
              "name": "href",
              "type": "string",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "docs-api-signature",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-api-signature",
        "rootSelector": "[data-component=\"docs-api-signature\"]",
        "domHooks": [],
        "callbacks": []
      },
      "anatomy": [
        {
          "name": "member heading",
          "order": 1
        },
        {
          "name": "signature pre",
          "order": 2
        },
        {
          "name": "parameter/return prose",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "long/short member variants observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Code remains selectable; any copy control follows the code-block contract.",
      "contentLimits": "Use current public AsyncTypeSafeClient and system_one names; do not retain the older evaluate fixture.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 scrolls long signatures; desktop has the API article measure.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/python-api.html",
      "localDom": {
        "selector": "[data-component=\"docs-api-signature\"]",
        "recipe": "examples/python-api.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "signature",
          "type": "string",
          "default": "AsyncTypeSafeClient.system_one(...)",
          "required": true
        },
        {
          "name": "parameters",
          "type": "Parameter[]",
          "default": [
            {
              "name": "question",
              "type": "Question",
              "required": true
            }
          ],
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "static",
          "on": "none",
          "to": "static"
        }
      ],
      "typeDefinitions": {
        "Parameter": {
          "fields": [
            {
              "name": "name",
              "type": "string",
              "required": true
            },
            {
              "name": "type",
              "type": "string",
              "required": true
            },
            {
              "name": "required",
              "type": "boolean",
              "required": true
            }
          ]
        }
      }
    },
    {
      "id": "docs-media-viewer",
      "criticality": "Standard",
      "api": {
        "stableId": "docs-media-viewer",
        "rootSelector": "[data-component=\"docs-media-viewer\"]",
        "domHooks": [
          {
            "event": "open",
            "selector": "[data-component=\"docs-media-viewer\"]"
          },
          {
            "event": "close",
            "selector": "[data-component=\"docs-media-viewer\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onOpen",
            "payload": {
              "open": true
            },
            "required": false,
            "boundary": "Local fixture callback only."
          },
          {
            "name": "onClose",
            "payload": {
              "open": false
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "media frame",
          "order": 1
        },
        {
          "name": "thumbnail/preview",
          "order": 2
        },
        {
          "name": "open control",
          "order": 3
        },
        {
          "name": "caption",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "open",
          "payload": {
            "open": true
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        },
        {
          "name": "close",
          "payload": {
            "open": false
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "controls observed; opened/zoomed state candidates",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Open control is labelled and focusable; dialog focus behavior applies only when an overlay is present.",
      "contentLimits": "Keep source aspect ratio and concise caption.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "Frame scales inside the article rail at 390 and 1440.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/smart-home.html",
      "localDom": {
        "selector": "[data-component=\"docs-media-viewer\"]",
        "recipe": "examples/smart-home.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "src",
          "type": "string",
          "default": "source media URL",
          "required": true
        },
        {
          "name": "alt",
          "type": "string",
          "default": "media description",
          "required": true
        },
        {
          "name": "open",
          "type": "boolean",
          "default": "false",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "closed",
          "on": "viewer activation",
          "to": "open"
        },
        {
          "from": "open",
          "on": "Escape/close",
          "to": "closed"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "docs-page-feedback",
      "criticality": "Critical",
      "api": {
        "stableId": "docs-page-feedback",
        "rootSelector": "[data-component=\"docs-page-feedback\"]",
        "domHooks": [
          {
            "event": "answer",
            "selector": "[data-component=\"docs-page-feedback\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onAnswer",
            "payload": {
              "value": "helpful|not-helpful"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "prompt",
          "order": 1
        },
        {
          "name": "Yes button",
          "order": 2
        },
        {
          "name": "No button",
          "order": 3
        },
        {
          "name": "acknowledgement",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "answer",
          "payload": {
            "value": "helpful|not-helpful"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "initial state observed; no feedback/API side effects sent",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Buttons have clear labels and native Enter/Space activation; no network submission is claimed.",
      "contentLimits": "Prompt and two actions only in the local fixture.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 stacks or wraps actions within article width; desktop keeps inline feedback row.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": "[data-component=\"docs-page-feedback\"]",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "value",
          "type": "helpful|not-helpful|null",
          "default": "null",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "Yes/No activation",
          "to": "acknowledged"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "docs-pagination",
      "criticality": "Standard",
      "api": {
        "stableId": "docs-pagination",
        "rootSelector": "[data-component=\"docs-pagination\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"docs-pagination\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "previous link",
          "order": 1
        },
        {
          "name": "next link",
          "order": 2
        },
        {
          "name": "page labels",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "default observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Anchors use Enter and descriptive accessible names.",
      "contentLimits": "One or two adjacent pages; labels may wrap.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 fits links into the article rail; desktop places them across its footer row.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/docs-recipes.css",
          "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
        },
        {
          "file": "site/assets/docs-recipes.js",
          "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
        }
      ],
      "recipe": "examples/docs-intro.html",
      "localDom": {
        "selector": "[data-component=\"docs-pagination\"]",
        "recipe": "examples/docs-intro.html",
        "cssFiles": [
          {
            "file": "site/assets/docs-recipes.css",
            "hash": "sha256:3958b16c92660583c33df955f56392808670f3aff0b1607e7e30999d20a5d353"
          },
          {
            "file": "site/assets/docs-recipes.js",
            "hash": "sha256:ef4befe6e118aea058cb19350ae5a1947e1ae53f264b2470a5c466f2f58e32a6"
          }
        ]
      },
      "props": [
        {
          "name": "previous",
          "type": "PageLink|null",
          "default": {
            "label": "Quick start",
            "href": "quickstart.html"
          },
          "required": false
        },
        {
          "name": "next",
          "type": "PageLink|null",
          "default": {
            "label": "Async client",
            "href": "python-api.html"
          },
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "previous/next activation",
          "to": "adjacent route"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "console-login-form",
      "criticality": "Critical",
      "api": {
        "stableId": "console-login-form",
        "rootSelector": "[data-component=\"console-login-form\"]",
        "domHooks": [
          {
            "event": "validate",
            "selector": "[data-component=\"console-login-form\"]"
          },
          {
            "event": "continue",
            "selector": "[data-component=\"console-login-form\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onValidate",
            "payload": {
              "email": "string",
              "valid": "boolean"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          },
          {
            "name": "onContinue",
            "payload": {},
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "console mark",
          "order": 1
        },
        {
          "name": "email input",
          "order": 2
        },
        {
          "name": "provider/continue button",
          "order": 3
        },
        {
          "name": "helper text",
          "order": 4
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "validate",
          "payload": {
            "email": "string",
            "valid": "boolean"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        },
        {
          "name": "continue",
          "payload": {},
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "unauthenticated default only; credentials/actions intentionally not used",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Email is labelled and required; Tab order is mark-free then input/actions. Auth completion is unobserved.",
      "contentLimits": "One email address and short helper copy.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 keeps a single centered form column; desktop uses the same compact login card.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/console.html",
      "localDom": {
        "selector": "[data-component=\"console-login-form\"]",
        "recipe": "examples/console.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "email",
          "type": "email",
          "default": "empty",
          "required": true
        },
        {
          "name": "provider",
          "type": "string",
          "default": "Google",
          "required": false
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "continue invalid email",
          "to": "invalid"
        },
        {
          "from": "valid",
          "on": "submit",
          "to": "external auth boundary"
        }
      ],
      "typeDefinitions": {}
    },
    {
      "id": "primary-not-found",
      "criticality": "Standard",
      "api": {
        "stableId": "primary-not-found",
        "rootSelector": "[data-component=\"primary-not-found\"]",
        "domHooks": [
          {
            "event": "navigate",
            "selector": "[data-component=\"primary-not-found\"]"
          }
        ],
        "callbacks": [
          {
            "name": "onNavigate",
            "payload": {
              "href": "string"
            },
            "required": false,
            "boundary": "Local fixture callback only."
          }
        ]
      },
      "anatomy": [
        {
          "name": "404 code",
          "order": 1
        },
        {
          "name": "heading",
          "order": 2
        },
        {
          "name": "recovery link",
          "order": 3
        }
      ],
      "inputs": "Visible content and documented local fixture props only; no private SDK/API surface inferred.",
      "events": [
        {
          "name": "navigate",
          "payload": {
            "href": "string"
          },
          "boundary": "Local fixture event only; no production API call is asserted."
        }
      ],
      "allowedComposition": "Use within its recorded recipe family; preserve parent-owned outer spacing and component-owned inner layout.",
      "variants": "404 state observed",
      "states": "Observed states are limited to public-state capture; unseen production states remain unverified.",
      "keyboardFocusAria": "Recovery link is an anchor with visible focus.",
      "contentLimits": "Short heading/body and one recovery action.",
      "spacingOwnership": "Parent recipe owns outer placement; this component owns the measured padding/gap in source-component-traces samples.",
      "breakpointRules": "390 and desktop center the error message in the available page frame.",
      "extensionPoints": "The documented props and slots only; no private API or authenticated runtime behavior is inferred.",
      "provenance": "source-derived local reconstruction",
      "verification": [
        "evidence/component-traces/capture-source-local-traces.cjs",
        "reference-data/component-geometry.json",
        "evidence/public-states/observations.json"
      ],
      "localFiles": [
        {
          "file": "site/assets/product-recipes.css",
          "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
        },
        {
          "file": "site/assets/product-recipes.js",
          "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
        }
      ],
      "recipe": "examples/not-found.html",
      "localDom": {
        "selector": "[data-component=\"primary-not-found\"]",
        "recipe": "examples/not-found.html",
        "cssFiles": [
          {
            "file": "site/assets/product-recipes.css",
            "hash": "sha256:a608abf039e5b8b498f9e1e9212cb41722d5c6a300ed9c4755f5e80f7a89f32f"
          },
          {
            "file": "site/assets/product-recipes.js",
            "hash": "sha256:69a128956de0b00857b9dee1bbef67b744ec3f4956cbb5a93e9a54c78538547f"
          }
        ]
      },
      "props": [
        {
          "name": "title",
          "type": "string",
          "default": "Page not found",
          "required": true
        },
        {
          "name": "homeHref",
          "type": "string",
          "default": "/",
          "required": true
        }
      ],
      "stateTransitions": [
        {
          "from": "idle",
          "on": "recovery link",
          "to": "home"
        }
      ],
      "typeDefinitions": {}
    }
  ],
  "sourceBoundary": "No contract claims private SDK methods, authenticated console content, or unobserved production states.",
  "localFileHashPolicy": {
    "files": "Hashes in localFiles and localDom.cssFiles identify the current local site files named by each record.",
    "refresh": "Run node tools/refresh-local-contracts.cjs after local builds that can change those files. Use --check to fail when the recorded hashes are stale.",
    "historicalSourceBoundary": "This tool never changes hashes in captured first-party source evidence, source ledgers, frozen trials or historical comparison artifacts. Those hashes identify the capture that recorded them, not the current local build."
  }
}
