{
  "ok": true,
  "contractId": "local.casterschool-static-shell-isolation.v0",
  "status": "blocked_external",
  "mode": "live_vercel_static_casterschool_with_runtime_blocker_gates",
  "publicReadinessStatus": "blocked_external",
  "runtimeVisibilityStatus": "passed",
  "localOnly": false,
  "staticFallback": true,
  "writeAccepted": false,
  "liveMutationAllowed": false,
  "productionReady": false,
  "commercialReady": false,
  "acceptedAsProductionEvidence": false,
  "surfaces": {
    "web": "/casterschool",
    "miniapp": "/miniapps/casterschool",
    "sourceMiniApp": "/miniapps/caster-school-quiz",
    "sourceCatalog": "/api/casterschool/catalog",
    "sourceSnap": "/api/casterschool/snap",
    "sourceClaims": "/api/casterschool/claims",
    "api": [
      "/api/casterschool/overview",
      "/api/casterschool/catalog",
      "/api/casterschool/snap",
      "/api/casterschool/quiz",
      "/api/casterschool/question-bank",
      "/api/casterschool/answer-progress",
      "/api/casterschool/claim-gates",
      "/api/casterschool/follow-gate",
      "/api/casterschool/channel-gate",
      "/api/casterschool/share-proof",
      "/api/casterschool/score",
      "/api/casterschool/rewards",
      "/api/casterschool/wallet",
      "/api/casterschool/fid-progress",
      "/api/casterschool/claims",
      "/api/casterschool/rate-limits",
      "/api/casterschool/anti-replay",
      "/api/casterschool/qstorage",
      "/api/casterschool/event-log",
      "/api/casterschool/rollback"
    ],
    "status": "/api/casterschool/status"
  },
  "metrics": [
    {
      "label": "Quiz catalog",
      "value": "100 lessons",
      "status": "blocked_external"
    },
    {
      "label": "Questions",
      "value": "5 per quiz",
      "status": "blocked_external"
    },
    {
      "label": "Reward",
      "value": "200 $CASTER each",
      "status": "blocked_external"
    },
    {
      "label": "Max claim",
      "value": "1,000 $CASTER",
      "status": "blocked_external"
    }
  ],
  "lanes": [
    {
      "id": "snap",
      "title": "Snap classroom",
      "summary": "Read-only fallback for the Caster School Snap catalog, daily quiz route, and Farcaster mini app shell.",
      "status": "blocked_external"
    },
    {
      "id": "gates",
      "title": "Claim gates",
      "summary": "Signed FID, @casterchain follow, /casterschool channel, and proof-cast verification stay blocked until runtime receipts pass.",
      "status": "blocked_external"
    },
    {
      "id": "rewards",
      "title": "Reward accounting",
      "summary": "$CASTER quiz claim store, reward ledger writes, and Caster Wallet settlement are blocked until strict evidence passes.",
      "status": "blocked_external"
    },
    {
      "id": "proofs",
      "title": "Rate limits, event log, and rollback",
      "summary": "Rate limits, anti-replay state, QStorage, Caster event-log append, and rollback lanes require strict runtime evidence.",
      "status": "blocked_external"
    }
  ],
  "blockers": [
    "No accepted full Next Caster School build/typecheck receipt exists for this standalone fallback.",
    "No accepted shared Reown identity, wallet-auth session, signed Farcaster FID, Snap action runtime, quiz progress, follow/channel verification, or proof-cast verification receipt exists.",
    "No accepted Caster School claim store, reward-ledger, rate-limit, anti-replay, or Caster Wallet settlement receipt exists.",
    "No accepted QStorage write, event-log append, Caster event log rollback, or production datastore rollback receipt exists.",
    "No signed @casterchain Farcaster accountAssociation exists for casterschool.vercel.app.",
    "No live answer progress write, follow/channel gate acceptance, proof-cast verification, claim write, reward ledger write, wallet settlement, rate-limit mutation, anti-replay write, QStorage write, event-log append, or production datastore mutation is allowed from this fallback."
  ]
}
