{
  "schema_version": "public-surface.v1",
  "surface_id": "jp-election-public-ja",
  "target_id": "jp-election-public-ja",
  "routes": [
    {
      "path": "/",
      "semantic_id": "public_root_hub",
      "role": "site_entry",
      "label": "Public root",
      "description": "Public landing route for the JP Election public surface."
    },
    {
      "path": "/catalog/",
      "semantic_id": "catalog_app_shell",
      "role": "catalog_browser",
      "label": "Public catalog browser",
      "description": "Interactive browser for public catalog and derived payloads."
    },
    {
      "path": "/years.html",
      "semantic_id": "year_directory",
      "role": "year_navigation",
      "label": "Election year navigation",
      "description": "Navigation route for public election-year pages."
    },
    {
      "path": "/graph.html",
      "semantic_id": "graph_family_entry",
      "role": "graph_browser",
      "label": "Graph family entry",
      "description": "Entry route for public graph-family exploration."
    },
    {
      "path": "/products/",
      "semantic_id": "public_products_payload",
      "role": "public_data_payload",
      "label": "Public products payload",
      "description": "Published public data object subtree referenced by the public surface."
    }
  ],
  "security_notes": "Public route roles only. Internal source paths, build commands, and local paths are intentionally excluded."
}
