{
  "_comment": "Apollo prototype mock data. Models the live Apollo app at apollo.apisett.com — surface map in vault/08-Design-specs/apollo.md. Status values match the right-pane task list filter tabs. Chat threads use a mix of Developer (AI agent) and auditor messages. PRD extension (2026-05-03): tasks now carry priority (int, 0=top, null=excluded from prototype list), due_date, audit_type (version/revision), real Sett game_name (game_slug retained for back-compat), playable_commitment_id, and an optional ideas[] array for the active task. The active task's existing chat thread belongs to ideas[1] (Idea 2). lead_idea_id flags PG's recommended idea.",
  "tasks": [
    {
      "id": 4916,
      "version": 1,
      "status": "Waiting",
      "is_active": true,
      "task_type": "Version",
      "audit_type": "version",
      "priority": 0,
      "due_date": "2026-05-08",
      "game_name": "Solitaire Cash",
      "game_slug": "solitaire-cash",
      "playable_slug": "solitaire cash coin rain v3",
      "playable_commitment_id": 84021,
      "title": "Add bomb tiles that detonate when matched into solved foundations",
      "last_message_summary": "Give simpler shapes in early moves",
      "updated_at": "2026-05-02T22:46:08Z",
      "updated_at_label": "20m ago",
      "auditor": "Veljko Milanovic",
      "lead_idea_id": "i-3",
      "ideas": [
        {
          "idea_id": "i-1",
          "name": "Coin shower on chain clear",
          "hypothesis": "A loud coin payoff at every cascade pulls D2 retention up",
          "apollo_prompt": "When a chain of 3+ matches resolves, fire a coin shower particle burst with audio sting and a +x multiplier popper above the score.",
          "tried": true,
          "result": "fail"
        },
        {
          "idea_id": "i-2",
          "name": "Pre-filled bomb rows",
          "hypothesis": "Visible bombs create planning pressure and longer first-session times",
          "apollo_prompt": "Pre-script 4-6 rows that contain a bomb tile in one cell. Bomb tiles detonate orthogonally on row clear.",
          "tried": false,
          "result": null
        },
        {
          "idea_id": "i-3",
          "name": "Foundation blast bonus",
          "hypothesis": "A delayed blast on full foundations rewards completion and extends sessions",
          "apollo_prompt": "When a foundation is completed, queue a 1.5s blast that clears 3 random tiles on the tableau and grants +500 bonus.",
          "tried": false,
          "result": null
        }
      ],
      "active_idea_id": "i-2",
      "build": {
        "name": "Modified",
        "size_mb": 4.4,
        "is_live": true,
        "device": "iPhone SE - Portrait",
        "zoom": 100
      },
      "pinned_brief": "Transform the existing Solitaire Cash 'Coin Rain' build (sett_e817ae6a_pa / solitaire_cash_coin_rain_v3) into 'Shockwave Cascade' — a frosted-glass variant that embeds BOMB TILES in scripted pre-filled rows so that a single placement can trigger orthogonal column-clear shockwaves and cross-axis chain reactions.\n\nCORE GAMEPLAY CHANGES:\n1. Keep the existing tableau, drag-drop input, ghost piece, praise text, and score counter.\n2. Pre-script 4-6 pre-filled rows to contain a BOMB TILE in one of their cells. Bomb tiles are visually distinct: a pulsing icy-blue rune icon embedded in the tile face, faint radiating glow, visible from several rows away so the player can plan toward them.\n3. When a row containing a bomb is completed, two events fire in sequence with zero-frame delay (competitor research 2026-03-28): (a) the row clears as normal with the frosted-glass shatter, (b) an orthogonal SHOCKWAVE ripple travels outward through the bomb's column, clearing all tiles in that column.\n4. Score inflates dramatically on cascades: +20 base per clear, plus 2x/3x/4x multiplier text popping per chain link.",
      "chat": [
        {
          "id": "0201",
          "author": "Auditor",
          "author_type": "user",
          "timestamp": "2026-04-27T11:40:33Z",
          "is_pinned": true,
          "body_md": "**Original task brief** — see Pins for full text."
        },
        {
          "id": "0202",
          "author": "Developer",
          "author_type": "agent",
          "timestamp": "2026-05-02T21:34:25Z",
          "has_restore_point": true,
          "body_md": "✅ **FIXED**\n\nContext: Bomb wasn't exploding tiles horizontally — found and fixed the bug.\n\n**Cause:** The bomb was firing AFTER the row had already been cleared. Horizontal tiles in the bomb's row were already removed by the row-clear, so there was nothing left to break horizontally. Vertical explosion worked because it touched rows above/below the cleared one.\n\n**Fix:** Now the bomb fires BEFORE the row-clear — horizontal tiles are still in place and the explosion destroys them. Range is 3 tiles each direction from the bomb.\n\nCheck — bomb explosions should now destroy tiles both horizontally (3 each side) and vertically."
        },
        {
          "id": "0203",
          "author": "Veljko Milanovic",
          "author_type": "user",
          "timestamp": "2026-05-02T21:49:13Z",
          "body_md": "Beginning is way too hard, if you don't get lucky with shapes you lose.",
          "attachments": [
            { "type": "video", "name": "Modified-recording-2026-05-02T18-48-30-331Z.webm", "size": "5.0 MB" },
            { "type": "json", "name": "Modified-console-logs-2026-05-02T18-48-30-331Z.json", "size": "657 B" }
          ]
        },
        {
          "id": "0204",
          "author": "Developer",
          "author_type": "agent",
          "timestamp": "2026-05-02T21:53:26Z",
          "has_restore_point": true,
          "body_md": "✅ **FIXED**\n\nContext: Game was too hard at the start — gaps were 2-3 tiles wide and shapes didn't fit.\n\n**What was done:**\n- Gaps in the starting tableau widened from 4 to 5 cells (large board) and from 3 to 4 (small board)\n- Zigzag is gentler — shift of 1 cell between rows instead of 2 (more room for shapes)\n- Scroll rows also widened to 5 cells for more comfortable play\n\nNow there's more room at the start to place shapes — should be significantly easier."
        },
        {
          "id": "0205",
          "author": "Veljko Milanovic",
          "author_type": "user",
          "timestamp": "2026-05-02T22:14:56Z",
          "body_md": "Revert the zigzag back to how it was."
        },
        {
          "id": "0206",
          "author": "Developer",
          "author_type": "agent",
          "timestamp": "2026-05-02T22:16:50Z",
          "has_restore_point": true,
          "body_md": "✅ **FIXED**\n\nContext: Reverted zigzag to original — original gaps and patterns.\n\nZigzag fully restored:\n- Starting tableau: gaps of 4 cells (large) / 3 cells (small)\n- Scroll rows: original patterns\n\nIf the start is still too hard, I can try a different approach:\nA) Slow down the scroll for the first 10 seconds\nB) Give simpler shapes in the first few moves\nC) Add more bombs to the starting board\nD) Other"
        },
        {
          "id": "0207",
          "author": "Veljko Milanovic",
          "author_type": "user",
          "timestamp": "2026-05-02T22:44:16Z",
          "body_md": "B)"
        },
        {
          "id": "0208",
          "author": "Developer",
          "author_type": "agent",
          "timestamp": "2026-05-02T22:46:08Z",
          "is_latest": true,
          "body_md": "✅ **FIXED**\n\nContext: Beginning of the game — first 5 shapes are now simple.\n\n**What was done:** First 5 shapes are now scripted and simple:\n1. Horizontal line 3x1\n2. Square 2x2\n3. Horizontal line 3x1\n4. Vertical line 1x3\n5. Square 2x2\n\nThese shapes fit easily in the zigzag gaps. After the 5th shape, smart picking takes over.\n\nCheck — beginning should be significantly easier, shapes should fit easily into the gaps.\n\nTweakable: count and types of scripted shapes can be changed in `src/world/index.ts` → search: `SCRIPTED_SEQUENCE_IDS`"
        }
      ]
    },
    {
      "id": 5078,
      "version": 1,
      "status": "Waiting",
      "is_active": false,
      "task_type": "Version",
      "audit_type": "revision",
      "priority": 1,
      "due_date": "2026-05-08",
      "game_name": "Solitaire Cash",
      "game_slug": "solitaire-cash",
      "playable_slug": "solitaire cash streak builder",
      "playable_commitment_id": 84029,
      "title": "Tighten streak meter pacing — current build feels punishing past streak 4",
      "last_message_summary": "Drop decay rate, retest at streak 5",
      "updated_at": "2026-05-02T20:00:00Z",
      "updated_at_label": "3h ago",
      "auditor": "Veljko Milanovic",
      "ideas": []
    },
    {
      "id": 5101,
      "version": 1,
      "status": "Waiting",
      "is_active": false,
      "task_type": "Version",
      "audit_type": "version",
      "priority": 2,
      "due_date": "2026-05-09",
      "game_name": "Bubble Cash",
      "game_slug": "bubble-cash",
      "playable_slug": "bubble cash chain pop v2",
      "playable_commitment_id": 84102,
      "title": "Add multiplier ribbon that grows with consecutive 3-bubble chains",
      "last_message_summary": "Ribbon caps at x5, audio sting on each step",
      "updated_at": "2026-05-02T19:30:00Z",
      "updated_at_label": "4h ago",
      "auditor": "Anastasiia Buhaichuk",
      "ideas": []
    },
    {
      "id": 5102,
      "version": 1,
      "status": "Waiting",
      "is_active": false,
      "task_type": "Version",
      "audit_type": "version",
      "priority": 3,
      "due_date": "2026-05-09",
      "game_name": "Bubble Cash",
      "game_slug": "bubble-cash",
      "playable_slug": "bubble cash rainbow shooter",
      "playable_commitment_id": 84108,
      "title": "Replace static aim line with predictive ricochet preview",
      "last_message_summary": "Show 2 bounces ahead with fading dotted trail",
      "updated_at": "2026-05-02T17:10:00Z",
      "updated_at_label": "6h ago",
      "auditor": "Anastasiia Buhaichuk",
      "ideas": []
    },
    {
      "id": 5103,
      "version": 2,
      "status": "Waiting",
      "is_active": false,
      "task_type": "Version",
      "audit_type": "revision",
      "revision_round": 2,
      "priority": 4,
      "due_date": "2026-05-10",
      "game_name": "Bubble Cash",
      "game_slug": "bubble-cash",
      "playable_slug": "bubble cash boss bubbles",
      "playable_commitment_id": 84115,
      "title": "Boss bubble HP feels invisible — add segmented ring to telegraph progress",
      "last_message_summary": "Try 4-segment ring with color shift per hit",
      "updated_at": "2026-05-02T15:45:00Z",
      "updated_at_label": "8h ago",
      "auditor": "Anastasiia Buhaichuk",
      "ideas": []
    },
    {
      "id": 5104,
      "version": 1,
      "status": "Waiting",
      "is_active": false,
      "task_type": "New Concept",
      "audit_type": "version",
      "priority": 5,
      "due_date": "2026-05-12",
      "game_name": "Bubble Cash",
      "game_slug": "bubble-cash",
      "playable_slug": "bubble cash gravity flip",
      "playable_commitment_id": 84121,
      "title": "Concept: gravity flip every 10s — new directionality for shooter",
      "last_message_summary": "First pass — gravity inverts, board mirrors UI",
      "updated_at": "2026-05-02T13:00:00Z",
      "updated_at_label": "11h ago",
      "auditor": "Anastasiia Buhaichuk",
      "ideas": []
    },
    {
      "id": 5215,
      "version": 1,
      "status": "Waiting",
      "is_active": false,
      "task_type": "Version",
      "audit_type": "version",
      "priority": 6,
      "due_date": "2026-05-12",
      "game_name": "Pool Payday",
      "game_slug": "pool-payday",
      "playable_slug": "pool payday trick shot trainer",
      "playable_commitment_id": 84230,
      "title": "Add aim-assist arc with strength-meter ramp on long-press",
      "last_message_summary": "Arc fades after release, strength meter pulses",
      "updated_at": "2026-05-02T11:20:00Z",
      "updated_at_label": "12h ago",
      "auditor": "Mile Milanovic",
      "ideas": []
    },
    {
      "id": 4797,
      "version": 1,
      "status": "Pending TL",
      "is_active": false,
      "task_type": "Version",
      "audit_type": "version",
      "priority": null,
      "due_date": "2026-05-05",
      "game_name": "Bubble Cash",
      "game_slug": "bubble-cash",
      "playable_slug": "bubble cash classic",
      "playable_commitment_id": 84050,
      "title": "Replace tutorial popup with inline coach mark on first miss",
      "last_message_summary": "Submitted for TL approval — awaiting review",
      "updated_at": "2026-05-01T22:00:00Z",
      "updated_at_label": "1d ago",
      "auditor": "Anastasiia Buhaichuk",
      "ideas": []
    },
    {
      "id": 4612,
      "version": 2,
      "status": "Pending TL",
      "is_active": false,
      "task_type": "Version",
      "audit_type": "revision",
      "priority": null,
      "due_date": "2026-05-05",
      "game_name": "Solitaire Cash",
      "game_slug": "solitaire-cash",
      "playable_slug": "solitaire cash quickplay",
      "playable_commitment_id": 84062,
      "title": "Tighten card-deal animation timing for clearer round transitions",
      "last_message_summary": "Deal speed 0.18s, ease-out cubic",
      "updated_at": "2026-05-01T18:00:00Z",
      "updated_at_label": "1d ago",
      "auditor": "Veljko Milanovic",
      "ideas": []
    },
    {
      "id": 4488,
      "version": 1,
      "status": "Done",
      "is_active": false,
      "task_type": "New Concept",
      "audit_type": "version",
      "priority": null,
      "due_date": "2026-04-29",
      "game_name": "Solitaire Cash",
      "game_slug": "solitaire-cash",
      "playable_slug": "solitaire cash spiral combo",
      "playable_commitment_id": 83940,
      "title": "Spiral combo pattern with timed multiplier window",
      "last_message_summary": "Final build approved, ready for delivery",
      "updated_at": "2026-04-29T10:00:00Z",
      "updated_at_label": "3d ago",
      "auditor": "Veljko Milanovic",
      "ideas": []
    }
  ],
  "task_status_filters": [
    { "key": "all",         "label": "All",          "count": 2762, "icon": null },
    { "key": "live",        "label": "Live",         "count": 0,    "icon": "circle-dot" },
    { "key": "waiting",     "label": "Waiting",      "count": 675,  "icon": "clock" },
    { "key": "pending_tl",  "label": "Pending TL",   "count": 44,   "icon": "user-check" },
    { "key": "in_review",   "label": "In Review",    "count": 55,   "icon": "eye" },
    { "key": "done",        "label": "Done",         "count": 1587, "icon": "check" },
    { "key": "failed",      "label": "Failed",       "count": 4,    "icon": "x" },
    { "key": "archived",    "label": "Archived",     "count": 383,  "icon": "archive" },
    { "key": "all_history", "label": "All history",  "count": 2720, "icon": "history" }
  ],
  "weekly_goals": {
    "week_label": "Apr 27 – May 1",
    "daily_breakdown": [],
    "weekly_pipeline": {
      "total_label": "Total this week",
      "completed": 0,
      "target": 0,
      "stages": []
    }
  },
  "create_task_form": {
    "modes": ["Version", "New Concept"],
    "version_fields": ["Game", "Playable", "Version", "Advanced Settings", "Assets", "Attachments", "Task Description"],
    "new_concept_fields": ["Game", "Advanced Settings", "Assets", "Attachments", "Task Description"]
  }
}
