{
  "name": "ATLAS",
  "description": "The verified route layer for the AI ecosystem. Maps goals to evidence-backed routes, stacks, receipts, and outcomes for humans and AI agents.",
  "version": "0.8.0",
  "audience": [
    "humans",
    "ai-agents"
  ],
  "contact": "hello@atlas.vaultsparkstudios.com",
  "capabilities": [
    {
      "name": "verified-paths",
      "description": "Curated, evidence-backed routes from goals to recommended stacks",
      "endpoint": "/verified-paths",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "entities",
      "description": "AI tools, models, agents, and frameworks tracked by ATLAS",
      "endpoint": "/entities",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "route-generation",
      "description": "Generate a verified route from a natural-language goal and optional constraints. Constraints re-rank routes toward the ones that satisfy them (each ranked match reports constraintsMet/constraintsUnmet); matchStrength flags a low-confidence \"weak\" match so an agent knows when the top route is a guess rather than a recommendation.",
      "endpoint": "/routes/generate",
      "format": "application/json",
      "methods": [
        "POST"
      ],
      "input": {
        "goal": "string",
        "constraints": "string[] (concept keys — see recognizedConcepts)",
        "topN": "number (optional, default 3)"
      },
      "output": {
        "route": "VerifiedPath",
        "receipt": "Receipt",
        "matchStrength": "{ weakMatch: boolean, topScore: number, strength: \"weak\"|\"moderate\"|\"strong\", advice: string|null }",
        "rankedMatches": "[{ pathId, title, matchScore, matchReason, constraintsMet, constraintsUnmet }]"
      },
      "recognizedConcepts": [
        "affordable",
        "ai_image",
        "ai_music",
        "ai_video",
        "ai_voice",
        "ai_writing",
        "animated",
        "api",
        "apiavailable",
        "audio",
        "avatar",
        "beginner",
        "beginner_to_intermediate",
        "budget",
        "business",
        "cinematic",
        "clip",
        "commercial",
        "commercial_rights",
        "copy",
        "developer",
        "footage",
        "high_quality",
        "illustration",
        "image",
        "music",
        "narration",
        "photo",
        "production",
        "professional",
        "sound",
        "soundtrack",
        "text",
        "trailer",
        "tts",
        "under",
        "video",
        "visual",
        "voice",
        "voiceover",
        "writing"
      ]
    },
    {
      "name": "receipt-generation",
      "description": "Generate an evidence receipt for a verified path",
      "endpoint": "/receipts/generate",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "signed-receipts",
      "description": "Generate and verify HMAC-signed path receipts when the Worker receipt secret is configured",
      "endpoint": "/paths/{pathId}/receipt",
      "format": "application/json",
      "methods": [
        "GET"
      ],
      "related": [
        "/receipts/verify"
      ]
    },
    {
      "name": "path-comparison",
      "description": "Compare 2 or 3 verified paths side by side and return a recommendation",
      "endpoint": "/paths/compare",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "terrain-diff",
      "description": "Show stack deltas and confidence changes between two paths. Diff items are enriched objects — iterate item.name, item.category, item.verificationStatus rather than treating items as raw strings.",
      "endpoint": "/terrain/diff",
      "format": "application/json",
      "methods": [
        "GET"
      ],
      "input": {
        "base": "string (pathId)",
        "compare": "string (pathId)"
      },
      "output": {
        "base": "{ id: string, routeConfidence: number }",
        "compare": "{ id: string, routeConfidence: number }",
        "diff": {
          "added": "[{ id: string, name: string, category: string|null, verificationStatus: string }]",
          "removed": "[{ id: string, name: string, category: string|null, verificationStatus: string }]",
          "shared": "[{ id: string, name: string, category: string|null, verificationStatus: string }]"
        },
        "confidenceDelta": "number",
        "diffedAt": "ISO8601"
      }
    },
    {
      "name": "outcomes",
      "description": "Record whether a path worked - closes the verification loop",
      "endpoint": "/outcomes",
      "format": "application/json",
      "methods": [
        "GET",
        "POST"
      ]
    },
    {
      "name": "api-contract",
      "description": "Complete manifest-derived route table and safe smoke profile for AI agents",
      "endpoint": "/api-contract.json",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "runtime-status",
      "description": "Non-secret runtime storage status; reports whether mutable write surfaces are durable or ephemeral",
      "endpoint": "/api/runtime/status",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "mcp-server",
      "description": "MCP server for AI agents - query verified paths, score stacks, generate routes, compare paths, and verify receipts",
      "endpoint": "/mcp",
      "protocol": "MCP v1 (stdio)",
      "tools": [
        "atlas.search_entities",
        "atlas.get_verified_path",
        "atlas.generate_route",
        "atlas.score_stack",
        "atlas.generate_receipt",
        "atlas.compare_paths",
        "atlas.verify_receipt",
        "atlas.get_route_for_goal"
      ]
    }
  ],
  "primitives": [
    "Goal",
    "Route",
    "Evidence",
    "Stack",
    "Receipt",
    "Outcome",
    "Waypoint",
    "Trail"
  ],
  "trust": {
    "scoringModel": "weighted sum: 0.45*evidenceQuality + 0.25*freshness + 0.2*agentReadiness + 10 (0–100)",
    "stalenessPolicy": "display blocked when freshnessScore < 55; freshness decays to that threshold at each signal's window (pricing 14d, trend 7d, commercial_terms 30d, api_docs 60d, description 90d); entities default to the pricing signal (~14d)",
    "paidPlacement": "never affects score (SOUL commandment #7)"
  },
  "schema": "https://github.com/VaultSparkStudios/atlas/blob/main/ATLAS_v0.8_Windows_Safe_Export/ATLAS_v08/atlas/packages/schemas/src/entity.schema.json",
  "openapi": "/api-schema.json",
  "apiContract": "/api-contract.json",
  "requestLimits": {
    "maxJsonBodyBytes": 65536
  },
  "runtimeStatus": "/api/runtime/status",
  "persistenceReadiness": {
    "mode": "adapter-ready-complete",
    "status": "adapter-ready",
    "durableWrites": false,
    "requiredStore": "supabase",
    "criticalStores": [
      "entity-overrides",
      "admin-audit-log",
      "outcomes",
      "path-subscriptions",
      "waitlist"
    ],
    "adapterReadyStores": [
      "waitlist",
      "outcomes",
      "path-subscriptions",
      "entity-overrides",
      "admin-audit-log"
    ],
    "pendingStores": [],
    "statusEndpoint": "/api/runtime/status",
    "migrationChannelReadiness": {
      "status": "ready",
      "required": true,
      "requiredFor": [
        "schema migrations",
        "seed data",
        "durable runtime storage adapter"
      ],
      "acceptedChannels": [
        "Supabase exec_sql RPC",
        "Supabase /pg SQL proxy",
        "Supabase Management API (cloud projects)",
        "direct Postgres admin DSN"
      ],
      "activeChannel": "management-api",
      "currentEvidence": "S43: migrations 001-007 applied via the Supabase Management API and recorded in the atlas_schema_migrations ledger (filename + sha256). Preflight reports the live channel plus applied/pending diff.",
      "preflightCommand": "node scripts/apply-migrations.mjs --preflight --json"
    },
    "note": "Every launch-critical mutable store has a Supabase REST adapter with memory fallback (S43). Runtime durability still requires Supabase credentials on the deployed Worker; verify via /api/runtime/status on the live surface."
  },
  "x-api-routes": [
    {
      "id": "health",
      "endpoint": "/health",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "path-deltas-batch",
      "endpoint": "/paths/deltas",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "path-delta",
      "endpoint": "/paths/{pathId}/delta",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "entities-list",
      "endpoint": "/entities",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "entity-overrides",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "entities-batch",
      "endpoint": "/entities/batch",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "entity-detail",
      "endpoint": "/entities/{entityId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "entity-overrides",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "admin-review",
      "endpoint": "/api/admin/review/{entityId}",
      "methods": [
        "POST"
      ],
      "authRequired": true,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "entity-overrides",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "admin-log",
      "endpoint": "/api/admin/log",
      "methods": [
        "GET"
      ],
      "authRequired": true,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "admin-audit-log",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "admin-status",
      "endpoint": "/api/admin/status",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "runtime-status",
      "endpoint": "/api/runtime/status",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "obelisk-verify",
      "endpoint": "/api/obelisk-verify",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": false,
      "smokeSkipReason": "External Obelisk IdP fetch; covered by auth-contract source checks without network.",
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "verified-paths-list",
      "endpoint": "/verified-paths",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "verified-path-detail",
      "endpoint": "/verified-paths/{pathId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "evidence-list",
      "endpoint": "/evidence",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "evidence-submit",
      "endpoint": "/evidence/submit",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "admin-audit-log",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "score-entity",
      "endpoint": "/scoring/entity/{entityId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "score-path",
      "endpoint": "/scoring/path/{pathId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "generate-route",
      "endpoint": "/routes/generate",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "generate-receipt",
      "endpoint": "/receipts/generate",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "signed-path-receipt",
      "endpoint": "/paths/{pathId}/receipt",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "verify-receipt",
      "endpoint": "/receipts/verify",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "outcomes",
      "endpoint": "/outcomes",
      "methods": [
        "GET",
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "outcomes",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "outcome-aggregate",
      "endpoint": "/outcomes/aggregate/{pathId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "outcomes",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "outcome-summary",
      "endpoint": "/outcomes/summary",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "outcomes",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "compare-paths",
      "endpoint": "/paths/compare",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "terrain-diff",
      "endpoint": "/terrain/diff",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "client-errors",
      "endpoint": "/api/errors",
      "methods": [
        "GET",
        "POST"
      ],
      "authRequired": true,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "ephemeral-memory",
        "store": "client-errors",
        "launchCritical": false,
        "note": "Writes live in process/isolate memory only and do not survive restarts."
      }
    },
    {
      "id": "contact-status",
      "endpoint": "/api/contact/status",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "contact-send",
      "endpoint": "/api/contact",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "stateless-derived",
        "store": null,
        "launchCritical": false
      }
    },
    {
      "id": "popular-goals",
      "endpoint": "/api/popular-goals",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "waitlist",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "subscribe",
      "endpoint": "/api/subscribe",
      "methods": [
        "GET",
        "POST",
        "DELETE"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "path-subscriptions",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "waitlist-insights",
      "endpoint": "/api/admin/waitlist/insights",
      "methods": [
        "GET"
      ],
      "authRequired": true,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "waitlist",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    },
    {
      "id": "waitlist",
      "endpoint": "/api/waitlist",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null,
      "durability": {
        "class": "durable-adapter",
        "store": "waitlist",
        "launchCritical": true,
        "note": "Writes persist via Supabase REST when runtime credentials are configured; memory fallback otherwise. Verify live via /api/runtime/status."
      }
    }
  ],
  "x-capabilities": [
    {
      "name": "health",
      "description": "Manifest route: /health",
      "endpoint": "/health",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "path-deltas-batch",
      "description": "Manifest route: /paths/deltas",
      "endpoint": "/paths/deltas",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "path-delta",
      "description": "Manifest route: /paths/{pathId}/delta",
      "endpoint": "/paths/{pathId}/delta",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "entities-batch",
      "description": "Manifest route: /entities/batch",
      "endpoint": "/entities/batch",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "entity-detail",
      "description": "Manifest route: /entities/{entityId}",
      "endpoint": "/entities/{entityId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "admin-review",
      "description": "Manifest route: /api/admin/review/{entityId}",
      "endpoint": "/api/admin/review/{entityId}",
      "format": "application/json",
      "methods": [
        "POST"
      ],
      "auth": "X-Obelisk-Session or X-Admin-Token"
    },
    {
      "name": "admin-log",
      "description": "Manifest route: /api/admin/log",
      "endpoint": "/api/admin/log",
      "format": "application/json",
      "methods": [
        "GET"
      ],
      "auth": "X-Obelisk-Session or X-Admin-Token"
    },
    {
      "name": "admin-status",
      "description": "Manifest route: /api/admin/status",
      "endpoint": "/api/admin/status",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "runtime-status",
      "description": "Manifest route: /api/runtime/status",
      "endpoint": "/api/runtime/status",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "obelisk-verify",
      "description": "Manifest route: /api/obelisk-verify (External Obelisk IdP fetch; covered by auth-contract source checks without network.)",
      "endpoint": "/api/obelisk-verify",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "verified-path-detail",
      "description": "Manifest route: /verified-paths/{pathId}",
      "endpoint": "/verified-paths/{pathId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "evidence-list",
      "description": "Manifest route: /evidence",
      "endpoint": "/evidence",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "evidence-submit",
      "description": "Manifest route: /evidence/submit",
      "endpoint": "/evidence/submit",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "score-entity",
      "description": "Manifest route: /scoring/entity/{entityId}",
      "endpoint": "/scoring/entity/{entityId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "score-path",
      "description": "Manifest route: /scoring/path/{pathId}",
      "endpoint": "/scoring/path/{pathId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "verify-receipt",
      "description": "Manifest route: /receipts/verify",
      "endpoint": "/receipts/verify",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "outcome-aggregate",
      "description": "Manifest route: /outcomes/aggregate/{pathId}",
      "endpoint": "/outcomes/aggregate/{pathId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "outcome-summary",
      "description": "Manifest route: /outcomes/summary",
      "endpoint": "/outcomes/summary",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "client-errors",
      "description": "Manifest route: /api/errors",
      "endpoint": "/api/errors",
      "format": "application/json",
      "methods": [
        "GET",
        "POST"
      ],
      "auth": "X-Obelisk-Session or X-Admin-Token"
    },
    {
      "name": "contact-status",
      "description": "Manifest route: /api/contact/status",
      "endpoint": "/api/contact/status",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "contact-send",
      "description": "Manifest route: /api/contact",
      "endpoint": "/api/contact",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "popular-goals",
      "description": "Manifest route: /api/popular-goals",
      "endpoint": "/api/popular-goals",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "subscribe",
      "description": "Manifest route: /api/subscribe",
      "endpoint": "/api/subscribe",
      "format": "application/json",
      "methods": [
        "GET",
        "POST",
        "DELETE"
      ]
    },
    {
      "name": "waitlist-insights",
      "description": "Manifest route: /api/admin/waitlist/insights",
      "endpoint": "/api/admin/waitlist/insights",
      "format": "application/json",
      "methods": [
        "GET"
      ],
      "auth": "X-Obelisk-Session or X-Admin-Token"
    },
    {
      "name": "waitlist",
      "description": "Manifest route: /api/waitlist",
      "endpoint": "/api/waitlist",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "release-readiness",
      "description": "Machine-readable go/no-go release gate generated from PROJECT_STATUS without claiming launch approval",
      "endpoint": "/release-gate.json",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "get-route-for-goal",
      "description": "MCP one-call shortcut: natural-language goal to best route, evidence receipt, and ranked alternatives. Replaces 3 sequential MCP calls with one.",
      "tool": "atlas.get_route_for_goal",
      "protocol": "MCP v1",
      "input": {
        "goal": "string",
        "top_n": "number (optional, default 3)"
      },
      "output": {
        "route": "VerifiedPath",
        "receipt": "Receipt",
        "rankedMatches": "RankedMatch[]"
      }
    }
  ]
}
