{
  "ok": true,
  "contractId": "local.castergridquest-static-shell-isolation.v0",
  "status": "blocked_external",
  "mode": "live_vercel_static_castergridquest_with_runtime_blocker_gates",
  "staticFallback": true,
  "writeAccepted": false,
  "liveMutationAllowed": false,
  "productionReady": false,
  "acceptedAsProductionEvidence": false,
  "walletConnectionAccepted": false,
  "profileAccepted": false,
  "playSessionAccepted": false,
  "rewardClaimAccepted": false,
  "quitSessionAccepted": false,
  "energySpendAccepted": false,
  "rewardLedgerAccepted": false,
  "antiReplayAccepted": false,
  "surfaces": {
    "web": "/castergridquest",
    "existingGameRoute": "/xgames/xgrid",
    "existingCasterGamesRoute": "/castergames/xgrid",
    "existingMiniAppSlug": "/miniapps/caster-grid-quest",
    "miniappAlias": "/miniapps/castergridquest",
    "api": [
      "/api/castergridquest/overview",
      "/api/castergridquest/game",
      "/api/castergridquest/xgrid-source",
      "/api/castergridquest/miniapp",
      "/api/castergridquest/farcaster-catalog",
      "/api/castergridquest/profile",
      "/api/castergridquest/play-session",
      "/api/castergridquest/reward-claim",
      "/api/castergridquest/quit-session",
      "/api/castergridquest/energy",
      "/api/castergridquest/anti-replay",
      "/api/castergridquest/wallet-link",
      "/api/castergridquest/api",
      "/api/castergridquest/qstorage",
      "/api/castergridquest/event-log",
      "/api/castergridquest/rollback"
    ],
    "status": "/api/castergridquest/status"
  },
  "sourceFiles": [
    "src/app/xgames/xgrid/page.tsx",
    "src/components/xgames/XGameWrapper.tsx",
    "src/lib/xgames-catalog.ts",
    "src/lib/xgames-runtime.ts",
    "src/lib/farcaster-miniapps-catalog.ts",
    "src/app/miniapps/[slug]/page.tsx",
    "src/app/miniapps/[slug]/FarcasterMiniAppClient.tsx",
    "src/app/api/xgames/play/route.ts",
    "src/app/api/xgames/claim/route.ts",
    "src/app/api/xgames/quit/route.ts",
    "src/app/api/farcaster-miniapps/game/route.ts"
  ],
  "metrics": [
    {
      "label": "Existing game",
      "value": "xgrid",
      "status": "passed"
    },
    {
      "label": "Non-mutating play",
      "value": "enabled",
      "status": "passed"
    },
    {
      "label": "Energy spend",
      "value": "blocked",
      "status": "blocked_external"
    },
    {
      "label": "Reward claims",
      "value": "blocked",
      "status": "blocked_external"
    }
  ],
  "lanes": [
    {
      "id": "game",
      "title": "Target Grid gameplay",
      "summary": "Reuses the existing xgrid aim-game mechanics as a standalone non-mutating Caster Grid Quest surface.",
      "status": "passed"
    },
    {
      "id": "sessions",
      "title": "Energy and sessions",
      "summary": "Wallet-authenticated energy spend, active sessions, quit flows, and anti-replay remain blocked until runtime receipts pass.",
      "status": "blocked_external"
    },
    {
      "id": "rewards",
      "title": "Claims and ledger",
      "summary": "Reward claims, CASTER ledger settlement, datastore writes, and rollback receipts require strict evidence first.",
      "status": "blocked_external"
    },
    {
      "id": "miniapp",
      "title": "Farcaster mini app",
      "summary": "Caster Grid Quest catalog metadata exists, but accountAssociation must be signed for castergridquest.vercel.app.",
      "status": "blocked_external"
    }
  ],
  "blockers": [
    "No accepted full Next Caster Grid Quest build/typecheck receipt exists for this standalone fallback.",
    "No accepted shared Reown identity, wallet auth, Farcaster mini app runtime, xgrid runtime, profile, energy, play session, reward claim, quit session, reward ledger, anti-replay, rate limit, QStorage, event log, or rollback receipt exists.",
    "No signed @casterchain Farcaster accountAssociation exists for castergridquest.vercel.app.",
    "No wallet action, energy spend, play-session write, reward claim, ledger append, QStorage write, event-log append, rollback, public announcement, or production datastore mutation is allowed from this fallback."
  ]
}
