{
  "ok": true,
  "contractId": "local.castermemorymatch-static-shell-isolation.v0",
  "status": "blocked_external",
  "mode": "live_vercel_static_castermemorymatch_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": "/castermemorymatch",
    "miniapp": "/miniapps/castermemorymatch",
    "source": "/miniapps/caster-memory-match",
    "sourceGame": "/xgames/xmatch",
    "sourceApi": "/api/farcaster-miniapps?slug=caster-memory-match",
    "api": [
      "/api/castermemorymatch/game-card",
      "/api/castermemorymatch/sequence-prompt",
      "/api/castermemorymatch/tiles",
      "/api/castermemorymatch/follow-step",
      "/api/castermemorymatch/share-step",
      "/api/castermemorymatch/claim-step",
      "/api/castermemorymatch/play-session",
      "/api/castermemorymatch/score-proof",
      "/api/castermemorymatch/share",
      "/api/castermemorymatch/proof",
      "/api/castermemorymatch/claim",
      "/api/castermemorymatch/rewards",
      "/api/castermemorymatch/wallet",
      "/api/castermemorymatch/game-profile",
      "/api/castermemorymatch/rate-limits",
      "/api/castermemorymatch/anti-replay",
      "/api/castermemorymatch/catalog-api",
      "/api/castermemorymatch/image",
      "/api/castermemorymatch/qstorage",
      "/api/castermemorymatch/event-log",
      "/api/castermemorymatch/rollback"
    ],
    "status": "/api/castermemorymatch/status"
  },
  "metrics": [
    {
      "label": "Mini app",
      "value": "Memory Match",
      "status": "blocked_external"
    },
    {
      "label": "Reward",
      "value": "$CASTER",
      "status": "blocked_external"
    },
    {
      "label": "Source game",
      "value": "xmatch",
      "status": "blocked_external"
    },
    {
      "label": "Claims",
      "value": "blocked",
      "status": "blocked_external"
    }
  ],
  "lanes": [
    {
      "id": "memory",
      "title": "Memory sequence",
      "summary": "Read-only fallback for the follow-share-claim sequence and existing Memory Match game route.",
      "status": "blocked_external"
    },
    {
      "id": "proof",
      "title": "Share and proof",
      "summary": "Farcaster QuickAuth, share/cast proof, play sessions, score proof, and anti-replay checks remain blocked until runtime receipts pass.",
      "status": "blocked_external"
    },
    {
      "id": "rewards",
      "title": "Reward claim",
      "summary": "$CASTER reward claim, Caster Wallet settlement, and reward ledger writes are blocked until strict evidence passes.",
      "status": "blocked_external"
    },
    {
      "id": "proofs",
      "title": "Rate limits, event log, and rollback",
      "summary": "Rate limits, game profile state, QStorage, Caster event-log append, and rollback lanes require strict runtime evidence.",
      "status": "blocked_external"
    }
  ],
  "blockers": [
    "No accepted full Next Caster Memory Match build/typecheck receipt exists for this standalone fallback.",
    "No accepted shared Reown identity, Farcaster QuickAuth, wallet-auth session, catalog runtime, Memory Match game runtime, XGames session runtime, or sequence receipt exists.",
    "No accepted tile match score proof, share/cast proof, reward claim, reward-ledger, rate-limit, anti-replay, game-profile, 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 castermemorymatch.vercel.app.",
    "No live play session, score proof verification, reward claim, wallet settlement, rate-limit mutation, anti-replay write, QStorage write, event-log append, or production datastore mutation is allowed from this fallback."
  ]
}
