{
    "ok": true,
    "version": "4.2.1-social-hub-dashboard-upgrade",
    "stats": {
        "active_listings": 1,
        "active_buy_now": 1,
        "active_auctions": 0,
        "due_auctions": 0,
        "completed_transactions": 0,
        "completed_volume": 0,
        "today_volume": 0,
        "pending_trades": 0,
        "pending_offers": 0,
        "fraud_watch": 0,
        "bots_enabled": 3
    },
    "qa": {
        "status": "green",
        "blockers": 0,
        "warnings": 0,
        "checks": [
            {
                "key": "market_tables",
                "ok": true,
                "level": "red",
                "message": "Core marketplace tables exist."
            },
            {
                "key": "phase14_tables",
                "ok": true,
                "level": "red",
                "message": "Phase 14 deep tables exist."
            },
            {
                "key": "duplicate_active_listing",
                "ok": true,
                "level": "red",
                "message": "No duplicate active listings per card."
            },
            {
                "key": "sold_without_transaction",
                "ok": true,
                "level": "red",
                "message": "Every sold/settled listing has a transaction."
            },
            {
                "key": "active_listing_wrong_owner",
                "ok": true,
                "level": "red",
                "message": "Active listed cards are still owned by seller."
            },
            {
                "key": "active_listing_tradeable",
                "ok": true,
                "level": "red",
                "message": "Active listed cards are locked from duplicate sale."
            },
            {
                "key": "locked_cards_listed",
                "ok": true,
                "level": "red",
                "message": "Locked/favourite cards are not listed."
            },
            {
                "key": "expired_auctions_due",
                "ok": true,
                "level": "amber",
                "message": "No overdue auction settlements."
            },
            {
                "key": "pending_expired_offers",
                "ok": true,
                "level": "amber",
                "message": "No expired pending offers."
            },
            {
                "key": "pending_expired_trades",
                "ok": true,
                "level": "amber",
                "message": "No expired pending trades."
            },
            {
                "key": "fraud_frozen",
                "ok": true,
                "level": "amber",
                "message": "No frozen fraud accounts."
            }
        ],
        "generated_at": "2026-07-05 14:55:20",
        "version": "4.2.1-social-hub-dashboard-upgrade"
    },
    "controls": [
        {
            "control_key": "bot_advanced_human_activity_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enables Phase 26 human-style bot actions across feed, packs, battles, trades and guilds.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_allow_guild_creation",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows bots to create public guilds if no public guild has room.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_auto_buy_packs",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows bots to buy affordable enabled packs before opening them.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_auto_grant_pack_if_empty",
            "control_value": "0",
            "value_type": "bool",
            "description": "Optional fallback to grant a pack to a bot if no affordable pack exists.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_auto_maintain_roster",
            "control_value": "1",
            "value_type": "bool",
            "description": "When enabled, cron keeps the enabled bot population near bot_target_population.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_buy_now_max_price",
            "control_value": "150000",
            "value_type": "int",
            "description": "Maximum buy-now price a bot can consider.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "bot_daily_action_limit_elite",
            "control_value": "12",
            "value_type": "int",
            "description": "Daily completed action cap for elite bots.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_daily_action_limit_legend",
            "control_value": "16",
            "value_type": "int",
            "description": "Daily completed action cap for legend bots.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_daily_action_limit_pro",
            "control_value": "8",
            "value_type": "int",
            "description": "Daily completed action cap for pro bots.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_daily_action_limit_regular",
            "control_value": "5",
            "value_type": "int",
            "description": "Daily completed action cap for regular bots.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_daily_action_limit_rookie",
            "control_value": "3",
            "value_type": "int",
            "description": "Daily completed action cap for rookie bots.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_director_battles_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows the director to fill battle queues and create rivalry pressure.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_dry_run",
            "control_value": "0",
            "value_type": "bool",
            "description": "Records director decisions without forcing bot activity.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enables Phase 28 Bot Director before Phase 27 individual bot decisions.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_guilds_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows the director to revive guild chat, donations and joins.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_health_target_score",
            "control_value": "70",
            "value_type": "int",
            "description": "Areas below this score receive director interventions.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_marketplace_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows the director to boost marketplace and auction activity.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_max_actions_per_hour",
            "control_value": "80",
            "value_type": "int",
            "description": "Global director action ceiling per hour.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_packs_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows the director to boost pack activity within injection caps.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_quiet_mode",
            "control_value": "0",
            "value_type": "bool",
            "description": "Reduces bot activity intensity and avoids social/feed bursts.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_social_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows the director to refresh feed posts, comments and reactions.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_director_trades_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows the director to stimulate trades and counter-offer chains.",
            "updated_at": "2026-07-02 11:09:37"
        },
        {
            "control_key": "bot_living_allow_guild_creation",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows guild-leader/grinder/premium bots to create public guilds if needed.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_allow_pack_buy",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows bots to buy packs within wallet budget before opening and posting a story chain.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_cap_battles_per_day",
            "control_value": "160",
            "value_type": "int",
            "description": "Global daily cap for bot battle actions.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_cap_guild_actions_per_day",
            "control_value": "90",
            "value_type": "int",
            "description": "Global daily cap for bot guild actions.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_cap_market_actions_per_day",
            "control_value": "140",
            "value_type": "int",
            "description": "Global daily cap for bot marketplace actions.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_cap_pack_openings_per_day",
            "control_value": "80",
            "value_type": "int",
            "description": "Global daily cap for bot pack opening story chains.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_cap_social_actions_per_day",
            "control_value": "220",
            "value_type": "int",
            "description": "Global daily cap for bot social and player engagement actions.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_cap_trades_per_day",
            "control_value": "90",
            "value_type": "int",
            "description": "Global daily cap for bot trade actions.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_counter_offers",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows bots to answer weak trades by declining and creating a counter-offer when possible.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_daily_action_limit_elite",
            "control_value": "17",
            "value_type": "int",
            "description": "Phase 27 daily completed action cap for elite bots.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_daily_action_limit_legend",
            "control_value": "24",
            "value_type": "int",
            "description": "Phase 27 daily completed action cap for legend bots.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_daily_action_limit_pro",
            "control_value": "11",
            "value_type": "int",
            "description": "Phase 27 daily completed action cap for pro bots.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_daily_action_limit_regular",
            "control_value": "7",
            "value_type": "int",
            "description": "Phase 27 daily completed action cap for regular bots.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_daily_action_limit_rookie",
            "control_value": "4",
            "value_type": "int",
            "description": "Phase 27 daily completed action cap for rookie bots.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_economy_pause",
            "control_value": "0",
            "value_type": "bool",
            "description": "Emergency pause switch for all Phase 27 living bot actions.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_intelligence_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enables Phase 27 living bot economy intelligence before older fallback bot actions.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_living_use_routines",
            "control_value": "1",
            "value_type": "bool",
            "description": "Requires bots to act inside realistic morning/lunch/evening/late-market sessions.",
            "updated_at": "2026-07-02 10:57:55"
        },
        {
            "control_key": "bot_max_actions_per_cron",
            "control_value": "10",
            "value_type": "int",
            "description": "Maximum bot actions from the master cron tick.",
            "updated_at": "2026-06-26 15:31:28"
        },
        {
            "control_key": "bot_offer_max_discount_bps",
            "control_value": "8500",
            "value_type": "int",
            "description": "Bots can offer up to this percentage of suggested value/listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "bot_personality_auction_drama_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows auction drama, late bids, budget backouts and auction story hooks.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enables Phase 29 personality, reputation, rivalry and social depth layer after Phase 28 Director ticks.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_guild_politics_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows guild politics, guild chat prompts, recruit nudges and donation reminders.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_imperfect_decisions_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows bots to make small believable mistakes instead of always acting perfectly.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_max_notifications_per_hour",
            "control_value": "18",
            "value_type": "int",
            "description": "Maximum bot-triggered user notifications per hour.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_max_online_percent",
            "control_value": "36",
            "value_type": "int",
            "description": "Maximum percentage of enabled bots allowed to show as online/active at once.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_notifications_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows Phase 29 to queue controlled bot-triggered inbox/notification events for real players.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_onboarding_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows Phase 29 to softly support new players with beginner bots, starter guild invites and first-pack reactions.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_stadium_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows bots to create stadium/world-control movement and stories.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_suspicion_pause_score",
            "control_value": "88",
            "value_type": "int",
            "description": "Suspicion score where Phase 29 should cool a bot down heavily.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_personality_suspicion_warning_score",
            "control_value": "65",
            "value_type": "int",
            "description": "Suspicion score where the admin dashboard should warn and slow a bot.",
            "updated_at": "2026-07-03 01:18:55"
        },
        {
            "control_key": "bot_phase30_bot_player_ratio_warning",
            "control_value": "1.75",
            "value_type": "decimal",
            "description": "Bot/player activity ratio where warnings begin.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enable Phase 30 analytics, safeguards and forecasting.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_featured_activity_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enable safe sponsored/featured activity controls.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_inventory_sinks_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enable bot duplicate inventory sink planning.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_liquidity_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enable market liquidity scoring.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_max_coin_movement_per_day",
            "control_value": "350000",
            "value_type": "int",
            "description": "Maximum forecast bot coin movement before delay/reduction.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_max_legendary_injection_per_day",
            "control_value": "8",
            "value_type": "int",
            "description": "Maximum forecast bot Legendary card injection per day.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_max_stress_actions",
            "control_value": "1500",
            "value_type": "int",
            "description": "Maximum dry-run actions before stress warning.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_personalisation_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enable per-player bot support planning.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase30_queue_optimiser_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enable bot matchmaking queue optimisation.",
            "updated_at": "2026-07-03 01:55:04"
        },
        {
            "control_key": "bot_phase31_active_preset",
            "control_value": "balanced_world",
            "value_type": "string",
            "description": "Current bot economy tuning preset key.",
            "updated_at": "2026-07-03 07:56:03"
        },
        {
            "control_key": "bot_phase31_archive_after_days",
            "control_value": "90",
            "value_type": "int",
            "description": "Age threshold for low-value bot memories/logs to archive or compress.",
            "updated_at": "2026-07-03 07:56:03"
        },
        {
            "control_key": "bot_phase31_dry_run_default",
            "control_value": "1",
            "value_type": "bool",
            "description": "Runs Phase 31 in dry-run/planning mode by default until live tuning is confirmed.",
            "updated_at": "2026-07-03 07:56:03"
        },
        {
            "control_key": "bot_phase31_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enables Phase 31 Autonomous Bot Economy Brain.",
            "updated_at": "2026-07-03 07:56:03"
        },
        {
            "control_key": "bot_phase31_learning_strength",
            "control_value": "45",
            "value_type": "int",
            "description": "How strongly the brain responds to bot outcome learning.",
            "updated_at": "2026-07-03 07:56:03"
        },
        {
            "control_key": "bot_phase31_max_generated_challenges_per_tick",
            "control_value": "8",
            "value_type": "int",
            "description": "Maximum bot-generated personal challenges queued per Phase 31 tick.",
            "updated_at": "2026-07-03 07:56:03"
        },
        {
            "control_key": "bot_phase31_max_tutorial_steps_per_tick",
            "control_value": "12",
            "value_type": "int",
            "description": "Maximum living tutorial steps queued per Phase 31 tick.",
            "updated_at": "2026-07-03 07:56:03"
        },
        {
            "control_key": "bot_phase33_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enables Phase 33 production hardening and live validation.",
            "updated_at": "2026-07-03 08:40:31"
        },
        {
            "control_key": "bot_phase33_fail_safe_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Enables emergency fail-safe downgrade when critical checks fail.",
            "updated_at": "2026-07-03 08:40:31"
        },
        {
            "control_key": "bot_phase33_hard_guardrails_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Blocks bot actions when hard guardrails are exceeded.",
            "updated_at": "2026-07-03 08:40:31"
        },
        {
            "control_key": "bot_phase33_live_learning_enabled",
            "control_value": "1",
            "value_type": "bool",
            "description": "Allows live data learning actions to be suggested.",
            "updated_at": "2026-07-03 08:40:31"
        },
        {
            "control_key": "bot_phase33_readiness_required_score",
            "control_value": "85",
            "value_type": "int",
            "description": "Minimum readiness score for full-live recommendation.",
            "updated_at": "2026-07-03 08:40:31"
        },
        {
            "control_key": "bot_phase33_rollout_mode",
            "control_value": "dry_run",
            "value_type": "enum",
            "description": "Rollout mode: off, dry_run, shadow, limited_live, social_only, market_only, battle_only, full_live, emergency_safe.",
            "updated_at": "2026-07-03 08:40:31"
        },
        {
            "control_key": "bot_phase33_smoke_sample_limit",
            "control_value": "25",
            "value_type": "int",
            "description": "Sample size for smoke, ledger, provenance and quality review checks.",
            "updated_at": "2026-07-03 08:40:31"
        },
        {
            "control_key": "bot_target_population",
            "control_value": "32",
            "value_type": "int",
            "description": "Target number of enabled named bot profiles to keep the app feeling active.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "bot_use_presence_windows",
            "control_value": "1",
            "value_type": "bool",
            "description": "When enabled, bots only act inside rotating human-style play sessions.",
            "updated_at": "2026-07-02 10:40:40"
        },
        {
            "control_key": "market_auction_anti_snipe_minutes",
            "control_value": "3",
            "value_type": "int",
            "description": "Auction anti-snipe extension window in minutes.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_auction_extension_minutes",
            "control_value": "2",
            "value_type": "int",
            "description": "Auction extension applied when anti-snipe triggers.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_bid_increment_coins",
            "control_value": "10",
            "value_type": "int",
            "description": "Minimum auction bid increment in coins.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_bot_daily_buy_limit",
            "control_value": "15",
            "value_type": "int",
            "description": "Maximum bot purchases per day.",
            "updated_at": "2026-07-01 01:50:49"
        },
        {
            "control_key": "market_bot_daily_listing_limit",
            "control_value": "20",
            "value_type": "int",
            "description": "Maximum bot-created listings per day.",
            "updated_at": "2026-07-01 01:50:49"
        },
        {
            "control_key": "market_circuit_breaker",
            "control_value": "0",
            "value_type": "bool",
            "description": "When 1, new listings and purchases are blocked until admin reopens the market.",
            "updated_at": "2026-06-26 15:31:28"
        },
        {
            "control_key": "market_daily_bid_limit",
            "control_value": "80",
            "value_type": "int",
            "description": "Maximum auction bids per UTC/server day.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_daily_buy_limit",
            "control_value": "50",
            "value_type": "int",
            "description": "Maximum player buy-now purchases per UTC/server day.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_daily_listing_limit",
            "control_value": "25",
            "value_type": "int",
            "description": "Maximum player-created listings per UTC/server day.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_daily_offer_limit",
            "control_value": "40",
            "value_type": "int",
            "description": "Maximum listing offers per UTC/server day.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_fee_bps",
            "control_value": "500",
            "value_type": "int",
            "description": "Marketplace fee in basis points. 500 = 5%.",
            "updated_at": "2026-06-26 15:31:28"
        },
        {
            "control_key": "market_high_value_confirm_coins",
            "control_value": "50000",
            "value_type": "int",
            "description": "Player UX must warn before listing/buying above this coin value.",
            "updated_at": "2026-07-01 01:50:49"
        },
        {
            "control_key": "market_high_value_threshold",
            "control_value": "50000",
            "value_type": "int",
            "description": "Transactions above this amount create high-value fraud events.",
            "updated_at": "2026-06-26 15:31:28"
        },
        {
            "control_key": "market_launch_required_green",
            "control_value": "0",
            "value_type": "bool",
            "description": "When set to 1 admin launch QA should be green before enabling live players.",
            "updated_at": "2026-07-01 01:50:49"
        },
        {
            "control_key": "market_min_price_coins",
            "control_value": "10",
            "value_type": "int",
            "description": "Minimum buy-now or auction start price.",
            "updated_at": "2026-06-26 15:31:28"
        },
        {
            "control_key": "market_notification_digest_limit",
            "control_value": "20",
            "value_type": "int",
            "description": "Maximum marketplace notifications returned to mobile clients.",
            "updated_at": "2026-07-01 01:50:49"
        },
        {
            "control_key": "market_offer_min_percent_bps",
            "control_value": "6000",
            "value_type": "int",
            "description": "Minimum offer as percent of listing price in bps. 6000 = 60%.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_overprice_warning_bps",
            "control_value": "40000",
            "value_type": "int",
            "description": "Listing above this percentage of suggested value creates a warning.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_cap_common",
            "control_value": "250000",
            "value_type": "int",
            "description": "Common rarity maximum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_cap_epic",
            "control_value": "2500000",
            "value_type": "int",
            "description": "Epic rarity maximum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_cap_legendary",
            "control_value": "5000000",
            "value_type": "int",
            "description": "Legendary rarity maximum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_cap_mythic",
            "control_value": "10000000",
            "value_type": "int",
            "description": "Mythic rarity maximum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_cap_rare",
            "control_value": "500000",
            "value_type": "int",
            "description": "Rare rarity maximum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_cap_super_rare",
            "control_value": "1000000",
            "value_type": "int",
            "description": "Super rare rarity maximum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_floor_common",
            "control_value": "10",
            "value_type": "int",
            "description": "Common rarity minimum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_floor_epic",
            "control_value": "1500",
            "value_type": "int",
            "description": "Epic rarity minimum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_floor_legendary",
            "control_value": "5000",
            "value_type": "int",
            "description": "Legendary rarity minimum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_floor_mythic",
            "control_value": "15000",
            "value_type": "int",
            "description": "Mythic rarity minimum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_floor_rare",
            "control_value": "100",
            "value_type": "int",
            "description": "Rare rarity minimum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_price_floor_super_rare",
            "control_value": "500",
            "value_type": "int",
            "description": "Super rare rarity minimum listing price.",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "control_key": "market_trade_value_warning_bps",
            "control_value": "2500",
            "value_type": "int",
            "description": "Trade value difference warning threshold in bps.",
            "updated_at": "2026-07-01 01:50:49"
        },
        {
            "control_key": "market_underprice_warning_bps",
            "control_value": "4500",
            "value_type": "int",
            "description": "Listing below this percentage of suggested value creates a warning.",
            "updated_at": "2026-07-01 01:40:41"
        }
    ],
    "recent_listings": [
        {
            "id": "1",
            "listing_type": "buy_now",
            "seller_user_id": "904",
            "user_card_id": "12",
            "card_definition_id": "7",
            "status": "active",
            "price_coins": "1000",
            "start_price_coins": "0",
            "current_bid_coins": "0",
            "buyout_price_coins": null,
            "highest_bid_user_id": null,
            "starts_at": "2026-06-27 03:40:46",
            "ends_at": null,
            "sold_at": null,
            "idempotency_key": "web_list_904_1782531646_289d0242ed",
            "meta_json": "{\"created_from\":\"marketplace_service\"}",
            "created_at": "2026-06-27 03:40:46",
            "updated_at": "2026-06-27 03:40:46",
            "deleted_at": null,
            "card_name": "Foundation Halfback",
            "rarity": "common",
            "seller_name": "aussiewarrior"
        }
    ],
    "recent_transactions": [],
    "recent_offers": [],
    "fraud": [],
    "audit": [],
    "bots": [
        {
            "id": "1",
            "user_id": "901",
            "bot_name": "Jake Taylor",
            "personality": "aggressive",
            "status": "enabled",
            "budget_coins": "250000",
            "risk_limit": "75",
            "action_cooldown_minutes": "45",
            "next_action_at": "2026-06-26 15:31:28",
            "settings_json": "{\"battle_bias\": \"high\", \"market_bias\": \"bid\", \"human_name\": true, \"tier\": \"elite\"}",
            "created_at": "2026-06-26 15:31:28",
            "updated_at": "2026-07-02 10:40:40",
            "display_name": "Jake Taylor",
            "coins": "250000"
        },
        {
            "id": "2",
            "user_id": "902",
            "bot_name": "Cooper Harris",
            "personality": "trader",
            "status": "enabled",
            "budget_coins": "300000",
            "risk_limit": "45",
            "action_cooldown_minutes": "30",
            "next_action_at": "2026-06-26 15:31:28",
            "settings_json": "{\"market_bias\": \"list\", \"max_bid\": 12000, \"human_name\": true, \"tier\": \"pro\"}",
            "created_at": "2026-06-26 15:31:28",
            "updated_at": "2026-07-02 10:40:40",
            "display_name": "Cooper Harris",
            "coins": "300000"
        },
        {
            "id": "3",
            "user_id": "903",
            "bot_name": "Mia Roberts",
            "personality": "collector",
            "status": "enabled",
            "budget_coins": "180000",
            "risk_limit": "35",
            "action_cooldown_minutes": "90",
            "next_action_at": "2026-06-26 15:31:28",
            "settings_json": "{\"market_bias\": \"buy\", \"watch_rarities\": [\"epic\", \"legendary\"], \"human_name\": true, \"tier\": \"regular\"}",
            "created_at": "2026-06-26 15:31:28",
            "updated_at": "2026-07-02 10:40:40",
            "display_name": "Mia Roberts",
            "coins": "180000"
        }
    ],
    "bot_rules": [
        {
            "id": "3",
            "rule_key": "bot_auction_participation",
            "label": "Bot auction participation",
            "is_enabled": "1",
            "rule_json": "{\"max_per_tick\":3,\"bid_personalities\":[\"collector\",\"aggressive\",\"whale\"]}",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "id": "2",
            "rule_key": "bot_collect_underpriced_cards",
            "label": "Bot collector underpriced buy-now purchases",
            "is_enabled": "1",
            "rule_json": "{\"max_per_tick\":2,\"max_price\":150000}",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "id": "4",
            "rule_key": "bot_listing_offer_pressure",
            "label": "Bot listing offer pressure",
            "is_enabled": "1",
            "rule_json": "{\"max_per_tick\":2,\"discount_bps\":8500}",
            "updated_at": "2026-07-01 01:40:41"
        },
        {
            "id": "1",
            "rule_key": "bot_market_make_buy_now",
            "label": "Bot market maker buy-now listings",
            "is_enabled": "1",
            "rule_json": "{\"max_per_tick\":3,\"prefer_rarity\":[\"common\",\"rare\",\"super_rare\"]}",
            "updated_at": "2026-07-01 01:40:41"
        }
    ],
    "launch_qa": {
        "status": "amber",
        "blockers": 0,
        "warnings": 1,
        "checks": [
            {
                "key": "market_tables",
                "ok": true,
                "level": "red",
                "message": "Core marketplace tables exist."
            },
            {
                "key": "phase14_tables",
                "ok": true,
                "level": "red",
                "message": "Phase 14 deep tables exist."
            },
            {
                "key": "duplicate_active_listing",
                "ok": true,
                "level": "red",
                "message": "No duplicate active listings per card."
            },
            {
                "key": "sold_without_transaction",
                "ok": true,
                "level": "red",
                "message": "Every sold/settled listing has a transaction."
            },
            {
                "key": "active_listing_wrong_owner",
                "ok": true,
                "level": "red",
                "message": "Active listed cards are still owned by seller."
            },
            {
                "key": "active_listing_tradeable",
                "ok": true,
                "level": "red",
                "message": "Active listed cards are locked from duplicate sale."
            },
            {
                "key": "locked_cards_listed",
                "ok": true,
                "level": "red",
                "message": "Locked/favourite cards are not listed."
            },
            {
                "key": "expired_auctions_due",
                "ok": true,
                "level": "amber",
                "message": "No overdue auction settlements."
            },
            {
                "key": "pending_expired_offers",
                "ok": true,
                "level": "amber",
                "message": "No expired pending offers."
            },
            {
                "key": "pending_expired_trades",
                "ok": true,
                "level": "amber",
                "message": "No expired pending trades."
            },
            {
                "key": "fraud_frozen",
                "ok": true,
                "level": "amber",
                "message": "No frozen fraud accounts."
            },
            {
                "key": "phase14_launch_tables",
                "ok": true,
                "level": "red",
                "message": "Phase 14 launch polish tables exist."
            },
            {
                "key": "market_notifications_ready",
                "ok": true,
                "level": "red",
                "message": "Marketplace notifications table is available."
            },
            {
                "key": "auction_missing_end_time",
                "ok": true,
                "level": "red",
                "message": "Active auctions all have an end time."
            },
            {
                "key": "auction_winning_bid_consistency",
                "ok": true,
                "level": "red",
                "message": "Winning auction bids match listing state."
            },
            {
                "key": "marketplace_value_outliers",
                "ok": true,
                "level": "amber",
                "message": "Recent value warning volume is normal."
            },
            {
                "key": "bot_tuning_controls",
                "ok": true,
                "level": "amber",
                "message": "Bot and auction tuning controls exist."
            },
            {
                "key": "recent_economy_snapshot",
                "ok": false,
                "level": "amber",
                "message": "Run the economy snapshot once before launch."
            },
            {
                "key": "manual_refund_audit_ready",
                "ok": true,
                "level": "red",
                "message": "Admin refund and action audit tables are ready."
            }
        ],
        "generated_at": "2026-07-05 14:55:20",
        "version": "4.2.1-social-hub-dashboard-upgrade"
    },
    "economy_snapshot": {
        "snapshot_date": "2026-07-05",
        "sales_count": 0,
        "gross_volume": 0,
        "fee_sink": 0,
        "active_listings": 1,
        "active_auctions": 0,
        "pending_offers": 0,
        "average_sale": 0,
        "thirty_day_average": 0,
        "inflation_percent": 0,
        "status": "stable",
        "created_at": "2026-07-05 14:55:20"
    },
    "bot_tuning": {
        "rules": [
            {
                "id": "3",
                "rule_key": "bot_auction_participation",
                "label": "Bot auction participation",
                "is_enabled": "1",
                "rule_json": "{\"max_per_tick\":3,\"bid_personalities\":[\"collector\",\"aggressive\",\"whale\"]}",
                "updated_at": "2026-07-01 01:40:41"
            },
            {
                "id": "2",
                "rule_key": "bot_collect_underpriced_cards",
                "label": "Bot collector underpriced buy-now purchases",
                "is_enabled": "1",
                "rule_json": "{\"max_per_tick\":2,\"max_price\":150000}",
                "updated_at": "2026-07-01 01:40:41"
            },
            {
                "id": "4",
                "rule_key": "bot_listing_offer_pressure",
                "label": "Bot listing offer pressure",
                "is_enabled": "1",
                "rule_json": "{\"max_per_tick\":2,\"discount_bps\":8500}",
                "updated_at": "2026-07-01 01:40:41"
            },
            {
                "id": "1",
                "rule_key": "bot_market_make_buy_now",
                "label": "Bot market maker buy-now listings",
                "is_enabled": "1",
                "rule_json": "{\"max_per_tick\":3,\"prefer_rarity\":[\"common\",\"rare\",\"super_rare\"]}",
                "updated_at": "2026-07-01 01:40:41"
            }
        ],
        "activity_24h": [],
        "bots": [
            {
                "id": "1",
                "user_id": "901",
                "bot_name": "Jake Taylor",
                "personality": "aggressive",
                "status": "enabled",
                "budget_coins": "250000",
                "risk_limit": "75",
                "action_cooldown_minutes": "45",
                "next_action_at": "2026-06-26 15:31:28",
                "settings_json": "{\"battle_bias\": \"high\", \"market_bias\": \"bid\", \"human_name\": true, \"tier\": \"elite\"}",
                "created_at": "2026-06-26 15:31:28",
                "updated_at": "2026-07-02 10:40:40",
                "display_name": "Jake Taylor",
                "coins": "250000"
            },
            {
                "id": "3",
                "user_id": "903",
                "bot_name": "Mia Roberts",
                "personality": "collector",
                "status": "enabled",
                "budget_coins": "180000",
                "risk_limit": "35",
                "action_cooldown_minutes": "90",
                "next_action_at": "2026-06-26 15:31:28",
                "settings_json": "{\"market_bias\": \"buy\", \"watch_rarities\": [\"epic\", \"legendary\"], \"human_name\": true, \"tier\": \"regular\"}",
                "created_at": "2026-06-26 15:31:28",
                "updated_at": "2026-07-02 10:40:40",
                "display_name": "Mia Roberts",
                "coins": "180000"
            },
            {
                "id": "2",
                "user_id": "902",
                "bot_name": "Cooper Harris",
                "personality": "trader",
                "status": "enabled",
                "budget_coins": "300000",
                "risk_limit": "45",
                "action_cooldown_minutes": "30",
                "next_action_at": "2026-06-26 15:31:28",
                "settings_json": "{\"market_bias\": \"list\", \"max_bid\": 12000, \"human_name\": true, \"tier\": \"pro\"}",
                "created_at": "2026-06-26 15:31:28",
                "updated_at": "2026-07-02 10:40:40",
                "display_name": "Cooper Harris",
                "coins": "300000"
            }
        ],
        "recommended_limits": {
            "max_actions_per_cron": 10,
            "buy_now_max_price": 150000,
            "offer_discount_bps": 8500
        }
    },
    "notification_summary": {
        "unread": 0,
        "recent": []
    },
    "recent_admin_actions": [],
    "recent_refunds": [],
    "recent_snapshots": []
}