{
    "ok": true,
    "shell": {
        "version": "4.0.42-logo-season-chip-removal",
        "screen": "dashboard",
        "title": "Home",
        "subtitle": "Public launch dashboard: packs, squad, market, events, objectives and standings.",
        "profile": {
            "user_id": 904,
            "name": "aussiewarrior",
            "level": 8,
            "xp": 7655,
            "xp_next": 800,
            "xp_percent": 57,
            "coins": 9567,
            "gems": 0,
            "unread": 38
        },
        "quick_stats": [
            {
                "label": "Cards",
                "value": 41,
                "tone": "cards"
            },
            {
                "label": "Packs",
                "value": 0,
                "tone": "packs"
            },
            {
                "label": "Trades",
                "value": 0,
                "tone": "trades"
            },
            {
                "label": "Battles",
                "value": 24,
                "tone": "battle"
            },
            {
                "label": "Listings",
                "value": 1,
                "tone": "market"
            },
            {
                "label": "Inbox",
                "value": 38,
                "tone": "inbox"
            }
        ],
        "top_actions": [
            {
                "label": "Open Pack",
                "route": "app/pack-open",
                "style": "primary"
            },
            {
                "label": "Battle",
                "route": "app/battle",
                "style": "ghost"
            },
            {
                "label": "Market",
                "route": "app/market",
                "style": "ghost"
            },
            {
                "label": "Public QA",
                "route": "app/readiness",
                "style": "ghost"
            }
        ],
        "bottom_nav": [
            {
                "key": "social",
                "label": "Social",
                "icon": "\u2630",
                "route": "app/social",
                "active": false
            },
            {
                "key": "collection",
                "label": "Cards",
                "icon": "\u25a3",
                "route": "app/collection",
                "active": false
            },
            {
                "key": "battle",
                "label": "Play",
                "icon": "\u25b6",
                "route": "app/battle",
                "active": false
            },
            {
                "key": "shop",
                "label": "Store",
                "icon": "\u25c8",
                "route": "app/shop",
                "active": false
            }
        ],
        "screen_nav": [
            {
                "key": "dashboard",
                "label": "Home",
                "icon": "\u2302",
                "route": "dashboard",
                "group": "Core",
                "active": true
            },
            {
                "key": "collection",
                "label": "Cards",
                "icon": "\u25a3",
                "route": "collection",
                "group": "Cards",
                "active": false
            },
            {
                "key": "squad",
                "label": "Squad",
                "icon": "\u25a5",
                "route": "squad",
                "group": "Play",
                "active": false
            },
            {
                "key": "shop",
                "label": "Store",
                "icon": "\u25c8",
                "route": "shop",
                "group": "Store",
                "active": false
            },
            {
                "key": "pack-open",
                "label": "Packs",
                "icon": "\u2726",
                "route": "inventory",
                "group": "Store",
                "active": false
            },
            {
                "key": "battle",
                "label": "Battle",
                "icon": "\u26a1",
                "route": "battle",
                "group": "Play",
                "active": false
            },
            {
                "key": "market",
                "label": "Market",
                "icon": "\u21c4",
                "route": "market",
                "group": "Economy",
                "active": false
            },
            {
                "key": "trades",
                "label": "Trades",
                "icon": "\u2194",
                "route": "trades",
                "group": "Economy",
                "active": false
            },
            {
                "key": "auctions",
                "label": "Auctions",
                "icon": "\u25f7",
                "route": "app/auctions",
                "group": "Economy",
                "active": false
            },
            {
                "key": "guild",
                "label": "Guild",
                "icon": "\u25c6",
                "route": "guilds",
                "group": "Community",
                "active": false
            },
            {
                "key": "social",
                "label": "Feed",
                "icon": "\u2630",
                "route": "social",
                "group": "Community",
                "active": false
            },
            {
                "key": "notifications",
                "label": "Inbox",
                "icon": "\u25cf",
                "route": "live/inbox",
                "group": "Community",
                "active": false
            },
            {
                "key": "missions",
                "label": "Missions",
                "icon": "\u2713",
                "route": "live",
                "group": "Live Ops",
                "active": false
            },
            {
                "key": "stadiums",
                "label": "World",
                "icon": "\u25ce",
                "route": "stadiums",
                "group": "World",
                "active": false
            },
            {
                "key": "profile",
                "label": "Profile",
                "icon": "\u263b",
                "route": "profile",
                "group": "Core",
                "active": false
            },
            {
                "key": "support",
                "label": "Support",
                "icon": "?",
                "route": "support",
                "group": "Help",
                "active": false
            }
        ],
        "screen_data": {
            "screen": "dashboard",
            "summary": {
                "cards": 41,
                "unique_cards": 16,
                "unopened_packs": 0,
                "active_listings": 1,
                "pending_trades": 0,
                "unread_notifications": 38,
                "open_tickets": 1,
                "battles": 24
            },
            "wallet": {
                "user_id": 904,
                "coins": 9567,
                "gems": 0,
                "xp": 7655,
                "lifetime_xp": 7655,
                "level": 8,
                "prestige_level": 0,
                "created_at": "2026-06-27 01:46:10",
                "updated_at": "2026-07-04 20:40:58"
            },
            "recent_cards": [
                {
                    "id": 36,
                    "user_id": 904,
                    "card_definition_id": 14,
                    "edition_number": 479,
                    "serial_display": "0479/1,000",
                    "stamina_current": 100,
                    "dynamic_stat_json": "[]",
                    "source_type": "pack_opening",
                    "source_id": 3,
                    "is_locked": 0,
                    "is_favourite": 0,
                    "is_tradeable": 1,
                    "acquired_at": "2026-07-01 11:06:47",
                    "deleted_at": null,
                    "name": "Nathan Cleary Demo",
                    "rarity": "rare",
                    "position": "halfback",
                    "club": "Penrith Panthers",
                    "nationality": "Australia",
                    "calculated_overall": 134,
                    "front_image_path": ""
                },
                {
                    "id": 33,
                    "user_id": 904,
                    "card_definition_id": 14,
                    "edition_number": 733,
                    "serial_display": "0733/1,000",
                    "stamina_current": 20,
                    "dynamic_stat_json": "[]",
                    "source_type": "pack_opening",
                    "source_id": 2,
                    "is_locked": 0,
                    "is_favourite": 0,
                    "is_tradeable": 1,
                    "acquired_at": "2026-06-28 02:05:02",
                    "deleted_at": null,
                    "name": "Nathan Cleary Demo",
                    "rarity": "rare",
                    "position": "halfback",
                    "club": "Penrith Panthers",
                    "nationality": "Australia",
                    "calculated_overall": 134,
                    "front_image_path": ""
                },
                {
                    "id": 23,
                    "user_id": 904,
                    "card_definition_id": 14,
                    "edition_number": 374,
                    "serial_display": "0374/1,000",
                    "stamina_current": 20,
                    "dynamic_stat_json": "[]",
                    "source_type": "pack_opening",
                    "source_id": 2,
                    "is_locked": 0,
                    "is_favourite": 0,
                    "is_tradeable": 1,
                    "acquired_at": "2026-06-28 02:05:01",
                    "deleted_at": null,
                    "name": "Nathan Cleary Demo",
                    "rarity": "rare",
                    "position": "halfback",
                    "club": "Penrith Panthers",
                    "nationality": "Australia",
                    "calculated_overall": 134,
                    "front_image_path": ""
                },
                {
                    "id": 39,
                    "user_id": 904,
                    "card_definition_id": 7,
                    "edition_number": 2612,
                    "serial_display": "02612/10,000",
                    "stamina_current": 100,
                    "dynamic_stat_json": "[]",
                    "source_type": "pack_opening",
                    "source_id": 3,
                    "is_locked": 0,
                    "is_favourite": 0,
                    "is_tradeable": 1,
                    "acquired_at": "2026-07-01 11:06:47",
                    "deleted_at": null,
                    "name": "Foundation Halfback",
                    "rarity": "common",
                    "position": "halfback",
                    "club": "RLCG Academy",
                    "nationality": "Australia",
                    "calculated_overall": 70,
                    "front_image_path": ""
                },
                {
                    "id": 12,
                    "user_id": 904,
                    "card_definition_id": 7,
                    "edition_number": 6548,
                    "serial_display": "06548/10,000",
                    "stamina_current": 20,
                    "dynamic_stat_json": "[]",
                    "source_type": "pack_opening",
                    "source_id": 1,
                    "is_locked": 0,
                    "is_favourite": 0,
                    "is_tradeable": 0,
                    "acquired_at": "2026-06-27 01:47:37",
                    "deleted_at": null,
                    "name": "Foundation Halfback",
                    "rarity": "common",
                    "position": "halfback",
                    "club": "RLCG Academy",
                    "nationality": "Australia",
                    "calculated_overall": 70,
                    "front_image_path": ""
                },
                {
                    "id": 42,
                    "user_id": 904,
                    "card_definition_id": 6,
                    "edition_number": 9071,
                    "serial_display": "09071/10,000",
                    "stamina_current": 100,
                    "dynamic_stat_json": "[]",
                    "source_type": "pack_opening",
                    "source_id": 3,
                    "is_locked": 0,
                    "is_favourite": 0,
                    "is_tradeable": 1,
                    "acquired_at": "2026-07-01 11:06:47",
                    "deleted_at": null,
                    "name": "Foundation Five-Eighth",
                    "rarity": "common",
                    "position": "five_eighth",
                    "club": "RLCG Academy",
                    "nationality": "Australia",
                    "calculated_overall": 69,
                    "front_image_path": ""
                },
                {
                    "id": 32,
                    "user_id": 904,
                    "card_definition_id": 12,
                    "edition_number": 1246,
                    "serial_display": "01246/10,000",
                    "stamina_current": 20,
                    "dynamic_stat_json": "[]",
                    "source_type": "pack_opening",
                    "source_id": 2,
                    "is_locked": 0,
                    "is_favourite": 0,
                    "is_tradeable": 1,
                    "acquired_at": "2026-06-28 02:05:02",
                    "deleted_at": null,
                    "name": "Foundation Hooker",
                    "rarity": "common",
                    "position": "hooker",
                    "club": "RLCG Academy",
                    "nationality": "Australia",
                    "calculated_overall": 69,
                    "front_image_path": ""
                },
                {
                    "id": 28,
                    "user_id": 904,
                    "card_definition_id": 12,
                    "edition_number": 3780,
                    "serial_display": "03780/10,000",
                    "stamina_current": 20,
                    "dynamic_stat_json": "[]",
                    "source_type": "pack_opening",
                    "source_id": 2,
                    "is_locked": 0,
                    "is_favourite": 0,
                    "is_tradeable": 1,
                    "acquired_at": "2026-06-28 02:05:02",
                    "deleted_at": null,
                    "name": "Foundation Hooker",
                    "rarity": "common",
                    "position": "hooker",
                    "club": "RLCG Academy",
                    "nationality": "Australia",
                    "calculated_overall": 69,
                    "front_image_path": ""
                }
            ],
            "unopened_packs": [],
            "missions": [
                {
                    "id": "5",
                    "event_id": null,
                    "slug": "phase16-daily-open-pack",
                    "name": "Open a pack today",
                    "description": "Open any pack to earn Live Ops progress and Superpass XP.",
                    "cadence": "daily",
                    "activity_type": "pack_opened",
                    "target_value": "1",
                    "reward_json": "{\"coins\": 150, \"xp\": 60, \"battlepass_xp\": 40}",
                    "starts_at": null,
                    "ends_at": null,
                    "weight": "220",
                    "is_enabled": "1",
                    "meta_json": "{\"phase\": \"16.2\"}",
                    "created_at": "2026-07-01 09:33:35",
                    "updated_at": "2026-07-01 09:33:35",
                    "deleted_at": null
                },
                {
                    "id": "6",
                    "event_id": null,
                    "slug": "phase16-daily-play-battle",
                    "name": "Play a battle today",
                    "description": "Play any match or battle mode.",
                    "cadence": "daily",
                    "activity_type": "battle_played",
                    "target_value": "1",
                    "reward_json": "{\"coins\": 125, \"xp\": 50, \"battlepass_xp\": 30}",
                    "starts_at": null,
                    "ends_at": null,
                    "weight": "210",
                    "is_enabled": "1",
                    "meta_json": "{\"phase\": \"16.2\"}",
                    "created_at": "2026-07-01 09:33:35",
                    "updated_at": "2026-07-01 09:33:35",
                    "deleted_at": null
                },
                {
                    "id": "1",
                    "event_id": null,
                    "slug": "daily-play-1-battle",
                    "name": "Play 1 Battle",
                    "description": "Complete any battle mode today.",
                    "cadence": "daily",
                    "activity_type": "battle_played",
                    "target_value": "1",
                    "reward_json": "{\"coins\": 120, \"xp\": 80, \"battlepass_xp\": 50}",
                    "starts_at": null,
                    "ends_at": null,
                    "weight": "100",
                    "is_enabled": "1",
                    "meta_json": null,
                    "created_at": "2026-06-26 15:31:28",
                    "updated_at": "2026-06-26 15:31:28",
                    "deleted_at": null
                },
                {
                    "id": "2",
                    "event_id": null,
                    "slug": "daily-win-1-battle",
                    "name": "Win 1 Battle",
                    "description": "Win a battle today.",
                    "cadence": "daily",
                    "activity_type": "battle_win",
                    "target_value": "1",
                    "reward_json": "{\"coins\": 220, \"xp\": 130, \"battlepass_xp\": 80}",
                    "starts_at": null,
                    "ends_at": null,
                    "weight": "95",
                    "is_enabled": "1",
                    "meta_json": null,
                    "created_at": "2026-06-26 15:31:28",
                    "updated_at": "2026-06-26 15:31:28",
                    "deleted_at": null
                },
                {
                    "id": "7",
                    "event_id": null,
                    "slug": "phase16-weekly-stadium-control",
                    "name": "Win a Stadium Battle this week",
                    "description": "Win a Stadium Battle to progress the weekly Live Ops loop.",
                    "cadence": "weekly",
                    "activity_type": "stadium_battle_win",
                    "target_value": "1",
                    "reward_json": "{\"coins\": 600, \"xp\": 250, \"battlepass_xp\": 180}",
                    "starts_at": null,
                    "ends_at": null,
                    "weight": "205",
                    "is_enabled": "1",
                    "meta_json": "{\"phase\": \"16.2\"}",
                    "created_at": "2026-07-01 09:33:35",
                    "updated_at": "2026-07-01 09:33:35",
                    "deleted_at": null
                }
            ],
            "notifications": [
                {
                    "id": 40,
                    "user_id": 904,
                    "type": "stadium_captured",
                    "title": "Stadium captured",
                    "body": "You now own a stadium zone.",
                    "meta_json": "{\"stadium_id\":9,\"points\":25}",
                    "read_at": null,
                    "created_at": "2026-07-04 04:04:56"
                },
                {
                    "id": 39,
                    "user_id": 904,
                    "type": "reward",
                    "title": "Reward claimed",
                    "body": "Your reward has been added to your account.",
                    "meta_json": "{\"reward\":{\"coins\":250,\"xp\":100},\"reason\":\"album_challenge\"}",
                    "read_at": null,
                    "created_at": "2026-07-04 02:48:19"
                },
                {
                    "id": 38,
                    "user_id": 904,
                    "type": "reward",
                    "title": "Reward claimed",
                    "body": "Your reward has been added to your account.",
                    "meta_json": "{\"reward\":{\"coins\":550,\"xp\":150,\"battlepass_xp\":75,\"battlepass\":{\"season\":{\"id\":\"1\",\"slug\":\"launch-pass-1\",\"name\":\"Launch Superpass\",\"description\":\"First live-ops reward track for the long-build launch state.\",\"status\":\"active\",\"starts_at\":\"2026-06-25 15:31:28\",\"ends_at\":\"2026-08-10 15:31:28\",\"premium_price_gems\":\"950\",\"settings_json\":\"{\\\"tier_count\\\": 10, \\\"xp_per_tier\\\": 500}\",\"created_at\":\"2026-06-26 15:31:28\",\"updated_at\":\"2026-06-26 15:31:28\",\"deleted_at\":null},\"progress\":{\"id\":2,\"user_id\":904,\"season_id\":1,\"xp\":3344,\"premium_unlocked\":0,\"created_at\":\"2026-06-27 01:51:44\",\"updated_at\":\"2026-07-04 01:13:40\"},\"tiers\":[{\"id\":1,\"season_id\":1,\"tier_number\":1,\"xp_required\":0,\"free_reward_json\":\"{\\\"coins\\\": 100}\",\"premium_reward_json\":\"{\\\"coins\\\": 250, \\\"gems\\\": 25}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":1,\"premium_claim_id\":null,\"free_reward\":{\"coins\":100},\"premium_reward\":{\"coins\":250,\"gems\":25},\"unlocked\":true},{\"id\":2,\"season_id\":1,\"tier_number\":2,\"xp_required\":500,\"free_reward_json\":\"{\\\"coins\\\": 150, \\\"xp\\\": 50}\",\"premium_reward_json\":\"{\\\"coins\\\": 350, \\\"gems\\\": 40}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":2,\"premium_claim_id\":null,\"free_reward\":{\"coins\":150,\"xp\":50},\"premium_reward\":{\"coins\":350,\"gems\":40},\"unlocked\":true},{\"id\":3,\"season_id\":1,\"tier_number\":3,\"xp_required\":1000,\"free_reward_json\":\"{\\\"coins\\\": 200}\",\"premium_reward_json\":\"{\\\"coins\\\": 500, \\\"gems\\\": 50}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":3,\"premium_claim_id\":null,\"free_reward\":{\"coins\":200},\"premium_reward\":{\"coins\":500,\"gems\":50},\"unlocked\":true},{\"id\":4,\"season_id\":1,\"tier_number\":4,\"xp_required\":1500,\"free_reward_json\":\"{\\\"xp\\\": 200}\",\"premium_reward_json\":\"{\\\"coins\\\": 600, \\\"gems\\\": 60}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":4,\"premium_claim_id\":null,\"free_reward\":{\"xp\":200},\"premium_reward\":{\"coins\":600,\"gems\":60},\"unlocked\":true},{\"id\":5,\"season_id\":1,\"tier_number\":5,\"xp_required\":2000,\"free_reward_json\":\"{\\\"coins\\\": 400}\",\"premium_reward_json\":\"{\\\"coins\\\": 900, \\\"gems\\\": 80}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":5,\"premium_claim_id\":null,\"free_reward\":{\"coins\":400},\"premium_reward\":{\"coins\":900,\"gems\":80},\"unlocked\":true},{\"id\":6,\"season_id\":1,\"tier_number\":6,\"xp_required\":2500,\"free_reward_json\":\"{\\\"coins\\\": 450}\",\"premium_reward_json\":\"{\\\"coins\\\": 1000, \\\"gems\\\": 90}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":6,\"premium_claim_id\":null,\"free_reward\":{\"coins\":450},\"premium_reward\":{\"coins\":1000,\"gems\":90},\"unlocked\":true},{\"id\":7,\"season_id\":1,\"tier_number\":7,\"xp_required\":3000,\"free_reward_json\":\"{\\\"xp\\\": 400}\",\"premium_reward_json\":\"{\\\"coins\\\": 1200, \\\"gems\\\": 100}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":7,\"premium_claim_id\":null,\"free_reward\":{\"xp\":400},\"premium_reward\":{\"coins\":1200,\"gems\":100},\"unlocked\":true},{\"id\":8,\"season_id\":1,\"tier_number\":8,\"xp_required\":3500,\"free_reward_json\":\"{\\\"coins\\\": 650}\",\"premium_reward_json\":\"{\\\"coins\\\": 1500, \\\"gems\\\": 120}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":null,\"premium_claim_id\":null,\"free_reward\":{\"coins\":650},\"premium_reward\":{\"coins\":1500,\"gems\":120},\"unlocked\":false},{\"id\":9,\"season_id\":1,\"tier_number\":9,\"xp_required\":4000,\"free_reward_json\":\"{\\\"coins\\\": 800}\",\"premium_reward_json\":\"{\\\"coins\\\": 1800, \\\"gems\\\": 150}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":null,\"premium_claim_id\":null,\"free_reward\":{\"coins\":800},\"premium_reward\":{\"coins\":1800,\"gems\":150},\"unlocked\":false},{\"id\":10,\"season_id\":1,\"tier_number\":10,\"xp_required\":4500,\"free_reward_json\":\"{\\\"coins\\\": 1000, \\\"xp\\\": 500}\",\"premium_reward_json\":\"{\\\"coins\\\": 2500, \\\"gems\\\": 250}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":null,\"premium_claim_id\":null,\"free_reward\":{\"coins\":1000,\"xp\":500},\"premium_reward\":{\"coins\":2500,\"gems\":250},\"unlocked\":false}]}},\"reason\":\"daily_login\"}",
                    "read_at": null,
                    "created_at": "2026-07-04 01:13:40"
                },
                {
                    "id": 37,
                    "user_id": 904,
                    "type": "reward",
                    "title": "Reward claimed",
                    "body": "Your reward has been added to your account.",
                    "meta_json": "{\"reward\":{\"coins\":100,\"xp\":25},\"reason\":\"monthly_login_calendar\"}",
                    "read_at": null,
                    "created_at": "2026-07-03 23:44:34"
                },
                {
                    "id": 36,
                    "user_id": 904,
                    "type": "reward",
                    "title": "Reward claimed",
                    "body": "Your reward has been added to your account.",
                    "meta_json": "{\"reward\":{\"coins\":125,\"xp\":50,\"battlepass_xp\":30,\"battlepass\":{\"season\":{\"id\":\"1\",\"slug\":\"launch-pass-1\",\"name\":\"Launch Superpass\",\"description\":\"First live-ops reward track for the long-build launch state.\",\"status\":\"active\",\"starts_at\":\"2026-06-25 15:31:28\",\"ends_at\":\"2026-08-10 15:31:28\",\"premium_price_gems\":\"950\",\"settings_json\":\"{\\\"tier_count\\\": 10, \\\"xp_per_tier\\\": 500}\",\"created_at\":\"2026-06-26 15:31:28\",\"updated_at\":\"2026-06-26 15:31:28\",\"deleted_at\":null},\"progress\":{\"id\":2,\"user_id\":904,\"season_id\":1,\"xp\":3269,\"premium_unlocked\":0,\"created_at\":\"2026-06-27 01:51:44\",\"updated_at\":\"2026-07-03 23:44:27\"},\"tiers\":[{\"id\":1,\"season_id\":1,\"tier_number\":1,\"xp_required\":0,\"free_reward_json\":\"{\\\"coins\\\": 100}\",\"premium_reward_json\":\"{\\\"coins\\\": 250, \\\"gems\\\": 25}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":1,\"premium_claim_id\":null,\"free_reward\":{\"coins\":100},\"premium_reward\":{\"coins\":250,\"gems\":25},\"unlocked\":true},{\"id\":2,\"season_id\":1,\"tier_number\":2,\"xp_required\":500,\"free_reward_json\":\"{\\\"coins\\\": 150, \\\"xp\\\": 50}\",\"premium_reward_json\":\"{\\\"coins\\\": 350, \\\"gems\\\": 40}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":2,\"premium_claim_id\":null,\"free_reward\":{\"coins\":150,\"xp\":50},\"premium_reward\":{\"coins\":350,\"gems\":40},\"unlocked\":true},{\"id\":3,\"season_id\":1,\"tier_number\":3,\"xp_required\":1000,\"free_reward_json\":\"{\\\"coins\\\": 200}\",\"premium_reward_json\":\"{\\\"coins\\\": 500, \\\"gems\\\": 50}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":3,\"premium_claim_id\":null,\"free_reward\":{\"coins\":200},\"premium_reward\":{\"coins\":500,\"gems\":50},\"unlocked\":true},{\"id\":4,\"season_id\":1,\"tier_number\":4,\"xp_required\":1500,\"free_reward_json\":\"{\\\"xp\\\": 200}\",\"premium_reward_json\":\"{\\\"coins\\\": 600, \\\"gems\\\": 60}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":4,\"premium_claim_id\":null,\"free_reward\":{\"xp\":200},\"premium_reward\":{\"coins\":600,\"gems\":60},\"unlocked\":true},{\"id\":5,\"season_id\":1,\"tier_number\":5,\"xp_required\":2000,\"free_reward_json\":\"{\\\"coins\\\": 400}\",\"premium_reward_json\":\"{\\\"coins\\\": 900, \\\"gems\\\": 80}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":5,\"premium_claim_id\":null,\"free_reward\":{\"coins\":400},\"premium_reward\":{\"coins\":900,\"gems\":80},\"unlocked\":true},{\"id\":6,\"season_id\":1,\"tier_number\":6,\"xp_required\":2500,\"free_reward_json\":\"{\\\"coins\\\": 450}\",\"premium_reward_json\":\"{\\\"coins\\\": 1000, \\\"gems\\\": 90}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":6,\"premium_claim_id\":null,\"free_reward\":{\"coins\":450},\"premium_reward\":{\"coins\":1000,\"gems\":90},\"unlocked\":true},{\"id\":7,\"season_id\":1,\"tier_number\":7,\"xp_required\":3000,\"free_reward_json\":\"{\\\"xp\\\": 400}\",\"premium_reward_json\":\"{\\\"coins\\\": 1200, \\\"gems\\\": 100}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":7,\"premium_claim_id\":null,\"free_reward\":{\"xp\":400},\"premium_reward\":{\"coins\":1200,\"gems\":100},\"unlocked\":true},{\"id\":8,\"season_id\":1,\"tier_number\":8,\"xp_required\":3500,\"free_reward_json\":\"{\\\"coins\\\": 650}\",\"premium_reward_json\":\"{\\\"coins\\\": 1500, \\\"gems\\\": 120}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":null,\"premium_claim_id\":null,\"free_reward\":{\"coins\":650},\"premium_reward\":{\"coins\":1500,\"gems\":120},\"unlocked\":false},{\"id\":9,\"season_id\":1,\"tier_number\":9,\"xp_required\":4000,\"free_reward_json\":\"{\\\"coins\\\": 800}\",\"premium_reward_json\":\"{\\\"coins\\\": 1800, \\\"gems\\\": 150}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":null,\"premium_claim_id\":null,\"free_reward\":{\"coins\":800},\"premium_reward\":{\"coins\":1800,\"gems\":150},\"unlocked\":false},{\"id\":10,\"season_id\":1,\"tier_number\":10,\"xp_required\":4500,\"free_reward_json\":\"{\\\"coins\\\": 1000, \\\"xp\\\": 500}\",\"premium_reward_json\":\"{\\\"coins\\\": 2500, \\\"gems\\\": 250}\",\"created_at\":\"2026-06-26 15:31:28\",\"free_claim_id\":null,\"premium_claim_id\":null,\"free_reward\":{\"coins\":1000,\"xp\":500},\"premium_reward\":{\"coins\":2500,\"gems\":250},\"unlocked\":false}]}},\"reason\":\"challenge_claim\"}",
                    "read_at": null,
                    "created_at": "2026-07-03 23:44:27"
                }
            ],
            "actions": [
                {
                    "label": "Collection",
                    "route": "collection",
                    "url": "https://tcg.whitelinefever.com/collection"
                },
                {
                    "label": "Squad",
                    "route": "squad",
                    "url": "https://tcg.whitelinefever.com/squad"
                },
                {
                    "label": "Shop",
                    "route": "shop",
                    "url": "https://tcg.whitelinefever.com/shop"
                },
                {
                    "label": "Battle",
                    "route": "battle",
                    "url": "https://tcg.whitelinefever.com/battle"
                },
                {
                    "label": "Market",
                    "route": "market",
                    "url": "https://tcg.whitelinefever.com/market"
                },
                {
                    "label": "Guilds",
                    "route": "guilds",
                    "url": "https://tcg.whitelinefever.com/guilds"
                },
                {
                    "label": "Support",
                    "route": "support",
                    "url": "https://tcg.whitelinefever.com/support"
                }
            ]
        },
        "sections": [
            {
                "type": "hero_cards",
                "title": "Today's focus",
                "items": [
                    {
                        "title": "Open packs",
                        "body": "Reveal unopened packs and create proof-backed results.",
                        "route": "app/pack-open",
                        "cta": "Reveal"
                    },
                    {
                        "title": "Set squad",
                        "body": "Validate your 13 + 4 lineup before battle.",
                        "route": "app/squad",
                        "cta": "Build"
                    },
                    {
                        "title": "Find a match",
                        "body": "Start a safe Phase 37 battle with receipts.",
                        "route": "app/battle",
                        "cta": "Battle"
                    }
                ]
            },
            {
                "type": "modules",
                "title": "Gameplay modules",
                "items": [
                    {
                        "screen": "dashboard",
                        "route": "dashboard",
                        "description": "Personal home, wallet, new cards, missions and next actions.",
                        "url": "https://tcg.whitelinefever.com/dashboard",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=dashboard"
                    },
                    {
                        "screen": "collection",
                        "route": "collection",
                        "description": "Album, owned cards, filters, card details and ownership history.",
                        "url": "https://tcg.whitelinefever.com/collection",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=collection"
                    },
                    {
                        "screen": "squad",
                        "route": "squad",
                        "description": "13 starters + interchange, chemistry, tactics and autofill.",
                        "url": "https://tcg.whitelinefever.com/squad",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=squad"
                    },
                    {
                        "screen": "shop",
                        "route": "shop",
                        "description": "Buy packs, open inventory, and verify proof logs.",
                        "url": "https://tcg.whitelinefever.com/shop",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=shop"
                    },
                    {
                        "screen": "wallet",
                        "route": "app/wallet",
                        "description": "Player-visible economy movement and balances.",
                        "url": "https://tcg.whitelinefever.com/app/wallet",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=wallet"
                    },
                    {
                        "screen": "market",
                        "route": "market",
                        "description": "Buy, list, cancel and price-check cards.",
                        "url": "https://tcg.whitelinefever.com/market",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=market"
                    },
                    {
                        "screen": "trades",
                        "route": "trades",
                        "description": "Create, counter, accept and reject trades.",
                        "url": "https://tcg.whitelinefever.com/trades",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=trades"
                    },
                    {
                        "screen": "auctions",
                        "route": "market",
                        "description": "Bid, buyout and follow auction outcomes.",
                        "url": "https://tcg.whitelinefever.com/market",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=auctions"
                    },
                    {
                        "screen": "battle",
                        "route": "battle",
                        "description": "Matchmaking, bot fallback, simulation, rewards and replays.",
                        "url": "https://tcg.whitelinefever.com/battle",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=battle"
                    },
                    {
                        "screen": "guild",
                        "route": "guilds",
                        "description": "Create/join guilds, chat and donate.",
                        "url": "https://tcg.whitelinefever.com/guilds",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=guild"
                    },
                    {
                        "screen": "social",
                        "route": "social",
                        "description": "Feed posts, comments, reactions and reports.",
                        "url": "https://tcg.whitelinefever.com/social",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=social"
                    },
                    {
                        "screen": "notifications",
                        "route": "live/inbox",
                        "description": "Inbox and notification preference links.",
                        "url": "https://tcg.whitelinefever.com/live/inbox",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=notifications"
                    },
                    {
                        "screen": "missions",
                        "route": "live",
                        "description": "Daily, weekly, event and battlepass progress.",
                        "url": "https://tcg.whitelinefever.com/live",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=missions"
                    },
                    {
                        "screen": "profile",
                        "route": "profile",
                        "description": "Profile, preferences, support links and account surfaces.",
                        "url": "https://tcg.whitelinefever.com/profile",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=profile"
                    },
                    {
                        "screen": "support",
                        "route": "support",
                        "description": "Ticket creation, replies and help content.",
                        "url": "https://tcg.whitelinefever.com/support",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=support"
                    },
                    {
                        "screen": "events",
                        "route": "live",
                        "description": "Current event, banners, event shop and missions.",
                        "url": "https://tcg.whitelinefever.com/live",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=events"
                    },
                    {
                        "screen": "stadium",
                        "route": "stadiums",
                        "description": "Stadium captures, world map and territory battles.",
                        "url": "https://tcg.whitelinefever.com/stadiums",
                        "api": "https://tcg.whitelinefever.com/api/v1/player-app/screen?screen=stadium"
                    }
                ]
            },
            {
                "type": "checklist",
                "title": "Player app readiness",
                "items": [
                    {
                        "title": "Player Dashboard",
                        "meta": "Ready"
                    },
                    {
                        "title": "Collection Api",
                        "meta": "Ready"
                    },
                    {
                        "title": "Card Detail History",
                        "meta": "Ready"
                    },
                    {
                        "title": "Squad Builder",
                        "meta": "Ready"
                    },
                    {
                        "title": "Pack Shop",
                        "meta": "Ready"
                    },
                    {
                        "title": "Pack Opening Proof",
                        "meta": "Ready"
                    },
                    {
                        "title": "Wallet Ledger",
                        "meta": "Ready"
                    },
                    {
                        "title": "Marketplace",
                        "meta": "Ready"
                    },
                    {
                        "title": "Trades",
                        "meta": "Ready"
                    },
                    {
                        "title": "Auctions",
                        "meta": "Ready"
                    },
                    {
                        "title": "Battle",
                        "meta": "Ready"
                    },
                    {
                        "title": "Guilds",
                        "meta": "Ready"
                    }
                ]
            }
        ],
        "action_bar": [
            {
                "label": "Refresh",
                "route": "app/dashboard",
                "style": "ghost"
            },
            {
                "label": "JSON",
                "route": "api/v1/player-ux/screen?screen=dashboard",
                "style": "ghost"
            },
            {
                "label": "Action Test",
                "route": "api/v1/player-actions/live-readiness",
                "style": "ghost"
            }
        ],
        "action_recipes": [
            {
                "title": "Screen snapshot",
                "endpoint": "/api/v1/player-ux/screen?screen=dashboard",
                "requires": [
                    "login session"
                ]
            }
        ],
        "ui_states": [
            {
                "state": "loading",
                "title": "Loading Command Deck",
                "body": "Skeleton cards appear while the API snapshot is fetched."
            },
            {
                "state": "empty",
                "title": "No data yet",
                "body": "The screen remains useful with a clear CTA and setup explanation."
            },
            {
                "state": "error",
                "title": "Action blocked",
                "body": "Standard Phase 37 error codes surface as safe, retryable messages."
            },
            {
                "state": "success",
                "title": "Receipt ready",
                "body": "Write actions return receipts with ledger/proof/audit identifiers."
            }
        ],
        "unity_parity": [
            {
                "surface": "Top HUD",
                "web": "Back, screen title, inbox, menu shortcuts",
                "unity": "Keep RLCG_PlayCommandCentreScene topHUD fixed across screens."
            },
            {
                "surface": "Profile Strip",
                "web": "Avatar, username, XP/level, wallet and unread badge",
                "unity": "Reuse player profile strip under topHUD; bind to /api/v1/player-ux/shell."
            },
            {
                "surface": "Bottom Nav",
                "web": "Social, Cards, Play, Store loop",
                "unity": "Map bottom navigation buttons to dashboard/collection/battle/shop routes."
            },
            {
                "surface": "Hero Panel",
                "web": "Screen-specific hero + action receipt area",
                "unity": "Use the middle carousel/event panel as the dynamic screen body."
            },
            {
                "surface": "Action Receipts",
                "web": "Frontend-ready receipt cards from Phase 37 endpoints",
                "unity": "Show pack/battle/market/trade receipts with same field names."
            },
            {
                "surface": "States",
                "web": "Loading, empty, success, warning and error cards",
                "unity": "Mirror state components for offline/retry and no-data states."
            },
            {
                "surface": "Mobile Safety",
                "web": "Sticky bottom CTA and thumb-sized buttons",
                "unity": "Portrait 1080x1920 safe-area with no hidden touch targets."
            },
            {
                "surface": "Current Screen",
                "web": "Command Deck",
                "unity": "Everything that needs attention today, from packs to battles."
            },
            {
                "surface": "Phase 38.1 Flow Layer",
                "web": "Smart CTAs, badges, telemetry, mobile config and action-launch templates",
                "unity": "Bind to /api/v1/player-ux/flow and /api/v1/player-ux/mobile-config for screen routing."
            },
            {
                "surface": "Phase 38.2 Deep Screen Polish",
                "web": "Screen-specific reveal, binder, squad, market, trade, guild, mission and support models.",
                "unity": "Bind to /api/v1/player-ux/deep-screen and render the same screen keys in the portrait command centre."
            },
            {
                "surface": "Phase 38.3 Live Action Wiring",
                "web": "Receipt-aware refresh, optimistic updates and per-action state invalidation.",
                "unity": "After any Phase 37 action, call /api/v1/player-ux/receipt-state then refresh the listed screen bundles."
            },
            {
                "surface": "Phase 38.4 Quality Layer",
                "web": "Responsive, accessibility, performance, loading, error recovery, animation and persistence metadata.",
                "unity": "Bind to /api/v1/player-ux/quality-report, /api/v1/player-ux/theme-tokens and /api/v1/player-ux/performance-profile."
            },
            {
                "surface": "Phase 38.5 Launch Preview",
                "web": "Demo journey, first-session guide, launch personas, receipt display and final QA checklist.",
                "unity": "Use /api/v1/player-ux/unity-handoff and /api/v1/player-ux/demo-journey as the mobile implementation handoff pack."
            }
        ],
        "api_contracts": {
            "shell": "GET /api/v1/player-ux/shell?screen=dashboard",
            "screen": "GET /api/v1/player-ux/screen?screen=dashboard",
            "phase37_action_readiness": "GET /api/v1/player-actions/live-readiness",
            "idempotency_header": "Every write action must include idempotency_key in body or header.",
            "receipt_shape": [
                "ok",
                "receipt",
                "result",
                "ledger_ids",
                "proof_log_id",
                "mission_progress",
                "notifications_created",
                "ui_next"
            ]
        },
        "readiness": {
            "version": "4.0.47-guild-route-conflict-removal",
            "base_phase": "Phase 38.3 live action wiring",
            "score": 100,
            "ready": 18,
            "total": 18,
            "checks": {
                "phase36_bridge": {
                    "ready": true,
                    "label": "Phase 36 player bridge available",
                    "route": "app"
                },
                "phase37_actions": {
                    "ready": true,
                    "label": "Phase 37 player actions service available",
                    "route": "api/v1/player-actions/readiness"
                },
                "phase37_hardening": {
                    "ready": true,
                    "label": "Phase 37.1 action hardening service available",
                    "route": "api/v1/player-actions/hardening-readiness"
                },
                "phase37_engine": {
                    "ready": true,
                    "label": "Phase 37.2 gameplay engine service available",
                    "route": "api/v1/player-actions/engine-readiness"
                },
                "phase37_live_readiness": {
                    "ready": true,
                    "label": "Phase 37.3 live verification service available",
                    "route": "api/v1/player-actions/live-readiness"
                },
                "phase38_view": {
                    "ready": true,
                    "label": "Polished player shell view installed",
                    "route": "app"
                },
                "phase38_css": {
                    "ready": true,
                    "label": "Responsive player UX stylesheet available",
                    "route": "public/assets/css/app.css"
                },
                "phase38_js": {
                    "ready": true,
                    "label": "Player UX JavaScript available",
                    "route": "public/assets/js/app.js"
                },
                "phase38_1_flow": {
                    "ready": true,
                    "label": "Phase 38.1 interaction flow layer available",
                    "route": "api/v1/player-ux/flow"
                },
                "phase38_2_deep": {
                    "ready": true,
                    "label": "Phase 38.2 deep screen polish available",
                    "route": "api/v1/player-ux/deep-screen"
                },
                "phase38_3_live_wiring": {
                    "ready": true,
                    "label": "Phase 38.3 live action wiring available",
                    "route": "api/v1/player-ux/live-wiring"
                },
                "phase38_4_quality": {
                    "ready": true,
                    "label": "Phase 38.4 UX quality/accessibility/performance polish available",
                    "route": "api/v1/player-ux/quality-report"
                },
                "phase38_5_launch": {
                    "ready": true,
                    "label": "Phase 38.5 demo journey and launch preview available",
                    "route": "api/v1/player-ux/demo-journey"
                },
                "phase40_4_public_player_view": {
                    "ready": true,
                    "label": "Phase 40.4 public player view release UI available",
                    "route": "app"
                },
                "phase40_5_public_dashboard": {
                    "ready": true,
                    "label": "Phase 40.5 public dashboard command-centre UI available",
                    "route": "dashboard"
                },
                "phase40_7_dashboard_header_nav": {
                    "ready": true,
                    "label": "Phase 40.7 consolidated public dashboard header navigation available",
                    "route": "dashboard"
                },
                "mobile_nav": {
                    "ready": true,
                    "label": "Top HUD and bottom nav model available",
                    "route": "app"
                },
                "unity_parity_notes": {
                    "ready": true,
                    "label": "Unity/mobile parity metadata available",
                    "route": "api/v1/player-ux/unity-parity"
                }
            },
            "phase36": {
                "score": 100,
                "ready": 28,
                "total": 28,
                "checks": {
                    "player_dashboard": {
                        "ready": true,
                        "route": "dashboard",
                        "label": "dashboard",
                        "missing": []
                    },
                    "collection_api": {
                        "ready": true,
                        "route": "api/v1/collection",
                        "label": "api/v1/collection",
                        "missing": []
                    },
                    "card_detail_history": {
                        "ready": true,
                        "route": "card",
                        "label": "card",
                        "missing": []
                    },
                    "squad_builder": {
                        "ready": true,
                        "route": "squad",
                        "label": "squad",
                        "missing": []
                    },
                    "pack_shop": {
                        "ready": true,
                        "route": "shop",
                        "label": "shop",
                        "missing": []
                    },
                    "pack_opening_proof": {
                        "ready": true,
                        "route": "inventory/proof",
                        "label": "inventory/proof",
                        "missing": []
                    },
                    "wallet_ledger": {
                        "ready": true,
                        "route": "app/wallet",
                        "label": "app/wallet",
                        "missing": []
                    },
                    "marketplace": {
                        "ready": true,
                        "route": "market",
                        "label": "market",
                        "missing": []
                    },
                    "trades": {
                        "ready": true,
                        "route": "trades",
                        "label": "trades",
                        "missing": []
                    },
                    "auctions": {
                        "ready": true,
                        "route": "market",
                        "label": "market",
                        "missing": []
                    },
                    "battle": {
                        "ready": true,
                        "route": "battle",
                        "label": "battle",
                        "missing": []
                    },
                    "guilds": {
                        "ready": true,
                        "route": "guilds",
                        "label": "guilds",
                        "missing": []
                    },
                    "social_feed": {
                        "ready": true,
                        "route": "social",
                        "label": "social",
                        "missing": []
                    },
                    "notifications": {
                        "ready": true,
                        "route": "live/inbox",
                        "label": "live/inbox",
                        "missing": []
                    },
                    "missions": {
                        "ready": true,
                        "route": "live",
                        "label": "live",
                        "missing": []
                    },
                    "onboarding": {
                        "ready": true,
                        "route": "experience",
                        "label": "experience",
                        "missing": []
                    },
                    "profile": {
                        "ready": true,
                        "route": "profile",
                        "label": "profile",
                        "missing": []
                    },
                    "settings": {
                        "ready": true,
                        "route": "settings",
                        "label": "settings",
                        "missing": []
                    },
                    "support": {
                        "ready": true,
                        "route": "support",
                        "label": "support",
                        "missing": []
                    },
                    "cms_news_help": {
                        "ready": true,
                        "route": "content",
                        "label": "content",
                        "missing": []
                    },
                    "events": {
                        "ready": true,
                        "route": "live",
                        "label": "live",
                        "missing": []
                    },
                    "stadium_world": {
                        "ready": true,
                        "route": "stadiums",
                        "label": "stadiums",
                        "missing": []
                    },
                    "idempotency": {
                        "ready": true,
                        "route": "api/v1/player-app/action-check",
                        "label": "api/v1/player-app/action-check",
                        "missing": []
                    },
                    "transaction_locking": {
                        "ready": true,
                        "label": "Database::transaction plus FOR UPDATE is available",
                        "missing": []
                    },
                    "ledger_enforcement": {
                        "ready": true,
                        "route": "app/wallet",
                        "label": "app/wallet",
                        "missing": []
                    },
                    "error_empty_states": {
                        "ready": true,
                        "label": "Phase 36 player shell includes action cards, empty states, and screen fallbacks",
                        "missing": []
                    },
                    "install_checker": {
                        "ready": true,
                        "route": "install",
                        "label": "install",
                        "missing": []
                    },
                    "testing_docs": {
                        "ready": true,
                        "label": "Phase 36 docs and testing checklist",
                        "missing": []
                    }
                }
            },
            "next": [
                "Run migrations 049-058 on the server.",
                "Open /app and each major screen on mobile width.",
                "Run /api/v1/player-actions/live-readiness before enabling public play.",
                "Use Phase 37.2 integration self-test to verify real writes before production."
            ]
        },
        "base_version": "4.0.47-guild-route-conflict-removal",
        "phase38_1": {
            "version": "3.8.1-player-ux-interaction-polish-screen-flow",
            "enabled": true,
            "upgrade_name": "Interaction Polish & Screen Flow Upgrade"
        },
        "flow": {
            "current": "dashboard",
            "step": 1,
            "total": 16,
            "previous": "dashboard",
            "next": "collection",
            "breadcrumbs": [
                {
                    "label": "Play Hub",
                    "route": "app"
                },
                {
                    "label": "Dashboard",
                    "route": "app/dashboard"
                }
            ],
            "journey": "home",
            "screen_tabs": [
                {
                    "key": "overview",
                    "label": "Overview"
                },
                {
                    "key": "actions",
                    "label": "Actions"
                },
                {
                    "key": "help",
                    "label": "Help"
                }
            ]
        },
        "nav_badges": {
            "social": 38,
            "collection": 41,
            "battle": 24,
            "shop": 0,
            "trades": 0,
            "market": 1
        },
        "smart_ctas": [
            {
                "label": "Reveal unopened pack",
                "screen": "pack-open",
                "route": "app/pack-open",
                "style": "ghost",
                "disabled": false,
                "reason": "Fastest way to create card progress."
            },
            {
                "label": "Check squad readiness",
                "screen": "squad",
                "route": "app/squad",
                "style": "ghost",
                "disabled": false,
                "reason": "Needed before battle."
            }
        ],
        "action_readiness": {
            "screen": "dashboard",
            "can_prepare": true,
            "can_submit": false,
            "requires_idempotency": false,
            "risk": "read",
            "preflight_hints": [
                {
                    "label": "Login",
                    "status": "required"
                },
                {
                    "label": "Feature flag",
                    "status": "checked by server"
                },
                {
                    "label": "Idempotency",
                    "status": "required for writes"
                }
            ],
            "warnings": [
                "This screen is mainly read-only or uses a secondary action."
            ]
        },
        "mobile_config": {
            "version": "3.8.1-player-ux-interaction-polish-screen-flow",
            "screen": "dashboard",
            "safe_area": {
                "top": 16,
                "bottom": 84,
                "left": 12,
                "right": 12
            },
            "gestures": [
                {
                    "gesture": "swipe_left",
                    "action": "next_screen",
                    "enabled": true
                },
                {
                    "gesture": "swipe_right",
                    "action": "previous_screen",
                    "enabled": true
                },
                {
                    "gesture": "pull_to_refresh",
                    "action": "reload_screen_snapshot",
                    "enabled": true
                },
                {
                    "gesture": "long_press_card",
                    "action": "open_card_detail",
                    "enabled": false
                }
            ],
            "haptics": {
                "tap": "light",
                "success": "medium",
                "error": "warning",
                "legendary_pull": "heavy"
            },
            "skeletons": [
                {
                    "component": "hero",
                    "shape": "large rounded panel"
                },
                {
                    "component": "stats",
                    "shape": "six compact cards"
                },
                {
                    "component": "main_content",
                    "shape": "stacked panels"
                },
                {
                    "component": "bottom_nav",
                    "shape": "four fixed tabs"
                }
            ],
            "thumb_targets": {
                "minimum_px": 44,
                "preferred_px": 52,
                "bottom_nav_px": 64
            },
            "offline": {
                "screen_cacheable": true,
                "action_queueable": true,
                "retry_strategy": "safe_auto_retry_once",
                "idempotency_required": false
            },
            "unity_notes": [
                "Use the same screen key names as web routes.",
                "Queue non-economy actions only; require live confirmation for wallet/card/escrow writes.",
                "Surface standard Phase 37 error codes directly in result panels."
            ]
        },
        "error_recovery": [
            {
                "label": "Retry",
                "action": "retry_last_request",
                "hint": "Safe for read actions and idempotent write replays"
            },
            {
                "label": "Regenerate key",
                "action": "regenerate_idempotency_key",
                "hint": "Use only before a new write action starts"
            },
            {
                "label": "Refresh state",
                "action": "refresh_wallet_cards_notifications",
                "hint": "Reload wallet, cards, missions and inbox after any receipt"
            },
            {
                "label": "View receipt",
                "action": "open_last_receipt",
                "hint": "Shows ledger/proof/audit identifiers when available"
            },
            {
                "label": "Contact support",
                "action": "open_support_with_error_code",
                "hint": "Pre-fills the current error code and receipt ID"
            }
        ],
        "accessibility": {
            "screen": "dashboard",
            "score": 100,
            "items": [
                {
                    "key": "focus_states",
                    "label": "Visible focus states for buttons, links, form fields and nav chips",
                    "status": "ready"
                },
                {
                    "key": "keyboard_navigation",
                    "label": "Tab order follows HUD \u2192 profile \u2192 content \u2192 nav \u2192 action forms",
                    "status": "ready"
                },
                {
                    "key": "aria_labels",
                    "label": "Screen sections expose readable titles and control labels",
                    "status": "ready"
                },
                {
                    "key": "contrast_tokens",
                    "label": "Rarity/status colours have accessible text fallback labels",
                    "status": "ready"
                },
                {
                    "key": "reduced_motion",
                    "label": "Animations include reduced-motion fallback metadata",
                    "status": "ready"
                },
                {
                    "key": "error_details",
                    "label": "Friendly errors show recovery first and technical code behind details",
                    "status": "ready"
                }
            ]
        },
        "offline_retry": {
            "screen_cacheable": true,
            "action_queueable": true,
            "retry_strategy": "safe_auto_retry_once",
            "idempotency_required": false
        },
        "screen_quality": {
            "score": 100,
            "status": "polished",
            "checks": {
                "has_sections": true,
                "has_actions": true,
                "has_states": true,
                "has_unity_parity": true,
                "has_bottom_nav": true
            }
        },
        "quick_launcher": [
            {
                "screen": "pack-open",
                "label": "Open Pack",
                "endpoint": "/api/v1/player-actions/pack-open",
                "route": "api/v1/player-ux/action-launcher?screen=pack-open",
                "risk": "economy_write"
            },
            {
                "screen": "squad",
                "label": "Save Squad",
                "endpoint": "/api/v1/player-actions/squad-save",
                "route": "api/v1/player-ux/action-launcher?screen=squad",
                "risk": "card_state"
            },
            {
                "screen": "battle",
                "label": "Start Battle",
                "endpoint": "/api/v1/player-actions/battle-start",
                "route": "api/v1/player-ux/action-launcher?screen=battle",
                "risk": "reward_write"
            },
            {
                "screen": "market",
                "label": "List Card",
                "endpoint": "/api/v1/player-actions/marketplace-list",
                "route": "api/v1/player-ux/action-launcher?screen=market",
                "risk": "escrow_write"
            }
        ],
        "recent_screens": [
            {
                "screen": "dashboard",
                "label": "Dashboard",
                "last_seen": "2026-07-05 06:55:16",
                "route": "app/dashboard"
            },
            {
                "screen": "battle",
                "label": "Battle",
                "last_seen": "2026-07-03 23:18:30",
                "route": "app/battle"
            },
            {
                "screen": "missions",
                "label": "Missions",
                "last_seen": "2026-07-03 23:18:26",
                "route": "app/missions"
            },
            {
                "screen": "squad",
                "label": "Squad",
                "last_seen": "2026-07-03 23:16:20",
                "route": "app/squad"
            },
            {
                "screen": "collection",
                "label": "Collection",
                "last_seen": "2026-07-03 23:16:14",
                "route": "app/collection"
            },
            {
                "screen": "shop",
                "label": "Shop",
                "last_seen": "2026-07-03 23:15:33",
                "route": "app/shop"
            }
        ],
        "recommended_next": [
            {
                "label": "Reveal unopened pack",
                "screen": "pack-open",
                "reason": "Fastest way to create card progress."
            },
            {
                "label": "Check squad readiness",
                "screen": "squad",
                "reason": "Needed before battle."
            }
        ],
        "phase38_2_version": "3.8.2-player-ux-deep-interaction-screen-polish",
        "deep_sections": [
            {
                "type": "cta_grid",
                "title": "Deep UX shortcuts",
                "items": [
                    {
                        "title": "Reveal a pack",
                        "meta": "Animated card reveal flow",
                        "route": "app/pack-open"
                    },
                    {
                        "title": "Complete squad",
                        "meta": "Visual 13 + 4 builder",
                        "route": "squad"
                    },
                    {
                        "title": "Find a battle",
                        "meta": "Opponent preview and result timeline",
                        "route": "battle"
                    },
                    {
                        "title": "Join a guild",
                        "meta": "Guild HQ, chat and starter guilds",
                        "route": "app/guild"
                    }
                ]
            }
        ],
        "screen_tools": {
            "primary_tool": "play_hub",
            "drawers": [
                "receipt_detail",
                "help_tip"
            ],
            "modals": [
                "confirm_action",
                "error_recovery"
            ],
            "state_sync": [
                "wallet",
                "cards",
                "notifications",
                "missions",
                "last_receipt"
            ]
        },
        "screen_filters": [
            {
                "title": "All",
                "meta": "filter:all"
            },
            {
                "title": "Ready",
                "meta": "filter:ready"
            },
            {
                "title": "Needs Action",
                "meta": "filter:needs_action"
            }
        ],
        "empty_state_personalisation": {
            "title": "Nothing here yet",
            "body": "This screen is ready and will populate as you play.",
            "cta": "Back to hub",
            "route": "app"
        },
        "command_palette": [
            {
                "label": "Open pack store",
                "command": "go.shop",
                "route": "shop"
            },
            {
                "label": "Reveal pack",
                "command": "go.pack_open",
                "route": "app/pack-open"
            },
            {
                "label": "Auto-fill squad",
                "command": "action.squad_autofill",
                "route": "api/v1/player-ux/action-launcher?screen=squad"
            },
            {
                "label": "Start battle",
                "command": "go.battle",
                "route": "battle"
            },
            {
                "label": "View marketplace",
                "command": "go.market",
                "route": "market"
            },
            {
                "label": "Create trade",
                "command": "go.trades",
                "route": "app/trades"
            },
            {
                "label": "Join guild",
                "command": "go.guild",
                "route": "app/guild"
            },
            {
                "label": "Claim missions",
                "command": "go.missions",
                "route": "live"
            },
            {
                "label": "Search cards",
                "command": "go.collection",
                "route": "collection"
            },
            {
                "label": "Contact support",
                "command": "go.support",
                "route": "app/support"
            }
        ],
        "gesture_layer": {
            "screen": "dashboard",
            "gestures": [
                {
                    "gesture": "swipe_left",
                    "action": "next_bottom_nav_screen",
                    "enabled": true
                },
                {
                    "gesture": "swipe_right",
                    "action": "previous_bottom_nav_screen",
                    "enabled": true
                },
                {
                    "gesture": "pull_to_refresh",
                    "action": "refresh_screen_state",
                    "enabled": true
                },
                {
                    "gesture": "long_press_card",
                    "action": "open_quick_action_drawer",
                    "enabled": false
                },
                {
                    "gesture": "swipe_notification",
                    "action": "mark_read",
                    "enabled": false
                },
                {
                    "gesture": "swipe_reveal_card",
                    "action": "next_pack_card",
                    "enabled": false
                }
            ],
            "haptics": {
                "tap": "light",
                "success": "medium",
                "error": "warning",
                "epic_or_better": "heavy"
            },
            "unity_safe_area": {
                "portrait": "1080x1920",
                "bottom_nav_height": 92,
                "top_hud_height": 84
            }
        },
        "theme_system": {
            "mode_support": [
                "dark",
                "light"
            ],
            "layout_density": [
                "compact",
                "comfortable"
            ],
            "rarity_tokens": {
                "common": "rarity-common",
                "rare": "rarity-rare",
                "super_rare": "rarity-super-rare",
                "epic": "rarity-epic",
                "legendary": "rarity-legendary"
            },
            "status_tokens": [
                "success",
                "warning",
                "danger",
                "muted",
                "premium",
                "live"
            ],
            "accessibility": {
                "text_scale": "user_preference",
                "reduced_motion": "user_preference",
                "focus_rings": true
            },
            "safe_area_spacing": {
                "top": 16,
                "bottom": 96,
                "side": 14
            },
            "card_border_style": "binder-rarity-border"
        },
        "ux_depth_score": 89,
        "phase38_3_version": "3.8.3-player-ux-live-action-wiring",
        "live_wiring": {
            "version": "3.8.3-player-ux-live-action-wiring",
            "screen": "dashboard",
            "action_bindings": {
                "action": "refresh",
                "endpoint": "/api/v1/player-ux/screen?screen=dashboard",
                "success_event": "screen_refreshed",
                "receipt_target": "screen_toast"
            },
            "refresh_plan": {
                "screen": "dashboard",
                "bundles": [
                    "profile_strip",
                    "quick_stats",
                    "bottom_nav_badges",
                    "last_receipt",
                    "screen_snapshot"
                ],
                "stale_after_seconds": 45,
                "after_success": {
                    "success_route": "app/dashboard",
                    "receipt_route": "api/v1/player-ux/receipt-state?screen=dashboard",
                    "refresh_route": "api/v1/player-ux/screen?screen=dashboard",
                    "support_route": "app/support"
                },
                "api_calls": {
                    "screen": "/api/v1/player-ux/screen?screen=dashboard",
                    "shell": "/api/v1/player-ux/shell?screen=dashboard",
                    "receipt_state": "/api/v1/player-ux/receipt-state?screen=dashboard"
                }
            },
            "receipt_state": {
                "version": "3.8.3-player-ux-live-action-wiring",
                "screen": "dashboard",
                "has_recent_receipt": true,
                "receipts": [
                    {
                        "id": 1,
                        "screen": "pack-open",
                        "action_type": "pack-open",
                        "status": "prepared",
                        "created_at": "2026-07-03 23:15:31",
                        "receipt": {
                            "status": "prepared",
                            "endpoint": "/api/v1/player-actions/pack-open",
                            "local_time": "2026-07-03T23:14:55.752Z",
                            "note": "Prepared by Phase 38.3 live wiring. Use production API client to execute writes."
                        }
                    }
                ],
                "empty": {
                    "title": "No recent action receipt",
                    "body": "Run a Phase 37 action and this panel will show ledger/proof/notification IDs."
                }
            },
            "optimistic_updates": [
                {
                    "target": "button",
                    "state": "loading",
                    "rollback": "restore previous CTA state"
                }
            ],
            "post_action_routes": {
                "success_route": "app/dashboard",
                "receipt_route": "api/v1/player-ux/receipt-state?screen=dashboard",
                "refresh_route": "api/v1/player-ux/screen?screen=dashboard",
                "support_route": "app/support"
            },
            "event_bus": {
                "receipt_received": "store receipt, show success drawer, refresh affected bundles",
                "wallet_changed": "refresh profile strip and wallet ledger",
                "cards_changed": "refresh collection, squad, market sellable cards",
                "missions_changed": "refresh mission tracker and bottom nav badge",
                "notification_created": "refresh inbox badge and notification list",
                "error_received": "open recovery drawer with standard error code"
            }
        },
        "refresh_plan": {
            "screen": "dashboard",
            "bundles": [
                "profile_strip",
                "quick_stats",
                "bottom_nav_badges",
                "last_receipt",
                "screen_snapshot"
            ],
            "stale_after_seconds": 45,
            "after_success": {
                "success_route": "app/dashboard",
                "receipt_route": "api/v1/player-ux/receipt-state?screen=dashboard",
                "refresh_route": "api/v1/player-ux/screen?screen=dashboard",
                "support_route": "app/support"
            },
            "api_calls": {
                "screen": "/api/v1/player-ux/screen?screen=dashboard",
                "shell": "/api/v1/player-ux/shell?screen=dashboard",
                "receipt_state": "/api/v1/player-ux/receipt-state?screen=dashboard"
            }
        },
        "receipt_state": {
            "version": "3.8.3-player-ux-live-action-wiring",
            "screen": "dashboard",
            "has_recent_receipt": true,
            "receipts": [
                {
                    "id": 1,
                    "screen": "pack-open",
                    "action_type": "pack-open",
                    "status": "prepared",
                    "created_at": "2026-07-03 23:15:31",
                    "receipt": {
                        "status": "prepared",
                        "endpoint": "/api/v1/player-actions/pack-open",
                        "local_time": "2026-07-03T23:14:55.752Z",
                        "note": "Prepared by Phase 38.3 live wiring. Use production API client to execute writes."
                    }
                }
            ],
            "empty": {
                "title": "No recent action receipt",
                "body": "Run a Phase 37 action and this panel will show ledger/proof/notification IDs."
            }
        },
        "action_state_bindings": {
            "action": "refresh",
            "endpoint": "/api/v1/player-ux/screen?screen=dashboard",
            "success_event": "screen_refreshed",
            "receipt_target": "screen_toast"
        },
        "optimistic_updates": [
            {
                "target": "button",
                "state": "loading",
                "rollback": "restore previous CTA state"
            }
        ],
        "post_action_routes": {
            "success_route": "app/dashboard",
            "receipt_route": "api/v1/player-ux/receipt-state?screen=dashboard",
            "refresh_route": "api/v1/player-ux/screen?screen=dashboard",
            "support_route": "app/support"
        },
        "phase38_4_version": "3.8.4-player-ux-quality-accessibility-performance-polish",
        "quality_polish": {
            "version": "3.8.4-player-ux-quality-accessibility-performance-polish",
            "screen": "dashboard",
            "goal": "Make the player app feel stable, accessible and fast before wider live testing.",
            "layers": [
                "responsive_layout_hardening",
                "accessibility_pass",
                "performance_optimisation",
                "skeleton_loading_states",
                "friendly_error_recovery",
                "animation_metadata",
                "player_settings_polish",
                "image_card_rendering_polish",
                "screen_state_persistence",
                "quality_report"
            ],
            "recommended_next_test": "Open /app/dashboard at 390px, 768px and desktop width, then compare /api/v1/player-ux/quality-report?screen=dashboard"
        },
        "responsive_layout": {
            "screen": "dashboard",
            "breakpoints": {
                "phone": {
                    "min": 320,
                    "max": 599,
                    "columns": 1,
                    "bottom_nav": "fixed",
                    "drawer": "slide_over"
                },
                "tablet": {
                    "min": 600,
                    "max": 1023,
                    "columns": 2,
                    "bottom_nav": "fixed",
                    "drawer": "inline_grid"
                },
                "desktop": {
                    "min": 1024,
                    "max": 9999,
                    "columns": 3,
                    "bottom_nav": "compact",
                    "drawer": "side_panel"
                }
            },
            "safe_area": {
                "top": "env(safe-area-inset-top)",
                "bottom": "env(safe-area-inset-bottom)",
                "left": "env(safe-area-inset-left)",
                "right": "env(safe-area-inset-right)"
            },
            "sticky_surfaces": [
                "top_hud",
                "profile_strip",
                "bottom_nav",
                "screen_action_bar"
            ],
            "landscape_warning": {
                "enabled": true,
                "message": "Portrait mode is recommended for the mobile card game layout."
            },
            "touch_targets": {
                "minimum_px": 44,
                "preferred_px": 48,
                "spacing_px": 8
            }
        },
        "performance_profile": {
            "screen": "dashboard",
            "strategy": "inline_snapshot",
            "cache": {
                "stable_config_seconds": 3600,
                "screen_snapshot_seconds": 60,
                "readiness_seconds": 300
            },
            "defer_panels": [
                "receipt_history"
            ],
            "performance_marks": [
                "shell_loaded",
                "profile_bound",
                "screen_data_bound",
                "actions_ready",
                "first_interaction_ready"
            ],
            "payload_budget_kb": 48,
            "slow_warning_ms": 1500
        },
        "loading_skeletons": {
            "screen": "dashboard",
            "skeletons": [
                "hero_block",
                "stat_tiles",
                "section_rows"
            ],
            "empty_fallback": "Show personalised empty state after data load completes.",
            "timeout_fallback": "Show retry, refresh state and contact support CTAs after slow_warning_ms."
        },
        "error_recovery_v2": {
            "screen": "dashboard",
            "friendly_message": "Something did not complete. Your cards and wallet are safe while we check the receipt.",
            "primary_actions": [
                {
                    "label": "Retry",
                    "action": "retry_same_payload"
                },
                {
                    "label": "Regenerate idempotency key",
                    "action": "new_idempotency_key"
                },
                {
                    "label": "Refresh wallet/cards",
                    "action": "refresh_screen_bundle"
                },
                {
                    "label": "Return to dashboard",
                    "route": "app/dashboard"
                },
                {
                    "label": "Contact support",
                    "route": "app/support"
                }
            ],
            "technical_details": [
                "error_code",
                "receipt_id",
                "idempotency_key",
                "request_id",
                "server_time"
            ]
        },
        "animation_model": {
            "screen": "dashboard",
            "reduced_motion_supported": true,
            "animations": [
                {
                    "key": "pack_reveal",
                    "trigger": "pack_opened",
                    "steps": [
                        "sealed_pack",
                        "tear",
                        "card_fan",
                        "rarity_glow",
                        "receipt"
                    ],
                    "reduced": "fade_to_results"
                },
                {
                    "key": "card_rarity_glow",
                    "trigger": "card_revealed",
                    "classes": [
                        "common",
                        "rare",
                        "super-rare",
                        "epic",
                        "legendary"
                    ],
                    "reduced": "static_border"
                },
                {
                    "key": "battle_timeline",
                    "trigger": "battle_started",
                    "steps": [
                        "opponent",
                        "comparison",
                        "key_moments",
                        "final_score",
                        "rewards"
                    ],
                    "reduced": "instant_summary"
                },
                {
                    "key": "mission_claim",
                    "trigger": "mission_claimed",
                    "steps": [
                        "progress_fill",
                        "reward_pop",
                        "wallet_update"
                    ],
                    "reduced": "toast"
                },
                {
                    "key": "level_up",
                    "trigger": "level_changed",
                    "steps": [
                        "xp_bar",
                        "level_badge",
                        "reward_drawer"
                    ],
                    "reduced": "badge_update"
                }
            ]
        },
        "player_settings_polish": {
            "user_id": 904,
            "screen": "dashboard",
            "settings": [
                {
                    "key": "theme",
                    "label": "Theme",
                    "values": [
                        "system",
                        "light",
                        "dark"
                    ]
                },
                {
                    "key": "layout_density",
                    "label": "Layout density",
                    "values": [
                        "comfortable",
                        "compact"
                    ]
                },
                {
                    "key": "reduced_motion",
                    "label": "Reduced motion",
                    "values": [
                        "off",
                        "on"
                    ]
                },
                {
                    "key": "card_art_mode",
                    "label": "Card art mode",
                    "values": [
                        "full",
                        "compact",
                        "text_fallback"
                    ]
                },
                {
                    "key": "haptics",
                    "label": "Haptics placeholder",
                    "values": [
                        "off",
                        "light",
                        "standard"
                    ]
                },
                {
                    "key": "audio",
                    "label": "Audio placeholder",
                    "values": [
                        "off",
                        "sfx_only",
                        "all"
                    ]
                }
            ],
            "endpoint": "/api/v1/player-ux/preferences"
        },
        "image_rendering": {
            "screen": "dashboard",
            "fallbacks": {
                "card_missing": "initials_card_placeholder_with_rarity_border",
                "pack_missing": "sealed_pack_placeholder",
                "avatar_missing": "username_initial_avatar",
                "guild_missing": "guild_shield_placeholder"
            },
            "classes": {
                "rarity_common": "phase38-rarity-common",
                "rarity_rare": "phase38-rarity-rare",
                "rarity_super_rare": "phase38-rarity-super-rare",
                "rarity_epic": "phase38-rarity-epic",
                "rarity_legendary": "phase38-rarity-legendary"
            },
            "image_budget": {
                "thumb_px": 256,
                "detail_px": 768,
                "banner_px": 1536,
                "lazy_loading": true
            },
            "front_back_toggle": {
                "enabled": true,
                "metadata_key": "card_face"
            }
        },
        "screen_persistence": {
            "screen": "dashboard",
            "storage_key": "rlcg.phase38.last_screen_state",
            "remember": [
                "last_screen",
                "selected_tab",
                "active_filter",
                "scroll_anchor",
                "market_filters",
                "collection_filters",
                "guild_tab",
                "social_tab"
            ],
            "restore_on_return": true,
            "clear_on_logout": true,
            "server_preference_endpoint": "/api/v1/player-ux/preferences"
        },
        "ux_quality_report": {
            "version": "3.8.4-player-ux-quality-accessibility-performance-polish",
            "screen": "dashboard",
            "score": 100,
            "status": "ready",
            "checks": [
                {
                    "key": "responsive_breakpoints",
                    "label": "Phone/tablet/desktop layout metadata available",
                    "ready": true
                },
                {
                    "key": "safe_area",
                    "label": "Safe-area CSS tokens available",
                    "ready": true
                },
                {
                    "key": "accessibility",
                    "label": "Accessibility checklist available",
                    "ready": true
                },
                {
                    "key": "loading_states",
                    "label": "Screen-specific loading skeletons available",
                    "ready": true
                },
                {
                    "key": "error_recovery",
                    "label": "Friendly recovery actions available",
                    "ready": true
                },
                {
                    "key": "animation_metadata",
                    "label": "Animation and reduced-motion metadata available",
                    "ready": true
                },
                {
                    "key": "settings",
                    "label": "Player settings model available",
                    "ready": true
                },
                {
                    "key": "image_fallbacks",
                    "label": "Image fallback and rarity class metadata available",
                    "ready": true
                },
                {
                    "key": "state_persistence",
                    "label": "Screen state persistence model available",
                    "ready": true
                },
                {
                    "key": "css_asset",
                    "label": "Player CSS asset exists",
                    "ready": true
                },
                {
                    "key": "js_asset",
                    "label": "Player JS asset exists",
                    "ready": true
                },
                {
                    "key": "migration",
                    "label": "Phase 38.4 quality table installed",
                    "ready": true
                }
            ],
            "warnings": [],
            "recommended_fixes": [
                "Continue to Phase 38.5 launch preview."
            ]
        },
        "phase38_5_version": "3.8.5-player-ux-final-qa-demo-journey-launch-preview",
        "demo_journey": {
            "version": "3.8.5-player-ux-final-qa-demo-journey-launch-preview",
            "user_id": 904,
            "title": "Playable first-session demo journey",
            "mode": "safe_preview",
            "steps": [
                {
                    "key": "starter_pack",
                    "label": "Open starter pack",
                    "screen": "pack-open",
                    "route": "app/pack-open",
                    "action": "POST /api/v1/player-actions/pack-open",
                    "receipt": "pack_opened"
                },
                {
                    "key": "auto_squad",
                    "label": "Auto-fill squad",
                    "screen": "squad",
                    "route": "app/squad",
                    "action": "POST /api/v1/squads/save",
                    "receipt": "squad_saved"
                },
                {
                    "key": "first_battle",
                    "label": "Start first battle",
                    "screen": "battle",
                    "route": "app/battle",
                    "action": "POST /api/v1/battles/start",
                    "receipt": "battle_completed"
                },
                {
                    "key": "claim_reward",
                    "label": "Claim mission reward",
                    "screen": "missions",
                    "route": "app/missions",
                    "action": "POST /api/v1/missions/claim",
                    "receipt": "mission_claimed"
                },
                {
                    "key": "view_collection",
                    "label": "View collection binder",
                    "screen": "collection",
                    "route": "app/collection",
                    "action": "GET /api/v1/player-ux/deep-screen?screen=collection",
                    "receipt": "view_only"
                },
                {
                    "key": "market_visit",
                    "label": "Visit marketplace",
                    "screen": "market",
                    "route": "app/market",
                    "action": "GET /api/v1/player-ux/deep-screen?screen=market",
                    "receipt": "view_only"
                },
                {
                    "key": "join_guild",
                    "label": "Join starter guild",
                    "screen": "guild",
                    "route": "app/guild",
                    "action": "POST /api/v1/player-actions/guild-join",
                    "receipt": "guild_joined"
                },
                {
                    "key": "social_feed",
                    "label": "View social feed",
                    "screen": "social",
                    "route": "app/social",
                    "action": "GET /api/v1/player-ux/deep-screen?screen=social",
                    "receipt": "view_only"
                }
            ],
            "completion_state": {
                "current_step": "starter_pack",
                "percent": 0,
                "skippable": true,
                "resume_key": "rlcg.phase38.demo_journey"
            }
        },
        "first_session_guide": {
            "screen": "dashboard",
            "title": "First-session guided flow",
            "show_until_completed": true,
            "skip_option": true,
            "resume_endpoint": "/api/v1/player-ux/preferences",
            "guide_steps": [
                {
                    "screen": "pack-open",
                    "title": "Open your first pack",
                    "hint": "Tap the sealed pack, reveal cards, then view the receipt."
                },
                {
                    "screen": "squad",
                    "title": "Build your first squad",
                    "hint": "Use auto-fill, then check chemistry and position warnings."
                },
                {
                    "screen": "battle",
                    "title": "Play your first battle",
                    "hint": "Preview opponent, start match and review rewards."
                },
                {
                    "screen": "missions",
                    "title": "Claim your reward",
                    "hint": "Claim onboarding mission and watch wallet/card refresh."
                },
                {
                    "screen": "guild",
                    "title": "Join a guild",
                    "hint": "Pick a starter guild so guild chat and missions light up."
                }
            ]
        },
        "launch_preview": {
            "version": "3.8.5-player-ux-final-qa-demo-journey-launch-preview",
            "persona": "new_player",
            "active": {
                "label": "New Player",
                "starting_screen": "dashboard",
                "focus": [
                    "starter pack",
                    "onboarding missions",
                    "beginner battle",
                    "starter guild"
                ]
            },
            "modes": {
                "new_player": {
                    "label": "New Player",
                    "starting_screen": "dashboard",
                    "focus": [
                        "starter pack",
                        "onboarding missions",
                        "beginner battle",
                        "starter guild"
                    ]
                },
                "collector": {
                    "label": "Collector",
                    "starting_screen": "collection",
                    "focus": [
                        "binder progress",
                        "missing cards",
                        "pack reveal",
                        "card details"
                    ]
                },
                "trader": {
                    "label": "Trader",
                    "starting_screen": "market",
                    "focus": [
                        "market filters",
                        "trade builder",
                        "auctions",
                        "wallet ledger"
                    ]
                },
                "guild_player": {
                    "label": "Guild Player",
                    "starting_screen": "guild",
                    "focus": [
                        "guild chat",
                        "donations",
                        "missions",
                        "stadium rivalry"
                    ]
                },
                "high_level": {
                    "label": "High-Level Player",
                    "starting_screen": "battle",
                    "focus": [
                        "ranked battle",
                        "card detail",
                        "auction pressure",
                        "mission streaks"
                    ]
                },
                "bot_heavy_test_world": {
                    "label": "Bot-Heavy Test World",
                    "starting_screen": "social",
                    "focus": [
                        "bot reactions",
                        "market liquidity",
                        "rival challenges",
                        "social feed freshness"
                    ]
                }
            },
            "admin_preview_note": "Use persona query string in admin/testing tools to preview the app as different player types."
        },
        "receipt_display": {
            "screen": "dashboard",
            "receipt_types": {
                "pack_opened": {
                    "title": "Pack Receipt",
                    "fields": [
                        "cards_received",
                        "edition_numbers",
                        "proof_log_id",
                        "ledger_ids",
                        "mission_progress",
                        "social_post_id"
                    ]
                },
                "battle_completed": {
                    "title": "Battle Receipt",
                    "fields": [
                        "opponent",
                        "score",
                        "battle_log_id",
                        "rewards",
                        "xp_delta",
                        "mission_progress",
                        "leaderboard_delta"
                    ]
                },
                "marketplace_completed": {
                    "title": "Marketplace Receipt",
                    "fields": [
                        "listing_id",
                        "card_id",
                        "price",
                        "fee",
                        "buyer_ledger_id",
                        "seller_ledger_id",
                        "ownership_history_id"
                    ]
                },
                "trade_completed": {
                    "title": "Trade Receipt",
                    "fields": [
                        "trade_id",
                        "cards_sent",
                        "cards_received",
                        "fairness_snapshot",
                        "ownership_history_ids",
                        "notifications"
                    ]
                },
                "mission_claimed": {
                    "title": "Mission Claim Receipt",
                    "fields": [
                        "mission_id",
                        "reward_bundle",
                        "ledger_ids",
                        "wallet_delta",
                        "next_mission"
                    ]
                },
                "wallet_ledger": {
                    "title": "Wallet Ledger Link",
                    "fields": [
                        "ledger_id",
                        "balance_before",
                        "balance_after",
                        "reason",
                        "created_at"
                    ]
                }
            },
            "ui": {
                "drawer": "bottom_sheet",
                "toast": "compact_summary",
                "details": "expandable_json",
                "support_link": "app/support"
            },
            "refresh_after_receipt": "/api/v1/player-ux/refresh-plan?screen=dashboard"
        },
        "screen_qa_checklist": {
            "version": "3.8.5-player-ux-final-qa-demo-journey-launch-preview",
            "screens": [
                {
                    "screen": "dashboard",
                    "route": "app/dashboard",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "collection",
                    "route": "app/collection",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "card-detail",
                    "route": "app/card-detail",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "squad",
                    "route": "app/squad",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "shop",
                    "route": "app/shop",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "pack-open",
                    "route": "app/pack-open",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "battle",
                    "route": "app/battle",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "market",
                    "route": "app/market",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "trades",
                    "route": "app/trades",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "auctions",
                    "route": "app/auctions",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "guild",
                    "route": "app/guild",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "social",
                    "route": "app/social",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "notifications",
                    "route": "app/notifications",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "missions",
                    "route": "app/missions",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "profile",
                    "route": "app/profile",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "wallet-ledger",
                    "route": "app/wallet-ledger",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "support",
                    "route": "app/support",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                },
                {
                    "screen": "stadiums",
                    "route": "app/stadiums",
                    "checks": [
                        "loads",
                        "empty_state",
                        "loading_state",
                        "error_recovery",
                        "primary_cta",
                        "receipt_refresh",
                        "mobile_width",
                        "keyboard_focus",
                        "unity_parity"
                    ],
                    "status": "ready_for_manual_qa"
                }
            ],
            "pass_gate": "All critical screens load and show a clear next action at 390px mobile width."
        },
        "unity_handoff_pack": {
            "version": "3.8.5-player-ux-final-qa-demo-journey-launch-preview",
            "screen": "dashboard",
            "screen_list_endpoint": "/api/v1/player-ux/screens",
            "shell_endpoint": "/api/v1/player-ux/shell?screen=dashboard",
            "deep_screen_endpoint": "/api/v1/player-ux/deep-screen?screen=dashboard",
            "action_endpoint_map": {
                "open_pack": "POST /api/v1/player-actions/pack-open",
                "save_squad": "POST /api/v1/squads/save",
                "start_battle": "POST /api/v1/battles/start",
                "market_buy": "POST /api/v1/marketplace/buy",
                "create_trade": "POST /api/v1/player-actions/trade-create",
                "auction_bid": "POST /api/v1/auctions/bid",
                "guild_join": "POST /api/v1/player-actions/guild-join",
                "mission_claim": "POST /api/v1/missions/claim"
            },
            "receipt_refresh_map": "/api/v1/player-ux/refresh-plan?screen=dashboard",
            "navigation_map": {
                "bottom_nav": [
                    "social",
                    "collection",
                    "battle",
                    "shop"
                ],
                "drawer": "/api/v1/player-ux/screens"
            },
            "error_code_map": "/api/v1/player-actions/error-codes",
            "gesture_map": "/api/v1/player-ux/mobile-config?screen=dashboard",
            "ui_state_map": "/api/v1/player-ux/screen?screen=dashboard"
        },
        "launch_readiness": {
            "version": "3.8.5-player-ux-final-qa-demo-journey-launch-preview",
            "status": "launch_preview_ready",
            "score": 100,
            "checks": [
                {
                    "key": "service",
                    "label": "Phase 38.5 launch service installed",
                    "ready": true
                },
                {
                    "key": "migration",
                    "label": "Phase 38.5 launch snapshot table installed",
                    "ready": true
                },
                {
                    "key": "phase38_4",
                    "label": "Phase 38.4 quality service available",
                    "ready": true
                },
                {
                    "key": "phase38_3",
                    "label": "Phase 38.3 live wiring service available",
                    "ready": true
                },
                {
                    "key": "phase37_actions",
                    "label": "Phase 37 action endpoints available",
                    "ready": true
                },
                {
                    "key": "web_shell",
                    "label": "Player UX shell exists",
                    "ready": true
                },
                {
                    "key": "css",
                    "label": "Player CSS exists",
                    "ready": true
                },
                {
                    "key": "js",
                    "label": "Player JS exists",
                    "ready": true
                }
            ],
            "next": [
                "Run migration 058.",
                "Open /api/v1/player-ux/demo-journey.",
                "Preview /app?persona=new_player and run the screen QA checklist."
            ]
        },
        "public_player_view": {
            "version": "4.0.4-public-player-view-ui-release-candidate",
            "screen": "dashboard",
            "user_id": 904,
            "state": "warning",
            "label": "Public release candidate",
            "ship_score": 90,
            "quality_score": 100,
            "readiness_score": 100,
            "pass_count": 9,
            "warning_count": 1,
            "blocked_count": 0,
            "screen_intent": "Guide the player from first pack to squad, battle, missions and community.",
            "public_notes": [
                "Designed for logged-in public players first, admin/debug detail second.",
                "Keeps existing server-authoritative Phase 37 actions and receipts intact.",
                "Improves first-session direction, mobile safe areas and launch gate visibility."
            ]
        },
        "launch_ui_ribbon": {
            "state": "warning",
            "label": "Public release candidate",
            "score": 90,
            "summary": "0 blockers \u00b7 1 warnings \u00b7 9 passed",
            "cta": {
                "label": "Build Squad",
                "route": "squad",
                "body": "Set your 13 + 4 before public battles."
            }
        },
        "spotlight_rail": [
            {
                "label": "Starter",
                "title": "Starter pack needed",
                "body": "Public onboarding is clearer when a player has a first pack or demo seed.",
                "route": "shop",
                "cta": "Store",
                "tone": "gold"
            },
            {
                "label": "Build",
                "title": "Set your 13 + 4 squad",
                "body": "Use squad readiness before public battles go live.",
                "route": "squad",
                "cta": "Build",
                "tone": "green"
            },
            {
                "label": "Compete",
                "title": "Play a battle",
                "body": "Start a server-authoritative battle with receipt-backed rewards.",
                "route": "battle",
                "cta": "Play",
                "tone": "blue"
            },
            {
                "label": "Community",
                "title": "Join the world",
                "body": "Guilds, feed, trades and stadiums keep the public game alive.",
                "route": "social",
                "cta": "Explore",
                "tone": "purple"
            }
        ],
        "public_release_gates": [
            {
                "key": "player_identity",
                "label": "Player identity",
                "state": "pass",
                "detail": "Avatar, level, XP and wallet are available in the public shell."
            },
            {
                "key": "primary_actions",
                "label": "Primary actions",
                "state": "pass",
                "detail": "Open Pack, Battle, Market and support actions remain one tap away."
            },
            {
                "key": "thumb_navigation",
                "label": "Thumb navigation",
                "state": "pass",
                "detail": "Bottom nav keeps Social, Cards, Play and Store fixed for mobile players."
            },
            {
                "key": "receipt_wiring",
                "label": "Receipt wiring",
                "state": "pass",
                "detail": "Write actions should surface a receipt/proof/audit result after execution."
            },
            {
                "key": "action_recipes",
                "label": "Safe action recipes",
                "state": "pass",
                "detail": "Each write surface advertises required idempotency inputs."
            },
            {
                "key": "starter_collection",
                "label": "Starter collection",
                "state": "pass",
                "detail": "Player owns cards."
            },
            {
                "key": "pack_inventory",
                "label": "Pack inventory",
                "state": "warning",
                "detail": "No unopened packs detected for this player."
            },
            {
                "key": "inbox_surface",
                "label": "Inbox surface",
                "state": "pass",
                "detail": "Unread notifications are represented in HUD and bottom nav badges."
            },
            {
                "key": "quality_score",
                "label": "UX quality score",
                "state": "pass",
                "detail": "Current quality score: 100%."
            },
            {
                "key": "readiness_score",
                "label": "UX readiness score",
                "state": "pass",
                "detail": "Current readiness score: 100%."
            }
        ],
        "primary_release_cta": {
            "label": "Build Squad",
            "route": "squad",
            "body": "Set your 13 + 4 before public battles."
        },
        "public_shortcuts": [
            {
                "label": "Public QA",
                "route": "app/readiness",
                "meta": "Manual mobile checks"
            },
            {
                "label": "Action Safety",
                "route": "api/v1/player-actions/live-readiness",
                "meta": "Receipts and idempotency"
            },
            {
                "label": "Pack Odds",
                "route": "legal/pack-odds",
                "meta": "Public trust page"
            },
            {
                "label": "Support",
                "route": "support",
                "meta": "Player help path"
            }
        ],
        "mobile_release_layout": {
            "safe_area": true,
            "sticky_primary_cta": true,
            "thumb_nav": true,
            "public_debug_visibility": "collapsed_after_gameplay_sections",
            "mobile_width_gate": "390px manual QA target"
        },
        "phase405_dashboard": {
            "version": "4.0.42-logo-season-chip-removal",
            "season": "Season 2026",
            "server": "AU-02",
            "patch": "PATCH NOTES 4.0.42",
            "patch_note": "LOGO SEASON CHIP REMOVED FROM DASHBOARD HEADER",
            "profile": {
                "user_id": 904,
                "name": "AUSSIEWARRIOR",
                "display_name": "aussiewarrior",
                "email": "pauldaley@whitelinefever.com",
                "role": "Super Admin",
                "level": 8,
                "xp": 7655,
                "xp_next": 1000,
                "xp_percent": 100,
                "coins": 9567,
                "gems": 0,
                "unread": 38,
                "avatar_path": "",
                "profile_route": "profile",
                "wallet_source": "user_wallets"
            },
            "event": {
                "label": "Featured Live Event",
                "title": "Stadium Control Week",
                "subtitle": "LIVE STADIUM",
                "body": "Limited stadium control event with ownership rewards and event point milestones.",
                "cta": "View Event",
                "route": "live",
                "ends_label": "Ends in 8d 19:18",
                "ends_at": "2026-07-14 10:08:20",
                "event_id": 2,
                "points": 0,
                "rank": null,
                "source": "live_events"
            },
            "superpass": {
                "active": true,
                "name": "Launch Superpass",
                "subtitle": "Free track active \u00b7 upgrade when ready",
                "xp": 3409,
                "tier_current": 7,
                "tier_count": 10,
                "tier_percent": 82,
                "season_percent": 76,
                "next_tier": 8,
                "next_xp": 3500,
                "xp_to_next": 91,
                "claimable": 0,
                "premium_unlocked": false,
                "ends_label": "Ends in 36d 00:41",
                "ends_at": "2026-08-10 15:31:28",
                "route": "live",
                "source": "battlepass",
                "items": [
                    {
                        "label": "Current tier",
                        "value": "7 / 10",
                        "meta": "3,409 pass XP"
                    },
                    {
                        "label": "Next tier",
                        "value": "Tier 8",
                        "meta": "91 XP to go"
                    },
                    {
                        "label": "Claims ready",
                        "value": "0",
                        "meta": "Free track"
                    },
                    {
                        "label": "Next reward",
                        "value": "Tier 8",
                        "meta": "650 coins"
                    }
                ]
            },
            "featured_card": {
                "name": "Nathan Cleary Demo",
                "club": "Penrith Panthers",
                "position": "Halfback",
                "rarity": "Rare",
                "ovr": 134,
                "image": "",
                "serial": "0479/1,000",
                "stats": {
                    "SPD": 86,
                    "ATK": 91,
                    "DEF": 78,
                    "SKL": 94,
                    "KIC": 96,
                    "PAS": 95
                }
            },
            "squad": {
                "rating": 65,
                "cards": [
                    {
                        "name": "Foundation Fullback",
                        "club": "RLCG Academy",
                        "position": "Fullback",
                        "rarity": "Common",
                        "ovr": 66,
                        "image": "",
                        "serial": "05474/10,000",
                        "stats": {
                            "SPD": 68,
                            "ATK": 66,
                            "DEF": 64,
                            "SKL": 67,
                            "KIC": 62,
                            "PAS": 66
                        }
                    },
                    {
                        "name": "Foundation Winger Blue",
                        "club": "RLCG Academy",
                        "position": "Winger",
                        "rarity": "Common",
                        "ovr": 65,
                        "image": "",
                        "serial": "00710/10,000",
                        "stats": {
                            "SPD": 75,
                            "ATK": 68,
                            "DEF": 60,
                            "SKL": 65,
                            "KIC": 55,
                            "PAS": 62
                        }
                    },
                    {
                        "name": "Foundation Winger Blue",
                        "club": "RLCG Academy",
                        "position": "Winger",
                        "rarity": "Common",
                        "ovr": 65,
                        "image": "",
                        "serial": "01224/10,000",
                        "stats": {
                            "SPD": 75,
                            "ATK": 68,
                            "DEF": 60,
                            "SKL": 65,
                            "KIC": 55,
                            "PAS": 62
                        }
                    }
                ],
                "filled": 17
            },
            "packs": [
                {
                    "name": "Legends Pack \u2014 Origin Heroes",
                    "description": "8 cards with elevated epic and legendary odds.",
                    "image": "",
                    "coins": 0,
                    "gems": 129,
                    "cards": 8,
                    "route": "shop"
                },
                {
                    "name": "2025 State of Origin Booster Pack",
                    "description": "12 cards with rare+ chance and edition-locked pulls.",
                    "image": "",
                    "coins": 699,
                    "gems": 0,
                    "cards": 12,
                    "route": "shop"
                }
            ],
            "market": [
                {
                    "name": "Foundation Halfback",
                    "position": "Halfback",
                    "rarity": "Common",
                    "ovr": 70,
                    "image": "",
                    "price": 1000,
                    "route": "market/detail?id=1"
                }
            ],
            "standings": [
                {
                    "rank": 1,
                    "name": "PLAYER_07",
                    "points": 8250,
                    "me": false
                },
                {
                    "rank": 2,
                    "name": "AUSSIEWARRIOR",
                    "points": 7655,
                    "me": true
                },
                {
                    "rank": 3,
                    "name": "ADMIN COACH",
                    "points": 9900,
                    "me": false
                }
            ],
            "objectives": [
                {
                    "label": "Open a pack today",
                    "description": "Open any pack to earn Live Ops progress and Superpass XP.",
                    "reward": "150 coins + 60 XP + 40 pass XP",
                    "reward_json": "{\"coins\": 150, \"xp\": 60, \"battlepass_xp\": 40}",
                    "complete": false,
                    "claimed": false,
                    "claimable": false,
                    "progress": 0,
                    "target": 1,
                    "percent": 0,
                    "progress_text": "0 / 1",
                    "status_label": "0% complete",
                    "activity_type": "pack_opened",
                    "route": "shop",
                    "action_label": "Open Pack",
                    "source": "challenge_definition",
                    "source_key": "challenge:phase16-daily-open-pack",
                    "progress_id": 1499,
                    "weight": 220
                },
                {
                    "label": "Play a battle today",
                    "description": "Play any match or battle mode.",
                    "reward": "125 coins + 50 XP + 30 pass XP",
                    "reward_json": "{\"coins\": 125, \"xp\": 50, \"battlepass_xp\": 30}",
                    "complete": false,
                    "claimed": false,
                    "claimable": false,
                    "progress": 0,
                    "target": 1,
                    "percent": 0,
                    "progress_text": "0 / 1",
                    "status_label": "0% complete",
                    "activity_type": "battle_played",
                    "route": "battle",
                    "action_label": "Play",
                    "source": "challenge_definition",
                    "source_key": "challenge:phase16-daily-play-battle",
                    "progress_id": 1500,
                    "weight": 210
                },
                {
                    "label": "Play 1 Battle",
                    "description": "Complete any battle mode today.",
                    "reward": "120 coins + 80 XP + 50 pass XP",
                    "reward_json": "{\"coins\": 120, \"xp\": 80, \"battlepass_xp\": 50}",
                    "complete": false,
                    "claimed": false,
                    "claimable": false,
                    "progress": 0,
                    "target": 1,
                    "percent": 0,
                    "progress_text": "0 / 1",
                    "status_label": "0% complete",
                    "activity_type": "battle_played",
                    "route": "battle",
                    "action_label": "Play",
                    "source": "challenge_definition",
                    "source_key": "challenge:daily-play-1-battle",
                    "progress_id": 1501,
                    "weight": 100
                }
            ],
            "objectives_summary": {
                "total": 4,
                "displayed": 3,
                "completed": 0,
                "claimable": 0,
                "percent": 0,
                "source": "phase40_missions"
            },
            "dashboard_boxes": {
                "recent_activity": {
                    "title": "Recent Activity Feed",
                    "subtitle": "Pack pulls, battle wins, market sales, guild actions and achievements.",
                    "icon": "\u26a1",
                    "route": "social",
                    "items": [
                        {
                            "title": "Pack opened",
                            "body": "2025 State of Origin Booster Pack",
                            "meta": "4d ago",
                            "icon": "\ud83c\udf81",
                            "route": "inventory",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Pack opened",
                            "body": "2025 State of Origin Booster Pack",
                            "meta": "7d ago",
                            "icon": "\ud83c\udf81",
                            "route": "inventory",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Pack opened",
                            "body": "Foundation Starter Pack",
                            "meta": "8d ago",
                            "icon": "\ud83c\udf81",
                            "route": "inventory",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Battle complete",
                            "body": "Match result recorded.",
                            "meta": "18h ago",
                            "icon": "\ud83d\udee1",
                            "route": "battle",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Battle complete",
                            "body": "Match result recorded.",
                            "meta": "1d ago",
                            "icon": "\ud83d\udee1",
                            "route": "battle",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Battle complete",
                            "body": "Match result recorded.",
                            "meta": "1d ago",
                            "icon": "\ud83d\udee1",
                            "route": "battle",
                            "_sort": "2026-07-05 14:49:41"
                        }
                    ],
                    "empty": "Activity appears here after packs, battles, sales, guild actions or achievements."
                },
                "unopened_packs": {
                    "title": "Unopened Packs",
                    "subtitle": "Quick open panel for packs waiting in inventory.",
                    "icon": "\ud83c\udf81",
                    "route": "inventory",
                    "items": [],
                    "empty": "No unopened packs. Visit the shop or claim Live Ops rewards."
                },
                "squad_readiness": {
                    "title": "Squad Readiness",
                    "subtitle": "Missing positions, chemistry and protection checks.",
                    "icon": "\u25a6",
                    "route": "squad",
                    "items": [
                        {
                            "title": "Squad filled",
                            "body": "17/17 slots ready",
                            "meta": "Complete",
                            "icon": "\u2713",
                            "route": "squad",
                            "_sort": "2026-07-05 14:49:41",
                            "state": "good"
                        },
                        {
                            "title": "Chemistry",
                            "body": "91% team chemistry",
                            "meta": "Ready",
                            "icon": "\u25a6",
                            "route": "squad",
                            "_sort": "2026-07-05 14:49:41",
                            "state": "good"
                        },
                        {
                            "title": "Rating",
                            "body": "65 OVR",
                            "meta": "Upgrade cards",
                            "icon": "\u2605",
                            "route": "collection",
                            "_sort": "2026-07-05 14:49:41",
                            "state": "warn"
                        },
                        {
                            "title": "Protected cards",
                            "body": "0 locked \u00b7 0 favourites",
                            "meta": "Safe from sale/fusion",
                            "icon": "\ud83d\udd12",
                            "route": "collection",
                            "_sort": "2026-07-05 14:49:41",
                            "state": "good"
                        }
                    ],
                    "empty": "Build a squad to unlock readiness checks."
                },
                "battle_readiness": {
                    "title": "Battle Readiness",
                    "subtitle": "Best mode, recent form, rewards and cooldowns.",
                    "icon": "\ud83d\udee1",
                    "route": "battle",
                    "items": [
                        {
                            "title": "Best mode",
                            "body": "Ranked Match",
                            "meta": "Build squad first",
                            "icon": "\u25b6",
                            "route": "battle",
                            "_sort": "2026-07-05 14:49:41",
                            "state": "warn"
                        },
                        {
                            "title": "Recent form",
                            "body": "0 wins from 11",
                            "meta": "0% win rate",
                            "icon": "\ud83c\udfc6",
                            "route": "battle",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Rewards",
                            "body": "43 pending",
                            "meta": "Claim/check logs",
                            "icon": "\u25ce",
                            "route": "battle",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Cooldown",
                            "body": "Ready now",
                            "meta": "No dashboard cooldown active",
                            "icon": "\u2713",
                            "route": "battle",
                            "_sort": "2026-07-05 14:49:41",
                            "state": "good"
                        }
                    ],
                    "empty": "Play a battle to begin building form and rewards history."
                },
                "live_event_progress": {
                    "title": "Live Event Progress",
                    "subtitle": "Current event points, rank, rewards and time remaining.",
                    "icon": "\u25a3",
                    "route": "live",
                    "items": [
                        {
                            "title": "Stadium Control Week",
                            "body": "0 pts \u00b7 Ends in 8d 19:18",
                            "meta": "Next: Stadium Raider at 250 pts",
                            "icon": "\u25a3",
                            "route": "live",
                            "_sort": "2026-07-05 14:49:41",
                            "event_id": 2,
                            "points": 0,
                            "rank": null
                        },
                        {
                            "title": "Origin Launch Series",
                            "body": "0 pts \u00b7 Ends in 21d 00:41",
                            "meta": "Next: Event Starter at 100 pts",
                            "icon": "\u25a3",
                            "route": "live",
                            "_sort": "2026-07-05 14:49:41",
                            "event_id": 1,
                            "points": 0,
                            "rank": null
                        }
                    ],
                    "empty": "No live event is currently running."
                },
                "support_alerts": {
                    "title": "Support / Alerts",
                    "subtitle": "Tickets, account warnings, maintenance and release messages.",
                    "icon": "!",
                    "route": "support",
                    "items": [
                        {
                            "title": "Did not Get a card",
                            "body": "OPEN \u00b7 NORMAL",
                            "meta": "7d ago",
                            "icon": "!",
                            "route": "support",
                            "_sort": "2026-07-05 14:49:41",
                            "state": "info"
                        },
                        {
                            "title": "Stadium captured",
                            "body": "You now own a stadium zone.",
                            "meta": "1d ago",
                            "icon": "\ud83d\udd14",
                            "route": "live/inbox",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Reward claimed",
                            "body": "Your reward has been added to your account.",
                            "meta": "1d ago",
                            "icon": "\ud83d\udd14",
                            "route": "live/inbox",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Reward claimed",
                            "body": "Your reward has been added to your account.",
                            "meta": "1d ago",
                            "icon": "\ud83d\udd14",
                            "route": "live/inbox",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Stadium battle flow upgraded",
                            "body": "STADIUM \u00b7 Scout stadiums, preview ownership stakes and launch real stadium battles from the map.",
                            "meta": "5d ago",
                            "icon": "\ud83d\udce3",
                            "route": "live",
                            "_sort": "2026-07-05 14:49:41"
                        },
                        {
                            "title": "Launch Live Ops is live",
                            "body": "EVENT \u00b7 Complete daily missions, claim Superpass tiers and chase stadium control.",
                            "meta": "5d ago",
                            "icon": "\ud83d\udce3",
                            "route": "live",
                            "_sort": "2026-07-05 14:49:41"
                        }
                    ],
                    "empty": "No support issues or account alerts."
                },
                "marketplace_watchlist": {
                    "title": "Marketplace Watchlist",
                    "subtitle": "Watched cards, price drops and active bids.",
                    "icon": "\u21c4",
                    "route": "market",
                    "items": [],
                    "empty": "Watch cards from the marketplace to see price alerts here."
                }
            },
            "nav": [
                {
                    "label": "Home",
                    "short": "Home",
                    "icon": "\ud83c\udfe0",
                    "route": "dashboard",
                    "active": true
                },
                {
                    "label": "Collection",
                    "short": "Cards",
                    "icon": "\u25b0",
                    "route": "collection",
                    "active": false
                },
                {
                    "label": "Squad Builder",
                    "short": "Squad",
                    "icon": "\u25a6",
                    "route": "squad",
                    "active": false
                },
                {
                    "label": "Shop",
                    "short": "Shop",
                    "icon": "\ud83d\uded2",
                    "route": "shop",
                    "active": false
                },
                {
                    "label": "Inventory",
                    "short": "Packs",
                    "icon": "\u2301",
                    "route": "inventory",
                    "active": false
                },
                {
                    "label": "Market",
                    "short": "Market",
                    "icon": "\u21c4",
                    "route": "market",
                    "active": false
                },
                {
                    "label": "Play Match",
                    "short": "Play",
                    "icon": "\ud83d\udee1",
                    "route": "battle",
                    "active": false
                },
                {
                    "label": "Events",
                    "short": "Events",
                    "icon": "\u25a3",
                    "route": "live",
                    "active": false
                },
                {
                    "label": "Stadiums",
                    "short": "World",
                    "icon": "\u25ce",
                    "route": "stadiums",
                    "active": false
                },
                {
                    "label": "Guilds",
                    "short": "Guilds",
                    "icon": "\u2691",
                    "route": "guilds",
                    "active": false
                },
                {
                    "label": "Social",
                    "short": "Social",
                    "icon": "\u25cf",
                    "route": "social",
                    "active": false
                },
                {
                    "label": "Trades",
                    "short": "Trades",
                    "icon": "\u2194",
                    "route": "trades",
                    "active": false
                },
                {
                    "label": "Tournaments",
                    "short": "Cups",
                    "icon": "\ud83c\udfc6",
                    "route": "tournaments",
                    "active": false
                },
                {
                    "label": "Card Lab",
                    "short": "Lab",
                    "icon": "\u2726",
                    "route": "card-lab",
                    "active": false
                },
                {
                    "label": "Support",
                    "short": "Support",
                    "icon": "?",
                    "route": "support",
                    "active": false
                }
            ],
            "release_strip": [
                {
                    "label": "Connected",
                    "value": "Live session",
                    "state": "connected"
                },
                {
                    "label": "Cards",
                    "value": "41",
                    "state": "ready"
                },
                {
                    "label": "Packs",
                    "value": "0",
                    "state": "ready"
                },
                {
                    "label": "Squad",
                    "value": "65 OVR",
                    "state": "warning"
                }
            ]
        }
    }
}