{
  "ok": true,
  "contractId": "local.casterpulsetap-static-shell-isolation.v0",
  "status": "blocked_external",
  "mode": "live_vercel_static_casterpulsetap_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": "/casterpulsetap",
    "miniapp": "/miniapps/casterpulsetap",
    "source": "/miniapps/caster-pulse-tap",
    "sourceApi": "/api/farcaster-miniapps?slug=caster-pulse-tap",
    "api": [
      "/api/casterpulsetap/game-card",
      "/api/casterpulsetap/tap-prompt",
      "/api/casterpulsetap/caster-zone",
      "/api/casterpulsetap/noise-lane",
      "/api/casterpulsetap/follow-step",
      "/api/casterpulsetap/share-step",
      "/api/casterpulsetap/claim-step",
      "/api/casterpulsetap/play-session",
      "/api/casterpulsetap/tap-proof",
      "/api/casterpulsetap/share",
      "/api/casterpulsetap/proof",
      "/api/casterpulsetap/claim",
      "/api/casterpulsetap/rewards",
      "/api/casterpulsetap/wallet",
      "/api/casterpulsetap/game-profile",
      "/api/casterpulsetap/rate-limits",
      "/api/casterpulsetap/anti-replay",
      "/api/casterpulsetap/catalog-api",
      "/api/casterpulsetap/image",
      "/api/casterpulsetap/qstorage",
      "/api/casterpulsetap/event-log",
      "/api/casterpulsetap/rollback"
    ],
    "status": "/api/casterpulsetap/status"
  },
  "metrics": [
    {
      "label": "Mini app",
      "value": "Pulse Tap",
      "status": "blocked_external"
    },
    {
      "label": "Reward",
      "value": "$CASTER",
      "status": "blocked_external"
    },
    {
      "label": "Tap target",
      "value": "Caster Zone",
      "status": "blocked_external"
    },
    {
      "label": "Claims",
      "value": "blocked",
      "status": "blocked_external"
    }
  ],
  "lanes": [
    {
      "id": "pulse",
      "title": "Pulse timing",
      "summary": "Read-only fallback for the Caster Zone tap loop and follow-share-claim Pulse Tap mini app.",
      "status": "blocked_external"
    },
    {
      "id": "proof",
      "title": "Share and proof",
      "summary": "Farcaster QuickAuth, share/cast proof, play sessions, tap 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 Pulse Tap build/typecheck receipt exists for this standalone fallback.",
    "No accepted shared Reown identity, Farcaster QuickAuth, wallet-auth session, catalog runtime, Pulse Tap game runtime, mini app tap session runtime, or tap challenge receipt exists.",
    "No accepted tap 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 casterpulsetap.vercel.app.",
    "No live play session, tap 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."
  ]
}
