{
  "schema_version": "0.1.0",
  "catalogue_status": "discovery_inventory",
  "authority": "Evidence-derived inventory; not a final implementation-governing SSOT. Preserve source modality and consult conflicts.json.",
  "category": "ui_client_experience",
  "description": "Owner UI, frontend runtime, security posture, and reference/local client components.",
  "items": [
    {
      "id": "ui.owner",
      "name": "Owner web UI",
      "kind": "user_interface",
      "description": "Server-rendered human Owner surface for policy, audit, alerts, lifecycle, and administration.",
      "modality": "source_description",
      "sources": [
        {
          "file": "docs/seed/Description.txt",
          "lines": "6-20"
        },
        {
          "file": "docs/seed/Structure.txt",
          "lines": "6-7"
        }
      ]
    },
    {
      "id": "ui.html",
      "name": "Server-rendered HTML",
      "kind": "frontend_technology",
      "description": "Primary HTML rendering approach.",
      "modality": "source_description",
      "sources": [
        {
          "file": "docs/seed/Frontend.txt",
          "lines": "1-2"
        }
      ]
    },
    {
      "id": "ui.htmx",
      "name": "HTMX",
      "kind": "frontend_technology",
      "description": "Frontend/backend interaction technology.",
      "modality": "source_description",
      "sources": [
        {
          "file": "docs/seed/Frontend.txt",
          "lines": "3"
        }
      ]
    },
    {
      "id": "ui.alpine",
      "name": "Alpine.js",
      "kind": "frontend_technology",
      "description": "Lightweight UI behavior technology.",
      "modality": "source_description",
      "sources": [
        {
          "file": "docs/seed/Frontend.txt",
          "lines": "4"
        }
      ]
    },
    {
      "id": "ui.no_spa",
      "name": "No SPA framework",
      "kind": "technology_exclusion",
      "description": "SPA framework excluded.",
      "modality": "firm_statement",
      "sources": [
        {
          "file": "docs/seed/Frontend.txt",
          "lines": "5"
        }
      ]
    },
    {
      "id": "ui.no_node",
      "name": "No Node build system",
      "kind": "technology_exclusion",
      "description": "Node-based build system excluded unless unavoidable.",
      "modality": "firm_statement",
      "sources": [
        {
          "file": "docs/seed/Frontend.txt",
          "lines": "6"
        }
      ]
    },
    {
      "id": "ui.assets",
      "name": "Self-hosted JavaScript",
      "kind": "security_control",
      "description": "All JavaScript assets self-hosted.",
      "modality": "firm_statement",
      "sources": [
        {
          "file": "docs/seed/Frontend.txt",
          "lines": "7"
        }
      ]
    },
    {
      "id": "ui.csp",
      "name": "Strict Content Security Policy",
      "kind": "security_control",
      "description": "Strict CSP requested.",
      "modality": "firm_statement",
      "sources": [
        {
          "file": "docs/seed/Frontend.txt",
          "lines": "8"
        }
      ]
    },
    {
      "id": "client.cli",
      "name": "Reference PHP CLI",
      "kind": "client_component",
      "description": "Reference CLI included in MVP.",
      "modality": "mvp_inclusion",
      "sources": [
        {
          "file": "docs/seed/MVP_Cut_Line.txt",
          "lines": "26"
        }
      ]
    },
    {
      "id": "client.ceremony",
      "name": "Local key-ceremony application",
      "kind": "client_component",
      "description": "Tiny local ceremony app appears in possible stack; extension UI also listed as a concern.",
      "modality": "proposal",
      "sources": [
        {
          "file": "docs/seed/Description_Zero.txt",
          "lines": "48-58"
        },
        {
          "file": "docs/seed/Considerations.txt",
          "lines": "19-23"
        }
      ]
    }
  ]
}
