{ "version": 2, "categories": [ { "id": "academic", "label": "Academic" }, { "id": "design", "label": "Design" }, { "id": "engineering", "label": "Engineering" }, { "id": "finance", "label": "Finance" }, { "id": "game-development", "label": "Game Development" }, { "id": "gis", "label": "GIS" }, { "id": "healthcare", "label": "Healthcare" }, { "id": "marketing", "label": "Marketing" }, { "id": "paid-media", "label": "Paid Media" }, { "id": "product", "label": "Product" }, { "id": "project-management", "label": "Project Management" }, { "id": "research", "label": "Research" }, { "id": "sales", "label": "Sales" }, { "id": "security", "label": "Security" }, { "id": "spatial-computing", "label": "Spatial Computing" }, { "id": "specialized", "label": "Specialized" }, { "id": "support", "label": "Support" }, { "id": "testing", "label": "Testing" } ], "$comment": "Catalog head: version + categories shared by every expert. Experts live one-per-file in data/experts.d//.json, imported from agency-agents (scripts/import-agency-agents.mjs --replace). A file that fails to parse or validate is skipped with a warning surfaced via /api/state — one bad file never takes the catalog down." }