{
  "ok": true,
  "contractId": "local.casterfs-static-shell-isolation.v0",
  "status": "blocked_external",
  "mode": "live_vercel_static_casterfs_with_runtime_blocker_gates",
  "staticFallback": true,
  "writeAccepted": false,
  "liveMutationAllowed": false,
  "productionReady": false,
  "acceptedAsProductionEvidence": false,
  "mediaUploadAccepted": false,
  "mediaReadAccepted": false,
  "qstorageObjectAccepted": false,
  "legacyObjectFallbackAccepted": false,
  "postgresFallbackAccepted": false,
  "mediaRepairSnapshotAccepted": false,
  "mediaRepairRunAccepted": false,
  "remoteMediaPolicyAccepted": false,
  "contentAddressingAccepted": false,
  "accessPolicyAccepted": false,
  "walletLinkAccepted": false,
  "ownedIndexAccepted": false,
  "rateLimitMutationAccepted": false,
  "eventLogMutationAccepted": false,
  "walletConnectionAccepted": false,
  "surfaces": {
    "web": "/casterfs",
    "miniapp": "/miniapps/casterfs",
    "mediaUploadApi": "/api/media/upload",
    "mediaReadApi": "/api/media/[id]",
    "mediaRepairApi": "/api/admin/media-repair",
    "qstorageObjectSource": "src/lib/qstorage-object.ts",
    "mediaStorageSource": "src/lib/media-storage.ts",
    "legacyObjectSource": "src/lib/legacy-object-storage.ts",
    "snapshotsSource": "src/lib/qstorage-snapshots.ts",
    "api": [
      "/api/casterfs/overview",
      "/api/casterfs/media-upload",
      "/api/casterfs/media-read",
      "/api/casterfs/qstorage-object",
      "/api/casterfs/legacy-object-fallback",
      "/api/casterfs/postgres-fallback",
      "/api/casterfs/repair-queue",
      "/api/casterfs/repair-run",
      "/api/casterfs/remote-media-policy",
      "/api/casterfs/content-addressing",
      "/api/casterfs/access-policy",
      "/api/casterfs/miniapp",
      "/api/casterfs/wallet-link",
      "/api/casterfs/rate-limits",
      "/api/casterfs/owned-index-cache",
      "/api/casterfs/api",
      "/api/casterfs/qstorage",
      "/api/casterfs/event-log",
      "/api/casterfs/rollback"
    ],
    "status": "/api/casterfs/status"
  },
  "metrics": [
    {
      "label": "Media upload",
      "value": "blocked",
      "status": "blocked_external"
    },
    {
      "label": "Media read",
      "value": "read-only",
      "status": "blocked_external"
    },
    {
      "label": "QStorage",
      "value": "blocked",
      "status": "blocked_external"
    },
    {
      "label": "Repair",
      "value": "disabled",
      "status": "blocked_external"
    }
  ],
  "lanes": [
    {
      "id": "media",
      "title": "Media upload and read",
      "summary": "Read-only shell for /api/media/upload, /api/media/[id], safe content types, content addressing, and public media URL policy.",
      "status": "blocked_external"
    },
    {
      "id": "qstorage",
      "title": "QStorage object runtime",
      "summary": "QStorage object put/get, public gateway, guarded legacy fallback, and Postgres media fallback remain blocked until strict runtime evidence exists.",
      "status": "blocked_external"
    },
    {
      "id": "repair",
      "title": "Media repair queue",
      "summary": "Admin media repair snapshots and repair runs require treasury auth, owned index cache, Postgres, and object storage receipts before any mutation is enabled.",
      "status": "blocked_external"
    },
    {
      "id": "migration",
      "title": "QStorage, event log, rollback",
      "summary": "QStorage publication, append-only Caster event log, and rollback remain blocked until strict migration evidence passes.",
      "status": "blocked_external"
    }
  ],
  "blockers": [
    "No accepted full Next Caster FS build/typecheck receipt exists for this standalone fallback.",
    "No accepted shared Reown identity, wallet auth, Farcaster mini app runtime, media upload, media read, QStorage object storage, guarded legacy object fallback, Postgres media fallback, media repair snapshot, media repair run, remote media policy, content addressing, access policy, owned index cache, rate limits, QStorage, event log, or rollback runtime receipt exists.",
    "No signed @casterchain Farcaster accountAssociation exists for casterfs.vercel.app.",
    "No file upload, media read mutation, object upload, repair run, wallet action, rate-limit mutation, QStorage write, event-log append, rollback, public announcement, or production datastore mutation is allowed from this fallback."
  ]
}
