{
    "ok": true,
    "readiness": {
        "version": "3.7.3-gameplay-action-verification-live-readiness",
        "status": "pass",
        "score": 100,
        "counts": {
            "pass": 46,
            "warning": 0,
            "fail": 0
        },
        "checks": [
            {
                "group": "migrations",
                "key": "049_phase37_core_player_gameplay_actions.sql",
                "status": "pass",
                "label": "Phase 37 action wrappers and receipts",
                "fix": "None."
            },
            {
                "group": "migrations",
                "key": "050_phase37_core_gameplay_action_hardening.sql",
                "status": "pass",
                "label": "Phase 37.1 hardening, locks, audit and event buses",
                "fix": "None."
            },
            {
                "group": "migrations",
                "key": "051_phase37_2_real_gameplay_engine_completion.sql",
                "status": "pass",
                "label": "Phase 37.2 real gameplay engine, replay, reconciliation and contracts",
                "fix": "None."
            },
            {
                "group": "migrations",
                "key": "052_phase37_3_gameplay_action_verification_live_readiness.sql",
                "status": "pass",
                "label": "Phase 37.3 live verification, troubleshooting and readiness snapshots",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "migrations",
                "status": "pass",
                "label": "Migration tracking table",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "idempotency_keys",
                "status": "pass",
                "label": "Idempotency replay table",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_player_action_receipts",
                "status": "pass",
                "label": "Phase 37 action receipts",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_action_audit",
                "status": "pass",
                "label": "Phase 37.1 action audit",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_hardening_checks",
                "status": "pass",
                "label": "Phase 37.1 hardening checks",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_escrow_intents",
                "status": "pass",
                "label": "Phase 37.1 escrow intents",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_mission_events",
                "status": "pass",
                "label": "Phase 37.1 mission event bus",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_notification_events",
                "status": "pass",
                "label": "Phase 37.1 notification event bus",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_2_action_receipt_summaries",
                "status": "pass",
                "label": "Phase 37.2 frontend receipt summaries",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_2_action_replay_snapshots",
                "status": "pass",
                "label": "Phase 37.2 admin replay snapshots",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_2_reconciliation_runs",
                "status": "pass",
                "label": "Phase 37.2 reconciliation runs",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_2_action_contracts",
                "status": "pass",
                "label": "Phase 37.2 action contracts",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_2_demo_seed_runs",
                "status": "pass",
                "label": "Phase 37.2 demo seed runs",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_2_integration_self_tests",
                "status": "pass",
                "label": "Phase 37.2 integration self-tests",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_3_live_readiness_snapshots",
                "status": "pass",
                "label": "Phase 37.3 live readiness snapshots",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_3_verification_runs",
                "status": "pass",
                "label": "Phase 37.3 verification runs",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "phase37_3_troubleshooting_notes",
                "status": "pass",
                "label": "Phase 37.3 troubleshooting notes",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "user_wallets",
                "status": "pass",
                "label": "Wallet balance table",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "economy_ledger",
                "status": "pass",
                "label": "Economy ledger",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "user_cards",
                "status": "pass",
                "label": "Card ownership/inventory table",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "card_ownership_history",
                "status": "pass",
                "label": "Card provenance table",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "pack_definitions",
                "status": "pass",
                "label": "Pack definitions",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "pack_opening_logs",
                "status": "pass",
                "label": "Pack opening logs",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "pack_opening_items",
                "status": "pass",
                "label": "Pack opening items",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "rng_proofs",
                "status": "pass",
                "label": "RNG/proof logs",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "market_listings",
                "status": "pass",
                "label": "Marketplace listings",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "trade_offers",
                "status": "pass",
                "label": "Trade offers",
                "fix": "None."
            },
            {
                "group": "database",
                "key": "guilds",
                "status": "pass",
                "label": "Guilds",
                "fix": "None."
            },
            {
                "group": "columns",
                "key": "phase37_player_action_receipts.idempotency_key",
                "status": "pass",
                "label": "Receipts are keyed by idempotency key",
                "fix": "None."
            },
            {
                "group": "columns",
                "key": "phase37_player_action_receipts.response_json",
                "status": "pass",
                "label": "Receipt stores response JSON",
                "fix": "None."
            },
            {
                "group": "columns",
                "key": "phase37_action_audit.affected_json",
                "status": "pass",
                "label": "Audit stores affected rows JSON",
                "fix": "None."
            },
            {
                "group": "columns",
                "key": "phase37_action_audit.error_code",
                "status": "pass",
                "label": "Audit stores standard error code",
                "fix": "None."
            },
            {
                "group": "columns",
                "key": "phase37_2_action_receipt_summaries.receipt_json",
                "status": "pass",
                "label": "Frontend receipt JSON exists",
                "fix": "None."
            },
            {
                "group": "columns",
                "key": "phase37_2_action_receipt_summaries.ledger_ids_json",
                "status": "pass",
                "label": "Ledger IDs are tracked in receipt summaries",
                "fix": "None."
            },
            {
                "group": "columns",
                "key": "phase37_3_live_readiness_snapshots.score",
                "status": "pass",
                "label": "Readiness score column exists",
                "fix": "None."
            },
            {
                "group": "columns",
                "key": "phase37_3_live_readiness_snapshots.payload_json",
                "status": "pass",
                "label": "Readiness payload JSON exists",
                "fix": "None."
            },
            {
                "group": "indexes",
                "key": "phase37_3_live_readiness_snapshots.idx_phase37_3_ready_status",
                "status": "pass",
                "label": "Snapshot status/date index",
                "fix": "None."
            },
            {
                "group": "indexes",
                "key": "phase37_3_verification_runs.idx_phase37_3_verify_status",
                "status": "pass",
                "label": "Verification status/date index",
                "fix": "None."
            },
            {
                "group": "indexes",
                "key": "phase37_3_troubleshooting_notes.uq_phase37_3_issue",
                "status": "pass",
                "label": "Troubleshooting issue unique key",
                "fix": "None."
            },
            {
                "group": "contracts",
                "key": "action_contract_count",
                "status": "pass",
                "label": "Phase 37.2 action contracts are available.",
                "fix": "None."
            },
            {
                "group": "routes",
                "key": "live_readiness_api",
                "status": "pass",
                "label": "Phase 37.3 live-readiness API routes are wired.",
                "fix": "None."
            },
            {
                "group": "admin",
                "key": "live_readiness_page",
                "status": "pass",
                "label": "Admin live readiness page exists.",
                "fix": "None."
            }
        ],
        "generated_at": "2026-07-05 15:00:46",
        "recommendation": "Phase 37 is live-ready. Move to Phase 38 player UX polish after one real pack/squad/battle/market/trade smoke test on the server."
    }
}