{
  "version": "0.2.0",
  "modules": [
    {
      "id": "qeshet",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "identity",
      "purpose": "Arc, packet, and structural linework from the original Qeshet geometry.",
      "renderer": "src/modules/svg.mjs",
      "props_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9-]*$"
          },
          "variant": {
            "enum": [
              "mark",
              "plate"
            ]
          },
          "motion": {
            "enum": [
              "none",
              "intro"
            ]
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical",
        "terminal"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Static at small size; optional finite introduction at hero size.",
      "accessibility": [
        "Visible text carries meaning.",
        "Visible focus and meaningful headings.",
        "SVG has a name or is explicitly decorative."
      ],
      "motion": "Finite introductory arc reveal; absent under reduced motion.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "site-header",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "navigation",
      "purpose": "Home link, descriptive navigation, and appearance control.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "properties": {
          "active": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Navigation remains visible and wraps on small screens.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "theme-control",
      "version": "0.2.0",
      "kind": "native-interaction",
      "semantic_role": "interaction",
      "purpose": "Native System / Light / Dark preference selector.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Native select; hidden until JavaScript initializes.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "document-masthead",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "orientation",
      "purpose": "A single page title and plain-language introduction.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "eyebrow": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "summary"
        ],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Readable measure; responsive serif title.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "collection-entry",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "navigation",
      "purpose": "A real destination, descriptive summary, and explicit maturity label.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "route": {
            "type": "string",
            "pattern": "^/"
          },
          "summary": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "role": {
            "enum": [
              "critical",
              "orientation",
              "structure",
              "evidence",
              "analysis",
              "sources",
              "appendix"
            ]
          }
        },
        "required": [
          "title",
          "route",
          "summary",
          "label"
        ],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "No fixed card height; text and title wrap.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "source-note",
      "version": "0.2.0",
      "kind": "native-interaction",
      "semantic_role": "sources",
      "purpose": "Progressively disclosed public source references.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "properties": {
          "source_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "source_ids"
        ],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Native details/summary; links wrap.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "callout",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "qualification",
      "purpose": "Clearly labelled contextual qualification, never color-only.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "text"
        ],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Natural block flow at every width.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "spectrum-legend",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "structure",
      "purpose": "Semantic role labels alongside color swatches.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Responsive rows; textual labels survive monochrome.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "site-footer",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "navigation",
      "purpose": "Return paths, repository link, and edition details.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Wraps without hiding destinations.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "resource-links",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "navigation",
      "purpose": "Descriptive links to available public resources and explicitly labelled downloadable templates.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "label",
                "href"
              ],
              "properties": {
                "label": {
                  "type": "string"
                },
                "href": {
                  "type": "string"
                },
                "download": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Natural block flow; descriptive links wrap without hiding content.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Fully functional semantic HTML without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "outline-navigation",
      "version": "0.2.0",
      "kind": "native-interaction",
      "semantic_role": "navigation",
      "purpose": "An optional native disclosure containing working section links; article content remains visible.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": false
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Natural block flow; descriptive links wrap without hiding content.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Fully functional semantic HTML without JavaScript.",
      "indexing": "Exclude repeated chrome and component demonstrations.",
      "dependencies": [
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "site-search",
      "version": "0.2.0",
      "kind": "typescript-enhancement",
      "semantic_role": "interaction",
      "purpose": "Search the public canonical collection with explicit submit, clear feedback, and an ordinary browse fallback.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": false
      },
      "states": [
        "initial",
        "loading",
        "results",
        "empty-query",
        "no-results",
        "error",
        "no-javascript"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Native select; hidden until JavaScript initializes.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Core content remains readable without JavaScript.",
      "indexing": "Interface excluded; indexes public canonical content, not navigation chrome.",
      "dependencies": [
        "src/client/search.ts",
        "pagefind"
      ],
      "validation": [
        "tests/site.spec.mjs: search success, zero results, failure, history and pending clear"
      ]
    },
    {
      "id": "publication-page",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "document",
      "purpose": "Long-form publication masthead and article shell with edition, status, source downloads, and native contents navigation.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Readable block flow at all widths; publication navigation becomes in-flow on narrow screens.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Complete publication content, links, disclosures, and templates work without JavaScript.",
      "indexing": "Index substantive publication text; repeated site chrome is excluded.",
      "dependencies": [
        "src/content/prfg/",
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "publication-status",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "qualification",
      "purpose": "Visible release/review qualification that travels with every imported publication.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Readable block flow at all widths; publication navigation becomes in-flow on narrow screens.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Complete publication content, links, disclosures, and templates work without JavaScript.",
      "indexing": "Index substantive publication text; repeated site chrome is excluded.",
      "dependencies": [
        "src/content/prfg/",
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "publication-callout",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "qualification",
      "purpose": "Labeled warning, scope, or explanatory callout from the canonical publication source.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Readable block flow at all widths; publication navigation becomes in-flow on narrow screens.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Complete publication content, links, disclosures, and templates work without JavaScript.",
      "indexing": "Index substantive publication text; repeated site chrome is excluded.",
      "dependencies": [
        "src/content/prfg/",
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "authority-card",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "sources",
      "purpose": "Source-linked legal authority card preserving meaning, limits, conditions, excerpts, and source references.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Readable block flow at all widths; publication navigation becomes in-flow on narrow screens.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Complete publication content, links, disclosures, and templates work without JavaScript.",
      "indexing": "Index substantive publication text; repeated site chrome is excluded.",
      "dependencies": [
        "src/content/prfg/",
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "route-card",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "navigation",
      "purpose": "Reporting or review route card preserving possible fit, limits, checks, timing, authority, and source context.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Readable block flow at all widths; publication navigation becomes in-flow on narrow screens.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Complete publication content, links, disclosures, and templates work without JavaScript.",
      "indexing": "Index substantive publication text; repeated site chrome is excluded.",
      "dependencies": [
        "src/content/prfg/",
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "timing-card",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "structure",
      "purpose": "Process or timing card that keeps trigger, actor/stage, limits, next step, and source context together.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Readable block flow at all widths; publication navigation becomes in-flow on narrow screens.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Complete publication content, links, disclosures, and templates work without JavaScript.",
      "indexing": "Index substantive publication text; repeated site chrome is excluded.",
      "dependencies": [
        "src/content/prfg/",
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "source-citation",
      "version": "0.2.0",
      "kind": "static-html",
      "semantic_role": "sources",
      "purpose": "Source record with title, version, scope, limits, review state, and external primary-source link.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Readable block flow at all widths; publication navigation becomes in-flow on narrow screens.",
      "accessibility": [
        "Native semantic HTML.",
        "No color-only meaning.",
        "Keyboard reachable when interactive."
      ],
      "motion": "No required animation.",
      "static_fallback": "Complete publication content, links, disclosures, and templates work without JavaScript.",
      "indexing": "Index substantive publication text; repeated site chrome is excluded.",
      "dependencies": [
        "src/content/prfg/",
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "template-block",
      "version": "0.2.0",
      "kind": "progressive-enhancement",
      "semantic_role": "structure",
      "purpose": "Working template rendered as exact source text, with optional local-only copy, download, and editing controls.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "default",
        "focus",
        "narrow",
        "light",
        "dark",
        "reduced-motion",
        "print",
        "enhanced-actions",
        "editing-local-copy"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Exact blank template remains readable at all widths; optional editing controls wrap and the local editor fills the available publication column.",
      "accessibility": [
        "Exact blank template remains visible without JavaScript.",
        "Native buttons and textarea are keyboard operable when enhancement loads.",
        "An aria-live status reports copy, download, reset, and editor state changes.",
        "No color-only meaning."
      ],
      "motion": "No required animation.",
      "static_fallback": "Exact template text and source limits remain readable and selectable without JavaScript; copy/download/edit conveniences are omitted.",
      "indexing": "Index substantive publication text; repeated site chrome is excluded.",
      "dependencies": [
        "src/content/prfg/",
        "assets/css/foundation.css",
        "assets/css/tokens.css",
        "src/client/prfg.ts"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "publication-reader-controls",
      "version": "0.2.0",
      "kind": "progressive-enhancement",
      "semantic_role": "orientation",
      "purpose": "Reader-controlled publication layout, text sizing, and contents visibility layered over an adaptive default.",
      "renderer": "src/modules/prfg.mjs",
      "props_schema": {
        "type": "object",
        "additionalProperties": true
      },
      "states": [
        "hidden-before-enhancement",
        "auto",
        "reading",
        "overview",
        "large-text",
        "extra-large-text",
        "contents-shown",
        "contents-hidden",
        "focus",
        "narrow",
        "print"
      ],
      "surfaces": [
        "editorial",
        "technical"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Auto mode responds to publication-container width; reading mode favors larger text and focus; overview preserves a compact wide canvas; all modes collapse to one column on narrow screens.",
      "accessibility": [
        "Controls use native select and button elements.",
        "Browser zoom remains available and is not intercepted.",
        "Text sizes are rem-based and user enlargement remains supported.",
        "Contents visibility is reflected through aria-expanded.",
        "No color-only meaning."
      ],
      "motion": "No required animation.",
      "static_fallback": "Without JavaScript the adaptive Auto layout and full contents navigation remain available.",
      "indexing": "Reader controls are interface chrome and excluded from search content.",
      "dependencies": [
        "src/client/prfg.ts",
        "assets/css/foundation.css",
        "assets/css/tokens.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "home-task-gateway",
      "version": "0.3.0",
      "kind": "static-html",
      "semantic_role": "navigation",
      "purpose": "Task-oriented public homepage entry points that describe user goals rather than internal project taxonomy.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "minItems": 4
          }
        },
        "additionalProperties": false
      },
      "states": [
        "default",
        "hover",
        "focus",
        "narrow",
        "print"
      ],
      "surfaces": [
        "editorial"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Two-column public hero companion on wide screens; stacks beneath the mission on narrow screens. Task links remain fully visible without disclosure.",
      "accessibility": [
        "Descriptive link labels state user goals.",
        "Detail text supplements rather than replaces the link label.",
        "Color is redundant with text and grouping."
      ],
      "motion": "No required motion.",
      "static_fallback": "Complete semantic navigation without JavaScript.",
      "indexing": "Task labels/details are public orientation content.",
      "dependencies": [
        "assets/css/foundation.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    },
    {
      "id": "home-mode-cards",
      "version": "0.3.0",
      "kind": "static-html",
      "semantic_role": "orientation",
      "purpose": "Explain Covenant’s Read, Explore, and Use working modes without exposing framework implementation details.",
      "renderer": "src/modules/render.mjs",
      "props_schema": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "minItems": 3,
            "maxItems": 3
          }
        },
        "additionalProperties": false
      },
      "states": [
        "default",
        "hover",
        "focus",
        "narrow",
        "print"
      ],
      "surfaces": [
        "editorial"
      ],
      "themes": [
        "system",
        "light",
        "dark"
      ],
      "responsive_behavior": "Three cards on wide screens; one-column flow on narrow screens.",
      "accessibility": [
        "Each mode has a descriptive title and explanatory text.",
        "Links use visible text; no icon-only actions.",
        "Color is not the only mode distinction."
      ],
      "motion": "No required motion.",
      "static_fallback": "Complete links and explanation without JavaScript.",
      "indexing": "Mode descriptions are public orientation content.",
      "dependencies": [
        "assets/css/foundation.css"
      ],
      "validation": [
        "tests/site.spec.mjs",
        "scripts/validate.mjs"
      ]
    }
  ]
}
