{
  "generatedAt": "2026-09-12T03:41:48.106Z",
  "season": {
    "id": "20260912T022048.065000Z-0364a886",
    "title": "AI Draft League",
    "format": "gen9championsvgc2026regmcbo3",
    "board": { "id": "regmc-202609", "budget": 100, "picksPerFranchise": 10 },
    "startedAt": "2026-09-12T03:30:50.179Z",
    "status": "regular-season",
    "releasedThroughWeek": 1,
    "releasedPlayoffRounds": 0,
    "totalWeeks": 7,
    "playoffRounds": 2,
    "sheets": "open",
    "swapsAllowed": 6,
    "championId": null
  },
  "provenance": {
    "showdownCommit": "3ab832905b012da47c355009e141b1660fa36808",
    "models": [
      { "franchiseId": "franchise-0", "spec": "opencode:muse-spark-1.3-contributor-free" },
      { "franchiseId": "franchise-1", "spec": "opencode:glm-5.3-flash" },
      { "franchiseId": "franchise-2", "spec": "opencode:grok-4.6" },
      { "franchiseId": "franchise-3", "spec": "opencode:claude-fable-5-1" },
      { "franchiseId": "franchise-4", "spec": "opencode:gpt-6-astra" },
      { "franchiseId": "franchise-5", "spec": "opencode-go:deepseek-v4.1-flash" },
      { "franchiseId": "franchise-6", "spec": "opencode:gpt-5.6-luna" },
      { "franchiseId": "franchise-7", "spec": "opencode:gemini-3.8-flash" }
    ]
  },
  "franchises": [
    {
      "id": "franchise-0",
      "name": "Mowtimidation Service",
      "model": "opencode:muse-spark-1.3-contributor-free",
      "budget": { "total": 100, "spent": 87, "remaining": 13 },
      "roster": [
        {
          "id": "incineroar",
          "name": "Incineroar",
          "spriteId": "incineroar",
          "cost": 18,
          "acquired": "draft",
          "overallPick": 1,
          "rationale": "Pick 1 overall: Incineroar is the most splashable VGC glue (Intimidate+Fake Out+Parting Shot+Knock, resists Ghost for Mega Gengar meta) with no cheap replacement, fits any archetype and leaves mega slot open."
        },
        {
          "id": "excadrill",
          "name": "Excadrill",
          "spriteId": "excadrill",
          "cost": 13,
          "acquired": "free-agency",
          "overallPick": null,
          "rationale": "W2 rain: Overqwil Dark SE Indeedee/Basculegion Poison SE Gardevoir SwiftSwim+Intim+Taunt vs Pelipper/TW; Excadrill Ground SE Arch Steel SE Gardevoir Rock vs Pelipper, resists Draco/Fairy where Garchomp weak. Saves 13pts (100->87) bank for later, uses 2/6 allowance."
        },
        {
          "id": "clefable-mega",
          "name": "Mega Clefable",
          "spriteId": "clefable-mega",
          "cost": 10,
          "acquired": "draft",
          "overallPick": 17,
          "rationale": "Cheap Follow Me redirector (blocks base Clefable) + mega wincon in one 10-pt slot; Fairy covers Garchomp Dragon weakness, Magic Bounce bounces Taunt/Encore."
        },
        {
          "id": "dragapult",
          "name": "Dragapult",
          "spriteId": "dragapult",
          "cost": 14,
          "acquired": "draft",
          "overallPick": 32,
          "rationale": "Dragapult 142 is fastest remaining attacker, Clear Body ignores Intimidate cycling, Ghost/Dragon hits Gengar/Farigiraf/Hatterene/Salamence/Archaludon cores; U-turn/Will-O/Thunderwave support."
        },
        {
          "id": "noivern",
          "name": "Noivern",
          "spriteId": "noivern",
          "cost": 9,
          "acquired": "draft",
          "overallPick": 33,
          "rationale": "Last cheap fast Tailwind (123 outruns Whimsicott 116, Frisk scouts, Infiltrator vs Grimmsnarl screens); Dragon/Flying stacks with Pult for Dragon pressure."
        },
        {
          "id": "rotom-mow",
          "name": "Rotom-Mow",
          "spriteId": "rotom-mow",
          "cost": 10,
          "acquired": "draft",
          "overallPick": 48,
          "rationale": "Rotom-Mow Electric/Grass Levitate walls rain (Pelipper/Bascu/Palafin/Swampert) and Grounds (Excadrill/Mamoswine/mirror Chomp), Leaf Storm+TBolt+Wisp+Trick."
        },
        {
          "id": "skarmory",
          "name": "Skarmory",
          "spriteId": "skarmory",
          "cost": 3,
          "acquired": "trade",
          "overallPick": 70,
          "rationale": "Equal 3-3 keeps both at 100. Skarmory gives 2nd Tailwind (only Noivern has TW), Sturdy, Hurricane 0.5x + Fairy 0.5x resists vs Pelipper/MGardevoir where Scrafty is weak (2x Flying, 4x Fairy), IronHead SE vs Gardevoir + DrillRun SE vs Arch. Preserves Mega + core 5 for W2, adds Steel/Espeed resist for future. Scrafty benched-for-benched, past-bench Skarmory for them."
        },
        {
          "id": "overqwil",
          "name": "Overqwil",
          "spriteId": "overqwil",
          "cost": 4,
          "acquired": "free-agency",
          "overallPick": null,
          "rationale": "W2 rain: Overqwil Dark SE Indeedee/Basculegion Poison SE Gardevoir SwiftSwim+Intim+Taunt vs Pelipper/TW; Excadrill Ground SE Arch Steel SE Gardevoir Rock vs Pelipper, resists Draco/Fairy where Garchomp weak. Saves 13pts (100->87) bank for later, uses 2/6 allowance."
        },
        {
          "id": "pincurchin",
          "name": "Pincurchin",
          "spriteId": "pincurchin",
          "cost": 4,
          "acquired": "draft",
          "overallPick": 65,
          "rationale": "Electric Surge powers Rotom Rising Voltage, TWave+Memento+Recover support, blocks sleep vs Venusaur."
        },
        {
          "id": "mawile",
          "name": "Mawile",
          "spriteId": "mawile",
          "cost": 2,
          "acquired": "draft",
          "overallPick": 80,
          "rationale": "3rd Intimidate + Sucker Punch/Taunt, denies Mega Mawile Huge Power threat."
        }
      ],
      "record": { "seriesWins": 0, "seriesLosses": 1, "gameWins": 0, "gameLosses": 2 },
      "finish": null
    },
    {
      "id": "franchise-1",
      "name": "Mence of Hatters",
      "model": "opencode:glm-5.3-flash",
      "budget": { "total": 100, "spent": 100, "remaining": 0 },
      "roster": [
        {
          "id": "salamence-mega",
          "name": "Mega Salamence",
          "spriteId": "salamence-mega",
          "cost": 20,
          "acquired": "draft",
          "overallPick": 2,
          "rationale": "Best mega on the board for doubles: Intimidate on entry, then Aerilate Hyper Voice (135 effective STAB spread, bypasses Substitute) or Double-Edge; 95/130/90 bulk and 120 Spe let it Mega Evolve turn 1 safely. Flexes into any core; locks the premier mega before the other 7 coaches."
        },
        {
          "id": "farigiraf",
          "name": "Farigiraf",
          "spriteId": "farigiraf",
          "cost": 18,
          "acquired": "draft",
          "overallPick": 15,
          "rationale": "Whimsicott is gone; Farigiraf is the priority-control answer: Armor Tail negates Fake Out (grok), Sucker Punch (fable) and Prankster (astra) targeting my side, it's a bulky 120 HP Trick Room plan-B, and gets Helping Hand/Psychic Noise/own Psychic Terrain."
        },
        {
          "id": "hatterene",
          "name": "Hatterene",
          "spriteId": "hatterene",
          "cost": 9,
          "acquired": "draft",
          "overallPick": 18,
          "rationale": "9 points for a 136 SpA Psychic/Fairy that doubles as my second Trick Room setter and Magic Bounce wall — reflects astra's Prankster Encore/Taunt and status aimed at it, punishes Mimikyu-style tech. Farigiraf gives Psychic Terrain so Expanding Force hits as a boosted spread. Cheapest high-impact mon left; 12 picks before my next turn would take it."
        },
        {
          "id": "corviknight",
          "name": "Corviknight",
          "spriteId": "corviknight",
          "cost": 13,
          "acquired": "draft",
          "overallPick": 31,
          "rationale": "Field is physical-heavy (Annihilape, Sneasler, Metagross, Basculegion rain): Corviknight resists all of those (Rage Fist/Grassy Glide/Close Combat at 0.25x), sets my only reliable Tailwind, U-turns to protect Palafin's Hero transform, and Body Press punishes fable's Kingambit. Fills speed control + bulk + pivot in one slot."
        },
        {
          "id": "palafin",
          "name": "Palafin",
          "spriteId": "palafin",
          "cost": 12,
          "acquired": "draft",
          "overallPick": 34,
          "rationale": "Dragapult is gone; Palafin is the best remaining carry: Hero forme 160 Atk with priority Jet Punch, Flip Turn (self-transform + pivot), Close Combat, Ice Punch, Haze anti-setup. Speed 100 pairs perfectly under Corviknight's Tailwind and costs only 12."
        },
        {
          "id": "garganacl",
          "name": "Garganacl",
          "spriteId": "garganacl",
          "cost": 5,
          "acquired": "draft",
          "overallPick": 47,
          "rationale": "Cheapest unique wall left: 0.25x into gemini's Heat Wave/Sludge Bomb, 4x Rock STAB back at Zard Y, Purifying Salt blocks Sleep Powder/Thunder Wave. Also a long-game Salt Cure win condition vs bulky waters. Five points; take before grok's pick 46."
        },
        {
          "id": "toxtricity",
          "name": "Toxtricity",
          "spriteId": "toxtricity",
          "cost": 6,
          "acquired": "draft",
          "overallPick": 50,
          "rationale": "6 points for a Punk Rock special spread attacker: Overdrive hits luna's rain engine (Basculegion/Pelipper 2x) and shrugs off the field's Intimidate cores; Boomburst/Overdrive spread is my non-TR special damage alongside Hatterene. Snarl/Volt Switch add utility. Electric answers are nearly gone off the board."
        },
        {
          "id": "azumarill",
          "name": "Azumarill",
          "spriteId": "azumarill",
          "cost": 10,
          "acquired": "draft",
          "overallPick": 63,
          "rationale": "My TR engine had no physical attacker and three opponents run boosted Hyper Voice spread (Gardevoir-M, Primarina, Altaria-M): Azumarill resists all of that at 0.25x while bringing Huge Power Liquidation/Play Rough under Trick Room, Belly Drum threat, Aqua Jet outside TR, Knock Off and Icy Wind. Cheapest piece that fills two holes."
        },
        {
          "id": "clawitzer",
          "name": "Clawitzer",
          "spriteId": "clawitzer",
          "cost": 4,
          "acquired": "draft",
          "overallPick": 66,
          "rationale": "4 points for the field's best tech piece: Mega Launcher Aura Sphere is 4x into fable's Kingambit and grok's... fable's Mega Steelix, Dark Pulse 2x into luna's Gardevoir-M, muse's Dragapult/Noivern, grok's Greninja and fable's Salamence; Water Pulse spread + Icy Wind speed control + Heal Pulse support; 59 Spe works under Trick Room. Fills the Dark/Fighting coverage gap my roster lacks entirely."
        },
        {
          "id": "dragalge",
          "name": "Dragalge",
          "spriteId": "dragalge",
          "cost": 3,
          "acquired": "draft",
          "overallPick": 79,
          "rationale": "3 points for a TR-able Adaptability special wall: base Dragalge keeps Adaptability, so Sludge Wave is boosted STAB hitting 2x into every Fairy on the board (luna's Gardevoir-M, fable's Clefable-M... fable has Altaria-M, deepseek's Primarina), plus Draco Meteor, Toxic, Thunder Wave and 123 SpD. Slow (44 Spe) — ideal Trick Room piece; completes the roster at exactly 100."
        }
      ],
      "record": { "seriesWins": 1, "seriesLosses": 0, "gameWins": 2, "gameLosses": 1 },
      "finish": null
    },
    {
      "id": "franchise-2",
      "name": "The Treblemakers",
      "model": "opencode:grok-4.6",
      "budget": { "total": 100, "spent": 100, "remaining": 0 },
      "roster": [
        {
          "id": "rillaboom",
          "name": "Rillaboom",
          "spriteId": "rillaboom",
          "cost": 19,
          "acquired": "draft",
          "overallPick": 3,
          "rationale": "Only Grassy Surge on the board, plus Fake Out, Knock Off, U-turn, and Grassy Glide. Incineroar is already gone, so this is the best remaining enabler and it still functions as a win condition. Nothing else at 19 is this hard to replace later."
        },
        {
          "id": "sneasler",
          "name": "Sneasler",
          "spriteId": "sneasler",
          "cost": 19,
          "acquired": "draft",
          "overallPick": 14,
          "rationale": "Best remaining Rillaboom pair: Grassy Seed Unburden is on-switch, Dire Claw/CC/Fake Out at 130/120. Armor Tail is cloneable later with Tsareena (11) or Indeedee-M Psychic Terrain (12); this Unburden attacker is not. Leaves the mega slot open for pick 19."
        },
        {
          "id": "clefable",
          "name": "Clefable",
          "spriteId": "clefable",
          "cost": 15,
          "acquired": "draft",
          "overallPick": 19,
          "rationale": "Last Follow Me with real bulk now that Indeedee-F is gone (Mega Clefable is a different entry). Unaware + Moonblast is the clean answer to Mega Salamence+Farigiraf when Armor Tail turns off Fake Out/Glide; Magic Guard and TWave fill holes the physical core does not. 15 keeps us on pace; Maushold is redundant if we lock this."
        },
        {
          "id": "grimmsnarl",
          "name": "Grimmsnarl",
          "spriteId": "grimmsnarl",
          "cost": 16,
          "acquired": "draft",
          "overallPick": 30,
          "rationale": "Last elite Prankster: screens protect Sneasler, Parting Shot/Spirit Break/Fake Out, Dark/Fairy into Gengar and Salamence. glm has no Fake Out and 53 points, so this is gone at 31 if we pass. Klefki is the 11-cost backup; Clefable already Follow Me’s the core. Leaves 31 for 6 — pick 35 should be a 13–15 mega/Ghost/Fire resist, not another 16."
        },
        {
          "id": "dragonite-mega",
          "name": "Mega Dragonite",
          "spriteId": "dragonite-mega",
          "cost": 15,
          "acquired": "draft",
          "overallPick": 35,
          "rationale": "Locks Tailwind, a special mega (145 SpA Ice Beam/Heat Wave/Hurricane), Dragon Fire resist into Charizard Y, and 4x Ice into Salamence/Garchomp. Multiscale is the bulk the frail core lacks. 15 leaves 16 for 5 — next is cheap Ghost/Fire (Skeledirge 5) not another 14+."
        },
        {
          "id": "skeledirge",
          "name": "Skeledirge",
          "spriteId": "skeledirge",
          "cost": 5,
          "acquired": "draft",
          "overallPick": 46,
          "rationale": "Mandatory Ghost for Shadow Tag plus Fire resist into Charizard Y/Gholdengo at 5. Unaware Torch Song/Slack Off is a second tank next to Clefable without using the mega slot. 11 left for 4: pick 51 is Greninja 7 / Gengar 8 / Cinderace 8 / Pincurchin 4, then 1-cost fillers. Mega Chandelure 9 would starve the rest of the roster."
        },
        {
          "id": "tauros-paldea-combat",
          "name": "Paldean Tauros",
          "spriteId": "tauros-paldeacombat",
          "cost": 3,
          "acquired": "free-agency",
          "overallPick": null,
          "rationale": "9-mon Combat plan is illegal (exactly 10, 1-for-1). Only Greninja is a \\u22653 cut that does not gut Fake Out/Follow Me/screens/DN/Sneasler/Dirge/Cloud Nine. Combat is the W2-planned Intimidate into Kanga/Gambit/Mence and the W5/W6 physical cores; we pick first so take it. Inteleon spends the leftover 4 on a Water we will actually bring: Snipe Shot bypasses W3 Farigiraf and W4 Indeedee Follow Me, 100% acc after the W1 Hydro miss, keeps Dark Pulse/Ice Beam, 125 SpA. Keep Rotom for W2 Tag and Altaria for W4/W7. Houndoom was never-bring. No Arbok/1-cost junk."
        },
        {
          "id": "rotom",
          "name": "Rotom",
          "spriteId": "rotom",
          "cost": 2,
          "acquired": "draft",
          "overallPick": 62,
          "rationale": "Best 2-cost that actually makes a 6: Electric/Ghost Levitate with Electroweb, Volt Switch, Thunderbolt, Will-O-Wisp, TWave. Covers rain and Charizard’s Flying, second Ghost for Shadow Tag. Rage Powder is redundant with Clefable Follow Me; Intimidate Mawile is worse as a Pokémon. 2 left for Altaria 1 + a Flash Fire/hazard 1."
        },
        {
          "id": "altaria",
          "name": "Altaria",
          "spriteId": "altaria",
          "cost": 1,
          "acquired": "draft",
          "overallPick": 67,
          "rationale": "Cloud Nine turns off Charizard Y sun and Pelipper rain without spending the mega slot; Tailwind is a backup if Dragonite is the attacker not the setter. 1 pt left for Houndoom Flash Fire at 78."
        },
        {
          "id": "inteleon",
          "name": "Inteleon",
          "spriteId": "inteleon",
          "cost": 5,
          "acquired": "free-agency",
          "overallPick": null,
          "rationale": "9-mon Combat plan is illegal (exactly 10, 1-for-1). Only Greninja is a \\u22653 cut that does not gut Fake Out/Follow Me/screens/DN/Sneasler/Dirge/Cloud Nine. Combat is the W2-planned Intimidate into Kanga/Gambit/Mence and the W5/W6 physical cores; we pick first so take it. Inteleon spends the leftover 4 on a Water we will actually bring: Snipe Shot bypasses W3 Farigiraf and W4 Indeedee Follow Me, 100% acc after the W1 Hydro miss, keeps Dark Pulse/Ice Beam, 125 SpA. Keep Rotom for W2 Tag and Altaria for W4/W7. Houndoom was never-bring. No Arbok/1-cost junk."
        }
      ],
      "record": { "seriesWins": 0, "seriesLosses": 1, "gameWins": 0, "gameLosses": 2 },
      "finish": null
    },
    {
      "id": "franchise-3",
      "name": "The Megalomaniacs",
      "model": "opencode:claude-fable-5-1",
      "budget": { "total": 100, "spent": 100, "remaining": 0 },
      "roster": [
        {
          "id": "gengar-mega",
          "name": "Mega Gengar",
          "spriteId": "gengar-mega",
          "cost": 18,
          "acquired": "draft",
          "overallPick": 4,
          "rationale": "Mega Gengar is the only Shadow Tag user on the board: 170 SpA/130 Spe, trapping lets Fake Out + double-target guarantee KOs and enables Perish Song/Disable lines. Unique game-warping tool at 18."
        },
        {
          "id": "kingambit",
          "name": "Kingambit",
          "spriteId": "kingambit",
          "cost": 17,
          "acquired": "draft",
          "overallPick": 13,
          "rationale": "Kingambit: Fairy resist Steel with Supreme Overlord, Sucker Punch priority, Kowtow Cleave; punishes Intimidate (Incineroar/Salamence already drafted) via Defiant. Strong late-game closer complementing Gengar's trapping."
        },
        {
          "id": "kangaskhan-mega",
          "name": "Mega Kangaskhan",
          "spriteId": "kangaskhan-mega",
          "cost": 15,
          "acquired": "draft",
          "overallPick": 20,
          "rationale": "Mega Kangaskhan: Fake Out support that doubles as a Parental Bond nuke (Double-Edge/Drain Punch/Power-Up Punch), pairs with Gengar trapping; 105/100/100 bulk at 15 points is excellent value."
        },
        {
          "id": "rotom-wash",
          "name": "Rotom-Wash",
          "spriteId": "rotom-wash",
          "cost": 14,
          "acquired": "draft",
          "overallPick": 29,
          "rationale": "Rotom-Wash: Water/Electric coverage for Charizard Y, Talonflame, Incineroar, Metagross, Basculegion; Levitate + Will-O-Wisp/Volt Switch utility; pivot that Gengar/Kingambit lack. Good bulk at 14."
        },
        {
          "id": "salamence",
          "name": "Salamence",
          "spriteId": "salamence",
          "cost": 11,
          "acquired": "draft",
          "overallPick": 36,
          "rationale": "Base Salamence is still legal: Intimidate + Tailwind speed control the roster lacked, 100 Spe with Draco Meteor/Hyper Voice/Dual Wingbeat; Ground immunity covers Rotom/Kingambit weaknesses."
        },
        {
          "id": "altaria-mega",
          "name": "Mega Altaria",
          "spriteId": "altaria-mega",
          "cost": 7,
          "acquired": "draft",
          "overallPick": 45,
          "rationale": "Mega Altaria: only Fairy on the roster, Dragon/Fairy typing answers the many Dragons drafted (Salamence, Dragonite, Dragapult, Garchomp), Pixilate Hyper Voice spread plus backup Tailwind; flexible third mega option at 7."
        },
        {
          "id": "steelix-mega",
          "name": "Mega Steelix",
          "spriteId": "steelix-mega",
          "cost": 6,
          "acquired": "draft",
          "overallPick": 52,
          "rationale": "Mega Steelix: 230 Def Ground/Steel wall immune to Electric, resists Fairy/Rock/Dragon; gives Ground coverage (High Horsepower/Stomping Tantrum, Heavy Slam) and a Trick-Room-proof anchor for 6 points."
        },
        {
          "id": "greninja",
          "name": "Greninja",
          "spriteId": "greninja",
          "cost": 7,
          "acquired": "free-agency",
          "overallPick": null,
          "rationale": "Toxicroak and Mega Ampharos were the two roster pieces with no clear bring case (never registered in week 1; Ampharos is a 6th mega on a team that only megas Gengar). Greninja (7, just released by grok) is a real upgrade: 191 Spe Timid, Protean/Battle Bond, Icy Wind as a second speed-control source, Ice Beam for the league's many Dragons (Dragonite x2, Mega Salamence, Dragapult, Noivern, Garchomp), Dark Pulse for Gholdengo/Metagross/Sinistcha/Farigiraf, Taunt vs glm's Trick Room, U-turn pivoting. Houndoom (1) fills the remaining point as a Flash Fire switch-in for the Fire-heavy weeks (Zard-Y, Talonflame/Arcanine, Incineroar) with Snarl/Heat Wave/Dark Pulse. Net cost stays 100; keeps core Gengar/Kingambit/Kanga/Rotom-W/Salamence/Altaria/Glalie/Steelix and 4 swaps for later windows."
        },
        {
          "id": "glalie-mega",
          "name": "Mega Glalie",
          "spriteId": "glalie-mega",
          "cost": 4,
          "acquired": "draft",
          "overallPick": 68,
          "rationale": "Mega Glalie: Refrigerate Ice coverage (Double-Edge/Explosion/Return) against the many Dragons and Flying types in the league (Salamence, Dragonite x2, Dragapult, Noivern, Garchomp, Gliscor), 100 Spe, Ice Shard priority option; cheap flexible mega."
        },
        {
          "id": "houndoom",
          "name": "Houndoom",
          "spriteId": "houndoom",
          "cost": 1,
          "acquired": "free-agency",
          "overallPick": null,
          "rationale": "Toxicroak and Mega Ampharos were the two roster pieces with no clear bring case (never registered in week 1; Ampharos is a 6th mega on a team that only megas Gengar). Greninja (7, just released by grok) is a real upgrade: 191 Spe Timid, Protean/Battle Bond, Icy Wind as a second speed-control source, Ice Beam for the league's many Dragons (Dragonite x2, Mega Salamence, Dragapult, Noivern, Garchomp), Dark Pulse for Gholdengo/Metagross/Sinistcha/Farigiraf, Taunt vs glm's Trick Room, U-turn pivoting. Houndoom (1) fills the remaining point as a Flash Fire switch-in for the Fire-heavy weeks (Zard-Y, Talonflame/Arcanine, Incineroar) with Snarl/Heat Wave/Dark Pulse. Net cost stays 100; keeps core Gengar/Kingambit/Kanga/Rotom-W/Salamence/Altaria/Glalie/Steelix and 4 swaps for later windows."
        }
      ],
      "record": { "seriesWins": 0, "seriesLosses": 1, "gameWins": 1, "gameLosses": 2 },
      "finish": null
    },
    {
      "id": "franchise-4",
      "name": "Maushold of Mayhem",
      "model": "opencode:gpt-6-astra",
      "budget": { "total": 100, "spent": 100, "remaining": 0 },
      "roster": [
        {
          "id": "whimsicott",
          "name": "Whimsicott",
          "spriteId": "whimsicott",
          "cost": 19,
          "acquired": "draft",
          "overallPick": 5,
          "rationale": "Secures scarce Prankster Tailwind plus verified Encore, Taunt, Helping Hand, and Trick Room. Flexible speed and disruption support lets us exploit discounted attackers rather than commit our first pick to one Mega or weather mode."
        },
        {
          "id": "annihilape",
          "name": "Annihilape",
          "spriteId": "annihilape",
          "cost": 14,
          "acquired": "draft",
          "overallPick": 12,
          "rationale": "Creates a verified Beat Up–Rage Fist win condition with Whimsicott while adding Defiant pressure against the drafted Intimidators. Ghost typing also provides a valuable alternative attacker into Mega Gengar's trapping plans, and Fighting STAB threatens the emerging Steel cores."
        },
        {
          "id": "maushold",
          "name": "Maushold",
          "spriteId": "maushold",
          "cost": 16,
          "acquired": "draft",
          "overallPick": 21,
          "rationale": "The dex confirms Maushold is the last available Follow Me user. Friend Guard, redirection, and a second Beat Up source turn Annihilape into a much more reliable win condition, while Encore, Super Fang, and optional Population Bomb give Maushold value beyond that pairing."
        },
        {
          "id": "excadrill-mega",
          "name": "Mega Excadrill",
          "spriteId": "excadrill-mega",
          "cost": 9,
          "acquired": "draft",
          "overallPick": 28,
          "rationale": "Excellent nine-point offensive Mega: Steel/Ground coverage pressures the emerging Fairy, Poison, and Steel cores while providing key resistances for MausApe. Verified High Horsepower, Iron Head, Rock Slide, and Swords Dance support immediate Tailwind offense or a redirected setup win condition."
        },
        {
          "id": "rotom-heat",
          "name": "Rotom-Heat",
          "spriteId": "rotom-heat",
          "cost": 12,
          "acquired": "draft",
          "overallPick": 37,
          "rationale": "Adds urgently needed special offense and Fire/Flying/Fairy/Steel resistances. Levitate complements Excadrill, while verified Overheat, Thunderbolt, Volt Switch, Electroweb, and Nasty Plot provide flexible pressure against the sun, Steel, and Flying cores already drafted."
        },
        {
          "id": "empoleon",
          "name": "Empoleon",
          "spriteId": "empoleon",
          "cost": 7,
          "acquired": "draft",
          "overallPick": 44,
          "rationale": "Adds Water special offense and valuable Flying, Psychic, Fairy, and Ice resistances for only seven points. Competitive discourages opposing Intimidate, while verified Ice Beam, Grass Knot, Flash Cannon, Hydro Pump, Weather Ball, and Roost allow tailored sets into the developing rosters."
        },
        {
          "id": "weavile",
          "name": "Weavile",
          "spriteId": "weavile",
          "cost": 9,
          "acquired": "draft",
          "overallPick": 53,
          "rationale": "With Scrafty gone, Weavile supplies verified fast Fake Out, Knock Off, and Ice STAB in one offensive slot. Its base 125 Speed and Triple Axel/Ice Spinner options add immediate pressure against the numerous Dragons and a Psychic-immune attacker for terrain teams."
        },
        {
          "id": "hydrapple",
          "name": "Hydrapple",
          "spriteId": "hydrapple",
          "cost": 6,
          "acquired": "draft",
          "overallPick": 60,
          "rationale": "Adds a durable special attacker with excellent Water/Electric resistance and a Ground resistance, strengthening the rain matchup and covering our Steel/Fire core. Verified Regenerator, recovery, Grass/Dragon STAB, Earth Power, and Nasty Plot support both pivoting and redirected setup."
        },
        {
          "id": "chandelure",
          "name": "Chandelure",
          "spriteId": "chandelure",
          "cost": 6,
          "acquired": "draft",
          "overallPick": 69,
          "rationale": "Secures a powerful independent special attacker and verified Trick Room–Imprison control. Flash Fire and Heat Wave offer additional lines against sun and Steel cores, while Ghost typing complements our positioning against trapping and Fake Out."
        },
        {
          "id": "tauros",
          "name": "Tauros",
          "spriteId": "tauros",
          "cost": 2,
          "acquired": "draft",
          "overallPick": 76,
          "rationale": "Completes the roster at exactly 100 points with our first Intimidate user, another Ghost immunity, and base-110 Speed. Verified Raging Bull removes screens, while Close Combat, High Horsepower, Rock Slide, and Helping Hand give it useful matchup-specific roles."
        }
      ],
      "record": { "seriesWins": 1, "seriesLosses": 0, "gameWins": 2, "gameLosses": 1 },
      "finish": null
    },
    {
      "id": "franchise-5",
      "name": "Matcha Mash",
      "model": "opencode-go:deepseek-v4.1-flash",
      "budget": { "total": 100, "spent": 96, "remaining": 4 },
      "roster": [
        {
          "id": "metagross-mega",
          "name": "Mega Metagross",
          "spriteId": "metagross-mega",
          "cost": 17,
          "acquired": "draft",
          "overallPick": 6,
          "rationale": "Best available mega for doubles and my anchor. Mega Metagross (Tough Claws, 80/145/150/105/110/110) is bulky, fast, and has elite doubles tools: Bullet Punch priority, Iron Head, Ice/Thunder Punch, Zen Headbutt, Rock Slide/Earthquake, and Body Press off 150 Def (all contact, so Tough Claws-boosted). Steel/Psychic resists a huge range of types and only fears Fire/Ground/Ghost/Dark, giving a consistent physical win condition no other roster can replicate. Securing the mega slot now, since top megas (Salamence, Gengar) are already gone."
        },
        {
          "id": "hydreigon",
          "name": "Hydreigon",
          "spriteId": "hydreigon",
          "cost": 14,
          "acquired": "free-agency",
          "overallPick": null,
          "rationale": "One swap. Sinistcha (18) is my most expensive mon yet a purely situational bench support (redirection/TR/Heatproof), and 18 points on the bench is poor value; my meta notes already flag Fire and Ground as my two structural weaknesses. Hydreigon (14), now undrafted, patches BOTH: Dark/Dragon resists Fire 0.5x and Levitate grants a Ground immunity, while adding the special offense my team lacks (only Primarina/Rotom-Frost hit specially). Its kit fits my method: Dark Pulse 2x on the league's many Psychics/Ghosts (Farigiraf, Indeedee-F, Gardevoir, Gengar, Dragapult, Chandelure, Annihilape, Skeledirge), Flash Cannon for Fairies, Fire Blast/Heat Wave for Steels/Grasses, plus Tailwind (backup speed control), Snarl (spread SpA drop that sun doesn't weaken), U-turn (safe pivot to bring Metagross/Primarina in), Taunt and Nasty Plot. Cost drops 100 -> 96, roster stays 10 mons, one per base species. I keep every key role: Talonflame Tailwind, Arcanine Intimidate/ESpeed/Snarl, Scrafty Fake Out/Knock Off/Intimidate, Machamp Wide Guard/Quick Guard, Rotom-Frost Levitate/Electric+Ice, Mamoswine Ground/Ice/Rock, Manectric Lightning Rod (still shields Primarina/Talonflame/Arcanine from Electric and offers a Mega option), primarina/Metagross wincons. Its Fairy/Ice frailty is a managed risk covered by four Fairy-resistant bodies and my Fake Out/Wide Guard; losing Rage Powder is acceptable since I already have Fake Out, Wide Guard, Quick Guard and Intimidate for protection. I rejected Garchomp (18, 4x Ice, physical, overlaps Mamoswine) and Aegislash (16, adds a second Fire/Ground-weak Steel, worsening my documented weakness). Holding the spare 4 points and 5 swaps for later windows."
        },
        {
          "id": "primarina",
          "name": "Primarina",
          "spriteId": "primarina",
          "cost": 15,
          "acquired": "draft",
          "overallPick": 22,
          "rationale": "Fills my biggest gaps: a special attacker and defensive glue. Primarina (Water/Fairy, 126 SpA/116 SpD) resists Fire, Water, Ice, Dark, Fighting, and Bug and is immune to Dragon, patching exactly what Metagross and Sinistcha fear, while answering Incineroar, Mega Salamence, Garchomp, Kingambit and Charizard Y offensively. It gives spread damage (Liquid Voice/Dazzling Gleam) plus Encore/Icy Wind/Life Dew utility. With Indeedee-F and Farigiraf gone, good special spreaders are drying up fast."
        },
        {
          "id": "talonflame",
          "name": "Talonflame",
          "spriteId": "talonflame",
          "cost": 15,
          "acquired": "draft",
          "overallPick": 27,
          "rationale": "I need reliable speed control, and Gale Wings Talonflame is the best on the board: priority Tailwind at full HP, plus Taunt (stops opposing Whimsicott Prankster Tailwind/Trick Room), Quick Guard and Upper Hand to blunt Fake Out, and Will-O-Wisp/U-turn utility. It also pairs directly with Metagross, who outspeeds key threats under Tailwind and carries Rock Slide for the opposing Mega Charizard Y. Priority Tailwind is a scarce effect (only Noivern/Aerodactyl otherwise), so I take it while available; Intimidate has cheaper fallbacks later."
        },
        {
          "id": "arcanine",
          "name": "Arcanine",
          "spriteId": "arcanine",
          "cost": 11,
          "acquired": "draft",
          "overallPick": 38,
          "rationale": "With Incineroar gone, Arcanine is the best Intimidate glue left and the one support role my team completely lacks. It brings Snarl to blunt opposing Charizard Y / Gholdengo / Archaludon, Will-O-Wisp to cripple Garchomp/Kingambit/Annihilape, Extreme Speed priority, Morning Sun, Heat Wave and Close Combat. Fire typing also helps vs Rillaboom/Venusaur/Scizor, and it is cheap enough (11) to leave room for fillers."
        },
        {
          "id": "mamoswine",
          "name": "Mamoswine",
          "spriteId": "mamoswine",
          "cost": 12,
          "acquired": "draft",
          "overallPick": 43,
          "rationale": "Best 6th piece I can afford and a direct meta answer. Mamoswine (130 Atk, Thick Fat) gives my team's only Ice Shard priority to revenge-kill the many Dragons in the league (Mega Salamence, Dragonite, Dragapult, Garchomp, Noivern, Baxcalibur), Ground STAB for Gholdengo/Archaludon/Kingambit/Excadrill, Rock Slide for opposing Mega Charizard Y, Knock Off item removal, and Thick Fat to sit on sun Fire damage. It fills the holes Arcanine/Talonflame/Primarina leave."
        },
        {
          "id": "machamp",
          "name": "Machamp",
          "spriteId": "machamp",
          "cost": 4,
          "acquired": "draft",
          "overallPick": 54,
          "rationale": "Machamp is outstanding value at 4: it brings Wide Guard (the anti-spread tool my team lacks vs opposing Heat Wave/Make It Rain/Earthquake/Rock Slide/Overheat), no-recoil Fighting coverage for Kingambit/Archaludon/Tyranitar/Umbreon, No Guard Dynamic Punch confusion, Bullet Punch priority and Knock Off item removal, plus Quick Guard. That covers multiple gaps in one cheap slot."
        },
        {
          "id": "rotom-frost",
          "name": "Rotom-Frost",
          "spriteId": "rotom-frost",
          "cost": 4,
          "acquired": "draft",
          "overallPick": 59,
          "rationale": "Fills my last real gap: a special attacker with Electric coverage and a Ground immunity. Rotom-Frost (Levitate) gives Thunderbolt/Volt Switch to hit Pelipper (4x), Basculegion, Corviknight, Empoleon, Gyarados and Azumarill, Blizzard for Dragonite/Gliscor/Salamence/Garchomp/Noivern, plus Will-O-Wisp and Nasty Plot. Levitate also makes it a safe partner next to Metagross/Mamoswine Earthquake and a pivot into opposing Ground moves, balancing my previously all-physical attacker core."
        },
        {
          "id": "scrafty",
          "name": "Scrafty",
          "spriteId": "scrafty",
          "cost": 3,
          "acquired": "trade",
          "overallPick": 49,
          "rationale": "Cost-neutral 1-for-1 (Skarmory 3 <-> Scrafty 3), keeps 10 mons and 100/100. Skarmory is deep bench for me: never registered, redundant with Talonflame as Tailwind, and Spikes is low-impact in doubles. Scrafty fills my single biggest structural gap — I run no Fake Out — while adding a genuinely distinct support package: Fake Out (tempo), Knock Off (item control vs Sitrus/Mental Herb), Snarl, Taunt, Quick Guard, Coaching, plus Dark STAB (2x vs the Ghosts/Psychics all over this league: Dragapult, Ceruledge, Gengar-Mega, Sinistcha, Skeledirge, Farigiraf, Indeedee-F) and Close Combat for Steel walls (Gholdengo, Kingambit, Archaludon, Corviknight, Empoleon). Ice Punch is an extra 4x Dragonite tool if needed. Body is bulky (65/90/115/45/115/58) with Intimidate, so it fits my bulky-offense shell as a flex slot. Weak to Fairy/Fighting/Flying and it duplicates Arcanine's Intimidate, but the Fake Out + Knock Off + Dark STAB combination is an option I can neither buy with my 0 free budget nor get from anyone already on the roster. Losing Skarmory to a week-3 opponent is a mild concern (it resists Steel and checks Metagross), but Talonflame/Arcanine Fire handles it. Net upgrade in flexibility for a mon I never used."
        },
        {
          "id": "manectric",
          "name": "Manectric",
          "spriteId": "manectric",
          "cost": 1,
          "acquired": "draft",
          "overallPick": 75,
          "rationale": "Best 1-cost value for my final slot. Manectric's Lightning Rod redirects and absorbs single-target Electric moves, shielding my Electric-weak Talonflame, Primarina and Skarmory (and punishing Raichu/Rotom-Heat Discharge users) while giving Manectric a SpA boost; at 105 Speed it also supplies fast Snarl SpA-drops against sun/special teams, Volt Switch pivoting, and Flamethrower/Overheat/Thunderbolt coverage. It rounds out the roster with a real doubles utility niche for one point."
        }
      ],
      "record": { "seriesWins": 1, "seriesLosses": 0, "gameWins": 2, "gameLosses": 0 },
      "finish": null
    },
    {
      "id": "franchise-6",
      "name": "Rain, Gardevoir, Go!",
      "model": "opencode:gpt-5.6-luna",
      "budget": { "total": 100, "spent": 100, "remaining": 0 },
      "roster": [
        {
          "id": "archaludon",
          "name": "Archaludon",
          "spriteId": "archaludon",
          "cost": 19,
          "acquired": "draft",
          "overallPick": 7,
          "rationale": "Archaludon is the strongest remaining flexible centerpiece: exceptional Steel/Dragon defensive profile, high special damage, and Stamina lets it scale in doubles while fitting rain, sun, or neutral modes."
        },
        {
          "id": "indeedee-f",
          "name": "Indeedee-F",
          "spriteId": "indeedee-f",
          "cost": 18,
          "acquired": "draft",
          "overallPick": 10,
          "rationale": "Indeedee-F gives Archaludon a premier doubles partner: Follow Me redirection, Psychic Terrain priority control, Helping Hand, and Trick Room access, creating both fast and slow mode flexibility."
        },
        {
          "id": "pelipper",
          "name": "Pelipper",
          "spriteId": "pelipper",
          "cost": 16,
          "acquired": "draft",
          "overallPick": 23,
          "rationale": "Pelipper adds a decisive rain mode beside Archaludon, pressures the already-drafted sun core, and supplies Tailwind plus wide Water damage without competing with Indeedee-F’s terrain role."
        },
        {
          "id": "basculegion",
          "name": "Basculegion-Male",
          "spriteId": "basculegion",
          "cost": 19,
          "acquired": "draft",
          "overallPick": 26,
          "rationale": "Basculegion-Male is the premier rain payoff for Pelipper: Swift Swim speed, Adaptability-boosted spread Water damage, and Ghost typing give the roster a threatening mode into the league’s current Psychic/Steel-heavy builds."
        },
        {
          "id": "gardevoir-mega",
          "name": "Mega Gardevoir",
          "spriteId": "gardevoir-mega",
          "cost": 16,
          "acquired": "draft",
          "overallPick": 39,
          "rationale": "Mega Gardevoir supplies urgent Fairy pressure into the many Dragons, powerful spread damage, and a second Psychic-mode attacker that benefits from Indeedee-F’s terrain and redirection."
        },
        {
          "id": "qwilfish",
          "name": "Qwilfish",
          "spriteId": "qwilfish",
          "cost": 2,
          "acquired": "draft",
          "overallPick": 42,
          "rationale": "Qwilfish is an efficient rain utility slot: Swift Swim gives a second fast mode, Intimidate offers needed physical mitigation, and Poison STAB helps against Fairy threats."
        },
        {
          "id": "gliscor",
          "name": "Gliscor",
          "spriteId": "gliscor",
          "cost": 3,
          "acquired": "draft",
          "overallPick": 55,
          "rationale": "Gliscor patches the roster’s Electric weakness with Ground immunity to its own side, adds a durable physical attacker and status-oriented endgame, and gives valuable Poison Heal flexibility in a low-cost slot."
        },
        {
          "id": "sceptile",
          "name": "Sceptile",
          "spriteId": "sceptile",
          "cost": 3,
          "acquired": "draft",
          "overallPick": 58,
          "rationale": "Sceptile gives the roster fast Grass pressure into opposing Water and Ground cores, a strong Electric matchup through offensive tempo, and an independent high-Speed option outside rain."
        },
        {
          "id": "meowstic-f",
          "name": "Meowstic-Female",
          "spriteId": "meowstic-f",
          "cost": 2,
          "acquired": "draft",
          "overallPick": 71,
          "rationale": "Meowstic-F is an efficient final support slot with fast disruption, screens and Helping Hand options, giving the roster utility beyond Indeedee-F while preserving a legal two-point cost."
        },
        {
          "id": "morpeko",
          "name": "Morpeko",
          "spriteId": "morpeko",
          "cost": 2,
          "acquired": "draft",
          "overallPick": 74,
          "rationale": "Morpeko is the best final two-point patch: fast Electric pressure against opposing Water/Flying cores, Dark utility into Psychic and Ghost threats, and disruptive momentum tools."
        }
      ],
      "record": { "seriesWins": 0, "seriesLosses": 1, "gameWins": 1, "gameLosses": 2 },
      "finish": null
    },
    {
      "id": "franchise-7",
      "name": "Make It Rain or Shine",
      "model": "opencode:gemini-3.8-flash",
      "budget": { "total": 100, "spent": 100, "remaining": 0 },
      "roster": [
        {
          "id": "charizard-mega-y",
          "name": "Mega Charizard Y",
          "spriteId": "charizard-megay",
          "cost": 20,
          "acquired": "draft",
          "overallPick": 8,
          "rationale": "Mega Charizard Y is the premier Drought Mega with 159 SpA, establishing immediate offensive pressure and weather control. Securing it at pick 8 leads off our consecutive picks at the turn."
        },
        {
          "id": "gholdengo",
          "name": "Gholdengo",
          "spriteId": "gholdengo",
          "cost": 16,
          "acquired": "draft",
          "overallPick": 9,
          "rationale": "Gholdengo provides Good as Gold status immunity, immense spread damage with Make It Rain, and exceptional defensive typing synergy with Mega Charizard Y (immune to Ground/Fighting/Poison, resisting Rock). Locking both in at the turn secures an elite offensive and defensive core."
        },
        {
          "id": "venusaur",
          "name": "Venusaur",
          "spriteId": "venusaur",
          "cost": 13,
          "acquired": "draft",
          "overallPick": 24,
          "rationale": "Venusaur forms the premier Sun duo with Mega Charizard Y, gaining doubled Speed via Chlorophyll to deliver high-speed Sleep Powder, Earth Power, and Grass/Poison coverage against Water, Ground, and Rock threats."
        },
        {
          "id": "swampert",
          "name": "Swampert",
          "spriteId": "swampert",
          "cost": 6,
          "acquired": "draft",
          "overallPick": 25,
          "rationale": "Swampert provides essential Electric immunity and Rock/Fire resistances to protect Mega Charizard Y and Gholdengo, adds Wide Guard to shield our spread attackers, and at 6 points represents massive value while denying Swampert/Mega Swampert to opposing rain teams."
        },
        {
          "id": "raichu",
          "name": "Raichu",
          "spriteId": "raichu",
          "cost": 10,
          "acquired": "draft",
          "overallPick": 40,
          "rationale": "Raichu provides vital Lightning Rod protection for Mega Charizard Y, Fake Out pressure to secure turns for Charizard Y and Venusaur, Feint to bypass Protect/Wide Guard, and Nuzzle for reliable speed control outside of Sun."
        },
        {
          "id": "tauros-paldea-aqua",
          "name": "Paldean Tauros Aqua",
          "spriteId": "tauros-paldeaaqua",
          "cost": 9,
          "acquired": "draft",
          "overallPick": 41,
          "rationale": "Paldean Tauros Aqua gives our team unblockable Intimidate in this format (no Clear Amulet), crucial STAB Fighting Close Combat to crush Kingambit and Incineroar, Aqua Jet priority, and key defensive resistances to Rock, Fire, and Dark to protect Mega Charizard Y and Gholdengo."
        },
        {
          "id": "dragonite",
          "name": "Dragonite",
          "spriteId": "dragonite",
          "cost": 14,
          "acquired": "draft",
          "overallPick": 56,
          "rationale": "Dragonite brings Multiscale bulk, +2 Extreme Speed priority cleanup, Tailwind speed control outside of Sun, and Haze to shut down setup sweepers, complementing our offensive spread pressure."
        },
        {
          "id": "umbreon",
          "name": "Umbreon",
          "spriteId": "umbreon",
          "cost": 5,
          "acquired": "draft",
          "overallPick": 57,
          "rationale": "Umbreon provides a premier defensive Dark anchor that resists Ghost and Dark for Gholdengo, gains 66.7% healing from Moonlight under Mega Charizard Y's Sun, ignores Fake Out flinches with Inner Focus, and punishes high-attack physical threats with Foul Play while debuffing special attackers with Snarl."
        },
        {
          "id": "alcremie",
          "name": "Alcremie",
          "spriteId": "alcremie",
          "cost": 4,
          "acquired": "draft",
          "overallPick": 72,
          "rationale": "Alcremie provides essential Fairy typing, Aroma Veil to grant full Taunt and Encore immunity to both itself and its partner, and the potent Decorate move (+2 Atk and +2 SpA) to supercharge sweepers like Dragonite, Mega Charizard Y, and Gholdengo."
        },
        {
          "id": "passimian",
          "name": "Passimian",
          "spriteId": "passimian",
          "cost": 3,
          "acquired": "draft",
          "overallPick": 73,
          "rationale": "Passimian completes our 10-Pokémon roster by adding Defiant to directly punish opposing Intimidate and Snarl spam, Quick Guard to protect our core from opposing priority attacks, and high-impact Knock Off and Close Combat utility at exactly 3 points."
        }
      ],
      "record": { "seriesWins": 1, "seriesLosses": 0, "gameWins": 2, "gameLosses": 0 },
      "finish": null
    }
  ],
  "board": [
    {
      "id": "charizard-mega-y",
      "name": "Mega Charizard Y",
      "spriteId": "charizard-megay",
      "cost": 20,
      "types": ["Fire", "Flying"],
      "abilities": ["Drought"],
      "baseStats": { "hp": 78, "atk": 104, "def": 78, "spa": 159, "spd": 115, "spe": 100 },
      "megaStone": "Charizardite Y",
      "draftedBy": "franchise-7"
    },
    {
      "id": "floette-mega",
      "name": "Mega Floette",
      "spriteId": "floette-mega",
      "cost": 20,
      "types": ["Fairy"],
      "abilities": ["Fairy Aura"],
      "baseStats": { "hp": 74, "atk": 85, "def": 87, "spa": 155, "spd": 148, "spe": 102 },
      "megaStone": "Floettite",
      "draftedBy": null
    },
    {
      "id": "salamence-mega",
      "name": "Mega Salamence",
      "spriteId": "salamence-mega",
      "cost": 20,
      "types": ["Dragon", "Flying"],
      "abilities": ["Aerilate"],
      "baseStats": { "hp": 95, "atk": 145, "def": 130, "spa": 120, "spd": 90, "spe": 120 },
      "megaStone": "Salamencite",
      "draftedBy": "franchise-1"
    },
    {
      "id": "archaludon",
      "name": "Archaludon",
      "spriteId": "archaludon",
      "cost": 19,
      "types": ["Steel", "Dragon"],
      "abilities": ["Stamina", "Sturdy", "Stalwart"],
      "baseStats": { "hp": 90, "atk": 105, "def": 130, "spa": 125, "spd": 65, "spe": 85 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "basculegion",
      "name": "Basculegion-Male",
      "spriteId": "basculegion",
      "cost": 19,
      "types": ["Water", "Ghost"],
      "abilities": ["Swift Swim", "Adaptability", "Mold Breaker"],
      "baseStats": { "hp": 120, "atk": 112, "def": 65, "spa": 80, "spd": 75, "spe": 78 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "rillaboom",
      "name": "Rillaboom",
      "spriteId": "rillaboom",
      "cost": 19,
      "types": ["Grass"],
      "abilities": ["Overgrow", "Grassy Surge"],
      "baseStats": { "hp": 100, "atk": 125, "def": 90, "spa": 60, "spd": 70, "spe": 85 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "sneasler",
      "name": "Sneasler",
      "spriteId": "sneasler",
      "cost": 19,
      "types": ["Fighting", "Poison"],
      "abilities": ["Pressure", "Unburden", "Poison Touch"],
      "baseStats": { "hp": 80, "atk": 130, "def": 60, "spa": 40, "spd": 80, "spe": 120 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "whimsicott",
      "name": "Whimsicott",
      "spriteId": "whimsicott",
      "cost": 19,
      "types": ["Grass", "Fairy"],
      "abilities": ["Prankster", "Infiltrator", "Chlorophyll"],
      "baseStats": { "hp": 60, "atk": 67, "def": 85, "spa": 77, "spd": 75, "spe": 116 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "farigiraf",
      "name": "Farigiraf",
      "spriteId": "farigiraf",
      "cost": 18,
      "types": ["Normal", "Psychic"],
      "abilities": ["Cud Chew", "Armor Tail", "Sap Sipper"],
      "baseStats": { "hp": 120, "atk": 90, "def": 70, "spa": 110, "spd": 70, "spe": 60 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "garchomp",
      "name": "Garchomp",
      "spriteId": "garchomp",
      "cost": 18,
      "types": ["Dragon", "Ground"],
      "abilities": ["Sand Veil", "Rough Skin"],
      "baseStats": { "hp": 108, "atk": 130, "def": 95, "spa": 80, "spd": 85, "spe": 102 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "incineroar",
      "name": "Incineroar",
      "spriteId": "incineroar",
      "cost": 18,
      "types": ["Fire", "Dark"],
      "abilities": ["Blaze", "Intimidate"],
      "baseStats": { "hp": 95, "atk": 115, "def": 90, "spa": 80, "spd": 90, "spe": 60 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "indeedee-f",
      "name": "Indeedee-F",
      "spriteId": "indeedee-f",
      "cost": 18,
      "types": ["Psychic", "Normal"],
      "abilities": ["Own Tempo", "Synchronize", "Psychic Surge"],
      "baseStats": { "hp": 70, "atk": 55, "def": 65, "spa": 95, "spd": 105, "spe": 85 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "gengar-mega",
      "name": "Mega Gengar",
      "spriteId": "gengar-mega",
      "cost": 18,
      "types": ["Ghost", "Poison"],
      "abilities": ["Shadow Tag"],
      "baseStats": { "hp": 60, "atk": 65, "def": 80, "spa": 170, "spd": 95, "spe": 130 },
      "megaStone": "Gengarite",
      "draftedBy": "franchise-3"
    },
    {
      "id": "sinistcha",
      "name": "Sinistcha",
      "spriteId": "sinistcha",
      "cost": 18,
      "types": ["Grass", "Ghost"],
      "abilities": ["Hospitality", "Heatproof"],
      "baseStats": { "hp": 71, "atk": 60, "def": 106, "spa": 121, "spd": 80, "spe": 70 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "aerodactyl",
      "name": "Aerodactyl",
      "spriteId": "aerodactyl",
      "cost": 17,
      "types": ["Rock", "Flying"],
      "abilities": ["Rock Head", "Pressure", "Unnerve"],
      "baseStats": { "hp": 80, "atk": 105, "def": 65, "spa": 60, "spd": 75, "spe": 130 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "kingambit",
      "name": "Kingambit",
      "spriteId": "kingambit",
      "cost": 17,
      "types": ["Dark", "Steel"],
      "abilities": ["Defiant", "Supreme Overlord", "Pressure"],
      "baseStats": { "hp": 100, "atk": 135, "def": 120, "spa": 60, "spd": 85, "spe": 50 },
      "megaStone": null,
      "draftedBy": "franchise-3"
    },
    {
      "id": "aerodactyl-mega",
      "name": "Mega Aerodactyl",
      "spriteId": "aerodactyl-mega",
      "cost": 17,
      "types": ["Rock", "Flying"],
      "abilities": ["Tough Claws"],
      "baseStats": { "hp": 80, "atk": 135, "def": 85, "spa": 70, "spd": 95, "spe": 150 },
      "megaStone": "Aerodactylite",
      "draftedBy": null
    },
    {
      "id": "delphox-mega",
      "name": "Mega Delphox",
      "spriteId": "delphox-mega",
      "cost": 17,
      "types": ["Fire", "Psychic"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 75, "atk": 69, "def": 72, "spa": 159, "spd": 125, "spe": 134 },
      "megaStone": "Delphoxite",
      "draftedBy": null
    },
    {
      "id": "froslass-mega",
      "name": "Mega Froslass",
      "spriteId": "froslass-mega",
      "cost": 17,
      "types": ["Ice", "Ghost"],
      "abilities": ["Snow Warning"],
      "baseStats": { "hp": 70, "atk": 80, "def": 70, "spa": 140, "spd": 100, "spe": 120 },
      "megaStone": "Froslassite",
      "draftedBy": null
    },
    {
      "id": "lucario-mega-z",
      "name": "Mega Lucario Z",
      "spriteId": "lucario-megaz",
      "cost": 17,
      "types": ["Fighting", "Steel"],
      "abilities": ["Aura Guard"],
      "baseStats": { "hp": 70, "atk": 100, "def": 70, "spa": 164, "spd": 70, "spe": 151 },
      "megaStone": "Lucarionite Z",
      "draftedBy": null
    },
    {
      "id": "metagross-mega",
      "name": "Mega Metagross",
      "spriteId": "metagross-mega",
      "cost": 17,
      "types": ["Steel", "Psychic"],
      "abilities": ["Tough Claws"],
      "baseStats": { "hp": 80, "atk": 145, "def": 150, "spa": 105, "spd": 110, "spe": 110 },
      "megaStone": "Metagrossite",
      "draftedBy": "franchise-5"
    },
    {
      "id": "aegislash",
      "name": "Aegislash",
      "spriteId": "aegislash",
      "cost": 16,
      "types": ["Steel", "Ghost"],
      "abilities": ["Stance Change"],
      "baseStats": { "hp": 60, "atk": 50, "def": 140, "spa": 50, "spd": 140, "spe": 60 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "gholdengo",
      "name": "Gholdengo",
      "spriteId": "gholdengo",
      "cost": 16,
      "types": ["Steel", "Ghost"],
      "abilities": ["Good as Gold"],
      "baseStats": { "hp": 87, "atk": 60, "def": 95, "spa": 133, "spd": 91, "spe": 84 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "grimmsnarl",
      "name": "Grimmsnarl",
      "spriteId": "grimmsnarl",
      "cost": 16,
      "types": ["Dark", "Fairy"],
      "abilities": ["Prankster", "Frisk", "Pickpocket"],
      "baseStats": { "hp": 95, "atk": 120, "def": 65, "spa": 95, "spd": 75, "spe": 60 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "maushold",
      "name": "Maushold",
      "spriteId": "maushold",
      "cost": 16,
      "types": ["Normal"],
      "abilities": ["Friend Guard", "Cheek Pouch", "Technician"],
      "baseStats": { "hp": 74, "atk": 75, "def": 70, "spa": 65, "spd": 75, "spe": 111 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "garchomp-mega-z",
      "name": "Mega Garchomp Z",
      "spriteId": "garchomp-megaz",
      "cost": 16,
      "types": ["Dragon"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 108, "atk": 130, "def": 85, "spa": 141, "spd": 85, "spe": 151 },
      "megaStone": "Garchompite Z",
      "draftedBy": null
    },
    {
      "id": "gardevoir-mega",
      "name": "Mega Gardevoir",
      "spriteId": "gardevoir-mega",
      "cost": 16,
      "types": ["Psychic", "Fairy"],
      "abilities": ["Pixilate"],
      "baseStats": { "hp": 68, "atk": 85, "def": 65, "spa": 165, "spd": 135, "spe": 100 },
      "megaStone": "Gardevoirite",
      "draftedBy": "franchise-6"
    },
    {
      "id": "mawile-mega",
      "name": "Mega Mawile",
      "spriteId": "mawile-mega",
      "cost": 16,
      "types": ["Steel", "Fairy"],
      "abilities": ["Huge Power"],
      "baseStats": { "hp": 50, "atk": 105, "def": 125, "spa": 55, "spd": 95, "spe": 50 },
      "megaStone": "Mawilite",
      "draftedBy": null
    },
    {
      "id": "pelipper",
      "name": "Pelipper",
      "spriteId": "pelipper",
      "cost": 16,
      "types": ["Water", "Flying"],
      "abilities": ["Keen Eye", "Drizzle", "Rain Dish"],
      "baseStats": { "hp": 60, "atk": 50, "def": 100, "spa": 95, "spd": 70, "spe": 65 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "clefable",
      "name": "Clefable",
      "spriteId": "clefable",
      "cost": 15,
      "types": ["Fairy"],
      "abilities": ["Cute Charm", "Magic Guard", "Unaware"],
      "baseStats": { "hp": 95, "atk": 70, "def": 73, "spa": 95, "spd": 90, "spe": 60 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "absol-mega-z",
      "name": "Mega Absol Z",
      "spriteId": "absol-megaz",
      "cost": 15,
      "types": ["Dark", "Ghost"],
      "abilities": ["Sharpness"],
      "baseStats": { "hp": 65, "atk": 154, "def": 60, "spa": 75, "spd": 60, "spe": 151 },
      "megaStone": "Absolite Z",
      "draftedBy": null
    },
    {
      "id": "baxcalibur-mega",
      "name": "Mega Baxcalibur",
      "spriteId": "baxcalibur-mega",
      "cost": 15,
      "types": ["Dragon", "Ice"],
      "abilities": ["Thermal Exchange", "Ice Body"],
      "baseStats": { "hp": 115, "atk": 175, "def": 117, "spa": 105, "spd": 101, "spe": 87 },
      "megaStone": "Baxcalibrite",
      "draftedBy": null
    },
    {
      "id": "dragonite-mega",
      "name": "Mega Dragonite",
      "spriteId": "dragonite-mega",
      "cost": 15,
      "types": ["Dragon", "Flying"],
      "abilities": ["Multiscale"],
      "baseStats": { "hp": 91, "atk": 124, "def": 115, "spa": 145, "spd": 125, "spe": 100 },
      "megaStone": "Dragoninite",
      "draftedBy": "franchise-2"
    },
    {
      "id": "kangaskhan-mega",
      "name": "Mega Kangaskhan",
      "spriteId": "kangaskhan-mega",
      "cost": 15,
      "types": ["Normal"],
      "abilities": ["Parental Bond"],
      "baseStats": { "hp": 105, "atk": 125, "def": 100, "spa": 60, "spd": 100, "spe": 100 },
      "megaStone": "Kangaskhanite",
      "draftedBy": "franchise-3"
    },
    {
      "id": "swampert-mega",
      "name": "Mega Swampert",
      "spriteId": "swampert-mega",
      "cost": 15,
      "types": ["Water", "Ground"],
      "abilities": ["Swift Swim"],
      "baseStats": { "hp": 100, "atk": 150, "def": 110, "spa": 95, "spd": 110, "spe": 70 },
      "megaStone": "Swampertite",
      "draftedBy": null
    },
    {
      "id": "primarina",
      "name": "Primarina",
      "spriteId": "primarina",
      "cost": 15,
      "types": ["Water", "Fairy"],
      "abilities": ["Torrent", "Liquid Voice"],
      "baseStats": { "hp": 80, "atk": 74, "def": 74, "spa": 126, "spd": 116, "spe": 60 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "sylveon",
      "name": "Sylveon",
      "spriteId": "sylveon",
      "cost": 15,
      "types": ["Fairy"],
      "abilities": ["Cute Charm", "Pixilate"],
      "baseStats": { "hp": 95, "atk": 65, "def": 65, "spa": 110, "spd": 130, "spe": 60 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "talonflame",
      "name": "Talonflame",
      "spriteId": "talonflame",
      "cost": 15,
      "types": ["Fire", "Flying"],
      "abilities": ["Flame Body", "Gale Wings"],
      "baseStats": { "hp": 78, "atk": 81, "def": 71, "spa": 74, "spd": 69, "spe": 126 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "torkoal",
      "name": "Torkoal",
      "spriteId": "torkoal",
      "cost": 15,
      "types": ["Fire"],
      "abilities": ["White Smoke", "Drought", "Shell Armor"],
      "baseStats": { "hp": 70, "atk": 85, "def": 140, "spa": 85, "spd": 70, "spe": 20 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "ninetales-alola",
      "name": "Alolan Ninetales",
      "spriteId": "ninetales-alola",
      "cost": 14,
      "types": ["Ice", "Fairy"],
      "abilities": ["Snow Cloak", "Snow Warning"],
      "baseStats": { "hp": 73, "atk": 67, "def": 75, "spa": 81, "spd": 100, "spe": 109 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "annihilape",
      "name": "Annihilape",
      "spriteId": "annihilape",
      "cost": 14,
      "types": ["Fighting", "Ghost"],
      "abilities": ["Vital Spirit", "Inner Focus", "Defiant"],
      "baseStats": { "hp": 110, "atk": 115, "def": 80, "spa": 50, "spd": 90, "spe": 90 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "dragapult",
      "name": "Dragapult",
      "spriteId": "dragapult",
      "cost": 14,
      "types": ["Dragon", "Ghost"],
      "abilities": ["Clear Body", "Infiltrator", "Cursed Body"],
      "baseStats": { "hp": 88, "atk": 120, "def": 75, "spa": 100, "spd": 75, "spe": 142 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "dragonite",
      "name": "Dragonite",
      "spriteId": "dragonite",
      "cost": 14,
      "types": ["Dragon", "Flying"],
      "abilities": ["Inner Focus", "Multiscale"],
      "baseStats": { "hp": 91, "atk": 134, "def": 95, "spa": 100, "spd": 100, "spe": 80 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "hydreigon",
      "name": "Hydreigon",
      "spriteId": "hydreigon",
      "cost": 14,
      "types": ["Dark", "Dragon"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 92, "atk": 105, "def": 90, "spa": 125, "spd": 90, "spe": 98 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "kommo-o",
      "name": "Kommo-o",
      "spriteId": "kommoo",
      "cost": 14,
      "types": ["Dragon", "Fighting"],
      "abilities": ["Bulletproof", "Soundproof", "Overcoat"],
      "baseStats": { "hp": 75, "atk": 110, "def": 125, "spa": 100, "spd": 105, "spe": 85 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "blastoise-mega",
      "name": "Mega Blastoise",
      "spriteId": "blastoise-mega",
      "cost": 14,
      "types": ["Water"],
      "abilities": ["Mega Launcher"],
      "baseStats": { "hp": 79, "atk": 103, "def": 120, "spa": 135, "spd": 115, "spe": 78 },
      "megaStone": "Blastoisinite",
      "draftedBy": null
    },
    {
      "id": "blaziken-mega",
      "name": "Mega Blaziken",
      "spriteId": "blaziken-mega",
      "cost": 14,
      "types": ["Fire", "Fighting"],
      "abilities": ["Speed Boost"],
      "baseStats": { "hp": 80, "atk": 160, "def": 80, "spa": 130, "spd": 80, "spe": 100 },
      "megaStone": "Blazikenite",
      "draftedBy": null
    },
    {
      "id": "garchomp-mega",
      "name": "Mega Garchomp",
      "spriteId": "garchomp-mega",
      "cost": 14,
      "types": ["Dragon", "Ground"],
      "abilities": ["Sand Force"],
      "baseStats": { "hp": 108, "atk": 170, "def": 115, "spa": 120, "spd": 95, "spe": 92 },
      "megaStone": "Garchompite",
      "draftedBy": null
    },
    {
      "id": "glimmora-mega",
      "name": "Mega Glimmora",
      "spriteId": "glimmora-mega",
      "cost": 14,
      "types": ["Rock", "Poison"],
      "abilities": ["Adaptability"],
      "baseStats": { "hp": 83, "atk": 90, "def": 105, "spa": 150, "spd": 96, "spe": 101 },
      "megaStone": "Glimmoranite",
      "draftedBy": null
    },
    {
      "id": "golisopod-mega",
      "name": "Mega Golisopod",
      "spriteId": "golisopod-mega",
      "cost": 14,
      "types": ["Bug", "Steel"],
      "abilities": ["Tough Claws"],
      "baseStats": { "hp": 75, "atk": 150, "def": 175, "spa": 70, "spd": 120, "spe": 40 },
      "megaStone": "Golisopite",
      "draftedBy": null
    },
    {
      "id": "lopunny-mega",
      "name": "Mega Lopunny",
      "spriteId": "lopunny-mega",
      "cost": 14,
      "types": ["Normal", "Fighting"],
      "abilities": ["Scrappy"],
      "baseStats": { "hp": 65, "atk": 136, "def": 94, "spa": 54, "spd": 96, "spe": 135 },
      "megaStone": "Lopunnite",
      "draftedBy": null
    },
    {
      "id": "raichu-mega-y",
      "name": "Mega Raichu Y",
      "spriteId": "raichu-megay",
      "cost": 14,
      "types": ["Electric"],
      "abilities": ["No Guard"],
      "baseStats": { "hp": 60, "atk": 100, "def": 55, "spa": 160, "spd": 80, "spe": 130 },
      "megaStone": "Raichunite Y",
      "draftedBy": null
    },
    {
      "id": "scovillain-mega",
      "name": "Mega Scovillain",
      "spriteId": "scovillain-mega",
      "cost": 14,
      "types": ["Grass", "Fire"],
      "abilities": ["Spicy Spray"],
      "baseStats": { "hp": 65, "atk": 138, "def": 85, "spa": 138, "spd": 85, "spe": 75 },
      "megaStone": "Scovillainite",
      "draftedBy": null
    },
    {
      "id": "staraptor-mega",
      "name": "Mega Staraptor",
      "spriteId": "staraptor-mega",
      "cost": 14,
      "types": ["Fighting", "Flying"],
      "abilities": ["Contrary"],
      "baseStats": { "hp": 85, "atk": 140, "def": 100, "spa": 60, "spd": 90, "spe": 110 },
      "megaStone": "Staraptite",
      "draftedBy": null
    },
    {
      "id": "tyranitar-mega",
      "name": "Mega Tyranitar",
      "spriteId": "tyranitar-mega",
      "cost": 14,
      "types": ["Rock", "Dark"],
      "abilities": ["Sand Stream"],
      "baseStats": { "hp": 100, "atk": 164, "def": 150, "spa": 95, "spd": 120, "spe": 71 },
      "megaStone": "Tyranitarite",
      "draftedBy": null
    },
    {
      "id": "venusaur-mega",
      "name": "Mega Venusaur",
      "spriteId": "venusaur-mega",
      "cost": 14,
      "types": ["Grass", "Poison"],
      "abilities": ["Thick Fat"],
      "baseStats": { "hp": 80, "atk": 100, "def": 123, "spa": 122, "spd": 120, "spe": 80 },
      "megaStone": "Venusaurite",
      "draftedBy": null
    },
    {
      "id": "milotic",
      "name": "Milotic",
      "spriteId": "milotic",
      "cost": 14,
      "types": ["Water"],
      "abilities": ["Marvel Scale", "Competitive", "Cute Charm"],
      "baseStats": { "hp": 95, "atk": 60, "def": 79, "spa": 100, "spd": 125, "spe": 81 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "rotom-wash",
      "name": "Rotom-Wash",
      "spriteId": "rotom-wash",
      "cost": 14,
      "types": ["Electric", "Water"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 50, "atk": 65, "def": 107, "spa": 105, "spd": 107, "spe": 86 },
      "megaStone": null,
      "draftedBy": "franchise-3"
    },
    {
      "id": "tyranitar",
      "name": "Tyranitar",
      "spriteId": "tyranitar",
      "cost": 14,
      "types": ["Rock", "Dark"],
      "abilities": ["Sand Stream", "Unnerve"],
      "baseStats": { "hp": 100, "atk": 134, "def": 110, "spa": 95, "spd": 100, "spe": 61 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "volcarona",
      "name": "Volcarona",
      "spriteId": "volcarona",
      "cost": 14,
      "types": ["Bug", "Fire"],
      "abilities": ["Flame Body", "Swarm"],
      "baseStats": { "hp": 85, "atk": 60, "def": 65, "spa": 135, "spd": 105, "spe": 100 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "baxcalibur",
      "name": "Baxcalibur",
      "spriteId": "baxcalibur",
      "cost": 13,
      "types": ["Dragon", "Ice"],
      "abilities": ["Thermal Exchange", "Ice Body"],
      "baseStats": { "hp": 115, "atk": 145, "def": 92, "spa": 75, "spd": 86, "spe": 87 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "corviknight",
      "name": "Corviknight",
      "spriteId": "corviknight",
      "cost": 13,
      "types": ["Flying", "Steel"],
      "abilities": ["Pressure", "Unnerve", "Mirror Armor"],
      "baseStats": { "hp": 98, "atk": 87, "def": 105, "spa": 53, "spd": 85, "spe": 67 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "excadrill",
      "name": "Excadrill",
      "spriteId": "excadrill",
      "cost": 13,
      "types": ["Ground", "Steel"],
      "abilities": ["Sand Rush", "Sand Force", "Mold Breaker"],
      "baseStats": { "hp": 110, "atk": 135, "def": 60, "spa": 50, "spd": 65, "spe": 88 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "glimmora",
      "name": "Glimmora",
      "spriteId": "glimmora",
      "cost": 13,
      "types": ["Rock", "Poison"],
      "abilities": ["Toxic Debris", "Corrosion"],
      "baseStats": { "hp": 83, "atk": 55, "def": 90, "spa": 130, "spd": 81, "spe": 86 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "arcanine-hisui",
      "name": "Hisuian Arcanine",
      "spriteId": "arcanine-hisui",
      "cost": 13,
      "types": ["Fire", "Rock"],
      "abilities": ["Intimidate", "Flash Fire", "Rock Head"],
      "baseStats": { "hp": 95, "atk": 115, "def": 80, "spa": 95, "spd": 80, "spe": 90 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "lucario-mega",
      "name": "Mega Lucario",
      "spriteId": "lucario-mega",
      "cost": 13,
      "types": ["Fighting", "Steel"],
      "abilities": ["Adaptability"],
      "baseStats": { "hp": 70, "atk": 145, "def": 88, "spa": 140, "spd": 70, "spe": 112 },
      "megaStone": "Lucarionite",
      "draftedBy": null
    },
    {
      "id": "pyroar-mega",
      "name": "Mega Pyroar",
      "spriteId": "pyroar-mega",
      "cost": 13,
      "types": ["Fire", "Normal"],
      "abilities": ["Fire Mane"],
      "baseStats": { "hp": 86, "atk": 88, "def": 92, "spa": 129, "spd": 86, "spe": 126 },
      "megaStone": "Pyroarite",
      "draftedBy": null
    },
    {
      "id": "scizor-mega",
      "name": "Mega Scizor",
      "spriteId": "scizor-mega",
      "cost": 13,
      "types": ["Bug", "Steel"],
      "abilities": ["Technician"],
      "baseStats": { "hp": 70, "atk": 150, "def": 140, "spa": 65, "spd": 100, "spe": 75 },
      "megaStone": "Scizorite",
      "draftedBy": null
    },
    {
      "id": "politoed",
      "name": "Politoed",
      "spriteId": "politoed",
      "cost": 13,
      "types": ["Water"],
      "abilities": ["Water Absorb", "Damp", "Drizzle"],
      "baseStats": { "hp": 90, "atk": 75, "def": 75, "spa": 90, "spd": 100, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "venusaur",
      "name": "Venusaur",
      "spriteId": "venusaur",
      "cost": 13,
      "types": ["Grass", "Poison"],
      "abilities": ["Overgrow", "Chlorophyll"],
      "baseStats": { "hp": 80, "atk": 82, "def": 83, "spa": 100, "spd": 100, "spe": 80 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "basculegion-f",
      "name": "Basculegion-Female",
      "spriteId": "basculegion-f",
      "cost": 12,
      "types": ["Water", "Ghost"],
      "abilities": ["Swift Swim", "Adaptability", "Mold Breaker"],
      "baseStats": { "hp": 120, "atk": 92, "def": 65, "spa": 100, "spd": 75, "spe": 78 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "ceruledge",
      "name": "Ceruledge",
      "spriteId": "ceruledge",
      "cost": 12,
      "types": ["Fire", "Ghost"],
      "abilities": ["Flash Fire", "Weak Armor"],
      "baseStats": { "hp": 75, "atk": 125, "def": 80, "spa": 60, "spd": 100, "spe": 85 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "indeedee",
      "name": "Indeedee",
      "spriteId": "indeedee",
      "cost": 12,
      "types": ["Psychic", "Normal"],
      "abilities": ["Inner Focus", "Synchronize", "Psychic Surge"],
      "baseStats": { "hp": 60, "atk": 65, "def": 55, "spa": 105, "spd": 95, "spe": 95 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "mamoswine",
      "name": "Mamoswine",
      "spriteId": "mamoswine",
      "cost": 12,
      "types": ["Ice", "Ground"],
      "abilities": ["Oblivious", "Snow Cloak", "Thick Fat"],
      "baseStats": { "hp": 110, "atk": 130, "def": 80, "spa": 70, "spd": 60, "spe": 80 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "charizard-mega-x",
      "name": "Mega Charizard X",
      "spriteId": "charizard-megax",
      "cost": 12,
      "types": ["Fire", "Dragon"],
      "abilities": ["Tough Claws"],
      "baseStats": { "hp": 78, "atk": 130, "def": 111, "spa": 130, "spd": 85, "spe": 100 },
      "megaStone": "Charizardite X",
      "draftedBy": null
    },
    {
      "id": "eelektross-mega",
      "name": "Mega Eelektross",
      "spriteId": "eelektross-mega",
      "cost": 12,
      "types": ["Electric"],
      "abilities": ["Eelevate"],
      "baseStats": { "hp": 85, "atk": 145, "def": 80, "spa": 135, "spd": 90, "spe": 80 },
      "megaStone": "Eelektrossite",
      "draftedBy": null
    },
    {
      "id": "gyarados-mega",
      "name": "Mega Gyarados",
      "spriteId": "gyarados-mega",
      "cost": 12,
      "types": ["Water", "Dark"],
      "abilities": ["Mold Breaker"],
      "baseStats": { "hp": 95, "atk": 155, "def": 109, "spa": 70, "spd": 130, "spe": 81 },
      "megaStone": "Gyaradosite",
      "draftedBy": null
    },
    {
      "id": "meganium-mega",
      "name": "Mega Meganium",
      "spriteId": "meganium-mega",
      "cost": 12,
      "types": ["Grass", "Fairy"],
      "abilities": ["Mega Sol"],
      "baseStats": { "hp": 80, "atk": 92, "def": 115, "spa": 143, "spd": 115, "spe": 80 },
      "megaStone": "Meganiumite",
      "draftedBy": null
    },
    {
      "id": "sceptile-mega",
      "name": "Mega Sceptile",
      "spriteId": "sceptile-mega",
      "cost": 12,
      "types": ["Grass", "Dragon"],
      "abilities": ["Lightning Rod"],
      "baseStats": { "hp": 70, "atk": 110, "def": 75, "spa": 145, "spd": 85, "spe": 145 },
      "megaStone": "Sceptilite",
      "draftedBy": null
    },
    {
      "id": "starmie-mega",
      "name": "Mega Starmie",
      "spriteId": "starmie-mega",
      "cost": 12,
      "types": ["Water", "Psychic"],
      "abilities": ["Huge Power"],
      "baseStats": { "hp": 60, "atk": 100, "def": 105, "spa": 130, "spd": 105, "spe": 120 },
      "megaStone": "Starminite",
      "draftedBy": null
    },
    {
      "id": "meowscarada",
      "name": "Meowscarada",
      "spriteId": "meowscarada",
      "cost": 12,
      "types": ["Grass", "Dark"],
      "abilities": ["Overgrow", "Protean"],
      "baseStats": { "hp": 76, "atk": 110, "def": 70, "spa": 81, "spd": 70, "spe": 123 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "palafin",
      "name": "Palafin",
      "spriteId": "palafin",
      "cost": 12,
      "types": ["Water"],
      "abilities": ["Zero to Hero"],
      "baseStats": { "hp": 100, "atk": 70, "def": 72, "spa": 53, "spd": 62, "spe": 100 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "rotom-heat",
      "name": "Rotom-Heat",
      "spriteId": "rotom-heat",
      "cost": 12,
      "types": ["Electric", "Fire"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 50, "atk": 65, "def": 107, "spa": 105, "spd": 107, "spe": 86 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "vivillon",
      "name": "Vivillon",
      "spriteId": "vivillon",
      "cost": 12,
      "types": ["Bug", "Flying"],
      "abilities": ["Shield Dust", "Compound Eyes", "Friend Guard"],
      "baseStats": { "hp": 80, "atk": 52, "def": 50, "spa": 90, "spd": 50, "spe": 89 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "araquanid",
      "name": "Araquanid",
      "spriteId": "araquanid",
      "cost": 11,
      "types": ["Water", "Bug"],
      "abilities": ["Water Bubble", "Water Absorb"],
      "baseStats": { "hp": 68, "atk": 70, "def": 92, "spa": 50, "spd": 132, "spe": 42 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "arcanine",
      "name": "Arcanine",
      "spriteId": "arcanine",
      "cost": 11,
      "types": ["Fire"],
      "abilities": ["Intimidate", "Flash Fire", "Justified"],
      "baseStats": { "hp": 90, "atk": 110, "def": 80, "spa": 100, "spd": 80, "spe": 95 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "gyarados",
      "name": "Gyarados",
      "spriteId": "gyarados",
      "cost": 11,
      "types": ["Water", "Flying"],
      "abilities": ["Intimidate", "Moxie"],
      "baseStats": { "hp": 95, "atk": 125, "def": 79, "spa": 60, "spd": 100, "spe": 81 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "typhlosion-hisui",
      "name": "Hisuian Typhlosion",
      "spriteId": "typhlosion-hisui",
      "cost": 11,
      "types": ["Fire", "Ghost"],
      "abilities": ["Blaze", "Frisk"],
      "baseStats": { "hp": 73, "atk": 84, "def": 78, "spa": 119, "spd": 85, "spe": 95 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "klefki",
      "name": "Klefki",
      "spriteId": "klefki",
      "cost": 11,
      "types": ["Steel", "Fairy"],
      "abilities": ["Prankster", "Magician"],
      "baseStats": { "hp": 57, "atk": 80, "def": 91, "spa": 80, "spd": 87, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "raichu-mega-x",
      "name": "Mega Raichu X",
      "spriteId": "raichu-megax",
      "cost": 11,
      "types": ["Electric"],
      "abilities": ["Electric Surge"],
      "baseStats": { "hp": 60, "atk": 135, "def": 95, "spa": 90, "spd": 95, "spe": 110 },
      "megaStone": "Raichunite X",
      "draftedBy": null
    },
    {
      "id": "scrafty-mega",
      "name": "Mega Scrafty",
      "spriteId": "scrafty-mega",
      "cost": 11,
      "types": ["Dark", "Fighting"],
      "abilities": ["Intimidate"],
      "baseStats": { "hp": 65, "atk": 130, "def": 135, "spa": 55, "spd": 135, "spe": 68 },
      "megaStone": "Scraftinite",
      "draftedBy": null
    },
    {
      "id": "meowstic",
      "name": "Meowstic-Male",
      "spriteId": "meowstic",
      "cost": 11,
      "types": ["Psychic"],
      "abilities": ["Keen Eye", "Infiltrator", "Prankster"],
      "baseStats": { "hp": 74, "atk": 48, "def": 76, "spa": 83, "spd": 81, "spe": 104 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "mimikyu",
      "name": "Mimikyu",
      "spriteId": "mimikyu",
      "cost": 11,
      "types": ["Ghost", "Fairy"],
      "abilities": ["Disguise"],
      "baseStats": { "hp": 55, "atk": 90, "def": 80, "spa": 50, "spd": 105, "spe": 96 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "ninetales",
      "name": "Ninetales",
      "spriteId": "ninetales",
      "cost": 11,
      "types": ["Fire"],
      "abilities": ["Flash Fire", "Drought"],
      "baseStats": { "hp": 73, "atk": 76, "def": 75, "spa": 81, "spd": 100, "spe": 100 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "pawmot",
      "name": "Pawmot",
      "spriteId": "pawmot",
      "cost": 11,
      "types": ["Electric", "Fighting"],
      "abilities": ["Volt Absorb", "Natural Cure", "Iron Fist"],
      "baseStats": { "hp": 70, "atk": 115, "def": 70, "spa": 70, "spd": 60, "spe": 105 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "persian-alola",
      "name": "Persian-Alola",
      "spriteId": "persian-alola",
      "cost": 11,
      "types": ["Dark"],
      "abilities": ["Fur Coat", "Technician", "Rattled"],
      "baseStats": { "hp": 65, "atk": 60, "def": 60, "spa": 75, "spd": 65, "spe": 115 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "sableye",
      "name": "Sableye",
      "spriteId": "sableye",
      "cost": 11,
      "types": ["Dark", "Ghost"],
      "abilities": ["Keen Eye", "Stall", "Prankster"],
      "baseStats": { "hp": 50, "atk": 75, "def": 75, "spa": 65, "spd": 65, "spe": 50 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "salamence",
      "name": "Salamence",
      "spriteId": "salamence",
      "cost": 11,
      "types": ["Dragon", "Flying"],
      "abilities": ["Intimidate", "Moxie"],
      "baseStats": { "hp": 95, "atk": 135, "def": 80, "spa": 110, "spd": 80, "spe": 100 },
      "megaStone": null,
      "draftedBy": "franchise-3"
    },
    {
      "id": "scizor",
      "name": "Scizor",
      "spriteId": "scizor",
      "cost": 11,
      "types": ["Bug", "Steel"],
      "abilities": ["Swarm", "Technician", "Light Metal"],
      "baseStats": { "hp": 70, "atk": 130, "def": 100, "spa": 55, "spd": 80, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "tinkaton",
      "name": "Tinkaton",
      "spriteId": "tinkaton",
      "cost": 11,
      "types": ["Fairy", "Steel"],
      "abilities": ["Mold Breaker", "Own Tempo", "Pickpocket"],
      "baseStats": { "hp": 85, "atk": 75, "def": 77, "spa": 70, "spd": 105, "spe": 94 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "tsareena",
      "name": "Tsareena",
      "spriteId": "tsareena",
      "cost": 11,
      "types": ["Grass"],
      "abilities": ["Leaf Guard", "Queenly Majesty", "Sweet Veil"],
      "baseStats": { "hp": 72, "atk": 120, "def": 98, "spa": 50, "spd": 98, "spe": 72 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "azumarill",
      "name": "Azumarill",
      "spriteId": "azumarill",
      "cost": 10,
      "types": ["Water", "Fairy"],
      "abilities": ["Thick Fat", "Huge Power", "Sap Sipper"],
      "baseStats": { "hp": 100, "atk": 50, "def": 80, "spa": 60, "spd": 80, "spe": 50 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "gallade",
      "name": "Gallade",
      "spriteId": "gallade",
      "cost": 10,
      "types": ["Psychic", "Fighting"],
      "abilities": ["Steadfast", "Sharpness", "Justified"],
      "baseStats": { "hp": 68, "atk": 125, "def": 65, "spa": 65, "spd": 115, "spe": 80 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "gardevoir",
      "name": "Gardevoir",
      "spriteId": "gardevoir",
      "cost": 10,
      "types": ["Psychic", "Fairy"],
      "abilities": ["Synchronize", "Trace", "Telepathy"],
      "baseStats": { "hp": 68, "atk": 65, "def": 65, "spa": 125, "spd": 115, "spe": 80 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "liepard",
      "name": "Liepard",
      "spriteId": "liepard",
      "cost": 10,
      "types": ["Dark"],
      "abilities": ["Limber", "Unburden", "Prankster"],
      "baseStats": { "hp": 64, "atk": 88, "def": 50, "spa": 88, "spd": 50, "spe": 106 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "clefable-mega",
      "name": "Mega Clefable",
      "spriteId": "clefable-mega",
      "cost": 10,
      "types": ["Fairy", "Flying"],
      "abilities": ["Magic Bounce"],
      "baseStats": { "hp": 95, "atk": 80, "def": 93, "spa": 135, "spd": 110, "spe": 70 },
      "megaStone": "Clefablite",
      "draftedBy": "franchise-0"
    },
    {
      "id": "greninja-mega",
      "name": "Mega Greninja",
      "spriteId": "greninja-mega",
      "cost": 10,
      "types": ["Water", "Dark"],
      "abilities": ["Protean"],
      "baseStats": { "hp": 72, "atk": 125, "def": 77, "spa": 133, "spd": 81, "spe": 142 },
      "megaStone": "Greninjite",
      "draftedBy": null
    },
    {
      "id": "metagross",
      "name": "Metagross",
      "spriteId": "metagross",
      "cost": 10,
      "types": ["Steel", "Psychic"],
      "abilities": ["Clear Body", "Light Metal"],
      "baseStats": { "hp": 80, "atk": 135, "def": 130, "spa": 95, "spd": 90, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "oranguru",
      "name": "Oranguru",
      "spriteId": "oranguru",
      "cost": 10,
      "types": ["Normal", "Psychic"],
      "abilities": ["Inner Focus", "Telepathy", "Symbiosis"],
      "baseStats": { "hp": 90, "atk": 60, "def": 80, "spa": 90, "spd": 110, "spe": 60 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "raichu",
      "name": "Raichu",
      "spriteId": "raichu",
      "cost": 10,
      "types": ["Electric"],
      "abilities": ["Static", "Lightning Rod"],
      "baseStats": { "hp": 60, "atk": 90, "def": 55, "spa": 90, "spd": 80, "spe": 110 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "rotom-mow",
      "name": "Rotom-Mow",
      "spriteId": "rotom-mow",
      "cost": 10,
      "types": ["Electric", "Grass"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 50, "atk": 65, "def": 107, "spa": 105, "spd": 107, "spe": 86 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "staraptor",
      "name": "Staraptor",
      "spriteId": "staraptor",
      "cost": 10,
      "types": ["Normal", "Flying"],
      "abilities": ["Intimidate", "Reckless"],
      "baseStats": { "hp": 85, "atk": 120, "def": 70, "spa": 50, "spd": 60, "spe": 100 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "blastoise",
      "name": "Blastoise",
      "spriteId": "blastoise",
      "cost": 9,
      "types": ["Water"],
      "abilities": ["Torrent", "Rain Dish"],
      "baseStats": { "hp": 79, "atk": 83, "def": 100, "spa": 85, "spd": 105, "spe": 78 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "hatterene",
      "name": "Hatterene",
      "spriteId": "hatterene",
      "cost": 9,
      "types": ["Psychic", "Fairy"],
      "abilities": ["Healer", "Anticipation", "Magic Bounce"],
      "baseStats": { "hp": 57, "atk": 90, "def": 95, "spa": 136, "spd": 103, "spe": 29 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "zoroark-hisui",
      "name": "Hisuian Zoroark",
      "spriteId": "zoroark-hisui",
      "cost": 9,
      "types": ["Normal", "Ghost"],
      "abilities": ["Illusion"],
      "baseStats": { "hp": 55, "atk": 100, "def": 60, "spa": 125, "spd": 60, "spe": 110 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "krookodile",
      "name": "Krookodile",
      "spriteId": "krookodile",
      "cost": 9,
      "types": ["Ground", "Dark"],
      "abilities": ["Intimidate", "Moxie", "Anger Point"],
      "baseStats": { "hp": 95, "atk": 117, "def": 80, "spa": 65, "spd": 70, "spe": 92 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "chandelure-mega",
      "name": "Mega Chandelure",
      "spriteId": "chandelure-mega",
      "cost": 9,
      "types": ["Ghost", "Fire"],
      "abilities": ["Infiltrator"],
      "baseStats": { "hp": 60, "atk": 75, "def": 110, "spa": 175, "spd": 110, "spe": 90 },
      "megaStone": "Chandelurite",
      "draftedBy": null
    },
    {
      "id": "chimecho-mega",
      "name": "Mega Chimecho",
      "spriteId": "chimecho-mega",
      "cost": 9,
      "types": ["Psychic", "Steel"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 75, "atk": 50, "def": 110, "spa": 135, "spd": 120, "spe": 65 },
      "megaStone": "Chimechite",
      "draftedBy": null
    },
    {
      "id": "excadrill-mega",
      "name": "Mega Excadrill",
      "spriteId": "excadrill-mega",
      "cost": 9,
      "types": ["Ground", "Steel"],
      "abilities": ["Piercing Drill"],
      "baseStats": { "hp": 110, "atk": 165, "def": 100, "spa": 65, "spd": 65, "spe": 103 },
      "megaStone": "Excadrite",
      "draftedBy": "franchise-4"
    },
    {
      "id": "feraligatr-mega",
      "name": "Mega Feraligatr",
      "spriteId": "feraligatr-mega",
      "cost": 9,
      "types": ["Water", "Dragon"],
      "abilities": ["Dragonize"],
      "baseStats": { "hp": 85, "atk": 160, "def": 125, "spa": 89, "spd": 93, "spe": 78 },
      "megaStone": "Feraligite",
      "draftedBy": null
    },
    {
      "id": "meowstic-m-mega",
      "name": "Mega Meowstic",
      "spriteId": "meowstic-mmega",
      "cost": 9,
      "types": ["Psychic"],
      "abilities": ["Trace"],
      "baseStats": { "hp": 74, "atk": 48, "def": 76, "spa": 143, "spd": 101, "spe": 124 },
      "megaStone": "Meowsticite",
      "draftedBy": null
    },
    {
      "id": "sableye-mega",
      "name": "Mega Sableye",
      "spriteId": "sableye-mega",
      "cost": 9,
      "types": ["Dark", "Ghost"],
      "abilities": ["Magic Bounce"],
      "baseStats": { "hp": 50, "atk": 85, "def": 125, "spa": 85, "spd": 115, "spe": 20 },
      "megaStone": "Sablenite",
      "draftedBy": null
    },
    {
      "id": "skarmory-mega",
      "name": "Mega Skarmory",
      "spriteId": "skarmory-mega",
      "cost": 9,
      "types": ["Steel", "Flying"],
      "abilities": ["Stalwart"],
      "baseStats": { "hp": 65, "atk": 140, "def": 110, "spa": 40, "spd": 100, "spe": 110 },
      "megaStone": "Skarmorite",
      "draftedBy": null
    },
    {
      "id": "noivern",
      "name": "Noivern",
      "spriteId": "noivern",
      "cost": 9,
      "types": ["Flying", "Dragon"],
      "abilities": ["Frisk", "Infiltrator", "Telepathy"],
      "baseStats": { "hp": 85, "atk": 70, "def": 80, "spa": 97, "spd": 80, "spe": 123 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "tauros-paldea-aqua",
      "name": "Paldean Tauros Aqua",
      "spriteId": "tauros-paldeaaqua",
      "cost": 9,
      "types": ["Fighting", "Water"],
      "abilities": ["Intimidate", "Anger Point", "Cud Chew"],
      "baseStats": { "hp": 75, "atk": 110, "def": 105, "spa": 30, "spd": 70, "spe": 100 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "tauros-paldea-blaze",
      "name": "Paldean Tauros Blaze",
      "spriteId": "tauros-paldeablaze",
      "cost": 9,
      "types": ["Fighting", "Fire"],
      "abilities": ["Intimidate", "Anger Point", "Cud Chew"],
      "baseStats": { "hp": 75, "atk": 110, "def": 105, "spa": 30, "spd": 70, "spe": 100 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "rhyperior",
      "name": "Rhyperior",
      "spriteId": "rhyperior",
      "cost": 9,
      "types": ["Ground", "Rock"],
      "abilities": ["Lightning Rod", "Solid Rock", "Reckless"],
      "baseStats": { "hp": 115, "atk": 140, "def": 130, "spa": 55, "spd": 55, "spe": 40 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "weavile",
      "name": "Weavile",
      "spriteId": "weavile",
      "cost": 9,
      "types": ["Dark", "Ice"],
      "abilities": ["Pressure", "Pickpocket"],
      "baseStats": { "hp": 70, "atk": 120, "def": 65, "spa": 45, "spd": 85, "spe": 125 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "armarouge",
      "name": "Armarouge",
      "spriteId": "armarouge",
      "cost": 8,
      "types": ["Fire", "Psychic"],
      "abilities": ["Flash Fire", "Weak Armor"],
      "baseStats": { "hp": 85, "atk": 60, "def": 100, "spa": 125, "spd": 80, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "cinderace",
      "name": "Cinderace",
      "spriteId": "cinderace",
      "cost": 8,
      "types": ["Fire"],
      "abilities": ["Blaze", "Libero"],
      "baseStats": { "hp": 80, "atk": 116, "def": 75, "spa": 65, "spd": 75, "spe": 119 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "floette-eternal",
      "name": "Floette-Eternal",
      "spriteId": "floette-eternal",
      "cost": 8,
      "types": ["Fairy"],
      "abilities": ["Flower Veil", "Symbiosis"],
      "baseStats": { "hp": 74, "atk": 65, "def": 67, "spa": 125, "spd": 128, "spe": 92 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "gengar",
      "name": "Gengar",
      "spriteId": "gengar",
      "cost": 8,
      "types": ["Ghost", "Poison"],
      "abilities": ["Cursed Body"],
      "baseStats": { "hp": 60, "atk": 65, "def": 60, "spa": 130, "spd": 75, "spe": 110 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "lycanroc-dusk",
      "name": "Lycanroc-Dusk",
      "spriteId": "lycanroc-dusk",
      "cost": 8,
      "types": ["Rock"],
      "abilities": ["Tough Claws"],
      "baseStats": { "hp": 75, "atk": 117, "def": 65, "spa": 55, "spd": 65, "spe": 110 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "aggron-mega",
      "name": "Mega Aggron",
      "spriteId": "aggron-mega",
      "cost": 8,
      "types": ["Steel"],
      "abilities": ["Filter"],
      "baseStats": { "hp": 70, "atk": 140, "def": 230, "spa": 60, "spd": 80, "spe": 50 },
      "megaStone": "Aggronite",
      "draftedBy": null
    },
    {
      "id": "alakazam-mega",
      "name": "Mega Alakazam",
      "spriteId": "alakazam-mega",
      "cost": 8,
      "types": ["Psychic"],
      "abilities": ["Trace"],
      "baseStats": { "hp": 55, "atk": 50, "def": 65, "spa": 175, "spd": 105, "spe": 150 },
      "megaStone": "Alakazite",
      "draftedBy": null
    },
    {
      "id": "barbaracle-mega",
      "name": "Mega Barbaracle",
      "spriteId": "barbaracle-mega",
      "cost": 8,
      "types": ["Rock", "Fighting"],
      "abilities": ["Tough Claws"],
      "baseStats": { "hp": 72, "atk": 140, "def": 130, "spa": 64, "spd": 106, "spe": 88 },
      "megaStone": "Barbaracite",
      "draftedBy": null
    },
    {
      "id": "camerupt-mega",
      "name": "Mega Camerupt",
      "spriteId": "camerupt-mega",
      "cost": 8,
      "types": ["Fire", "Ground"],
      "abilities": ["Sheer Force"],
      "baseStats": { "hp": 70, "atk": 120, "def": 100, "spa": 145, "spd": 105, "spe": 20 },
      "megaStone": "Cameruptite",
      "draftedBy": null
    },
    {
      "id": "chesnaught-mega",
      "name": "Mega Chesnaught",
      "spriteId": "chesnaught-mega",
      "cost": 8,
      "types": ["Grass", "Fighting"],
      "abilities": ["Bulletproof"],
      "baseStats": { "hp": 88, "atk": 137, "def": 172, "spa": 74, "spd": 115, "spe": 44 },
      "megaStone": "Chesnaughtite",
      "draftedBy": null
    },
    {
      "id": "crabominable-mega",
      "name": "Mega Crabominable",
      "spriteId": "crabominable-mega",
      "cost": 8,
      "types": ["Fighting", "Ice"],
      "abilities": ["Iron Fist"],
      "baseStats": { "hp": 97, "atk": 157, "def": 122, "spa": 62, "spd": 107, "spe": 33 },
      "megaStone": "Crabominite",
      "draftedBy": null
    },
    {
      "id": "dragalge-mega",
      "name": "Mega Dragalge",
      "spriteId": "dragalge-mega",
      "cost": 8,
      "types": ["Poison", "Dragon"],
      "abilities": ["Regenerator"],
      "baseStats": { "hp": 65, "atk": 85, "def": 105, "spa": 132, "spd": 163, "spe": 44 },
      "megaStone": "Dragalgite",
      "draftedBy": null
    },
    {
      "id": "drampa-mega",
      "name": "Mega Drampa",
      "spriteId": "drampa-mega",
      "cost": 8,
      "types": ["Normal", "Dragon"],
      "abilities": ["Berserk"],
      "baseStats": { "hp": 78, "atk": 85, "def": 110, "spa": 160, "spd": 116, "spe": 36 },
      "megaStone": "Drampanite",
      "draftedBy": null
    },
    {
      "id": "emboar-mega",
      "name": "Mega Emboar",
      "spriteId": "emboar-mega",
      "cost": 8,
      "types": ["Fire", "Fighting"],
      "abilities": ["Mold Breaker"],
      "baseStats": { "hp": 110, "atk": 148, "def": 75, "spa": 110, "spd": 110, "spe": 75 },
      "megaStone": "Emboarite",
      "draftedBy": null
    },
    {
      "id": "gallade-mega",
      "name": "Mega Gallade",
      "spriteId": "gallade-mega",
      "cost": 8,
      "types": ["Psychic", "Fighting"],
      "abilities": ["Inner Focus"],
      "baseStats": { "hp": 68, "atk": 165, "def": 95, "spa": 65, "spd": 115, "spe": 110 },
      "megaStone": "Galladite",
      "draftedBy": null
    },
    {
      "id": "golurk-mega",
      "name": "Mega Golurk",
      "spriteId": "golurk-mega",
      "cost": 8,
      "types": ["Ground", "Ghost"],
      "abilities": ["Unseen Fist"],
      "baseStats": { "hp": 89, "atk": 159, "def": 105, "spa": 70, "spd": 105, "spe": 55 },
      "megaStone": "Golurkite",
      "draftedBy": null
    },
    {
      "id": "hawlucha-mega",
      "name": "Mega Hawlucha",
      "spriteId": "hawlucha-mega",
      "cost": 8,
      "types": ["Fighting", "Flying"],
      "abilities": ["No Guard"],
      "baseStats": { "hp": 78, "atk": 137, "def": 100, "spa": 74, "spd": 93, "spe": 118 },
      "megaStone": "Hawluchanite",
      "draftedBy": null
    },
    {
      "id": "manectric-mega",
      "name": "Mega Manectric",
      "spriteId": "manectric-mega",
      "cost": 8,
      "types": ["Electric"],
      "abilities": ["Intimidate"],
      "baseStats": { "hp": 70, "atk": 75, "def": 80, "spa": 135, "spd": 80, "spe": 135 },
      "megaStone": "Manectite",
      "draftedBy": null
    },
    {
      "id": "medicham-mega",
      "name": "Mega Medicham",
      "spriteId": "medicham-mega",
      "cost": 8,
      "types": ["Fighting", "Psychic"],
      "abilities": ["Pure Power"],
      "baseStats": { "hp": 60, "atk": 100, "def": 85, "spa": 80, "spd": 85, "spe": 100 },
      "megaStone": "Medichamite",
      "draftedBy": null
    },
    {
      "id": "meowstic-f-mega",
      "name": "Mega Meowstic-F",
      "spriteId": "meowstic-fmega",
      "cost": 8,
      "types": ["Psychic"],
      "abilities": ["Trace"],
      "baseStats": { "hp": 74, "atk": 48, "def": 76, "spa": 143, "spd": 101, "spe": 124 },
      "megaStone": "Meowsticite",
      "draftedBy": null
    },
    {
      "id": "scolipede-mega",
      "name": "Mega Scolipede",
      "spriteId": "scolipede-mega",
      "cost": 8,
      "types": ["Bug", "Poison"],
      "abilities": ["Shell Armor"],
      "baseStats": { "hp": 60, "atk": 140, "def": 149, "spa": 75, "spd": 99, "spe": 62 },
      "megaStone": "Scolipite",
      "draftedBy": null
    },
    {
      "id": "slowbro-mega",
      "name": "Mega Slowbro",
      "spriteId": "slowbro-mega",
      "cost": 8,
      "types": ["Water", "Psychic"],
      "abilities": ["Shell Armor"],
      "baseStats": { "hp": 95, "atk": 75, "def": 180, "spa": 130, "spd": 80, "spe": 30 },
      "megaStone": "Slowbronite",
      "draftedBy": null
    },
    {
      "id": "reuniclus",
      "name": "Reuniclus",
      "spriteId": "reuniclus",
      "cost": 8,
      "types": ["Psychic"],
      "abilities": ["Overcoat", "Magic Guard", "Regenerator"],
      "baseStats": { "hp": 110, "atk": 65, "def": 75, "spa": 125, "spd": 85, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "snorlax",
      "name": "Snorlax",
      "spriteId": "snorlax",
      "cost": 8,
      "types": ["Normal"],
      "abilities": ["Immunity", "Thick Fat", "Gluttony"],
      "baseStats": { "hp": 160, "atk": 110, "def": 65, "spa": 65, "spd": 110, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "vanilluxe",
      "name": "Vanilluxe",
      "spriteId": "vanilluxe",
      "cost": 8,
      "types": ["Ice"],
      "abilities": ["Ice Body", "Snow Warning", "Weak Armor"],
      "baseStats": { "hp": 71, "atk": 95, "def": 85, "spa": 110, "spd": 95, "spe": 79 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "vileplume",
      "name": "Vileplume",
      "spriteId": "vileplume",
      "cost": 8,
      "types": ["Grass", "Poison"],
      "abilities": ["Chlorophyll", "Effect Spore"],
      "baseStats": { "hp": 75, "atk": 80, "def": 85, "spa": 110, "spd": 90, "spe": 50 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "conkeldurr",
      "name": "Conkeldurr",
      "spriteId": "conkeldurr",
      "cost": 7,
      "types": ["Fighting"],
      "abilities": ["Guts", "Sheer Force", "Iron Fist"],
      "baseStats": { "hp": 105, "atk": 140, "def": 95, "spa": 55, "spd": 65, "spe": 45 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "empoleon",
      "name": "Empoleon",
      "spriteId": "empoleon",
      "cost": 7,
      "types": ["Water", "Steel"],
      "abilities": ["Torrent", "Competitive"],
      "baseStats": { "hp": 84, "atk": 86, "def": 88, "spa": 111, "spd": 101, "spe": 60 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "espeon",
      "name": "Espeon",
      "spriteId": "espeon",
      "cost": 7,
      "types": ["Psychic"],
      "abilities": ["Synchronize", "Magic Bounce"],
      "baseStats": { "hp": 65, "atk": 65, "def": 60, "spa": 130, "spd": 95, "spe": 110 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "florges",
      "name": "Florges",
      "spriteId": "florges",
      "cost": 7,
      "types": ["Fairy"],
      "abilities": ["Flower Veil", "Symbiosis"],
      "baseStats": { "hp": 78, "atk": 65, "def": 68, "spa": 112, "spd": 154, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "slowbro-galar",
      "name": "Galarian Slowbro",
      "spriteId": "slowbro-galar",
      "cost": 7,
      "types": ["Poison", "Psychic"],
      "abilities": ["Quick Draw", "Own Tempo", "Regenerator"],
      "baseStats": { "hp": 95, "atk": 100, "def": 95, "spa": 100, "spd": 70, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "greninja",
      "name": "Greninja",
      "spriteId": "greninja",
      "cost": 7,
      "types": ["Water", "Dark"],
      "abilities": ["Torrent", "Protean", "Battle Bond"],
      "baseStats": { "hp": 72, "atk": 95, "def": 67, "spa": 103, "spd": 71, "spe": 122 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "hawlucha",
      "name": "Hawlucha",
      "spriteId": "hawlucha",
      "cost": 7,
      "types": ["Fighting", "Flying"],
      "abilities": ["Limber", "Unburden", "Mold Breaker"],
      "baseStats": { "hp": 78, "atk": 92, "def": 75, "spa": 74, "spd": 63, "spe": 118 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "infernape",
      "name": "Infernape",
      "spriteId": "infernape",
      "cost": 7,
      "types": ["Fire", "Fighting"],
      "abilities": ["Blaze", "Iron Fist"],
      "baseStats": { "hp": 76, "atk": 104, "def": 71, "spa": 104, "spd": 71, "spe": 108 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "kangaskhan",
      "name": "Kangaskhan",
      "spriteId": "kangaskhan",
      "cost": 7,
      "types": ["Normal"],
      "abilities": ["Early Bird", "Scrappy", "Inner Focus"],
      "baseStats": { "hp": 105, "atk": 95, "def": 80, "spa": 40, "spd": 80, "spe": 90 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "medicham",
      "name": "Medicham",
      "spriteId": "medicham",
      "cost": 7,
      "types": ["Fighting", "Psychic"],
      "abilities": ["Pure Power", "Telepathy"],
      "baseStats": { "hp": 60, "atk": 60, "def": 75, "spa": 60, "spd": 75, "spe": 80 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "altaria-mega",
      "name": "Mega Altaria",
      "spriteId": "altaria-mega",
      "cost": 7,
      "types": ["Dragon", "Fairy"],
      "abilities": ["Pixilate"],
      "baseStats": { "hp": 75, "atk": 110, "def": 110, "spa": 110, "spd": 105, "spe": 80 },
      "megaStone": "Altarianite",
      "draftedBy": "franchise-3"
    },
    {
      "id": "falinks-mega",
      "name": "Mega Falinks",
      "spriteId": "falinks-mega",
      "cost": 7,
      "types": ["Fighting"],
      "abilities": ["Defiant"],
      "baseStats": { "hp": 65, "atk": 135, "def": 135, "spa": 70, "spd": 65, "spe": 100 },
      "megaStone": "Falinksite",
      "draftedBy": null
    },
    {
      "id": "heracross-mega",
      "name": "Mega Heracross",
      "spriteId": "heracross-mega",
      "cost": 7,
      "types": ["Bug", "Fighting"],
      "abilities": ["Skill Link"],
      "baseStats": { "hp": 80, "atk": 185, "def": 115, "spa": 40, "spd": 105, "spe": 75 },
      "megaStone": "Heracronite",
      "draftedBy": null
    },
    {
      "id": "malamar-mega",
      "name": "Mega Malamar",
      "spriteId": "malamar-mega",
      "cost": 7,
      "types": ["Dark", "Psychic"],
      "abilities": ["Contrary"],
      "baseStats": { "hp": 86, "atk": 102, "def": 88, "spa": 98, "spd": 120, "spe": 88 },
      "megaStone": "Malamarite",
      "draftedBy": null
    },
    {
      "id": "pidgeot-mega",
      "name": "Mega Pidgeot",
      "spriteId": "pidgeot-mega",
      "cost": 7,
      "types": ["Normal", "Flying"],
      "abilities": ["No Guard"],
      "baseStats": { "hp": 83, "atk": 80, "def": 80, "spa": 135, "spd": 80, "spe": 121 },
      "megaStone": "Pidgeotite",
      "draftedBy": null
    },
    {
      "id": "pinsir-mega",
      "name": "Mega Pinsir",
      "spriteId": "pinsir-mega",
      "cost": 7,
      "types": ["Bug", "Flying"],
      "abilities": ["Aerilate"],
      "baseStats": { "hp": 65, "atk": 155, "def": 120, "spa": 65, "spd": 90, "spe": 105 },
      "megaStone": "Pinsirite",
      "draftedBy": null
    },
    {
      "id": "sharpedo-mega",
      "name": "Mega Sharpedo",
      "spriteId": "sharpedo-mega",
      "cost": 7,
      "types": ["Water", "Dark"],
      "abilities": ["Strong Jaw"],
      "baseStats": { "hp": 70, "atk": 140, "def": 70, "spa": 110, "spd": 65, "spe": 105 },
      "megaStone": "Sharpedonite",
      "draftedBy": null
    },
    {
      "id": "victreebel-mega",
      "name": "Mega Victreebel",
      "spriteId": "victreebel-mega",
      "cost": 7,
      "types": ["Grass", "Poison"],
      "abilities": ["Innards Out"],
      "baseStats": { "hp": 80, "atk": 125, "def": 85, "spa": 135, "spd": 95, "spe": 70 },
      "megaStone": "Victreebelite",
      "draftedBy": null
    },
    {
      "id": "orthworm",
      "name": "Orthworm",
      "spriteId": "orthworm",
      "cost": 7,
      "types": ["Steel"],
      "abilities": ["Earth Eater", "Sand Veil"],
      "baseStats": { "hp": 70, "atk": 85, "def": 145, "spa": 60, "spd": 55, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "salazzle",
      "name": "Salazzle",
      "spriteId": "salazzle",
      "cost": 7,
      "types": ["Poison", "Fire"],
      "abilities": ["Corrosion", "Oblivious"],
      "baseStats": { "hp": 68, "atk": 64, "def": 60, "spa": 111, "spd": 60, "spe": 117 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "slowbro",
      "name": "Slowbro",
      "spriteId": "slowbro",
      "cost": 7,
      "types": ["Water", "Psychic"],
      "abilities": ["Oblivious", "Own Tempo", "Regenerator"],
      "baseStats": { "hp": 95, "atk": 75, "def": 110, "spa": 100, "spd": 80, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "slowking",
      "name": "Slowking",
      "spriteId": "slowking",
      "cost": 7,
      "types": ["Water", "Psychic"],
      "abilities": ["Oblivious", "Own Tempo", "Regenerator"],
      "baseStats": { "hp": 95, "atk": 75, "def": 80, "spa": 100, "spd": 110, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "wyrdeer",
      "name": "Wyrdeer",
      "spriteId": "wyrdeer",
      "cost": 7,
      "types": ["Normal", "Psychic"],
      "abilities": ["Intimidate", "Frisk", "Sap Sipper"],
      "baseStats": { "hp": 103, "atk": 105, "def": 72, "spa": 105, "spd": 75, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "abomasnow",
      "name": "Abomasnow",
      "spriteId": "abomasnow",
      "cost": 6,
      "types": ["Grass", "Ice"],
      "abilities": ["Snow Warning", "Soundproof"],
      "baseStats": { "hp": 90, "atk": 92, "def": 75, "spa": 92, "spd": 85, "spe": 60 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "arboliva",
      "name": "Arboliva",
      "spriteId": "arboliva",
      "cost": 6,
      "types": ["Grass", "Normal"],
      "abilities": ["Seed Sower", "Harvest"],
      "baseStats": { "hp": 78, "atk": 69, "def": 90, "spa": 125, "spd": 109, "spe": 39 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "aromatisse",
      "name": "Aromatisse",
      "spriteId": "aromatisse",
      "cost": 6,
      "types": ["Fairy"],
      "abilities": ["Healer", "Aroma Veil"],
      "baseStats": { "hp": 101, "atk": 72, "def": 72, "spa": 99, "spd": 89, "spe": 29 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "blaziken",
      "name": "Blaziken",
      "spriteId": "blaziken",
      "cost": 6,
      "types": ["Fire", "Fighting"],
      "abilities": ["Blaze", "Speed Boost"],
      "baseStats": { "hp": 80, "atk": 120, "def": 70, "spa": 110, "spd": 70, "spe": 80 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "chandelure",
      "name": "Chandelure",
      "spriteId": "chandelure",
      "cost": 6,
      "types": ["Ghost", "Fire"],
      "abilities": ["Flash Fire", "Flame Body", "Infiltrator"],
      "baseStats": { "hp": 60, "atk": 55, "def": 90, "spa": 145, "spd": 90, "spe": 80 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "diggersby",
      "name": "Diggersby",
      "spriteId": "diggersby",
      "cost": 6,
      "types": ["Normal", "Ground"],
      "abilities": ["Pickup", "Cheek Pouch", "Huge Power"],
      "baseStats": { "hp": 85, "atk": 56, "def": 77, "spa": 50, "spd": 77, "spe": 78 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "slowking-galar",
      "name": "Galarian Slowking",
      "spriteId": "slowking-galar",
      "cost": 6,
      "types": ["Poison", "Psychic"],
      "abilities": ["Curious Medicine", "Own Tempo", "Regenerator"],
      "baseStats": { "hp": 95, "atk": 65, "def": 80, "spa": 110, "spd": 110, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "golisopod",
      "name": "Golisopod",
      "spriteId": "golisopod",
      "cost": 6,
      "types": ["Bug", "Water"],
      "abilities": ["Emergency Exit"],
      "baseStats": { "hp": 75, "atk": 125, "def": 140, "spa": 60, "spd": 90, "spe": 40 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "goodra-hisui",
      "name": "Hisuian Goodra",
      "spriteId": "goodra-hisui",
      "cost": 6,
      "types": ["Steel", "Dragon"],
      "abilities": ["Sap Sipper", "Shell Armor", "Gooey"],
      "baseStats": { "hp": 80, "atk": 100, "def": 100, "spa": 110, "spd": 150, "spe": 60 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "houndstone",
      "name": "Houndstone",
      "spriteId": "houndstone",
      "cost": 6,
      "types": ["Ghost"],
      "abilities": ["Sand Rush", "Fluffy"],
      "baseStats": { "hp": 72, "atk": 101, "def": 100, "spa": 50, "spd": 97, "spe": 68 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "hydrapple",
      "name": "Hydrapple",
      "spriteId": "hydrapple",
      "cost": 6,
      "types": ["Grass", "Dragon"],
      "abilities": ["Supersweet Syrup", "Regenerator", "Sticky Hold"],
      "baseStats": { "hp": 106, "atk": 80, "def": 110, "spa": 120, "spd": 80, "spe": 44 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "kleavor",
      "name": "Kleavor",
      "spriteId": "kleavor",
      "cost": 6,
      "types": ["Bug", "Rock"],
      "abilities": ["Swarm", "Sheer Force", "Sharpness"],
      "baseStats": { "hp": 70, "atk": 135, "def": 95, "spa": 45, "spd": 70, "spe": 85 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "lucario",
      "name": "Lucario",
      "spriteId": "lucario",
      "cost": 6,
      "types": ["Fighting", "Steel"],
      "abilities": ["Steadfast", "Inner Focus", "Justified"],
      "baseStats": { "hp": 70, "atk": 110, "def": 70, "spa": 115, "spd": 70, "spe": 90 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "abomasnow-mega",
      "name": "Mega Abomasnow",
      "spriteId": "abomasnow-mega",
      "cost": 6,
      "types": ["Grass", "Ice"],
      "abilities": ["Snow Warning"],
      "baseStats": { "hp": 90, "atk": 132, "def": 105, "spa": 132, "spd": 105, "spe": 30 },
      "megaStone": "Abomasite",
      "draftedBy": null
    },
    {
      "id": "houndoom-mega",
      "name": "Mega Houndoom",
      "spriteId": "houndoom-mega",
      "cost": 6,
      "types": ["Dark", "Fire"],
      "abilities": ["Solar Power"],
      "baseStats": { "hp": 75, "atk": 90, "def": 90, "spa": 140, "spd": 90, "spe": 115 },
      "megaStone": "Houndoominite",
      "draftedBy": null
    },
    {
      "id": "steelix-mega",
      "name": "Mega Steelix",
      "spriteId": "steelix-mega",
      "cost": 6,
      "types": ["Steel", "Ground"],
      "abilities": ["Sand Force"],
      "baseStats": { "hp": 75, "atk": 125, "def": 230, "spa": 55, "spd": 95, "spe": 30 },
      "megaStone": "Steelixite",
      "draftedBy": "franchise-3"
    },
    {
      "id": "mr-mime",
      "name": "Mr. Mime",
      "spriteId": "mrmime",
      "cost": 6,
      "types": ["Psychic", "Fairy"],
      "abilities": ["Soundproof", "Filter", "Technician"],
      "baseStats": { "hp": 40, "atk": 45, "def": 65, "spa": 100, "spd": 120, "spe": 90 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "pangoro",
      "name": "Pangoro",
      "spriteId": "pangoro",
      "cost": 6,
      "types": ["Fighting", "Dark"],
      "abilities": ["Iron Fist", "Mold Breaker", "Scrappy"],
      "baseStats": { "hp": 95, "atk": 124, "def": 78, "spa": 69, "spd": 71, "spe": 58 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "sirfetch-d",
      "name": "Sirfetch’d",
      "spriteId": "sirfetchd",
      "cost": 6,
      "types": ["Fighting"],
      "abilities": ["Steadfast", "Scrappy"],
      "baseStats": { "hp": 62, "atk": 135, "def": 95, "spa": 68, "spd": 82, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "spiritomb",
      "name": "Spiritomb",
      "spriteId": "spiritomb",
      "cost": 6,
      "types": ["Ghost", "Dark"],
      "abilities": ["Pressure", "Infiltrator"],
      "baseStats": { "hp": 50, "atk": 92, "def": 108, "spa": 92, "spd": 108, "spe": 35 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "swampert",
      "name": "Swampert",
      "spriteId": "swampert",
      "cost": 6,
      "types": ["Water", "Ground"],
      "abilities": ["Torrent", "Damp"],
      "baseStats": { "hp": 100, "atk": 110, "def": 90, "spa": 85, "spd": 90, "spe": 60 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "toxtricity",
      "name": "Toxtricity",
      "spriteId": "toxtricity",
      "cost": 6,
      "types": ["Electric", "Poison"],
      "abilities": ["Punk Rock", "Plus", "Technician"],
      "baseStats": { "hp": 75, "atk": 98, "def": 70, "spa": 114, "spd": 70, "spe": 75 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "toxtricity-low-key",
      "name": "Toxtricity-Low-Key",
      "spriteId": "toxtricity-lowkey",
      "cost": 6,
      "types": ["Electric", "Poison"],
      "abilities": ["Punk Rock", "Minus", "Technician"],
      "baseStats": { "hp": 75, "atk": 98, "def": 70, "spa": 114, "spd": 70, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "zoroark",
      "name": "Zoroark",
      "spriteId": "zoroark",
      "cost": 6,
      "types": ["Dark"],
      "abilities": ["Illusion"],
      "baseStats": { "hp": 60, "atk": 105, "def": 60, "spa": 120, "spd": 60, "spe": 105 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "alakazam",
      "name": "Alakazam",
      "spriteId": "alakazam",
      "cost": 5,
      "types": ["Psychic"],
      "abilities": ["Synchronize", "Inner Focus", "Magic Guard"],
      "baseStats": { "hp": 55, "atk": 50, "def": 45, "spa": 135, "spd": 95, "spe": 120 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "raichu-alola",
      "name": "Alolan Raichu",
      "spriteId": "raichu-alola",
      "cost": 5,
      "types": ["Electric", "Psychic"],
      "abilities": ["Surge Surfer"],
      "baseStats": { "hp": 60, "atk": 85, "def": 50, "spa": 95, "spd": 85, "spe": 110 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "charizard",
      "name": "Charizard",
      "spriteId": "charizard",
      "cost": 5,
      "types": ["Fire", "Flying"],
      "abilities": ["Blaze", "Solar Power"],
      "baseStats": { "hp": 78, "atk": 84, "def": 78, "spa": 109, "spd": 85, "spe": 100 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "cofagrigus",
      "name": "Cofagrigus",
      "spriteId": "cofagrigus",
      "cost": 5,
      "types": ["Ghost"],
      "abilities": ["Mummy"],
      "baseStats": { "hp": 58, "atk": 50, "def": 145, "spa": 95, "spd": 105, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "delphox",
      "name": "Delphox",
      "spriteId": "delphox",
      "cost": 5,
      "types": ["Fire", "Psychic"],
      "abilities": ["Blaze", "Magician"],
      "baseStats": { "hp": 75, "atk": 69, "def": 72, "spa": 114, "spd": 100, "spe": 104 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "espathra",
      "name": "Espathra",
      "spriteId": "espathra",
      "cost": 5,
      "types": ["Psychic"],
      "abilities": ["Opportunist", "Frisk", "Speed Boost"],
      "baseStats": { "hp": 95, "atk": 60, "def": 60, "spa": 101, "spd": 60, "spe": 105 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "garganacl",
      "name": "Garganacl",
      "spriteId": "garganacl",
      "cost": 5,
      "types": ["Rock"],
      "abilities": ["Purifying Salt", "Sturdy", "Clear Body"],
      "baseStats": { "hp": 100, "atk": 100, "def": 130, "spa": 45, "spd": 90, "spe": 35 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "glaceon",
      "name": "Glaceon",
      "spriteId": "glaceon",
      "cost": 5,
      "types": ["Ice"],
      "abilities": ["Snow Cloak", "Ice Body"],
      "baseStats": { "hp": 65, "atk": 60, "def": 110, "spa": 130, "spd": 95, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "gourgeist",
      "name": "Gourgeist",
      "spriteId": "gourgeist",
      "cost": 5,
      "types": ["Ghost", "Grass"],
      "abilities": ["Pickup", "Frisk", "Insomnia"],
      "baseStats": { "hp": 65, "atk": 90, "def": 122, "spa": 58, "spd": 75, "spe": 84 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "hippowdon",
      "name": "Hippowdon",
      "spriteId": "hippowdon",
      "cost": 5,
      "types": ["Ground"],
      "abilities": ["Sand Stream", "Sand Force"],
      "baseStats": { "hp": 108, "atk": 112, "def": 118, "spa": 68, "spd": 72, "spe": 47 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "inteleon",
      "name": "Inteleon",
      "spriteId": "inteleon",
      "cost": 5,
      "types": ["Water"],
      "abilities": ["Torrent", "Sniper"],
      "baseStats": { "hp": 70, "atk": 85, "def": 65, "spa": 125, "spd": 65, "spe": 120 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "leafeon",
      "name": "Leafeon",
      "spriteId": "leafeon",
      "cost": 5,
      "types": ["Grass"],
      "abilities": ["Leaf Guard", "Chlorophyll"],
      "baseStats": { "hp": 65, "atk": 110, "def": 130, "spa": 60, "spd": 65, "spe": 95 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "banette-mega",
      "name": "Mega Banette",
      "spriteId": "banette-mega",
      "cost": 5,
      "types": ["Ghost"],
      "abilities": ["Prankster"],
      "baseStats": { "hp": 64, "atk": 165, "def": 75, "spa": 93, "spd": 83, "spe": 75 },
      "megaStone": "Banettite",
      "draftedBy": null
    },
    {
      "id": "beedrill-mega",
      "name": "Mega Beedrill",
      "spriteId": "beedrill-mega",
      "cost": 5,
      "types": ["Bug", "Poison"],
      "abilities": ["Adaptability"],
      "baseStats": { "hp": 65, "atk": 150, "def": 40, "spa": 15, "spd": 80, "spe": 145 },
      "megaStone": "Beedrillite",
      "draftedBy": null
    },
    {
      "id": "mudsdale",
      "name": "Mudsdale",
      "spriteId": "mudsdale",
      "cost": 5,
      "types": ["Ground"],
      "abilities": ["Own Tempo", "Stamina", "Inner Focus"],
      "baseStats": { "hp": 100, "atk": 125, "def": 100, "spa": 55, "spd": 85, "spe": 35 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "perrserker",
      "name": "Perrserker",
      "spriteId": "perrserker",
      "cost": 5,
      "types": ["Steel"],
      "abilities": ["Battle Armor", "Tough Claws", "Steely Spirit"],
      "baseStats": { "hp": 70, "atk": 110, "def": 100, "spa": 50, "spd": 60, "spe": 50 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "persian",
      "name": "Persian",
      "spriteId": "persian",
      "cost": 5,
      "types": ["Normal"],
      "abilities": ["Limber", "Technician", "Unnerve"],
      "baseStats": { "hp": 65, "atk": 70, "def": 60, "spa": 65, "spd": 65, "spe": 115 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "polteageist",
      "name": "Polteageist",
      "spriteId": "polteageist",
      "cost": 5,
      "types": ["Ghost"],
      "abilities": ["Weak Armor", "Cursed Body"],
      "baseStats": { "hp": 60, "atk": 65, "def": 65, "spa": 134, "spd": 114, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "quaquaval",
      "name": "Quaquaval",
      "spriteId": "quaquaval",
      "cost": 5,
      "types": ["Water", "Fighting"],
      "abilities": ["Torrent", "Moxie"],
      "baseStats": { "hp": 85, "atk": 120, "def": 80, "spa": 85, "spd": 75, "spe": 85 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "runerigus",
      "name": "Runerigus",
      "spriteId": "runerigus",
      "cost": 5,
      "types": ["Ground", "Ghost"],
      "abilities": ["Wandering Spirit"],
      "baseStats": { "hp": 58, "atk": 95, "def": 145, "spa": 50, "spd": 105, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "serperior",
      "name": "Serperior",
      "spriteId": "serperior",
      "cost": 5,
      "types": ["Grass"],
      "abilities": ["Overgrow", "Contrary"],
      "baseStats": { "hp": 75, "atk": 75, "def": 95, "spa": 75, "spd": 95, "spe": 113 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "skeledirge",
      "name": "Skeledirge",
      "spriteId": "skeledirge",
      "cost": 5,
      "types": ["Fire", "Ghost"],
      "abilities": ["Blaze", "Unaware"],
      "baseStats": { "hp": 104, "atk": 75, "def": 100, "spa": 110, "spd": 75, "spe": 66 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "toxapex",
      "name": "Toxapex",
      "spriteId": "toxapex",
      "cost": 5,
      "types": ["Poison", "Water"],
      "abilities": ["Merciless", "Limber", "Regenerator"],
      "baseStats": { "hp": 50, "atk": 63, "def": 152, "spa": 53, "spd": 142, "spe": 35 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "typhlosion",
      "name": "Typhlosion",
      "spriteId": "typhlosion",
      "cost": 5,
      "types": ["Fire"],
      "abilities": ["Blaze", "Flash Fire"],
      "baseStats": { "hp": 78, "atk": 84, "def": 78, "spa": 109, "spd": 85, "spe": 100 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "umbreon",
      "name": "Umbreon",
      "spriteId": "umbreon",
      "cost": 5,
      "types": ["Dark"],
      "abilities": ["Synchronize", "Inner Focus"],
      "baseStats": { "hp": 95, "atk": 65, "def": 110, "spa": 60, "spd": 130, "spe": 65 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "vaporeon",
      "name": "Vaporeon",
      "spriteId": "vaporeon",
      "cost": 5,
      "types": ["Water"],
      "abilities": ["Water Absorb", "Hydration"],
      "baseStats": { "hp": 130, "atk": 65, "def": 60, "spa": 110, "spd": 95, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "alcremie",
      "name": "Alcremie",
      "spriteId": "alcremie",
      "cost": 4,
      "types": ["Fairy"],
      "abilities": ["Sweet Veil", "Aroma Veil"],
      "baseStats": { "hp": 65, "atk": 60, "def": 75, "spa": 110, "spd": 121, "spe": 64 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "bellibolt",
      "name": "Bellibolt",
      "spriteId": "bellibolt",
      "cost": 4,
      "types": ["Electric"],
      "abilities": ["Electromorphosis", "Static", "Damp"],
      "baseStats": { "hp": 109, "atk": 64, "def": 91, "spa": 103, "spd": 83, "spe": 45 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "chesnaught",
      "name": "Chesnaught",
      "spriteId": "chesnaught",
      "cost": 4,
      "types": ["Grass", "Fighting"],
      "abilities": ["Overgrow", "Bulletproof"],
      "baseStats": { "hp": 88, "atk": 107, "def": 122, "spa": 74, "spd": 75, "spe": 64 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "clawitzer",
      "name": "Clawitzer",
      "spriteId": "clawitzer",
      "cost": 4,
      "types": ["Water"],
      "abilities": ["Mega Launcher"],
      "baseStats": { "hp": 71, "atk": 73, "def": 88, "spa": 120, "spd": 89, "spe": 59 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "ditto",
      "name": "Ditto",
      "spriteId": "ditto",
      "cost": 4,
      "types": ["Normal"],
      "abilities": ["Limber", "Imposter"],
      "baseStats": { "hp": 48, "atk": 48, "def": 48, "spa": 48, "spd": 48, "spe": 48 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "froslass",
      "name": "Froslass",
      "spriteId": "froslass",
      "cost": 4,
      "types": ["Ice", "Ghost"],
      "abilities": ["Snow Cloak", "Cursed Body"],
      "baseStats": { "hp": 70, "atk": 80, "def": 70, "spa": 80, "spd": 70, "spe": 110 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "golurk",
      "name": "Golurk",
      "spriteId": "golurk",
      "cost": 4,
      "types": ["Ground", "Ghost"],
      "abilities": ["Iron Fist", "Klutz", "No Guard"],
      "baseStats": { "hp": 89, "atk": 124, "def": 80, "spa": 55, "spd": 80, "spe": 55 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "goodra",
      "name": "Goodra",
      "spriteId": "goodra",
      "cost": 4,
      "types": ["Dragon"],
      "abilities": ["Sap Sipper", "Hydration", "Gooey"],
      "baseStats": { "hp": 90, "atk": 100, "def": 70, "spa": 110, "spd": 150, "spe": 80 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "heliolisk",
      "name": "Heliolisk",
      "spriteId": "heliolisk",
      "cost": 4,
      "types": ["Electric", "Normal"],
      "abilities": ["Dry Skin", "Sand Veil", "Solar Power"],
      "baseStats": { "hp": 62, "atk": 55, "def": 52, "spa": 109, "spd": 94, "spe": 109 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "decidueye-hisui",
      "name": "Hisuian Decidueye",
      "spriteId": "decidueye-hisui",
      "cost": 4,
      "types": ["Grass", "Fighting"],
      "abilities": ["Overgrow", "Scrappy"],
      "baseStats": { "hp": 88, "atk": 112, "def": 80, "spa": 95, "spd": 95, "spe": 60 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "samurott-hisui",
      "name": "Hisuian Samurott",
      "spriteId": "samurott-hisui",
      "cost": 4,
      "types": ["Water", "Dark"],
      "abilities": ["Torrent", "Sharpness"],
      "baseStats": { "hp": 90, "atk": 108, "def": 80, "spa": 100, "spd": 65, "spe": 85 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "jolteon",
      "name": "Jolteon",
      "spriteId": "jolteon",
      "cost": 4,
      "types": ["Electric"],
      "abilities": ["Volt Absorb", "Quick Feet"],
      "baseStats": { "hp": 65, "atk": 65, "def": 60, "spa": 110, "spd": 95, "spe": 130 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "luxray",
      "name": "Luxray",
      "spriteId": "luxray",
      "cost": 4,
      "types": ["Electric"],
      "abilities": ["Rivalry", "Intimidate", "Guts"],
      "baseStats": { "hp": 80, "atk": 120, "def": 79, "spa": 95, "spd": 79, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "mabosstiff",
      "name": "Mabosstiff",
      "spriteId": "mabosstiff",
      "cost": 4,
      "types": ["Dark"],
      "abilities": ["Intimidate", "Guard Dog", "Stakeout"],
      "baseStats": { "hp": 80, "atk": 120, "def": 90, "spa": 60, "spd": 70, "spe": 85 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "machamp",
      "name": "Machamp",
      "spriteId": "machamp",
      "cost": 4,
      "types": ["Fighting"],
      "abilities": ["Guts", "No Guard", "Steadfast"],
      "baseStats": { "hp": 90, "atk": 130, "def": 80, "spa": 65, "spd": 85, "spe": 55 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "absol-mega",
      "name": "Mega Absol",
      "spriteId": "absol-mega",
      "cost": 4,
      "types": ["Dark"],
      "abilities": ["Magic Bounce"],
      "baseStats": { "hp": 65, "atk": 150, "def": 60, "spa": 115, "spd": 60, "spe": 115 },
      "megaStone": "Absolite",
      "draftedBy": null
    },
    {
      "id": "ampharos-mega",
      "name": "Mega Ampharos",
      "spriteId": "ampharos-mega",
      "cost": 4,
      "types": ["Electric", "Dragon"],
      "abilities": ["Mold Breaker"],
      "baseStats": { "hp": 90, "atk": 95, "def": 105, "spa": 165, "spd": 110, "spe": 45 },
      "megaStone": "Ampharosite",
      "draftedBy": "franchise-3"
    },
    {
      "id": "glalie-mega",
      "name": "Mega Glalie",
      "spriteId": "glalie-mega",
      "cost": 4,
      "types": ["Ice"],
      "abilities": ["Refrigerate"],
      "baseStats": { "hp": 80, "atk": 120, "def": 80, "spa": 120, "spd": 80, "spe": 100 },
      "megaStone": "Glalitite",
      "draftedBy": "franchise-3"
    },
    {
      "id": "overqwil",
      "name": "Overqwil",
      "spriteId": "overqwil",
      "cost": 4,
      "types": ["Dark", "Poison"],
      "abilities": ["Poison Point", "Swift Swim", "Intimidate"],
      "baseStats": { "hp": 85, "atk": 115, "def": 95, "spa": 65, "spd": 65, "spe": 85 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "pincurchin",
      "name": "Pincurchin",
      "spriteId": "pincurchin",
      "cost": 4,
      "types": ["Electric"],
      "abilities": ["Lightning Rod", "Electric Surge"],
      "baseStats": { "hp": 48, "atk": 101, "def": 95, "spa": 91, "spd": 85, "spe": 15 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "rampardos",
      "name": "Rampardos",
      "spriteId": "rampardos",
      "cost": 4,
      "types": ["Rock"],
      "abilities": ["Mold Breaker", "Sheer Force"],
      "baseStats": { "hp": 97, "atk": 165, "def": 60, "spa": 65, "spd": 50, "spe": 58 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "roserade",
      "name": "Roserade",
      "spriteId": "roserade",
      "cost": 4,
      "types": ["Grass", "Poison"],
      "abilities": ["Natural Cure", "Poison Point", "Technician"],
      "baseStats": { "hp": 60, "atk": 70, "def": 65, "spa": 125, "spd": 105, "spe": 90 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "rotom-frost",
      "name": "Rotom-Frost",
      "spriteId": "rotom-frost",
      "cost": 4,
      "types": ["Electric", "Ice"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 50, "atk": 65, "def": 107, "spa": 105, "spd": 107, "spe": 86 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "squawkabilly",
      "name": "Squawkabilly",
      "spriteId": "squawkabilly",
      "cost": 4,
      "types": ["Normal", "Flying"],
      "abilities": ["Intimidate", "Hustle", "Guts"],
      "baseStats": { "hp": 82, "atk": 96, "def": 51, "spa": 45, "spd": 51, "spe": 92 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "squawkabilly-blue",
      "name": "Squawkabilly-Blue",
      "spriteId": "squawkabilly-blue",
      "cost": 4,
      "types": ["Normal", "Flying"],
      "abilities": ["Intimidate", "Hustle", "Guts"],
      "baseStats": { "hp": 82, "atk": 96, "def": 51, "spa": 45, "spd": 51, "spe": 92 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "squawkabilly-white",
      "name": "Squawkabilly-White",
      "spriteId": "squawkabilly-white",
      "cost": 4,
      "types": ["Normal", "Flying"],
      "abilities": ["Intimidate", "Hustle", "Sheer Force"],
      "baseStats": { "hp": 82, "atk": 96, "def": 51, "spa": 45, "spd": 51, "spe": 92 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "squawkabilly-yellow",
      "name": "Squawkabilly-Yellow",
      "spriteId": "squawkabilly-yellow",
      "cost": 4,
      "types": ["Normal", "Flying"],
      "abilities": ["Intimidate", "Hustle", "Sheer Force"],
      "baseStats": { "hp": 82, "atk": 96, "def": 51, "spa": 45, "spd": 51, "spe": 92 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "starmie",
      "name": "Starmie",
      "spriteId": "starmie",
      "cost": 4,
      "types": ["Water", "Psychic"],
      "abilities": ["Illuminate", "Natural Cure", "Analytic"],
      "baseStats": { "hp": 60, "atk": 75, "def": 85, "spa": 100, "spd": 85, "spe": 115 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "torterra",
      "name": "Torterra",
      "spriteId": "torterra",
      "cost": 4,
      "types": ["Grass", "Ground"],
      "abilities": ["Overgrow", "Shell Armor"],
      "baseStats": { "hp": 95, "atk": 109, "def": 105, "spa": 75, "spd": 85, "spe": 56 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "toxicroak",
      "name": "Toxicroak",
      "spriteId": "toxicroak",
      "cost": 4,
      "types": ["Poison", "Fighting"],
      "abilities": ["Anticipation", "Dry Skin", "Poison Touch"],
      "baseStats": { "hp": 83, "atk": 106, "def": 65, "spa": 86, "spd": 65, "spe": 85 },
      "megaStone": null,
      "draftedBy": "franchise-3"
    },
    {
      "id": "tyrantrum",
      "name": "Tyrantrum",
      "spriteId": "tyrantrum",
      "cost": 4,
      "types": ["Rock", "Dragon"],
      "abilities": ["Strong Jaw", "Rock Head"],
      "baseStats": { "hp": 82, "atk": 121, "def": 119, "spa": 69, "spd": 59, "spe": 71 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "audino",
      "name": "Audino",
      "spriteId": "audino",
      "cost": 3,
      "types": ["Normal"],
      "abilities": ["Healer", "Regenerator", "Klutz"],
      "baseStats": { "hp": 103, "atk": 60, "def": 86, "spa": 60, "spd": 86, "spe": 50 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "aurorus",
      "name": "Aurorus",
      "spriteId": "aurorus",
      "cost": 3,
      "types": ["Rock", "Ice"],
      "abilities": ["Refrigerate", "Snow Warning"],
      "baseStats": { "hp": 123, "atk": 77, "def": 72, "spa": 99, "spd": 92, "spe": 58 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "barbaracle",
      "name": "Barbaracle",
      "spriteId": "barbaracle",
      "cost": 3,
      "types": ["Rock", "Water"],
      "abilities": ["Tough Claws", "Sniper", "Pickpocket"],
      "baseStats": { "hp": 72, "atk": 105, "def": 115, "spa": 54, "spd": 86, "spe": 68 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "beartic",
      "name": "Beartic",
      "spriteId": "beartic",
      "cost": 3,
      "types": ["Ice"],
      "abilities": ["Snow Cloak", "Slush Rush", "Swift Swim"],
      "baseStats": { "hp": 95, "atk": 130, "def": 80, "spa": 70, "spd": 80, "spe": 50 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "crabominable",
      "name": "Crabominable",
      "spriteId": "crabominable",
      "cost": 3,
      "types": ["Fighting", "Ice"],
      "abilities": ["Hyper Cutter", "Iron Fist", "Anger Point"],
      "baseStats": { "hp": 97, "atk": 132, "def": 77, "spa": 62, "spd": 67, "spe": 43 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "decidueye",
      "name": "Decidueye",
      "spriteId": "decidueye",
      "cost": 3,
      "types": ["Grass", "Ghost"],
      "abilities": ["Overgrow", "Long Reach"],
      "baseStats": { "hp": 78, "atk": 107, "def": 75, "spa": 100, "spd": 100, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "dragalge",
      "name": "Dragalge",
      "spriteId": "dragalge",
      "cost": 3,
      "types": ["Poison", "Dragon"],
      "abilities": ["Poison Point", "Poison Touch", "Adaptability"],
      "baseStats": { "hp": 65, "atk": 75, "def": 90, "spa": 97, "spd": 123, "spe": 44 },
      "megaStone": null,
      "draftedBy": "franchise-1"
    },
    {
      "id": "drampa",
      "name": "Drampa",
      "spriteId": "drampa",
      "cost": 3,
      "types": ["Normal", "Dragon"],
      "abilities": ["Berserk", "Sap Sipper", "Cloud Nine"],
      "baseStats": { "hp": 78, "atk": 60, "def": 85, "spa": 135, "spd": 91, "spe": 36 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "eelektross",
      "name": "Eelektross",
      "spriteId": "eelektross",
      "cost": 3,
      "types": ["Electric"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 85, "atk": 115, "def": 80, "spa": 105, "spd": 80, "spe": 50 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "emboar",
      "name": "Emboar",
      "spriteId": "emboar",
      "cost": 3,
      "types": ["Fire", "Fighting"],
      "abilities": ["Blaze", "Reckless"],
      "baseStats": { "hp": 110, "atk": 123, "def": 65, "spa": 100, "spd": 65, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "feraligatr",
      "name": "Feraligatr",
      "spriteId": "feraligatr",
      "cost": 3,
      "types": ["Water"],
      "abilities": ["Torrent", "Sheer Force"],
      "baseStats": { "hp": 85, "atk": 105, "def": 100, "spa": 79, "spd": 83, "spe": 78 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "flapple",
      "name": "Flapple",
      "spriteId": "flapple",
      "cost": 3,
      "types": ["Grass", "Dragon"],
      "abilities": ["Ripen", "Gluttony", "Hustle"],
      "baseStats": { "hp": 70, "atk": 110, "def": 80, "spa": 95, "spd": 60, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "flareon",
      "name": "Flareon",
      "spriteId": "flareon",
      "cost": 3,
      "types": ["Fire"],
      "abilities": ["Flash Fire", "Guts"],
      "baseStats": { "hp": 65, "atk": 130, "def": 60, "spa": 95, "spd": 110, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "gliscor",
      "name": "Gliscor",
      "spriteId": "gliscor",
      "cost": 3,
      "types": ["Ground", "Flying"],
      "abilities": ["Hyper Cutter", "Sand Veil", "Poison Heal"],
      "baseStats": { "hp": 75, "atk": 95, "def": 125, "spa": 45, "spd": 75, "spe": 95 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "gogoat",
      "name": "Gogoat",
      "spriteId": "gogoat",
      "cost": 3,
      "types": ["Grass"],
      "abilities": ["Sap Sipper", "Grass Pelt"],
      "baseStats": { "hp": 123, "atk": 100, "def": 62, "spa": 97, "spd": 81, "spe": 68 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "heracross",
      "name": "Heracross",
      "spriteId": "heracross",
      "cost": 3,
      "types": ["Bug", "Fighting"],
      "abilities": ["Swarm", "Guts", "Moxie"],
      "baseStats": { "hp": 80, "atk": 125, "def": 75, "spa": 40, "spd": 95, "spe": 85 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "lycanroc",
      "name": "Lycanroc-Midday",
      "spriteId": "lycanroc",
      "cost": 3,
      "types": ["Rock"],
      "abilities": ["Keen Eye", "Sand Rush", "Steadfast"],
      "baseStats": { "hp": 75, "atk": 115, "def": 65, "spa": 55, "spd": 65, "spe": 112 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "malamar",
      "name": "Malamar",
      "spriteId": "malamar",
      "cost": 3,
      "types": ["Dark", "Psychic"],
      "abilities": ["Contrary", "Suction Cups", "Infiltrator"],
      "baseStats": { "hp": 86, "atk": 92, "def": 88, "spa": 68, "spd": 75, "spe": 73 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "audino-mega",
      "name": "Mega Audino",
      "spriteId": "audino-mega",
      "cost": 3,
      "types": ["Normal", "Fairy"],
      "abilities": ["Healer"],
      "baseStats": { "hp": 103, "atk": 60, "def": 126, "spa": 80, "spd": 126, "spe": 50 },
      "megaStone": "Audinite",
      "draftedBy": null
    },
    {
      "id": "mr-rime",
      "name": "Mr. Rime",
      "spriteId": "mrrime",
      "cost": 3,
      "types": ["Ice", "Psychic"],
      "abilities": ["Tangled Feet", "Screen Cleaner", "Ice Body"],
      "baseStats": { "hp": 80, "atk": 85, "def": 75, "spa": 110, "spd": 100, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "musharna",
      "name": "Musharna",
      "spriteId": "musharna",
      "cost": 3,
      "types": ["Psychic"],
      "abilities": ["Forewarn", "Synchronize", "Telepathy"],
      "baseStats": { "hp": 116, "atk": 55, "def": 85, "spa": 107, "spd": 95, "spe": 29 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "tauros-paldea-combat",
      "name": "Paldean Tauros",
      "spriteId": "tauros-paldeacombat",
      "cost": 3,
      "types": ["Fighting"],
      "abilities": ["Intimidate", "Anger Point", "Cud Chew"],
      "baseStats": { "hp": 75, "atk": 110, "def": 105, "spa": 30, "spd": 70, "spe": 100 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "passimian",
      "name": "Passimian",
      "spriteId": "passimian",
      "cost": 3,
      "types": ["Fighting"],
      "abilities": ["Receiver", "Defiant"],
      "baseStats": { "hp": 100, "atk": 120, "def": 90, "spa": 40, "spd": 60, "spe": 80 },
      "megaStone": null,
      "draftedBy": "franchise-7"
    },
    {
      "id": "sceptile",
      "name": "Sceptile",
      "spriteId": "sceptile",
      "cost": 3,
      "types": ["Grass"],
      "abilities": ["Overgrow", "Unburden"],
      "baseStats": { "hp": 70, "atk": 85, "def": 65, "spa": 105, "spd": 85, "spe": 120 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "scolipede",
      "name": "Scolipede",
      "spriteId": "scolipede",
      "cost": 3,
      "types": ["Bug", "Poison"],
      "abilities": ["Poison Point", "Swarm", "Speed Boost"],
      "baseStats": { "hp": 60, "atk": 100, "def": 89, "spa": 55, "spd": 69, "spe": 112 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "scovillain",
      "name": "Scovillain",
      "spriteId": "scovillain",
      "cost": 3,
      "types": ["Grass", "Fire"],
      "abilities": ["Chlorophyll", "Insomnia", "Moody"],
      "baseStats": { "hp": 65, "atk": 108, "def": 65, "spa": 108, "spd": 65, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "scrafty",
      "name": "Scrafty",
      "spriteId": "scrafty",
      "cost": 3,
      "types": ["Dark", "Fighting"],
      "abilities": ["Shed Skin", "Moxie", "Intimidate"],
      "baseStats": { "hp": 65, "atk": 90, "def": 115, "spa": 45, "spd": 115, "spe": 58 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "skarmory",
      "name": "Skarmory",
      "spriteId": "skarmory",
      "cost": 3,
      "types": ["Steel", "Flying"],
      "abilities": ["Keen Eye", "Sturdy", "Weak Armor"],
      "baseStats": { "hp": 65, "atk": 80, "def": 140, "spa": 40, "spd": 70, "spe": 70 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "thievul",
      "name": "Thievul",
      "spriteId": "thievul",
      "cost": 3,
      "types": ["Dark"],
      "abilities": ["Run Away", "Unburden", "Stakeout"],
      "baseStats": { "hp": 70, "atk": 58, "def": 58, "spa": 87, "spd": 92, "spe": 90 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "trevenant",
      "name": "Trevenant",
      "spriteId": "trevenant",
      "cost": 3,
      "types": ["Ghost", "Grass"],
      "abilities": ["Natural Cure", "Frisk", "Harvest"],
      "baseStats": { "hp": 85, "atk": 110, "def": 76, "spa": 65, "spd": 82, "spe": 56 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "victreebel",
      "name": "Victreebel",
      "spriteId": "victreebel",
      "cost": 3,
      "types": ["Grass", "Poison"],
      "abilities": ["Chlorophyll", "Gluttony"],
      "baseStats": { "hp": 80, "atk": 105, "def": 65, "spa": 100, "spd": 70, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "wigglytuff",
      "name": "Wigglytuff",
      "spriteId": "wigglytuff",
      "cost": 3,
      "types": ["Normal", "Fairy"],
      "abilities": ["Cute Charm", "Competitive", "Frisk"],
      "baseStats": { "hp": 140, "atk": 70, "def": 45, "spa": 85, "spd": 50, "spe": 45 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "aggron",
      "name": "Aggron",
      "spriteId": "aggron",
      "cost": 2,
      "types": ["Steel", "Rock"],
      "abilities": ["Sturdy", "Rock Head", "Heavy Metal"],
      "baseStats": { "hp": 70, "atk": 110, "def": 180, "spa": 60, "spd": 60, "spe": 50 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "arbok",
      "name": "Arbok",
      "spriteId": "arbok",
      "cost": 2,
      "types": ["Poison"],
      "abilities": ["Intimidate", "Shed Skin", "Unnerve"],
      "baseStats": { "hp": 60, "atk": 95, "def": 69, "spa": 65, "spd": 79, "spe": 80 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "ariados",
      "name": "Ariados",
      "spriteId": "ariados",
      "cost": 2,
      "types": ["Bug", "Poison"],
      "abilities": ["Swarm", "Insomnia", "Sniper"],
      "baseStats": { "hp": 70, "atk": 90, "def": 70, "spa": 60, "spd": 70, "spe": 40 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "bastiodon",
      "name": "Bastiodon",
      "spriteId": "bastiodon",
      "cost": 2,
      "types": ["Rock", "Steel"],
      "abilities": ["Sturdy", "Soundproof"],
      "baseStats": { "hp": 60, "atk": 52, "def": 168, "spa": 47, "spd": 138, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "falinks",
      "name": "Falinks",
      "spriteId": "falinks",
      "cost": 2,
      "types": ["Fighting"],
      "abilities": ["Battle Armor", "Defiant"],
      "baseStats": { "hp": 65, "atk": 100, "def": 100, "spa": 70, "spd": 60, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "grapploct",
      "name": "Grapploct",
      "spriteId": "grapploct",
      "cost": 2,
      "types": ["Fighting"],
      "abilities": ["Limber", "Technician"],
      "baseStats": { "hp": 80, "atk": 118, "def": 90, "spa": 70, "spd": 80, "spe": 42 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "mawile",
      "name": "Mawile",
      "spriteId": "mawile",
      "cost": 2,
      "types": ["Steel", "Fairy"],
      "abilities": ["Hyper Cutter", "Intimidate", "Sheer Force"],
      "baseStats": { "hp": 50, "atk": 85, "def": 85, "spa": 55, "spd": 55, "spe": 50 },
      "megaStone": null,
      "draftedBy": "franchise-0"
    },
    {
      "id": "meowstic-f",
      "name": "Meowstic-Female",
      "spriteId": "meowstic-f",
      "cost": 2,
      "types": ["Psychic"],
      "abilities": ["Keen Eye", "Infiltrator", "Competitive"],
      "baseStats": { "hp": 74, "atk": 48, "def": 76, "spa": 83, "spd": 81, "spe": 104 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "morpeko",
      "name": "Morpeko",
      "spriteId": "morpeko",
      "cost": 2,
      "types": ["Electric", "Dark"],
      "abilities": ["Hunger Switch"],
      "baseStats": { "hp": 58, "atk": 95, "def": 58, "spa": 70, "spd": 58, "spe": 97 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "pyroar",
      "name": "Pyroar",
      "spriteId": "pyroar",
      "cost": 2,
      "types": ["Fire", "Normal"],
      "abilities": ["Rivalry", "Unnerve", "Moxie"],
      "baseStats": { "hp": 86, "atk": 68, "def": 72, "spa": 109, "spd": 66, "spe": 106 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "qwilfish",
      "name": "Qwilfish",
      "spriteId": "qwilfish",
      "cost": 2,
      "types": ["Water", "Poison"],
      "abilities": ["Poison Point", "Swift Swim", "Intimidate"],
      "baseStats": { "hp": 65, "atk": 95, "def": 85, "spa": 55, "spd": 55, "spe": 85 },
      "megaStone": null,
      "draftedBy": "franchise-6"
    },
    {
      "id": "rotom",
      "name": "Rotom",
      "spriteId": "rotom",
      "cost": 2,
      "types": ["Electric", "Ghost"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 50, "atk": 50, "def": 77, "spa": 95, "spd": 77, "spe": 91 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "rotom-fan",
      "name": "Rotom-Fan",
      "spriteId": "rotom-fan",
      "cost": 2,
      "types": ["Electric", "Flying"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 50, "atk": 65, "def": 107, "spa": 105, "spd": 107, "spe": 86 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "sandaconda",
      "name": "Sandaconda",
      "spriteId": "sandaconda",
      "cost": 2,
      "types": ["Ground"],
      "abilities": ["Sand Spit", "Shed Skin", "Sand Veil"],
      "baseStats": { "hp": 72, "atk": 107, "def": 125, "spa": 65, "spd": 70, "spe": 71 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "sharpedo",
      "name": "Sharpedo",
      "spriteId": "sharpedo",
      "cost": 2,
      "types": ["Water", "Dark"],
      "abilities": ["Rough Skin", "Speed Boost"],
      "baseStats": { "hp": 70, "atk": 120, "def": 40, "spa": 95, "spd": 40, "spe": 95 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "slurpuff",
      "name": "Slurpuff",
      "spriteId": "slurpuff",
      "cost": 2,
      "types": ["Fairy"],
      "abilities": ["Sweet Veil", "Unburden"],
      "baseStats": { "hp": 82, "atk": 80, "def": 86, "spa": 85, "spd": 75, "spe": 72 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "steelix",
      "name": "Steelix",
      "spriteId": "steelix",
      "cost": 2,
      "types": ["Steel", "Ground"],
      "abilities": ["Rock Head", "Sturdy", "Sheer Force"],
      "baseStats": { "hp": 75, "atk": 85, "def": 200, "spa": 55, "spd": 65, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "swalot",
      "name": "Swalot",
      "spriteId": "swalot",
      "cost": 2,
      "types": ["Poison"],
      "abilities": ["Liquid Ooze", "Sticky Hold", "Gluttony"],
      "baseStats": { "hp": 100, "atk": 73, "def": 83, "spa": 73, "spd": 83, "spe": 55 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "tauros",
      "name": "Tauros",
      "spriteId": "tauros",
      "cost": 2,
      "types": ["Normal"],
      "abilities": ["Intimidate", "Anger Point", "Sheer Force"],
      "baseStats": { "hp": 75, "atk": 100, "def": 95, "spa": 40, "spd": 70, "spe": 110 },
      "megaStone": null,
      "draftedBy": "franchise-4"
    },
    {
      "id": "absol",
      "name": "Absol",
      "spriteId": "absol",
      "cost": 1,
      "types": ["Dark"],
      "abilities": ["Pressure", "Super Luck", "Justified"],
      "baseStats": { "hp": 65, "atk": 130, "def": 60, "spa": 75, "spd": 60, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "altaria",
      "name": "Altaria",
      "spriteId": "altaria",
      "cost": 1,
      "types": ["Dragon", "Flying"],
      "abilities": ["Natural Cure", "Cloud Nine"],
      "baseStats": { "hp": 75, "atk": 70, "def": 90, "spa": 70, "spd": 105, "spe": 80 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "ampharos",
      "name": "Ampharos",
      "spriteId": "ampharos",
      "cost": 1,
      "types": ["Electric"],
      "abilities": ["Static", "Plus"],
      "baseStats": { "hp": 90, "atk": 75, "def": 85, "spa": 115, "spd": 90, "spe": 55 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "appletun",
      "name": "Appletun",
      "spriteId": "appletun",
      "cost": 1,
      "types": ["Grass", "Dragon"],
      "abilities": ["Ripen", "Gluttony", "Thick Fat"],
      "baseStats": { "hp": 110, "atk": 85, "def": 80, "spa": 100, "spd": 80, "spe": 30 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "avalugg",
      "name": "Avalugg",
      "spriteId": "avalugg",
      "cost": 1,
      "types": ["Ice"],
      "abilities": ["Own Tempo", "Ice Body", "Sturdy"],
      "baseStats": { "hp": 95, "atk": 117, "def": 184, "spa": 44, "spd": 46, "spe": 28 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "banette",
      "name": "Banette",
      "spriteId": "banette",
      "cost": 1,
      "types": ["Ghost"],
      "abilities": ["Insomnia", "Frisk", "Cursed Body"],
      "baseStats": { "hp": 64, "atk": 115, "def": 65, "spa": 83, "spd": 63, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "beedrill",
      "name": "Beedrill",
      "spriteId": "beedrill",
      "cost": 1,
      "types": ["Bug", "Poison"],
      "abilities": ["Swarm", "Sniper"],
      "baseStats": { "hp": 65, "atk": 90, "def": 40, "spa": 45, "spd": 80, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "camerupt",
      "name": "Camerupt",
      "spriteId": "camerupt",
      "cost": 1,
      "types": ["Fire", "Ground"],
      "abilities": ["Magma Armor", "Solid Rock", "Anger Point"],
      "baseStats": { "hp": 70, "atk": 100, "def": 70, "spa": 105, "spd": 75, "spe": 40 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "castform",
      "name": "Castform",
      "spriteId": "castform",
      "cost": 1,
      "types": ["Normal"],
      "abilities": ["Forecast"],
      "baseStats": { "hp": 70, "atk": 70, "def": 70, "spa": 70, "spd": 70, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "chimecho",
      "name": "Chimecho",
      "spriteId": "chimecho",
      "cost": 1,
      "types": ["Psychic"],
      "abilities": ["Levitate"],
      "baseStats": { "hp": 75, "atk": 50, "def": 80, "spa": 95, "spd": 90, "spe": 65 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "dedenne",
      "name": "Dedenne",
      "spriteId": "dedenne",
      "cost": 1,
      "types": ["Electric", "Fairy"],
      "abilities": ["Cheek Pouch", "Pickup", "Plus"],
      "baseStats": { "hp": 67, "atk": 58, "def": 57, "spa": 81, "spd": 67, "spe": 101 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "emolga",
      "name": "Emolga",
      "spriteId": "emolga",
      "cost": 1,
      "types": ["Electric", "Flying"],
      "abilities": ["Static", "Motor Drive"],
      "baseStats": { "hp": 55, "atk": 75, "def": 60, "spa": 75, "spd": 60, "spe": 103 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "farfetch-d",
      "name": "Farfetch’d",
      "spriteId": "farfetchd",
      "cost": 1,
      "types": ["Normal", "Flying"],
      "abilities": ["Keen Eye", "Inner Focus", "Defiant"],
      "baseStats": { "hp": 52, "atk": 90, "def": 55, "spa": 58, "spd": 62, "spe": 60 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "forretress",
      "name": "Forretress",
      "spriteId": "forretress",
      "cost": 1,
      "types": ["Bug", "Steel"],
      "abilities": ["Sturdy", "Overcoat"],
      "baseStats": { "hp": 75, "atk": 90, "def": 140, "spa": 60, "spd": 60, "spe": 40 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "furfrou",
      "name": "Furfrou",
      "spriteId": "furfrou",
      "cost": 1,
      "types": ["Normal"],
      "abilities": ["Fur Coat"],
      "baseStats": { "hp": 75, "atk": 80, "def": 60, "spa": 65, "spd": 90, "spe": 102 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "stunfisk-galar",
      "name": "Galarian Stunfisk",
      "spriteId": "stunfisk-galar",
      "cost": 1,
      "types": ["Ground", "Steel"],
      "abilities": ["Mimicry"],
      "baseStats": { "hp": 109, "atk": 81, "def": 99, "spa": 66, "spd": 84, "spe": 32 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "garbodor",
      "name": "Garbodor",
      "spriteId": "garbodor",
      "cost": 1,
      "types": ["Poison"],
      "abilities": ["Stench", "Weak Armor", "Aftermath"],
      "baseStats": { "hp": 80, "atk": 95, "def": 82, "spa": 60, "spd": 82, "spe": 75 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "glalie",
      "name": "Glalie",
      "spriteId": "glalie",
      "cost": 1,
      "types": ["Ice"],
      "abilities": ["Inner Focus", "Ice Body", "Moody"],
      "baseStats": { "hp": 80, "atk": 80, "def": 80, "spa": 80, "spd": 80, "spe": 80 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "avalugg-hisui",
      "name": "Hisuian Avalugg",
      "spriteId": "avalugg-hisui",
      "cost": 1,
      "types": ["Ice", "Rock"],
      "abilities": ["Strong Jaw", "Ice Body", "Sturdy"],
      "baseStats": { "hp": 95, "atk": 127, "def": 184, "spa": 34, "spd": 36, "spe": 38 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "houndoom",
      "name": "Houndoom",
      "spriteId": "houndoom",
      "cost": 1,
      "types": ["Dark", "Fire"],
      "abilities": ["Early Bird", "Flash Fire", "Unnerve"],
      "baseStats": { "hp": 75, "atk": 90, "def": 50, "spa": 110, "spd": 80, "spe": 95 },
      "megaStone": null,
      "draftedBy": "franchise-2"
    },
    {
      "id": "lopunny",
      "name": "Lopunny",
      "spriteId": "lopunny",
      "cost": 1,
      "types": ["Normal"],
      "abilities": ["Cute Charm", "Klutz", "Limber"],
      "baseStats": { "hp": 65, "atk": 76, "def": 84, "spa": 54, "spd": 96, "spe": 105 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "lycanroc-midnight",
      "name": "Lycanroc-Midnight",
      "spriteId": "lycanroc-midnight",
      "cost": 1,
      "types": ["Rock"],
      "abilities": ["Keen Eye", "Vital Spirit", "No Guard"],
      "baseStats": { "hp": 85, "atk": 115, "def": 75, "spa": 55, "spd": 75, "spe": 82 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "manectric",
      "name": "Manectric",
      "spriteId": "manectric",
      "cost": 1,
      "types": ["Electric"],
      "abilities": ["Static", "Lightning Rod", "Minus"],
      "baseStats": { "hp": 70, "atk": 75, "def": 60, "spa": 105, "spd": 60, "spe": 105 },
      "megaStone": null,
      "draftedBy": "franchise-5"
    },
    {
      "id": "meganium",
      "name": "Meganium",
      "spriteId": "meganium",
      "cost": 1,
      "types": ["Grass"],
      "abilities": ["Overgrow", "Leaf Guard"],
      "baseStats": { "hp": 80, "atk": 82, "def": 100, "spa": 83, "spd": 100, "spe": 80 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "pidgeot",
      "name": "Pidgeot",
      "spriteId": "pidgeot",
      "cost": 1,
      "types": ["Normal", "Flying"],
      "abilities": ["Keen Eye", "Tangled Feet", "Big Pecks"],
      "baseStats": { "hp": 83, "atk": 80, "def": 75, "spa": 70, "spd": 70, "spe": 101 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "pikachu",
      "name": "Pikachu",
      "spriteId": "pikachu",
      "cost": 1,
      "types": ["Electric"],
      "abilities": ["Static", "Lightning Rod"],
      "baseStats": { "hp": 35, "atk": 55, "def": 40, "spa": 50, "spd": 50, "spe": 90 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "pinsir",
      "name": "Pinsir",
      "spriteId": "pinsir",
      "cost": 1,
      "types": ["Bug"],
      "abilities": ["Hyper Cutter", "Mold Breaker", "Moxie"],
      "baseStats": { "hp": 65, "atk": 125, "def": 100, "spa": 55, "spd": 70, "spe": 85 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "samurott",
      "name": "Samurott",
      "spriteId": "samurott",
      "cost": 1,
      "types": ["Water"],
      "abilities": ["Torrent", "Shell Armor"],
      "baseStats": { "hp": 95, "atk": 100, "def": 85, "spa": 108, "spd": 70, "spe": 70 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "simipour",
      "name": "Simipour",
      "spriteId": "simipour",
      "cost": 1,
      "types": ["Water"],
      "abilities": ["Gluttony", "Torrent"],
      "baseStats": { "hp": 75, "atk": 98, "def": 63, "spa": 98, "spd": 63, "spe": 101 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "simisage",
      "name": "Simisage",
      "spriteId": "simisage",
      "cost": 1,
      "types": ["Grass"],
      "abilities": ["Gluttony", "Overgrow"],
      "baseStats": { "hp": 75, "atk": 98, "def": 63, "spa": 98, "spd": 63, "spe": 101 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "simisear",
      "name": "Simisear",
      "spriteId": "simisear",
      "cost": 1,
      "types": ["Fire"],
      "abilities": ["Gluttony", "Blaze"],
      "baseStats": { "hp": 75, "atk": 98, "def": 63, "spa": 98, "spd": 63, "spe": 101 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "stunfisk",
      "name": "Stunfisk",
      "spriteId": "stunfisk",
      "cost": 1,
      "types": ["Ground", "Electric"],
      "abilities": ["Static", "Limber", "Sand Veil"],
      "baseStats": { "hp": 109, "atk": 66, "def": 84, "spa": 81, "spd": 99, "spe": 32 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "toucannon",
      "name": "Toucannon",
      "spriteId": "toucannon",
      "cost": 1,
      "types": ["Normal", "Flying"],
      "abilities": ["Keen Eye", "Skill Link", "Sheer Force"],
      "baseStats": { "hp": 80, "atk": 120, "def": 75, "spa": 75, "spd": 75, "spe": 60 },
      "megaStone": null,
      "draftedBy": null
    },
    {
      "id": "watchog",
      "name": "Watchog",
      "spriteId": "watchog",
      "cost": 1,
      "types": ["Normal"],
      "abilities": ["Illuminate", "Keen Eye", "Analytic"],
      "baseStats": { "hp": 60, "atk": 85, "def": 69, "spa": 60, "spd": 69, "spe": 77 },
      "megaStone": null,
      "draftedBy": null
    }
  ],
  "draft": {
    "picks": [
      {
        "overall": 1,
        "round": 1,
        "franchiseId": "franchise-0",
        "pokemon": {
          "id": "incineroar",
          "name": "Incineroar",
          "spriteId": "incineroar",
          "cost": 18
        },
        "rationale": "Pick 1 overall: Incineroar is the most splashable VGC glue (Intimidate+Fake Out+Parting Shot+Knock, resists Ghost for Mega Gengar meta) with no cheap replacement, fits any archetype and leaves mega slot open."
      },
      {
        "overall": 2,
        "round": 1,
        "franchiseId": "franchise-1",
        "pokemon": {
          "id": "salamence-mega",
          "name": "Mega Salamence",
          "spriteId": "salamence-mega",
          "cost": 20
        },
        "rationale": "Best mega on the board for doubles: Intimidate on entry, then Aerilate Hyper Voice (135 effective STAB spread, bypasses Substitute) or Double-Edge; 95/130/90 bulk and 120 Spe let it Mega Evolve turn 1 safely. Flexes into any core; locks the premier mega before the other 7 coaches."
      },
      {
        "overall": 3,
        "round": 1,
        "franchiseId": "franchise-2",
        "pokemon": { "id": "rillaboom", "name": "Rillaboom", "spriteId": "rillaboom", "cost": 19 },
        "rationale": "Only Grassy Surge on the board, plus Fake Out, Knock Off, U-turn, and Grassy Glide. Incineroar is already gone, so this is the best remaining enabler and it still functions as a win condition. Nothing else at 19 is this hard to replace later."
      },
      {
        "overall": 4,
        "round": 1,
        "franchiseId": "franchise-3",
        "pokemon": {
          "id": "gengar-mega",
          "name": "Mega Gengar",
          "spriteId": "gengar-mega",
          "cost": 18
        },
        "rationale": "Mega Gengar is the only Shadow Tag user on the board: 170 SpA/130 Spe, trapping lets Fake Out + double-target guarantee KOs and enables Perish Song/Disable lines. Unique game-warping tool at 18."
      },
      {
        "overall": 5,
        "round": 1,
        "franchiseId": "franchise-4",
        "pokemon": {
          "id": "whimsicott",
          "name": "Whimsicott",
          "spriteId": "whimsicott",
          "cost": 19
        },
        "rationale": "Secures scarce Prankster Tailwind plus verified Encore, Taunt, Helping Hand, and Trick Room. Flexible speed and disruption support lets us exploit discounted attackers rather than commit our first pick to one Mega or weather mode."
      },
      {
        "overall": 6,
        "round": 1,
        "franchiseId": "franchise-5",
        "pokemon": {
          "id": "metagross-mega",
          "name": "Mega Metagross",
          "spriteId": "metagross-mega",
          "cost": 17
        },
        "rationale": "Best available mega for doubles and my anchor. Mega Metagross (Tough Claws, 80/145/150/105/110/110) is bulky, fast, and has elite doubles tools: Bullet Punch priority, Iron Head, Ice/Thunder Punch, Zen Headbutt, Rock Slide/Earthquake, and Body Press off 150 Def (all contact, so Tough Claws-boosted). Steel/Psychic resists a huge range of types and only fears Fire/Ground/Ghost/Dark, giving a consistent physical win condition no other roster can replicate. Securing the mega slot now, since top megas (Salamence, Gengar) are already gone."
      },
      {
        "overall": 7,
        "round": 1,
        "franchiseId": "franchise-6",
        "pokemon": {
          "id": "archaludon",
          "name": "Archaludon",
          "spriteId": "archaludon",
          "cost": 19
        },
        "rationale": "Archaludon is the strongest remaining flexible centerpiece: exceptional Steel/Dragon defensive profile, high special damage, and Stamina lets it scale in doubles while fitting rain, sun, or neutral modes."
      },
      {
        "overall": 8,
        "round": 1,
        "franchiseId": "franchise-7",
        "pokemon": {
          "id": "charizard-mega-y",
          "name": "Mega Charizard Y",
          "spriteId": "charizard-megay",
          "cost": 20
        },
        "rationale": "Mega Charizard Y is the premier Drought Mega with 159 SpA, establishing immediate offensive pressure and weather control. Securing it at pick 8 leads off our consecutive picks at the turn."
      },
      {
        "overall": 9,
        "round": 2,
        "franchiseId": "franchise-7",
        "pokemon": { "id": "gholdengo", "name": "Gholdengo", "spriteId": "gholdengo", "cost": 16 },
        "rationale": "Gholdengo provides Good as Gold status immunity, immense spread damage with Make It Rain, and exceptional defensive typing synergy with Mega Charizard Y (immune to Ground/Fighting/Poison, resisting Rock). Locking both in at the turn secures an elite offensive and defensive core."
      },
      {
        "overall": 10,
        "round": 2,
        "franchiseId": "franchise-6",
        "pokemon": {
          "id": "indeedee-f",
          "name": "Indeedee-F",
          "spriteId": "indeedee-f",
          "cost": 18
        },
        "rationale": "Indeedee-F gives Archaludon a premier doubles partner: Follow Me redirection, Psychic Terrain priority control, Helping Hand, and Trick Room access, creating both fast and slow mode flexibility."
      },
      {
        "overall": 11,
        "round": 2,
        "franchiseId": "franchise-5",
        "pokemon": { "id": "sinistcha", "name": "Sinistcha", "spriteId": "sinistcha", "cost": 18 },
        "rationale": "Best support remaining and an ideal partner for Mega Metagross. Sinistcha (Hospitality, Grass/Ghost) brings Rage Powder redirection to shield Metagross from single-target Fire/Ground hits, Matcha Gotcha as spread special damage that heals Metagross, Strength Sap/Life Dew sustain, Trick Room as a backup mode, and a Ground resistance plus Normal/Fighting immunity that patches Metagross's key weaknesses. It also covers Water/Ground/Rock threats. Gholdengo and Indeedee-F were just taken, so the elite support tier is thinning fast."
      },
      {
        "overall": 12,
        "round": 2,
        "franchiseId": "franchise-4",
        "pokemon": {
          "id": "annihilape",
          "name": "Annihilape",
          "spriteId": "annihilape",
          "cost": 14
        },
        "rationale": "Creates a verified Beat Up–Rage Fist win condition with Whimsicott while adding Defiant pressure against the drafted Intimidators. Ghost typing also provides a valuable alternative attacker into Mega Gengar's trapping plans, and Fighting STAB threatens the emerging Steel cores."
      },
      {
        "overall": 13,
        "round": 2,
        "franchiseId": "franchise-3",
        "pokemon": { "id": "kingambit", "name": "Kingambit", "spriteId": "kingambit", "cost": 17 },
        "rationale": "Kingambit: Fairy resist Steel with Supreme Overlord, Sucker Punch priority, Kowtow Cleave; punishes Intimidate (Incineroar/Salamence already drafted) via Defiant. Strong late-game closer complementing Gengar's trapping."
      },
      {
        "overall": 14,
        "round": 2,
        "franchiseId": "franchise-2",
        "pokemon": { "id": "sneasler", "name": "Sneasler", "spriteId": "sneasler", "cost": 19 },
        "rationale": "Best remaining Rillaboom pair: Grassy Seed Unburden is on-switch, Dire Claw/CC/Fake Out at 130/120. Armor Tail is cloneable later with Tsareena (11) or Indeedee-M Psychic Terrain (12); this Unburden attacker is not. Leaves the mega slot open for pick 19."
      },
      {
        "overall": 15,
        "round": 2,
        "franchiseId": "franchise-1",
        "pokemon": { "id": "farigiraf", "name": "Farigiraf", "spriteId": "farigiraf", "cost": 18 },
        "rationale": "Whimsicott is gone; Farigiraf is the priority-control answer: Armor Tail negates Fake Out (grok), Sucker Punch (fable) and Prankster (astra) targeting my side, it's a bulky 120 HP Trick Room plan-B, and gets Helping Hand/Psychic Noise/own Psychic Terrain."
      },
      {
        "overall": 16,
        "round": 2,
        "franchiseId": "franchise-0",
        "pokemon": { "id": "garchomp", "name": "Garchomp", "spriteId": "garchomp", "cost": 18 },
        "rationale": "Garchomp is last premier Ground/Dragon (EQ+Rock Slide, 130/102) answering Archaludon/Metagross/Kingambit/Gholdengo; pairs with Incin. Male Indeedee devalued (no Follow Me in this format), so pivot redirection to Clefable line."
      },
      {
        "overall": 17,
        "round": 3,
        "franchiseId": "franchise-0",
        "pokemon": {
          "id": "clefable-mega",
          "name": "Mega Clefable",
          "spriteId": "clefable-mega",
          "cost": 10
        },
        "rationale": "Cheap Follow Me redirector (blocks base Clefable) + mega wincon in one 10-pt slot; Fairy covers Garchomp Dragon weakness, Magic Bounce bounces Taunt/Encore."
      },
      {
        "overall": 18,
        "round": 3,
        "franchiseId": "franchise-1",
        "pokemon": { "id": "hatterene", "name": "Hatterene", "spriteId": "hatterene", "cost": 9 },
        "rationale": "9 points for a 136 SpA Psychic/Fairy that doubles as my second Trick Room setter and Magic Bounce wall — reflects astra's Prankster Encore/Taunt and status aimed at it, punishes Mimikyu-style tech. Farigiraf gives Psychic Terrain so Expanding Force hits as a boosted spread. Cheapest high-impact mon left; 12 picks before my next turn would take it."
      },
      {
        "overall": 19,
        "round": 3,
        "franchiseId": "franchise-2",
        "pokemon": { "id": "clefable", "name": "Clefable", "spriteId": "clefable", "cost": 15 },
        "rationale": "Last Follow Me with real bulk now that Indeedee-F is gone (Mega Clefable is a different entry). Unaware + Moonblast is the clean answer to Mega Salamence+Farigiraf when Armor Tail turns off Fake Out/Glide; Magic Guard and TWave fill holes the physical core does not. 15 keeps us on pace; Maushold is redundant if we lock this."
      },
      {
        "overall": 20,
        "round": 3,
        "franchiseId": "franchise-3",
        "pokemon": {
          "id": "kangaskhan-mega",
          "name": "Mega Kangaskhan",
          "spriteId": "kangaskhan-mega",
          "cost": 15
        },
        "rationale": "Mega Kangaskhan: Fake Out support that doubles as a Parental Bond nuke (Double-Edge/Drain Punch/Power-Up Punch), pairs with Gengar trapping; 105/100/100 bulk at 15 points is excellent value."
      },
      {
        "overall": 21,
        "round": 3,
        "franchiseId": "franchise-4",
        "pokemon": { "id": "maushold", "name": "Maushold", "spriteId": "maushold", "cost": 16 },
        "rationale": "The dex confirms Maushold is the last available Follow Me user. Friend Guard, redirection, and a second Beat Up source turn Annihilape into a much more reliable win condition, while Encore, Super Fang, and optional Population Bomb give Maushold value beyond that pairing."
      },
      {
        "overall": 22,
        "round": 3,
        "franchiseId": "franchise-5",
        "pokemon": { "id": "primarina", "name": "Primarina", "spriteId": "primarina", "cost": 15 },
        "rationale": "Fills my biggest gaps: a special attacker and defensive glue. Primarina (Water/Fairy, 126 SpA/116 SpD) resists Fire, Water, Ice, Dark, Fighting, and Bug and is immune to Dragon, patching exactly what Metagross and Sinistcha fear, while answering Incineroar, Mega Salamence, Garchomp, Kingambit and Charizard Y offensively. It gives spread damage (Liquid Voice/Dazzling Gleam) plus Encore/Icy Wind/Life Dew utility. With Indeedee-F and Farigiraf gone, good special spreaders are drying up fast."
      },
      {
        "overall": 23,
        "round": 3,
        "franchiseId": "franchise-6",
        "pokemon": { "id": "pelipper", "name": "Pelipper", "spriteId": "pelipper", "cost": 16 },
        "rationale": "Pelipper adds a decisive rain mode beside Archaludon, pressures the already-drafted sun core, and supplies Tailwind plus wide Water damage without competing with Indeedee-F’s terrain role."
      },
      {
        "overall": 24,
        "round": 3,
        "franchiseId": "franchise-7",
        "pokemon": { "id": "venusaur", "name": "Venusaur", "spriteId": "venusaur", "cost": 13 },
        "rationale": "Venusaur forms the premier Sun duo with Mega Charizard Y, gaining doubled Speed via Chlorophyll to deliver high-speed Sleep Powder, Earth Power, and Grass/Poison coverage against Water, Ground, and Rock threats."
      },
      {
        "overall": 25,
        "round": 4,
        "franchiseId": "franchise-7",
        "pokemon": { "id": "swampert", "name": "Swampert", "spriteId": "swampert", "cost": 6 },
        "rationale": "Swampert provides essential Electric immunity and Rock/Fire resistances to protect Mega Charizard Y and Gholdengo, adds Wide Guard to shield our spread attackers, and at 6 points represents massive value while denying Swampert/Mega Swampert to opposing rain teams."
      },
      {
        "overall": 26,
        "round": 4,
        "franchiseId": "franchise-6",
        "pokemon": {
          "id": "basculegion",
          "name": "Basculegion-Male",
          "spriteId": "basculegion",
          "cost": 19
        },
        "rationale": "Basculegion-Male is the premier rain payoff for Pelipper: Swift Swim speed, Adaptability-boosted spread Water damage, and Ghost typing give the roster a threatening mode into the league’s current Psychic/Steel-heavy builds."
      },
      {
        "overall": 27,
        "round": 4,
        "franchiseId": "franchise-5",
        "pokemon": {
          "id": "talonflame",
          "name": "Talonflame",
          "spriteId": "talonflame",
          "cost": 15
        },
        "rationale": "I need reliable speed control, and Gale Wings Talonflame is the best on the board: priority Tailwind at full HP, plus Taunt (stops opposing Whimsicott Prankster Tailwind/Trick Room), Quick Guard and Upper Hand to blunt Fake Out, and Will-O-Wisp/U-turn utility. It also pairs directly with Metagross, who outspeeds key threats under Tailwind and carries Rock Slide for the opposing Mega Charizard Y. Priority Tailwind is a scarce effect (only Noivern/Aerodactyl otherwise), so I take it while available; Intimidate has cheaper fallbacks later."
      },
      {
        "overall": 28,
        "round": 4,
        "franchiseId": "franchise-4",
        "pokemon": {
          "id": "excadrill-mega",
          "name": "Mega Excadrill",
          "spriteId": "excadrill-mega",
          "cost": 9
        },
        "rationale": "Excellent nine-point offensive Mega: Steel/Ground coverage pressures the emerging Fairy, Poison, and Steel cores while providing key resistances for MausApe. Verified High Horsepower, Iron Head, Rock Slide, and Swords Dance support immediate Tailwind offense or a redirected setup win condition."
      },
      {
        "overall": 29,
        "round": 4,
        "franchiseId": "franchise-3",
        "pokemon": {
          "id": "rotom-wash",
          "name": "Rotom-Wash",
          "spriteId": "rotom-wash",
          "cost": 14
        },
        "rationale": "Rotom-Wash: Water/Electric coverage for Charizard Y, Talonflame, Incineroar, Metagross, Basculegion; Levitate + Will-O-Wisp/Volt Switch utility; pivot that Gengar/Kingambit lack. Good bulk at 14."
      },
      {
        "overall": 30,
        "round": 4,
        "franchiseId": "franchise-2",
        "pokemon": {
          "id": "grimmsnarl",
          "name": "Grimmsnarl",
          "spriteId": "grimmsnarl",
          "cost": 16
        },
        "rationale": "Last elite Prankster: screens protect Sneasler, Parting Shot/Spirit Break/Fake Out, Dark/Fairy into Gengar and Salamence. glm has no Fake Out and 53 points, so this is gone at 31 if we pass. Klefki is the 11-cost backup; Clefable already Follow Me’s the core. Leaves 31 for 6 — pick 35 should be a 13–15 mega/Ghost/Fire resist, not another 16."
      },
      {
        "overall": 31,
        "round": 4,
        "franchiseId": "franchise-1",
        "pokemon": {
          "id": "corviknight",
          "name": "Corviknight",
          "spriteId": "corviknight",
          "cost": 13
        },
        "rationale": "Field is physical-heavy (Annihilape, Sneasler, Metagross, Basculegion rain): Corviknight resists all of those (Rage Fist/Grassy Glide/Close Combat at 0.25x), sets my only reliable Tailwind, U-turns to protect Palafin's Hero transform, and Body Press punishes fable's Kingambit. Fills speed control + bulk + pivot in one slot."
      },
      {
        "overall": 32,
        "round": 4,
        "franchiseId": "franchise-0",
        "pokemon": { "id": "dragapult", "name": "Dragapult", "spriteId": "dragapult", "cost": 14 },
        "rationale": "Dragapult 142 is fastest remaining attacker, Clear Body ignores Intimidate cycling, Ghost/Dragon hits Gengar/Farigiraf/Hatterene/Salamence/Archaludon cores; U-turn/Will-O/Thunderwave support."
      },
      {
        "overall": 33,
        "round": 5,
        "franchiseId": "franchise-0",
        "pokemon": { "id": "noivern", "name": "Noivern", "spriteId": "noivern", "cost": 9 },
        "rationale": "Last cheap fast Tailwind (123 outruns Whimsicott 116, Frisk scouts, Infiltrator vs Grimmsnarl screens); Dragon/Flying stacks with Pult for Dragon pressure."
      },
      {
        "overall": 34,
        "round": 5,
        "franchiseId": "franchise-1",
        "pokemon": { "id": "palafin", "name": "Palafin", "spriteId": "palafin", "cost": 12 },
        "rationale": "Dragapult is gone; Palafin is the best remaining carry: Hero forme 160 Atk with priority Jet Punch, Flip Turn (self-transform + pivot), Close Combat, Ice Punch, Haze anti-setup. Speed 100 pairs perfectly under Corviknight's Tailwind and costs only 12."
      },
      {
        "overall": 35,
        "round": 5,
        "franchiseId": "franchise-2",
        "pokemon": {
          "id": "dragonite-mega",
          "name": "Mega Dragonite",
          "spriteId": "dragonite-mega",
          "cost": 15
        },
        "rationale": "Locks Tailwind, a special mega (145 SpA Ice Beam/Heat Wave/Hurricane), Dragon Fire resist into Charizard Y, and 4x Ice into Salamence/Garchomp. Multiscale is the bulk the frail core lacks. 15 leaves 16 for 5 — next is cheap Ghost/Fire (Skeledirge 5) not another 14+."
      },
      {
        "overall": 36,
        "round": 5,
        "franchiseId": "franchise-3",
        "pokemon": { "id": "salamence", "name": "Salamence", "spriteId": "salamence", "cost": 11 },
        "rationale": "Base Salamence is still legal: Intimidate + Tailwind speed control the roster lacked, 100 Spe with Draco Meteor/Hyper Voice/Dual Wingbeat; Ground immunity covers Rotom/Kingambit weaknesses."
      },
      {
        "overall": 37,
        "round": 5,
        "franchiseId": "franchise-4",
        "pokemon": {
          "id": "rotom-heat",
          "name": "Rotom-Heat",
          "spriteId": "rotom-heat",
          "cost": 12
        },
        "rationale": "Adds urgently needed special offense and Fire/Flying/Fairy/Steel resistances. Levitate complements Excadrill, while verified Overheat, Thunderbolt, Volt Switch, Electroweb, and Nasty Plot provide flexible pressure against the sun, Steel, and Flying cores already drafted."
      },
      {
        "overall": 38,
        "round": 5,
        "franchiseId": "franchise-5",
        "pokemon": { "id": "arcanine", "name": "Arcanine", "spriteId": "arcanine", "cost": 11 },
        "rationale": "With Incineroar gone, Arcanine is the best Intimidate glue left and the one support role my team completely lacks. It brings Snarl to blunt opposing Charizard Y / Gholdengo / Archaludon, Will-O-Wisp to cripple Garchomp/Kingambit/Annihilape, Extreme Speed priority, Morning Sun, Heat Wave and Close Combat. Fire typing also helps vs Rillaboom/Venusaur/Scizor, and it is cheap enough (11) to leave room for fillers."
      },
      {
        "overall": 39,
        "round": 5,
        "franchiseId": "franchise-6",
        "pokemon": {
          "id": "gardevoir-mega",
          "name": "Mega Gardevoir",
          "spriteId": "gardevoir-mega",
          "cost": 16
        },
        "rationale": "Mega Gardevoir supplies urgent Fairy pressure into the many Dragons, powerful spread damage, and a second Psychic-mode attacker that benefits from Indeedee-F’s terrain and redirection."
      },
      {
        "overall": 40,
        "round": 5,
        "franchiseId": "franchise-7",
        "pokemon": { "id": "raichu", "name": "Raichu", "spriteId": "raichu", "cost": 10 },
        "rationale": "Raichu provides vital Lightning Rod protection for Mega Charizard Y, Fake Out pressure to secure turns for Charizard Y and Venusaur, Feint to bypass Protect/Wide Guard, and Nuzzle for reliable speed control outside of Sun."
      },
      {
        "overall": 41,
        "round": 6,
        "franchiseId": "franchise-7",
        "pokemon": {
          "id": "tauros-paldea-aqua",
          "name": "Paldean Tauros Aqua",
          "spriteId": "tauros-paldeaaqua",
          "cost": 9
        },
        "rationale": "Paldean Tauros Aqua gives our team unblockable Intimidate in this format (no Clear Amulet), crucial STAB Fighting Close Combat to crush Kingambit and Incineroar, Aqua Jet priority, and key defensive resistances to Rock, Fire, and Dark to protect Mega Charizard Y and Gholdengo."
      },
      {
        "overall": 42,
        "round": 6,
        "franchiseId": "franchise-6",
        "pokemon": { "id": "qwilfish", "name": "Qwilfish", "spriteId": "qwilfish", "cost": 2 },
        "rationale": "Qwilfish is an efficient rain utility slot: Swift Swim gives a second fast mode, Intimidate offers needed physical mitigation, and Poison STAB helps against Fairy threats."
      },
      {
        "overall": 43,
        "round": 6,
        "franchiseId": "franchise-5",
        "pokemon": { "id": "mamoswine", "name": "Mamoswine", "spriteId": "mamoswine", "cost": 12 },
        "rationale": "Best 6th piece I can afford and a direct meta answer. Mamoswine (130 Atk, Thick Fat) gives my team's only Ice Shard priority to revenge-kill the many Dragons in the league (Mega Salamence, Dragonite, Dragapult, Garchomp, Noivern, Baxcalibur), Ground STAB for Gholdengo/Archaludon/Kingambit/Excadrill, Rock Slide for opposing Mega Charizard Y, Knock Off item removal, and Thick Fat to sit on sun Fire damage. It fills the holes Arcanine/Talonflame/Primarina leave."
      },
      {
        "overall": 44,
        "round": 6,
        "franchiseId": "franchise-4",
        "pokemon": { "id": "empoleon", "name": "Empoleon", "spriteId": "empoleon", "cost": 7 },
        "rationale": "Adds Water special offense and valuable Flying, Psychic, Fairy, and Ice resistances for only seven points. Competitive discourages opposing Intimidate, while verified Ice Beam, Grass Knot, Flash Cannon, Hydro Pump, Weather Ball, and Roost allow tailored sets into the developing rosters."
      },
      {
        "overall": 45,
        "round": 6,
        "franchiseId": "franchise-3",
        "pokemon": {
          "id": "altaria-mega",
          "name": "Mega Altaria",
          "spriteId": "altaria-mega",
          "cost": 7
        },
        "rationale": "Mega Altaria: only Fairy on the roster, Dragon/Fairy typing answers the many Dragons drafted (Salamence, Dragonite, Dragapult, Garchomp), Pixilate Hyper Voice spread plus backup Tailwind; flexible third mega option at 7."
      },
      {
        "overall": 46,
        "round": 6,
        "franchiseId": "franchise-2",
        "pokemon": {
          "id": "skeledirge",
          "name": "Skeledirge",
          "spriteId": "skeledirge",
          "cost": 5
        },
        "rationale": "Mandatory Ghost for Shadow Tag plus Fire resist into Charizard Y/Gholdengo at 5. Unaware Torch Song/Slack Off is a second tank next to Clefable without using the mega slot. 11 left for 4: pick 51 is Greninja 7 / Gengar 8 / Cinderace 8 / Pincurchin 4, then 1-cost fillers. Mega Chandelure 9 would starve the rest of the roster."
      },
      {
        "overall": 47,
        "round": 6,
        "franchiseId": "franchise-1",
        "pokemon": { "id": "garganacl", "name": "Garganacl", "spriteId": "garganacl", "cost": 5 },
        "rationale": "Cheapest unique wall left: 0.25x into gemini's Heat Wave/Sludge Bomb, 4x Rock STAB back at Zard Y, Purifying Salt blocks Sleep Powder/Thunder Wave. Also a long-game Salt Cure win condition vs bulky waters. Five points; take before grok's pick 46."
      },
      {
        "overall": 48,
        "round": 6,
        "franchiseId": "franchise-0",
        "pokemon": { "id": "rotom-mow", "name": "Rotom-Mow", "spriteId": "rotom-mow", "cost": 10 },
        "rationale": "Rotom-Mow Electric/Grass Levitate walls rain (Pelipper/Bascu/Palafin/Swampert) and Grounds (Excadrill/Mamoswine/mirror Chomp), Leaf Storm+TBolt+Wisp+Trick."
      },
      {
        "overall": 49,
        "round": 7,
        "franchiseId": "franchise-0",
        "pokemon": { "id": "scrafty", "name": "Scrafty", "spriteId": "scrafty", "cost": 3 },
        "rationale": "2nd Fake Out+Intimidate for 3pts, Quick Guard blocks Glide/Sucker/Aqua Jet, Coaching boosts Chomp/Incin, Fighting hits Kingambit/Excadrill."
      },
      {
        "overall": 50,
        "round": 7,
        "franchiseId": "franchise-1",
        "pokemon": {
          "id": "toxtricity",
          "name": "Toxtricity",
          "spriteId": "toxtricity",
          "cost": 6
        },
        "rationale": "6 points for a Punk Rock special spread attacker: Overdrive hits luna's rain engine (Basculegion/Pelipper 2x) and shrugs off the field's Intimidate cores; Boomburst/Overdrive spread is my non-TR special damage alongside Hatterene. Snarl/Volt Switch add utility. Electric answers are nearly gone off the board."
      },
      {
        "overall": 51,
        "round": 7,
        "franchiseId": "franchise-2",
        "pokemon": { "id": "greninja", "name": "Greninja", "spriteId": "greninja", "cost": 7 },
        "rationale": "Only Water that still fits the budget: resists Fire/Water into Charizard Y and rain, Dark Pulse vs Gholdengo, Ice Beam/Grass Knot coverage, 122 Spe Protean. 8-costs (Cinderace/Gengar) leave three 1s and overlap Fire/Ghost we already have. 4 pts for 3: Ariados 2 plus two 1-costs."
      },
      {
        "overall": 52,
        "round": 7,
        "franchiseId": "franchise-3",
        "pokemon": {
          "id": "steelix-mega",
          "name": "Mega Steelix",
          "spriteId": "steelix-mega",
          "cost": 6
        },
        "rationale": "Mega Steelix: 230 Def Ground/Steel wall immune to Electric, resists Fairy/Rock/Dragon; gives Ground coverage (High Horsepower/Stomping Tantrum, Heavy Slam) and a Trick-Room-proof anchor for 6 points."
      },
      {
        "overall": 53,
        "round": 7,
        "franchiseId": "franchise-4",
        "pokemon": { "id": "weavile", "name": "Weavile", "spriteId": "weavile", "cost": 9 },
        "rationale": "With Scrafty gone, Weavile supplies verified fast Fake Out, Knock Off, and Ice STAB in one offensive slot. Its base 125 Speed and Triple Axel/Ice Spinner options add immediate pressure against the numerous Dragons and a Psychic-immune attacker for terrain teams."
      },
      {
        "overall": 54,
        "round": 7,
        "franchiseId": "franchise-5",
        "pokemon": { "id": "machamp", "name": "Machamp", "spriteId": "machamp", "cost": 4 },
        "rationale": "Machamp is outstanding value at 4: it brings Wide Guard (the anti-spread tool my team lacks vs opposing Heat Wave/Make It Rain/Earthquake/Rock Slide/Overheat), no-recoil Fighting coverage for Kingambit/Archaludon/Tyranitar/Umbreon, No Guard Dynamic Punch confusion, Bullet Punch priority and Knock Off item removal, plus Quick Guard. That covers multiple gaps in one cheap slot."
      },
      {
        "overall": 55,
        "round": 7,
        "franchiseId": "franchise-6",
        "pokemon": { "id": "gliscor", "name": "Gliscor", "spriteId": "gliscor", "cost": 3 },
        "rationale": "Gliscor patches the roster’s Electric weakness with Ground immunity to its own side, adds a durable physical attacker and status-oriented endgame, and gives valuable Poison Heal flexibility in a low-cost slot."
      },
      {
        "overall": 56,
        "round": 7,
        "franchiseId": "franchise-7",
        "pokemon": { "id": "dragonite", "name": "Dragonite", "spriteId": "dragonite", "cost": 14 },
        "rationale": "Dragonite brings Multiscale bulk, +2 Extreme Speed priority cleanup, Tailwind speed control outside of Sun, and Haze to shut down setup sweepers, complementing our offensive spread pressure."
      },
      {
        "overall": 57,
        "round": 8,
        "franchiseId": "franchise-7",
        "pokemon": { "id": "umbreon", "name": "Umbreon", "spriteId": "umbreon", "cost": 5 },
        "rationale": "Umbreon provides a premier defensive Dark anchor that resists Ghost and Dark for Gholdengo, gains 66.7% healing from Moonlight under Mega Charizard Y's Sun, ignores Fake Out flinches with Inner Focus, and punishes high-attack physical threats with Foul Play while debuffing special attackers with Snarl."
      },
      {
        "overall": 58,
        "round": 8,
        "franchiseId": "franchise-6",
        "pokemon": { "id": "sceptile", "name": "Sceptile", "spriteId": "sceptile", "cost": 3 },
        "rationale": "Sceptile gives the roster fast Grass pressure into opposing Water and Ground cores, a strong Electric matchup through offensive tempo, and an independent high-Speed option outside rain."
      },
      {
        "overall": 59,
        "round": 8,
        "franchiseId": "franchise-5",
        "pokemon": {
          "id": "rotom-frost",
          "name": "Rotom-Frost",
          "spriteId": "rotom-frost",
          "cost": 4
        },
        "rationale": "Fills my last real gap: a special attacker with Electric coverage and a Ground immunity. Rotom-Frost (Levitate) gives Thunderbolt/Volt Switch to hit Pelipper (4x), Basculegion, Corviknight, Empoleon, Gyarados and Azumarill, Blizzard for Dragonite/Gliscor/Salamence/Garchomp/Noivern, plus Will-O-Wisp and Nasty Plot. Levitate also makes it a safe partner next to Metagross/Mamoswine Earthquake and a pivot into opposing Ground moves, balancing my previously all-physical attacker core."
      },
      {
        "overall": 60,
        "round": 8,
        "franchiseId": "franchise-4",
        "pokemon": { "id": "hydrapple", "name": "Hydrapple", "spriteId": "hydrapple", "cost": 6 },
        "rationale": "Adds a durable special attacker with excellent Water/Electric resistance and a Ground resistance, strengthening the rain matchup and covering our Steel/Fire core. Verified Regenerator, recovery, Grass/Dragon STAB, Earth Power, and Nasty Plot support both pivoting and redirected setup."
      },
      {
        "overall": 61,
        "round": 8,
        "franchiseId": "franchise-3",
        "pokemon": { "id": "toxicroak", "name": "Toxicroak", "spriteId": "toxicroak", "cost": 4 },
        "rationale": "Toxicroak: second Fake Out user with Close Combat/Sucker Punch for Kingambit/Incineroar/Tyranitar, Dry Skin punishes the Pelipper/Basculegion rain roster, Poison typing absorbs Fairy hits for 4 points."
      },
      {
        "overall": 62,
        "round": 8,
        "franchiseId": "franchise-2",
        "pokemon": { "id": "rotom", "name": "Rotom", "spriteId": "rotom", "cost": 2 },
        "rationale": "Best 2-cost that actually makes a 6: Electric/Ghost Levitate with Electroweb, Volt Switch, Thunderbolt, Will-O-Wisp, TWave. Covers rain and Charizard’s Flying, second Ghost for Shadow Tag. Rage Powder is redundant with Clefable Follow Me; Intimidate Mawile is worse as a Pokémon. 2 left for Altaria 1 + a Flash Fire/hazard 1."
      },
      {
        "overall": 63,
        "round": 8,
        "franchiseId": "franchise-1",
        "pokemon": { "id": "azumarill", "name": "Azumarill", "spriteId": "azumarill", "cost": 10 },
        "rationale": "My TR engine had no physical attacker and three opponents run boosted Hyper Voice spread (Gardevoir-M, Primarina, Altaria-M): Azumarill resists all of that at 0.25x while bringing Huge Power Liquidation/Play Rough under Trick Room, Belly Drum threat, Aqua Jet outside TR, Knock Off and Icy Wind. Cheapest piece that fills two holes."
      },
      {
        "overall": 64,
        "round": 8,
        "franchiseId": "franchise-0",
        "pokemon": { "id": "ceruledge", "name": "Ceruledge", "spriteId": "ceruledge", "cost": 12 },
        "rationale": "Ceruledge Fire/Ghost covers Fairy/Steel/Psychic weakness (Metagross/Kingambit/Clefable/Gardevoir/Farigiraf), Bitter Blade sustain + Sneak priority."
      },
      {
        "overall": 65,
        "round": 9,
        "franchiseId": "franchise-0",
        "pokemon": {
          "id": "pincurchin",
          "name": "Pincurchin",
          "spriteId": "pincurchin",
          "cost": 4
        },
        "rationale": "Electric Surge powers Rotom Rising Voltage, TWave+Memento+Recover support, blocks sleep vs Venusaur."
      },
      {
        "overall": 66,
        "round": 9,
        "franchiseId": "franchise-1",
        "pokemon": { "id": "clawitzer", "name": "Clawitzer", "spriteId": "clawitzer", "cost": 4 },
        "rationale": "4 points for the field's best tech piece: Mega Launcher Aura Sphere is 4x into fable's Kingambit and grok's... fable's Mega Steelix, Dark Pulse 2x into luna's Gardevoir-M, muse's Dragapult/Noivern, grok's Greninja and fable's Salamence; Water Pulse spread + Icy Wind speed control + Heal Pulse support; 59 Spe works under Trick Room. Fills the Dark/Fighting coverage gap my roster lacks entirely."
      },
      {
        "overall": 67,
        "round": 9,
        "franchiseId": "franchise-2",
        "pokemon": { "id": "altaria", "name": "Altaria", "spriteId": "altaria", "cost": 1 },
        "rationale": "Cloud Nine turns off Charizard Y sun and Pelipper rain without spending the mega slot; Tailwind is a backup if Dragonite is the attacker not the setter. 1 pt left for Houndoom Flash Fire at 78."
      },
      {
        "overall": 68,
        "round": 9,
        "franchiseId": "franchise-3",
        "pokemon": {
          "id": "glalie-mega",
          "name": "Mega Glalie",
          "spriteId": "glalie-mega",
          "cost": 4
        },
        "rationale": "Mega Glalie: Refrigerate Ice coverage (Double-Edge/Explosion/Return) against the many Dragons and Flying types in the league (Salamence, Dragonite x2, Dragapult, Noivern, Garchomp, Gliscor), 100 Spe, Ice Shard priority option; cheap flexible mega."
      },
      {
        "overall": 69,
        "round": 9,
        "franchiseId": "franchise-4",
        "pokemon": {
          "id": "chandelure",
          "name": "Chandelure",
          "spriteId": "chandelure",
          "cost": 6
        },
        "rationale": "Secures a powerful independent special attacker and verified Trick Room–Imprison control. Flash Fire and Heat Wave offer additional lines against sun and Steel cores, while Ghost typing complements our positioning against trapping and Fake Out."
      },
      {
        "overall": 70,
        "round": 9,
        "franchiseId": "franchise-5",
        "pokemon": { "id": "skarmory", "name": "Skarmory", "spriteId": "skarmory", "cost": 3 },
        "rationale": "Best utility body available for 3. Skarmory gives a Ground-immune physical wall (140 Def, Roost, Body Press off 140 Def, Iron Head) that hard-checks Garchomp/Salamence/Dragonite/Kangaskhan/Excadrill, plus Whirlwind and Spikes/Stealth Rock, and even a backup Tailwind and Taunt. It patches my lack of a defensive pivot and an anti-Ground wall for cheap."
      },
      {
        "overall": 71,
        "round": 9,
        "franchiseId": "franchise-6",
        "pokemon": {
          "id": "meowstic-f",
          "name": "Meowstic-Female",
          "spriteId": "meowstic-f",
          "cost": 2
        },
        "rationale": "Meowstic-F is an efficient final support slot with fast disruption, screens and Helping Hand options, giving the roster utility beyond Indeedee-F while preserving a legal two-point cost."
      },
      {
        "overall": 72,
        "round": 9,
        "franchiseId": "franchise-7",
        "pokemon": { "id": "alcremie", "name": "Alcremie", "spriteId": "alcremie", "cost": 4 },
        "rationale": "Alcremie provides essential Fairy typing, Aroma Veil to grant full Taunt and Encore immunity to both itself and its partner, and the potent Decorate move (+2 Atk and +2 SpA) to supercharge sweepers like Dragonite, Mega Charizard Y, and Gholdengo."
      },
      {
        "overall": 73,
        "round": 10,
        "franchiseId": "franchise-7",
        "pokemon": { "id": "passimian", "name": "Passimian", "spriteId": "passimian", "cost": 3 },
        "rationale": "Passimian completes our 10-Pokémon roster by adding Defiant to directly punish opposing Intimidate and Snarl spam, Quick Guard to protect our core from opposing priority attacks, and high-impact Knock Off and Close Combat utility at exactly 3 points."
      },
      {
        "overall": 74,
        "round": 10,
        "franchiseId": "franchise-6",
        "pokemon": { "id": "morpeko", "name": "Morpeko", "spriteId": "morpeko", "cost": 2 },
        "rationale": "Morpeko is the best final two-point patch: fast Electric pressure against opposing Water/Flying cores, Dark utility into Psychic and Ghost threats, and disruptive momentum tools."
      },
      {
        "overall": 75,
        "round": 10,
        "franchiseId": "franchise-5",
        "pokemon": { "id": "manectric", "name": "Manectric", "spriteId": "manectric", "cost": 1 },
        "rationale": "Best 1-cost value for my final slot. Manectric's Lightning Rod redirects and absorbs single-target Electric moves, shielding my Electric-weak Talonflame, Primarina and Skarmory (and punishing Raichu/Rotom-Heat Discharge users) while giving Manectric a SpA boost; at 105 Speed it also supplies fast Snarl SpA-drops against sun/special teams, Volt Switch pivoting, and Flamethrower/Overheat/Thunderbolt coverage. It rounds out the roster with a real doubles utility niche for one point."
      },
      {
        "overall": 76,
        "round": 10,
        "franchiseId": "franchise-4",
        "pokemon": { "id": "tauros", "name": "Tauros", "spriteId": "tauros", "cost": 2 },
        "rationale": "Completes the roster at exactly 100 points with our first Intimidate user, another Ghost immunity, and base-110 Speed. Verified Raging Bull removes screens, while Close Combat, High Horsepower, Rock Slide, and Helping Hand give it useful matchup-specific roles."
      },
      {
        "overall": 77,
        "round": 10,
        "franchiseId": "franchise-3",
        "pokemon": {
          "id": "ampharos-mega",
          "name": "Mega Ampharos",
          "spriteId": "ampharos-mega",
          "cost": 4
        },
        "rationale": "Mega Ampharos: 165 SpA Electric/Dragon with Mold Breaker and 90/105/110 bulk for 4 points — a special wallbreaker (Thunderbolt/Dragon Pulse/Focus Blast) that fits a slower Kingambit/Steelix mode and flexes as a non-mega Static Electric."
      },
      {
        "overall": 78,
        "round": 10,
        "franchiseId": "franchise-2",
        "pokemon": { "id": "houndoom", "name": "Houndoom", "spriteId": "houndoom", "cost": 1 },
        "rationale": "Last point: Flash Fire is the only Heat Wave absorb on the roster for Charizard Y, plus Dark STAB into Gholdengo/Gengar. Forretress Steel is less useful than an absorb vs the sun team we actually have to beat."
      },
      {
        "overall": 79,
        "round": 10,
        "franchiseId": "franchise-1",
        "pokemon": { "id": "dragalge", "name": "Dragalge", "spriteId": "dragalge", "cost": 3 },
        "rationale": "3 points for a TR-able Adaptability special wall: base Dragalge keeps Adaptability, so Sludge Wave is boosted STAB hitting 2x into every Fairy on the board (luna's Gardevoir-M, fable's Clefable-M... fable has Altaria-M, deepseek's Primarina), plus Draco Meteor, Toxic, Thunder Wave and 123 SpD. Slow (44 Spe) — ideal Trick Room piece; completes the roster at exactly 100."
      },
      {
        "overall": 80,
        "round": 10,
        "franchiseId": "franchise-0",
        "pokemon": { "id": "mawile", "name": "Mawile", "spriteId": "mawile", "cost": 2 },
        "rationale": "3rd Intimidate + Sucker Punch/Taunt, denies Mega Mawile Huge Power threat."
      }
    ]
  },
  "standings": [
    {
      "seriesWins": 1,
      "seriesLosses": 0,
      "gameWins": 2,
      "gameLosses": 0,
      "rank": 1,
      "franchiseId": "franchise-5",
      "differential": 2
    },
    {
      "seriesWins": 1,
      "seriesLosses": 0,
      "gameWins": 2,
      "gameLosses": 0,
      "rank": 2,
      "franchiseId": "franchise-7",
      "differential": 2
    },
    {
      "seriesWins": 1,
      "seriesLosses": 0,
      "gameWins": 2,
      "gameLosses": 1,
      "rank": 3,
      "franchiseId": "franchise-1",
      "differential": 1
    },
    {
      "seriesWins": 1,
      "seriesLosses": 0,
      "gameWins": 2,
      "gameLosses": 1,
      "rank": 4,
      "franchiseId": "franchise-4",
      "differential": 1
    },
    {
      "seriesWins": 0,
      "seriesLosses": 1,
      "gameWins": 1,
      "gameLosses": 2,
      "rank": 5,
      "franchiseId": "franchise-3",
      "differential": -1
    },
    {
      "seriesWins": 0,
      "seriesLosses": 1,
      "gameWins": 1,
      "gameLosses": 2,
      "rank": 6,
      "franchiseId": "franchise-6",
      "differential": -1
    },
    {
      "seriesWins": 0,
      "seriesLosses": 1,
      "gameWins": 0,
      "gameLosses": 2,
      "rank": 7,
      "franchiseId": "franchise-0",
      "differential": -2
    },
    {
      "seriesWins": 0,
      "seriesLosses": 1,
      "gameWins": 0,
      "gameLosses": 2,
      "rank": 8,
      "franchiseId": "franchise-2",
      "differential": -2
    }
  ],
  "weeks": [
    {
      "number": 1,
      "status": "released",
      "matches": [
        {
          "id": "week-1-match-1",
          "seriesIndex": 0,
          "seriesId": "f3d85e53af38",
          "franchises": ["franchise-0", "franchise-7"],
          "status": "complete",
          "score": [0, 2],
          "winnerId": "franchise-7",
          "games": [
            {
              "number": 1,
              "winnerId": "franchise-7",
              "turns": 6,
              "brought": [
                ["incineroar", "noivern", "ceruledge", "garchomp"],
                ["dragonite", "gholdengo", "swampert", "charizard-mega-y"]
              ],
              "megaEvolved": [null, null],
              "faints": [{ "noivern": 1, "ceruledge": 1 }, {}]
            },
            {
              "number": 2,
              "winnerId": "franchise-7",
              "turns": 13,
              "brought": [
                ["incineroar", "noivern", "clefable-mega", "rotom-mow"],
                ["dragonite", "gholdengo", "swampert", "charizard-mega-y"]
              ],
              "megaEvolved": [null, "charizard-mega-y"],
              "faints": [
                { "noivern": 1, "incineroar": 1, "clefable-mega": 1, "rotom-mow": 1 },
                { "gholdengo": 1, "charizard-mega-y": 1, "swampert": 1 }
              ]
            }
          ],
          "builds": [
            {
              "franchiseId": "franchise-0",
              "prepared": [
                "incineroar",
                "garchomp",
                "clefable-mega",
                "noivern",
                "rotom-mow",
                "ceruledge"
              ],
              "sets": [
                {
                  "species": "Incineroar",
                  "spriteId": "incineroar",
                  "item": "Sitrus Berry",
                  "ability": "Intimidate",
                  "nature": "Careful",
                  "moves": ["Fake Out", "Flare Blitz", "Darkest Lariat", "Parting Shot"],
                  "evs": { "hp": 32, "atk": 20, "def": 0, "spa": 0, "spd": 14, "spe": 0 }
                },
                {
                  "species": "Garchomp",
                  "spriteId": "garchomp",
                  "item": "Muscle Band",
                  "ability": "Rough Skin",
                  "nature": "Jolly",
                  "moves": ["Rock Slide", "Earthquake", "Breaking Swipe", "Protect"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Mega Clefable",
                  "spriteId": "clefable-mega",
                  "item": "Clefablite",
                  "ability": "Magic Guard",
                  "nature": "Modest",
                  "moves": ["Moonblast", "Flamethrower", "Follow Me", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 0, "spa": 32, "spd": 2, "spe": 0 }
                },
                {
                  "species": "Noivern",
                  "spriteId": "noivern",
                  "item": "Focus Sash",
                  "ability": "Infiltrator",
                  "nature": "Timid",
                  "moves": ["Tailwind", "Air Slash", "Taunt", "Protect"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Rotom-Mow",
                  "spriteId": "rotom-mow",
                  "item": "Occa Berry",
                  "ability": "Levitate",
                  "nature": "Modest",
                  "moves": ["Leaf Storm", "Thunderbolt", "Will-O-Wisp", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 0, "spa": 32, "spd": 2, "spe": 0 }
                },
                {
                  "species": "Ceruledge",
                  "spriteId": "ceruledge",
                  "item": "Life Orb",
                  "ability": "Flash Fire",
                  "nature": "Jolly",
                  "moves": ["Bitter Blade", "Shadow Sneak", "Close Combat", "Protect"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                }
              ],
              "rationale": "Sun + Chlorophyll Venusaur is the threat: only Noivern Tailwind lets us outrun it, with Incineroar Fake Out to stop turn-1 Sleep Powder. Ceruledge Flash Fire walls Zard Y Heat Wave and sweeps Venusaur/Alcremie/Gholdengo with Bitter Blade + Sneak, while Garchomp Rock Slide pressures Zard/Dragonite. Mega Clefable Magic Bounce + Follow Me bounces sleep/status and covers dragons/fighters; Rotom Leaf Storm deletes Swampert/Tauros-Aqua.",
              "attempts": 2
            },
            {
              "franchiseId": "franchise-7",
              "prepared": [
                "charizard-mega-y",
                "venusaur",
                "swampert",
                "gholdengo",
                "dragonite",
                "passimian"
              ],
              "sets": [
                {
                  "species": "Mega Charizard Y",
                  "spriteId": "charizard-megay",
                  "item": "Charizardite Y",
                  "ability": "Blaze",
                  "nature": "Modest",
                  "moves": ["Heat Wave", "Overheat", "Scorching Sands", "Protect"],
                  "evs": { "hp": 0, "atk": 0, "def": 2, "spa": 32, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Venusaur",
                  "spriteId": "venusaur",
                  "item": "Life Orb",
                  "ability": "Chlorophyll",
                  "nature": "Modest",
                  "moves": ["Sludge Bomb", "Earth Power", "Sleep Powder", "Protect"],
                  "evs": { "hp": 0, "atk": 0, "def": 0, "spa": 32, "spd": 2, "spe": 32 }
                },
                {
                  "species": "Swampert",
                  "spriteId": "swampert",
                  "item": "Sitrus Berry",
                  "ability": "Torrent",
                  "nature": "Adamant",
                  "moves": ["Wide Guard", "Ice Punch", "High Horsepower", "Flip Turn"],
                  "evs": { "hp": 32, "atk": 32, "def": 2, "spa": 0, "spd": 0, "spe": 0 }
                },
                {
                  "species": "Gholdengo",
                  "spriteId": "gholdengo",
                  "item": "Choice Scarf",
                  "ability": "Good as Gold",
                  "nature": "Timid",
                  "moves": ["Make It Rain", "Shadow Ball", "Focus Blast", "Trick"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Dragonite",
                  "spriteId": "dragonite",
                  "item": "Lum Berry",
                  "ability": "Inner Focus",
                  "nature": "Adamant",
                  "moves": ["Extreme Speed", "Dragon Claw", "Ice Spinner", "Tailwind"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Passimian",
                  "spriteId": "passimian",
                  "item": "Focus Sash",
                  "ability": "Defiant",
                  "nature": "Jolly",
                  "moves": ["Close Combat", "Knock Off", "Gunk Shot", "Quick Guard"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                }
              ],
              "rationale": "Against an opponent relying heavily on triple-Intimidate pivots (Incineroar, Scrafty, Mawile) and dragon speed threats (Dragapult, Garchomp), our squad provides hard counter-play across every dimension. Defiant Passimian with Quick Guard turns enemy Intimidates into lethal offensive momentum while completely nullifying opposing Fake Out and priority, whereas Inner Focus Lum Berry Dragonite operates entirely unaffected by attack drops, flinches, or burns. Timid Choice Scarf Gholdengo naturally outspeeds and OHKOs max-speed Dragapult with Shadow Ball while shredding Mega Clefable with Make It Rain, Swampert neutralizes Garchomp's spread Earthquakes with Wide Guard while threatening an immediate 4x Ice Punch KO, and the Mega Charizard Y plus Chlorophyll Venusaur Sun core exerts overwhelming high-speed special board control.",
              "attempts": 1
            }
          ]
        },
        {
          "id": "week-1-match-2",
          "seriesIndex": 1,
          "seriesId": "c22e30a077af",
          "franchises": ["franchise-1", "franchise-6"],
          "status": "complete",
          "score": [2, 1],
          "winnerId": "franchise-1",
          "games": [
            {
              "number": 1,
              "winnerId": "franchise-6",
              "turns": 13,
              "brought": [
                ["corviknight", "hatterene", "farigiraf", "dragalge"],
                ["indeedee-f", "pelipper", "basculegion", "gardevoir-mega"]
              ],
              "megaEvolved": [null, "gardevoir-mega"],
              "faints": [
                { "hatterene": 1, "dragalge": 1, "farigiraf": 1, "corviknight": 1 },
                { "indeedee-f": 1, "basculegion": 1, "gardevoir-mega": 1 }
              ]
            },
            {
              "number": 2,
              "winnerId": "franchise-1",
              "turns": 11,
              "brought": [
                ["corviknight", "dragalge", "hatterene", "farigiraf"],
                ["indeedee-f", "pelipper", "archaludon", "gardevoir-mega"]
              ],
              "megaEvolved": [null, "gardevoir-mega"],
              "faints": [
                { "dragalge": 1 },
                { "indeedee-f": 1, "archaludon": 1, "gardevoir-mega": 1, "pelipper": 1 }
              ]
            },
            {
              "number": 3,
              "winnerId": "franchise-1",
              "turns": 9,
              "brought": [
                ["corviknight", "dragalge", "hatterene", "farigiraf"],
                ["indeedee-f", "pelipper", "archaludon", "gardevoir-mega"]
              ],
              "megaEvolved": [null, "gardevoir-mega"],
              "faints": [
                { "hatterene": 1 },
                { "pelipper": 1, "archaludon": 1, "indeedee-f": 1, "gardevoir-mega": 1 }
              ]
            }
          ],
          "builds": [
            {
              "franchiseId": "franchise-1",
              "prepared": [
                "salamence-mega",
                "corviknight",
                "dragalge",
                "hatterene",
                "farigiraf",
                "clawitzer"
              ],
              "sets": [
                {
                  "species": "Mega Salamence",
                  "spriteId": "salamence-mega",
                  "item": "Salamencite",
                  "ability": "Intimidate",
                  "nature": "Jolly",
                  "moves": ["Double-Edge", "Rock Slide", "Earthquake", "Dragon Dance"],
                  "evs": { "hp": 18, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 16 }
                },
                {
                  "species": "Corviknight",
                  "spriteId": "corviknight",
                  "item": "Rocky Helmet",
                  "ability": "Mirror Armor",
                  "nature": "Impish",
                  "moves": ["Body Press", "Iron Head", "Tailwind", "Roost"],
                  "evs": { "hp": 20, "atk": 0, "def": 32, "spa": 0, "spd": 14, "spe": 0 }
                },
                {
                  "species": "Dragalge",
                  "spriteId": "dragalge",
                  "item": "Leftovers",
                  "ability": "Adaptability",
                  "nature": "Modest",
                  "moves": ["Sludge Wave", "Icy Wind", "Hydro Pump", "Protect"],
                  "evs": { "hp": 14, "atk": 0, "def": 0, "spa": 32, "spd": 20, "spe": 0 }
                },
                {
                  "species": "Hatterene",
                  "spriteId": "hatterene",
                  "item": "Sitrus Berry",
                  "ability": "Magic Bounce",
                  "nature": "Modest",
                  "moves": ["Trick Room", "Dark Pulse", "Psychic", "Protect"],
                  "evs": { "hp": 24, "atk": 0, "def": 18, "spa": 24, "spd": 0, "spe": 0 }
                },
                {
                  "species": "Farigiraf",
                  "spriteId": "farigiraf",
                  "item": "Mental Herb",
                  "ability": "Armor Tail",
                  "nature": "Quiet",
                  "moves": ["Trick Room", "Crunch", "Foul Play", "Protect"],
                  "evs": { "hp": 18, "atk": 12, "def": 0, "spa": 18, "spd": 18, "spe": 0 }
                },
                {
                  "species": "Clawitzer",
                  "spriteId": "clawitzer",
                  "item": "Life Orb",
                  "ability": "Mega Launcher",
                  "nature": "Modest",
                  "moves": ["Aura Sphere", "Dark Pulse", "Ice Beam", "Hydro Pump"],
                  "evs": { "hp": 14, "atk": 0, "def": 0, "spa": 32, "spd": 20, "spe": 0 }
                }
              ],
              "rationale": "Their draft projects rain (Pelipper + Swift Swim Basculegion/Qwilfish + Electro Shot Archaludon) fused with Psychic-surge spam (Indeedee-F + Mega Gardevoir's Pixilate Hyper Voice). My plan: Corviknight + Dragalge wall the special cores — Corv eats Hyper Voice for 17-28% and Iron Heads Gardevoir back, Dragalce absorbs Electro Shot (19-34%) and rain Wave Crash (47-86%) while Sludge Wave sits in Gardevoir OHKO range. Hatterene and Farigiraf are both Trick Room setters, so Taunt/Fake Out/Thunder Wave (Magic Bounce + Mental Herb + Armor Tail) can't stop speed inversion, and under TR my 49-79 Speed squad always moves first against their entire roster. Clawitzer is the TR nuke: Aura Sphere 2x Archaludon/Morpeko, Dark Pulse 2x Indeedee, Ice Beam 2x Sceptile/Gliscor, Hydro Pump OHKOs Gliscor (whose Poison Heal is dead — no Toxic Orb in this format). Mega Mence is the rain answer: Rock Slide 4x Pelipper, EQ 4x Archaludon, 171 Speed beats Timid Gardevoir — just never lead it into Hyper Voice.",
              "attempts": 1
            },
            {
              "franchiseId": "franchise-6",
              "prepared": [
                "pelipper",
                "basculegion",
                "archaludon",
                "gardevoir-mega",
                "indeedee-f",
                "qwilfish"
              ],
              "sets": [
                {
                  "species": "Pelipper",
                  "spriteId": "pelipper",
                  "item": "Focus Sash",
                  "ability": "Drizzle",
                  "nature": "Timid",
                  "moves": ["Hurricane", "Tailwind", "Wide Guard", "Protect"],
                  "evs": { "hp": 18, "atk": 0, "def": 0, "spa": 16, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Basculegion-Male",
                  "spriteId": "basculegion",
                  "item": "Life Orb",
                  "ability": "Swift Swim",
                  "nature": "Adamant",
                  "moves": ["Wave Crash", "Last Respects", "Aqua Jet", "Protect"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Archaludon",
                  "spriteId": "archaludon",
                  "item": "Magnet",
                  "ability": "Stalwart",
                  "nature": "Modest",
                  "moves": ["Electro Shot", "Flash Cannon", "Draco Meteor", "Protect"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 32, "spe": 0 }
                },
                {
                  "species": "Mega Gardevoir",
                  "spriteId": "gardevoir-mega",
                  "item": "Gardevoirite",
                  "ability": "Trace",
                  "nature": "Modest",
                  "moves": ["Hyper Voice", "Expanding Force", "Mystical Fire", "Protect"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Indeedee-F",
                  "spriteId": "indeedee-f",
                  "item": "Psychic Seed",
                  "ability": "Psychic Surge",
                  "nature": "Bold",
                  "moves": ["Follow Me", "Imprison", "Trick Room", "Helping Hand"],
                  "evs": { "hp": 32, "atk": 0, "def": 32, "spa": 0, "spd": 2, "spe": 0 }
                },
                {
                  "species": "Qwilfish",
                  "spriteId": "qwilfish",
                  "item": "Rocky Helmet",
                  "ability": "Intimidate",
                  "nature": "Jolly",
                  "moves": ["Poison Jab", "Icy Wind", "Haze", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 20, "spa": 0, "spd": 0, "spe": 14 }
                }
              ],
              "rationale": "Pelipper establishes rain for Swift Swim Basculegion and immediate Electro Shot Archaludon, while Tailwind and Icy Wind provide flexible speed control. Indeedee-F supplies Psychic Terrain, Follow Me, and Imprison against Trick Room; Mega Gardevoir converts that terrain into strong spread pressure and threatens the Dragons and Fighters of the opposing pool. Qwilfish adds Intimidate, Haze, and Poison pressure into physical setup and Azumarill, with Wide Guard from Pelipper protecting the rain core from opposing spread attacks.",
              "attempts": 1
            }
          ]
        },
        {
          "id": "week-1-match-3",
          "seriesIndex": 2,
          "seriesId": "95feb7024a1d",
          "franchises": ["franchise-2", "franchise-5"],
          "status": "complete",
          "score": [0, 2],
          "winnerId": "franchise-5",
          "games": [
            {
              "number": 1,
              "winnerId": "franchise-5",
              "turns": 11,
              "brought": [
                ["rillaboom", "clefable", "dragonite-mega", "skeledirge"],
                ["metagross-mega", "primarina", "talonflame", "arcanine"]
              ],
              "megaEvolved": ["dragonite-mega", "metagross-mega"],
              "faints": [
                { "skeledirge": 1, "clefable": 1, "rillaboom": 1, "dragonite-mega": 1 },
                { "metagross-mega": 1, "talonflame": 1 }
              ]
            },
            {
              "number": 2,
              "winnerId": "franchise-5",
              "turns": 9,
              "brought": [
                ["rillaboom", "greninja", "clefable", "dragonite-mega"],
                ["metagross-mega", "arcanine", "primarina", "talonflame"]
              ],
              "megaEvolved": ["dragonite-mega", "metagross-mega"],
              "faints": [
                { "rillaboom": 1, "clefable": 1, "dragonite-mega": 1, "greninja": 1 },
                { "arcanine": 1, "talonflame": 1, "metagross-mega": 1 }
              ]
            }
          ],
          "builds": [
            {
              "franchiseId": "franchise-2",
              "prepared": [
                "rillaboom",
                "sneasler",
                "clefable",
                "dragonite-mega",
                "skeledirge",
                "greninja"
              ],
              "sets": [
                {
                  "species": "Rillaboom",
                  "spriteId": "rillaboom",
                  "item": "Sitrus Berry",
                  "ability": "Grassy Surge",
                  "nature": "Adamant",
                  "moves": ["Fake Out", "Wood Hammer", "Grassy Glide", "Protect"],
                  "evs": { "hp": 20, "atk": 32, "def": 14, "spa": 0, "spd": 0, "spe": 0 }
                },
                {
                  "species": "Sneasler",
                  "spriteId": "sneasler",
                  "item": "Focus Sash",
                  "ability": "Unburden",
                  "nature": "Jolly",
                  "moves": ["Fake Out", "Close Combat", "Dire Claw", "Protect"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Clefable",
                  "spriteId": "clefable",
                  "item": "Mental Herb",
                  "ability": "Magic Guard",
                  "nature": "Bold",
                  "moves": ["Follow Me", "Moonblast", "Helping Hand", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 32, "spa": 0, "spd": 2, "spe": 0 }
                },
                {
                  "species": "Mega Dragonite",
                  "spriteId": "dragonite-mega",
                  "item": "Dragoninite",
                  "ability": "Multiscale",
                  "nature": "Modest",
                  "moves": ["Extreme Speed", "Fire Blast", "Hurricane", "Protect"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Skeledirge",
                  "spriteId": "skeledirge",
                  "item": "Leftovers",
                  "ability": "Unaware",
                  "nature": "Modest",
                  "moves": ["Torch Song", "Shadow Ball", "Slack Off", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 0, "spa": 32, "spd": 2, "spe": 0 }
                },
                {
                  "species": "Greninja",
                  "spriteId": "greninja",
                  "item": "Life Orb",
                  "ability": "Protean",
                  "nature": "Timid",
                  "moves": ["Hydro Pump", "Dark Pulse", "Ice Beam", "Protect"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 32 }
                }
              ],
              "rationale": "Their likely core is Mega Metagross plus Primarina, Talonflame, Arcanine, and either Mamoswine or Sinistcha. Grassy Surge plus Follow Me Clefable lets Mega Dragonite click Fire Blast/Hurricane through Ice Shard and EQ; Mental Herb keeps Follow Me live through Talonflame Taunt. Skeledirge Unaware walls Meteor Mash and Gale Wings Brave Bird, then Torch Songs the Steels and Ice. Greninja Life Orb Hydro Pump is the clean Talonflame/Arcanine/Mamoswine answer and Dark Pulses Metagross; Sneasler Sash Fake Outs and covers Primarina/Mamoswine when Rillaboom is not in. Bring Rilla+Clef+DN+Dirge vs Metagross/Mamo, swap Greninja in vs the Fires, Sneasler in vs Primarina without Rilla.",
              "attempts": 1
            },
            {
              "franchiseId": "franchise-5",
              "prepared": [
                "metagross-mega",
                "mamoswine",
                "primarina",
                "talonflame",
                "arcanine",
                "rotom-frost"
              ],
              "sets": [
                {
                  "species": "Mega Metagross",
                  "spriteId": "metagross-mega",
                  "item": "Metagrossite",
                  "ability": "Clear Body",
                  "nature": "Adamant",
                  "moves": ["Meteor Mash", "Zen Headbutt", "Ice Punch", "Protect"],
                  "evs": { "hp": 32, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 2 }
                },
                {
                  "species": "Mamoswine",
                  "spriteId": "mamoswine",
                  "item": "Life Orb",
                  "ability": "Thick Fat",
                  "nature": "Adamant",
                  "moves": ["Ice Shard", "Icicle Spear", "Earthquake", "Protect"],
                  "evs": { "hp": 32, "atk": 32, "def": 2, "spa": 0, "spd": 0, "spe": 0 }
                },
                {
                  "species": "Primarina",
                  "spriteId": "primarina",
                  "item": "Leftovers",
                  "ability": "Torrent",
                  "nature": "Modest",
                  "moves": ["Moonblast", "Ice Beam", "Hydro Pump", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 0, "spa": 32, "spd": 2, "spe": 0 }
                },
                {
                  "species": "Talonflame",
                  "spriteId": "talonflame",
                  "item": "Sharp Beak",
                  "ability": "Gale Wings",
                  "nature": "Jolly",
                  "moves": ["Brave Bird", "Flare Blitz", "U-turn", "Protect"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Arcanine",
                  "spriteId": "arcanine",
                  "item": "Sitrus Berry",
                  "ability": "Intimidate",
                  "nature": "Adamant",
                  "moves": ["Flare Blitz", "Extreme Speed", "Will-O-Wisp", "Protect"],
                  "evs": { "hp": 32, "atk": 32, "def": 2, "spa": 0, "spd": 0, "spe": 0 }
                },
                {
                  "species": "Rotom-Frost",
                  "spriteId": "rotom-frost",
                  "item": "Expert Belt",
                  "ability": "Levitate",
                  "nature": "Modest",
                  "moves": ["Blizzard", "Thunderbolt", "Volt Switch", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 0, "spa": 32, "spd": 2, "spe": 0 }
                }
              ],
              "rationale": "This opponent leans on Mega Dragonite plus fast Sneasler/Greninja and Prankster Grimmsnarl screens. Primarina is the anchor: it is immune to Dragon STAB, resists Fire/Hurricane, and hits Dragonite 4x with Ice Beam. Metagross breaks Clefable/Grimmsnarl with Meteor Mash and chips Dragonite with Ice Punch, while Talonflame's Gale Wings Brave Bird and Arcanine's Intimidate + Will-O-Wisp + Extreme Speed blanket Sneasler, Rillaboom and Greninja. Mamoswine and Rotom-Frost add Ice/Ground and Ice/Electric coverage to break Multiscale and Focus Sashes, with Protect on every non-Metagross slot for Fake Out and positioning.",
              "attempts": 1
            }
          ]
        },
        {
          "id": "week-1-match-4",
          "seriesIndex": 3,
          "seriesId": "1c02676e8a79",
          "franchises": ["franchise-3", "franchise-4"],
          "status": "complete",
          "score": [1, 2],
          "winnerId": "franchise-4",
          "games": [
            {
              "number": 1,
              "winnerId": "franchise-4",
              "turns": 13,
              "brought": [
                ["gengar-mega", "kangaskhan-mega", "salamence", "rotom-wash"],
                ["whimsicott", "weavile", "annihilape", "excadrill-mega"]
              ],
              "megaEvolved": ["gengar-mega", null],
              "faints": [
                { "rotom-wash": 1, "salamence": 1, "kangaskhan-mega": 1, "gengar-mega": 1 },
                { "weavile": 1 }
              ]
            },
            {
              "number": 2,
              "winnerId": "franchise-3",
              "turns": 7,
              "brought": [
                ["kangaskhan-mega", "kingambit", "gengar-mega", "salamence"],
                ["whimsicott", "weavile", "annihilape", "excadrill-mega"]
              ],
              "megaEvolved": ["gengar-mega", "excadrill-mega"],
              "faints": [
                { "kingambit": 1, "kangaskhan-mega": 1 },
                { "weavile": 1, "whimsicott": 1, "excadrill-mega": 1, "annihilape": 1 }
              ]
            },
            {
              "number": 3,
              "winnerId": "franchise-4",
              "turns": 9,
              "brought": [
                ["kangaskhan-mega", "kingambit", "gengar-mega", "salamence"],
                ["whimsicott", "weavile", "annihilape", "excadrill-mega"]
              ],
              "megaEvolved": ["gengar-mega", "excadrill-mega"],
              "faints": [
                { "kangaskhan-mega": 1, "salamence": 1, "gengar-mega": 1, "kingambit": 1 },
                { "annihilape": 1, "weavile": 1, "excadrill-mega": 1 }
              ]
            }
          ],
          "builds": [
            {
              "franchiseId": "franchise-3",
              "prepared": [
                "gengar-mega",
                "kangaskhan-mega",
                "salamence",
                "rotom-wash",
                "kingambit",
                "altaria-mega"
              ],
              "sets": [
                {
                  "species": "Mega Gengar",
                  "spriteId": "gengar-mega",
                  "item": "Gengarite",
                  "ability": "Cursed Body",
                  "nature": "Timid",
                  "moves": ["Sludge Bomb", "Shadow Ball", "Focus Blast", "Protect"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Mega Kangaskhan",
                  "spriteId": "kangaskhan-mega",
                  "item": "Kangaskhanite",
                  "ability": "Scrappy",
                  "nature": "Jolly",
                  "moves": ["Fake Out", "Double-Edge", "Drain Punch", "Protect"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Salamence",
                  "spriteId": "salamence",
                  "item": "Focus Sash",
                  "ability": "Intimidate",
                  "nature": "Timid",
                  "moves": ["Tailwind", "Heat Wave", "Draco Meteor", "Protect"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Rotom-Wash",
                  "spriteId": "rotom-wash",
                  "item": "Sitrus Berry",
                  "ability": "Levitate",
                  "nature": "Modest",
                  "moves": ["Hydro Pump", "Thunderbolt", "Will-O-Wisp", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 2 }
                },
                {
                  "species": "Kingambit",
                  "spriteId": "kingambit",
                  "item": "Chople Berry",
                  "ability": "Defiant",
                  "nature": "Adamant",
                  "moves": ["Kowtow Cleave", "Iron Head", "Sucker Punch", "Protect"],
                  "evs": { "hp": 32, "atk": 32, "def": 0, "spa": 0, "spd": 2, "spe": 0 }
                },
                {
                  "species": "Mega Altaria",
                  "spriteId": "altaria-mega",
                  "item": "Altarianite",
                  "ability": "Natural Cure",
                  "nature": "Modest",
                  "moves": ["Hyper Voice", "Heat Wave", "Tailwind", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 2 }
                }
              ],
              "rationale": "Opponent leans on Prankster Whimsicott speed control, Annihilape/Chandelure Ghosts and a Mega Excadrill whose contact moves pierce Protect. Mega Gengar is the primary mega: Shadow Tag traps and Sludge Bomb one-shots Whimsicott, Shadow Ball chunks Annihilape/Chandelure, Focus Blast threatens Excadrill/Weavile/Empoleon. Salamence (Sash) provides Tailwind + Intimidate and Heat Wave/Draco for Excadrill and Hydrapple; Kangaskhan gives Scrappy Fake Out (hits their Ghosts pre-mega) to buy Gengar and Tailwind turns. Rotom-Wash is the Excadrill/Rotom-Heat/Empoleon answer (Levitate, Hydro Pump, Will-O-Wisp); Kingambit with Chople cleans Weavile/Chandelure/Whimsicott with Sucker Punch and punishes Tauros Intimidate via Defiant. Altaria is the flex mega for Annihilape/Hydrapple/Weavile-heavy brings (Ground-immune, Fairy spread). Avoid Intimidating Annihilape (Defiant) and keep Gengar/Kingambit away from Excadrill Ground moves.",
              "attempts": 1
            },
            {
              "franchiseId": "franchise-4",
              "prepared": [
                "whimsicott",
                "annihilape",
                "maushold",
                "excadrill-mega",
                "weavile",
                "hydrapple"
              ],
              "sets": [
                {
                  "species": "Whimsicott",
                  "spriteId": "whimsicott",
                  "item": "Focus Sash",
                  "ability": "Prankster",
                  "nature": "Timid",
                  "moves": ["Tailwind", "Beat Up", "Moonblast", "Taunt"],
                  "evs": { "hp": 2, "atk": 0, "def": 0, "spa": 32, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Annihilape",
                  "spriteId": "annihilape",
                  "item": "Lum Berry",
                  "ability": "Defiant",
                  "nature": "Adamant",
                  "moves": ["Rage Fist", "Drain Punch", "Bulk Up", "Protect"],
                  "evs": { "hp": 24, "atk": 16, "def": 2, "spa": 0, "spd": 14, "spe": 10 }
                },
                {
                  "species": "Maushold",
                  "spriteId": "maushold",
                  "item": "Rocky Helmet",
                  "ability": "Friend Guard",
                  "nature": "Bold",
                  "moves": ["Follow Me", "Super Fang", "Helping Hand", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 32, "spa": 0, "spd": 2, "spe": 0 }
                },
                {
                  "species": "Mega Excadrill",
                  "spriteId": "excadrill-mega",
                  "item": "Excadrite",
                  "ability": "Mold Breaker",
                  "nature": "Jolly",
                  "moves": ["High Horsepower", "Iron Head", "Swords Dance", "Protect"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Weavile",
                  "spriteId": "weavile",
                  "item": "Wide Lens",
                  "ability": "Pressure",
                  "nature": "Jolly",
                  "moves": ["Fake Out", "Knock Off", "Triple Axel", "Protect"],
                  "evs": { "hp": 2, "atk": 32, "def": 0, "spa": 0, "spd": 0, "spe": 32 }
                },
                {
                  "species": "Hydrapple",
                  "spriteId": "hydrapple",
                  "item": "Sitrus Berry",
                  "ability": "Regenerator",
                  "nature": "Modest",
                  "moves": ["Giga Drain", "Draco Meteor", "Earth Power", "Protect"],
                  "evs": { "hp": 32, "atk": 0, "def": 0, "spa": 32, "spd": 2, "spe": 0 }
                }
              ],
              "rationale": "Play Tailwind offense with Whimsicott and Excadrill, or build an Annihilape endgame with Beat Up and Maushold's redirection; bring four with a clear damage plan rather than automatically bringing both supports. Weavile supplies the fastest unboosted Fake Out in this matchup and pressures Salamence, while Hydrapple answers Rotom-Wash and supplies special damage. Against Mega Gengar, establish Tailwind safely—often with Annihilape protecting—and remember that Annihilape can escape Shadow Tag, but our other five cannot. Preserve Excadrill against Mega Altaria, and use Defiant Annihilape to discourage Salamence's Intimidate.",
              "attempts": 1
            }
          ]
        }
      ]
    },
    {
      "number": 2,
      "status": "scheduled",
      "matches": [
        {
          "id": "week-2-match-1",
          "seriesIndex": 4,
          "seriesId": null,
          "franchises": ["franchise-6", "franchise-0"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-2-match-2",
          "seriesIndex": 5,
          "seriesId": null,
          "franchises": ["franchise-5", "franchise-7"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-2-match-3",
          "seriesIndex": 6,
          "seriesId": null,
          "franchises": ["franchise-4", "franchise-1"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-2-match-4",
          "seriesIndex": 7,
          "seriesId": null,
          "franchises": ["franchise-3", "franchise-2"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        }
      ]
    },
    {
      "number": 3,
      "status": "scheduled",
      "matches": [
        {
          "id": "week-3-match-1",
          "seriesIndex": 8,
          "seriesId": null,
          "franchises": ["franchise-0", "franchise-5"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-3-match-2",
          "seriesIndex": 9,
          "seriesId": null,
          "franchises": ["franchise-6", "franchise-4"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-3-match-3",
          "seriesIndex": 10,
          "seriesId": null,
          "franchises": ["franchise-7", "franchise-3"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-3-match-4",
          "seriesIndex": 11,
          "seriesId": null,
          "franchises": ["franchise-1", "franchise-2"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        }
      ]
    },
    {
      "number": 4,
      "status": "scheduled",
      "matches": [
        {
          "id": "week-4-match-1",
          "seriesIndex": 12,
          "seriesId": null,
          "franchises": ["franchise-4", "franchise-0"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-4-match-2",
          "seriesIndex": 13,
          "seriesId": null,
          "franchises": ["franchise-3", "franchise-5"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-4-match-3",
          "seriesIndex": 14,
          "seriesId": null,
          "franchises": ["franchise-2", "franchise-6"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-4-match-4",
          "seriesIndex": 15,
          "seriesId": null,
          "franchises": ["franchise-1", "franchise-7"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        }
      ]
    },
    {
      "number": 5,
      "status": "scheduled",
      "matches": [
        {
          "id": "week-5-match-1",
          "seriesIndex": 16,
          "seriesId": null,
          "franchises": ["franchise-0", "franchise-3"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-5-match-2",
          "seriesIndex": 17,
          "seriesId": null,
          "franchises": ["franchise-4", "franchise-2"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-5-match-3",
          "seriesIndex": 18,
          "seriesId": null,
          "franchises": ["franchise-5", "franchise-1"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-5-match-4",
          "seriesIndex": 19,
          "seriesId": null,
          "franchises": ["franchise-6", "franchise-7"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        }
      ]
    },
    {
      "number": 6,
      "status": "scheduled",
      "matches": [
        {
          "id": "week-6-match-1",
          "seriesIndex": 20,
          "seriesId": null,
          "franchises": ["franchise-2", "franchise-0"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-6-match-2",
          "seriesIndex": 21,
          "seriesId": null,
          "franchises": ["franchise-1", "franchise-3"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-6-match-3",
          "seriesIndex": 22,
          "seriesId": null,
          "franchises": ["franchise-7", "franchise-4"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-6-match-4",
          "seriesIndex": 23,
          "seriesId": null,
          "franchises": ["franchise-6", "franchise-5"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        }
      ]
    },
    {
      "number": 7,
      "status": "scheduled",
      "matches": [
        {
          "id": "week-7-match-1",
          "seriesIndex": 24,
          "seriesId": null,
          "franchises": ["franchise-0", "franchise-1"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-7-match-2",
          "seriesIndex": 25,
          "seriesId": null,
          "franchises": ["franchise-2", "franchise-7"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-7-match-3",
          "seriesIndex": 26,
          "seriesId": null,
          "franchises": ["franchise-3", "franchise-6"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        },
        {
          "id": "week-7-match-4",
          "seriesIndex": 27,
          "seriesId": null,
          "franchises": ["franchise-4", "franchise-5"],
          "status": "scheduled",
          "score": null,
          "winnerId": null,
          "games": [],
          "builds": []
        }
      ]
    }
  ],
  "transactions": [
    {
      "afterWeek": 1,
      "order": [
        "franchise-2",
        "franchise-0",
        "franchise-6",
        "franchise-3",
        "franchise-4",
        "franchise-1",
        "franchise-7",
        "franchise-5"
      ],
      "offers": [
        {
          "from": "franchise-2",
          "to": null,
          "give": null,
          "get": null,
          "message": null,
          "accepted": null,
          "offerReasoning": "All 8 rosters sit at 100, so only equal-cost 1-for-1s are legal. No 18-cost piece exists to get Incineroar; no 11-cost piece exists to get Arcanine. Core 19/16/15s would have to move for Whimsicott/Gholdengo/Kanga/Primarina, which guts the Mega-DN enable core and those coaches will not sell W1 staples anyway. Rotom-for-Tauros/Qwilfish/Mawile is Arbok-tier Intimidate and wrecks the Combat FA (drop Houndoom+Rotom, sign Combat 3). Keep the 10, take Combat in FA.",
          "responseReasoning": ""
        },
        {
          "from": "franchise-0",
          "to": "franchise-5",
          "give": "scrafty",
          "get": "skarmory",
          "message": "3-for-3 benched swap, both stay 100. You get Intimidate/FakeOut/KnockOff Scrafty (hits Ghosts like Sinistcha/Gengar, CC for Steels) for your crime-fighting core. We get Sturdy Tailwind/Taunt Steel for rain prep. Win-win fit.",
          "accepted": true,
          "offerReasoning": "Equal 3-3 keeps both at 100. Skarmory gives 2nd Tailwind (only Noivern has TW), Sturdy, Hurricane 0.5x + Fairy 0.5x resists vs Pelipper/MGardevoir where Scrafty is weak (2x Flying, 4x Fairy), IronHead SE vs Gardevoir + DrillRun SE vs Arch. Preserves Mega + core 5 for W2, adds Steel/Espeed resist for future. Scrafty benched-for-benched, past-bench Skarmory for them.",
          "responseReasoning": "Cost-neutral 1-for-1 (Skarmory 3 <-> Scrafty 3), keeps 10 mons and 100/100. Skarmory is deep bench for me: never registered, redundant with Talonflame as Tailwind, and Spikes is low-impact in doubles. Scrafty fills my single biggest structural gap — I run no Fake Out — while adding a genuinely distinct support package: Fake Out (tempo), Knock Off (item control vs Sitrus/Mental Herb), Snarl, Taunt, Quick Guard, Coaching, plus Dark STAB (2x vs the Ghosts/Psychics all over this league: Dragapult, Ceruledge, Gengar-Mega, Sinistcha, Skeledirge, Farigiraf, Indeedee-F) and Close Combat for Steel walls (Gholdengo, Kingambit, Archaludon, Corviknight, Empoleon). Ice Punch is an extra 4x Dragonite tool if needed. Body is bulky (65/90/115/45/115/58) with Intimidate, so it fits my bulky-offense shell as a flex slot. Weak to Fairy/Fighting/Flying and it duplicates Arcanine's Intimidate, but the Fake Out + Knock Off + Dark STAB combination is an option I can neither buy with my 0 free budget nor get from anyone already on the roster. Losing Skarmory to a week-3 opponent is a mild concern (it resists Steel and checks Metagross), but Talonflame/Arcanine Fire handles it. Net upgrade in flexibility for a mon I never used."
        },
        {
          "from": "franchise-0",
          "to": "franchise-5",
          "give": "ceruledge",
          "get": "mamoswine",
          "message": "12-for-12 benched swap, both stay 100. You get Fire/Ghost for Steels/Grasses, we get Ground/Ice for Dragons. Fair.",
          "accepted": false,
          "offerReasoning": "Second offer attempt to gain Ice, else will pass.",
          "responseReasoning": "Value is nominal (12<->12) but fit is not. Ceruledge (Fire/Ghost, 125 Atk, Bitter Blade/Poltergeist/Shadow Sneak/Swords Dance/Flash Fire) is a strong mon, but it would be my THIRD Fire-type (Talonflame, Arcanine already) and stacks shared Water/Ground/Rock/Ghost/Dark weaknesses on a bulky-offense team whose remaining flaw is exactly that (Metagross already 2x weak to Ground). Its main niche — Ghost/Dark pressure on Psychics/Ghosts — is now partly covered by the Scrafty I just acquired (Dark STAB, Knock Off). Meanwhile Mamoswine is my ONLY Ground-type, ONLY Rock Slide spread, my Ice Shard priority revenge killer, my 4x Rock Slide answer to Charizard-Y (the core of my already-built week-2 sun plan) and Freeze-Dry covers Water-types; none of that is replaceable in-house. Schedule factor: the offer comes from muse, my week-3 opponent, who would receive a Mamoswine that hits my Metagross 2x with Earthquake and threatens Talonflame with Rock Slide/Ice Shard right before facing me. I keep Mamoswine and address the Fire/Ghost role in-house if needed."
        },
        {
          "from": "franchise-6",
          "to": null,
          "give": null,
          "get": null,
          "message": null,
          "accepted": null,
          "offerReasoning": "No trade improves the roster enough to justify disturbing the six-piece rain/terrain core. Equal-budget legal bench swaps are lateral, while meaningful Week 2 targets would require sacrificing a core member or violate the 100-point cap.",
          "responseReasoning": ""
        },
        {
          "from": "franchise-3",
          "to": null,
          "give": null,
          "get": null,
          "message": null,
          "accepted": null,
          "offerReasoning": "Every coach sits at exactly 100/100, so only equal-cost swaps are legal. My tradable pieces are the 4-pointers (Toxicroak, Mega Ampharos, Mega Glalie) and the 6-point Mega Steelix; the only equal-cost pieces on other rosters (Pincurchin, Clawitzer, Machamp, Rotom-Frost, Alcremie at 4; Toxtricity, Hydrapple, Chandelure at 6) are sidegrades at best and none fixes a real gap (redirection, reliable Intimidate/Fake Out beyond Kangaskhan). Glalie now has a defined role vs grok's Dragonite/Rillaboom, Toxicroak keeps the Dry Skin niche vs luna's rain, Steelix is the Fairy/Electric wall. No offer beats overpaying or churning for nothing.",
          "responseReasoning": ""
        },
        {
          "from": "franchise-4",
          "to": "franchise-7",
          "give": "maushold",
          "get": "gholdengo",
          "message": "Equal-cost offer: Maushold for Gholdengo, keeping both rosters at 100. Maushold gives your sun team a non-Mega Friend Guard + Follow Me option alongside Charizard, and can protect Dragonite's setup or Venusaur from single-target pressure. It also has Helping Hand, Super Fang, Encore and Feint, so it needn't be a passive redirection slot. You retain Charizard as your headline special attacker; I gain a special attacking option for my Tailwind team.",
          "accepted": false,
          "offerReasoning": "Gholdengo's verified Make It Rain/Shadow Ball/Nasty Plot/Thunderbolt/Trick compress immediate special offense and setup alongside Whimsicott, improving pressure into upcoming Fairy/Psychic cores and adding spread offense independent of MausApe. Losing unique Friend Guard/redirection is material, but this premium equal-cost attacker justifies it while preserving Whimsicott, Annihilape, and Mega Excadrill. Maushold offers genuine sun/setup support to the counterparty, though their demonstrated Gholdengo usage makes rejection plausible. No budget or species conflict.",
          "responseReasoning": "Gholdengo is an indispensable offensive pillar, providing Good as Gold status immunity, Ghost/Steel defensive typing, and premier special spread damage (Make It Rain). Trading it for Maushold would strip our core special firepower and give a direct competitor a devastating Tailwind sweeper, while our roster already possesses ample redirection and support tools."
        },
        {
          "from": "franchise-4",
          "to": null,
          "give": null,
          "get": null,
          "message": null,
          "accepted": null,
          "offerReasoning": "The Maushold-for-Gholdengo offer was rejected; our roster remains unchanged at 100/100. No remaining trade offers a sufficiently clear multi-week improvement to justify surrendering core roles. Retain Friend Guard/Follow Me, Whimsicott–Excadrill offense, Chandelure's Imprison/TR, and Hydrapple's Water resilience. Address upcoming matchups through rebuilt sets and separately evaluate targeted free-agent changes rather than making a lateral trade merely to transact.",
          "responseReasoning": ""
        },
        {
          "from": "franchise-1",
          "to": null,
          "give": null,
          "get": null,
          "message": null,
          "accepted": null,
          "offerReasoning": "Roster is at exactly 100/100 and every coach in the league is also at 100, so any trade forces incoming cost ≤ outgoing — only lateral or point-down swaps are possible, never upgrades. No hard hole has appeared: W1 won 2-1, the W2 script vs astra (Farig+Corv lead, TR core, Azu/Drag/Garg executes) is locked and counters the observed Whim/Weav/Ape/ExcMega core, and my notebook's transaction plan says trade only if a hole appears after W2. Bench (Mence, Clawitzer, Toxtricity, Palafin) already covers the scheduled archetypes. Preserving the TR engine intact is worth more than any available lateral swap; I keep both remaining windows for a targeted fix (second Wide Guard user, Ghost STAB, status-item holder) if W2 exposes one.",
          "responseReasoning": ""
        },
        {
          "from": "franchise-7",
          "to": null,
          "give": null,
          "get": null,
          "message": null,
          "accepted": null,
          "offerReasoning": "Roster is structurally complete at 100/100 points with optimal role compression, weather synergy, and tactical counters for upcoming matchups. Retaining full roster as planned.",
          "responseReasoning": ""
        },
        {
          "from": "franchise-5",
          "to": null,
          "give": null,
          "get": null,
          "message": null,
          "accepted": null,
          "offerReasoning": "No offer. Every roster in the league sits at exactly 100/100, so any swap must be exactly equal-priced to keep both sides legal — the market is effectively locked to same-cost 1-for-1s. My structural gap (no Fake Out) is now filled by Scrafty, and my written rule is to transact only when bench value converts into a starter-level upgrade, else do nothing. Scanning equal-cost targets: (a) Fillers Machamp 4 / Rotom-Frost 4 / Manectric 1 have no better same-cost body available (pincurchin, clawitzer, toxicroak, glalie-mega, ampharos-mega, alcremie, altaria, houndoom are all lateral or Mega-conflicting, and I value Machamp's Wide/Quick Guard and Rotom-Frost's Levitate+Electric/Ice). (b) Mamoswine 12 is NOT surplus: it is my only Ground STAB, only Rock Slide spread (4x Charizard-Y, my week-2 line), Ice Shard priority and Freeze-Dry Water coverage; the only unused 12s are Palafin (build-around Zero to Hero, clunky without reliable pivoting) and Rotom-Heat (Ground immunity already covered by Rotom-Frost's Levitate, and it adds a Water/Rock weakness). (c) Sinistcha 18 is my only Rage Powder, only Trick Room and my Heatproof/Scald sun tech; the 18-cost bodies I could ask for (Incineroar now redundant with Arcanine+Scrafty, Garchomp duplicates Mamoswine's Ground and adds a 4x Ice weakness, Gengar-Mega conflicts with Metagross, Indeedee-F duplicates redirection, Farigiraf) are either not clearly better or are their owners' core (glm brought Farigiraf 3/3), so acceptance odds are low and the gain is uncertain. (d) Arcanine 11 is core and the only 11 (Salamence) is a used core piece that duplicates Talonflame's Flying and Arcanine's Intimidate. Per my risk rule not to worsen the Fire/Ground weakness profile, I hold the roster and make no offer.",
          "responseReasoning": ""
        }
      ],
      "moves": [
        {
          "franchiseId": "franchise-2",
          "swaps": [
            { "drop": "greninja", "add": "tauros-paldea-combat" },
            { "drop": "houndoom", "add": "inteleon" }
          ],
          "swapsRemaining": 4,
          "reasoning": "9-mon Combat plan is illegal (exactly 10, 1-for-1). Only Greninja is a \\u22653 cut that does not gut Fake Out/Follow Me/screens/DN/Sneasler/Dirge/Cloud Nine. Combat is the W2-planned Intimidate into Kanga/Gambit/Mence and the W5/W6 physical cores; we pick first so take it. Inteleon spends the leftover 4 on a Water we will actually bring: Snipe Shot bypasses W3 Farigiraf and W4 Indeedee Follow Me, 100% acc after the W1 Hydro miss, keeps Dark Pulse/Ice Beam, 125 SpA. Keep Rotom for W2 Tag and Altaria for W4/W7. Houndoom was never-bring. No Arbok/1-cost junk."
        },
        {
          "franchiseId": "franchise-0",
          "swaps": [
            { "drop": "ceruledge", "add": "overqwil" },
            { "drop": "garchomp", "add": "excadrill" }
          ],
          "swapsRemaining": 4,
          "reasoning": "W2 rain: Overqwil Dark SE Indeedee/Basculegion Poison SE Gardevoir SwiftSwim+Intim+Taunt vs Pelipper/TW; Excadrill Ground SE Arch Steel SE Gardevoir Rock vs Pelipper, resists Draco/Fairy where Garchomp weak. Saves 13pts (100->87) bank for later, uses 2/6 allowance."
        },
        {
          "franchiseId": "franchise-6",
          "swaps": [],
          "swapsRemaining": 6,
          "reasoning": "No free agent is a clear upgrade within the 100-point cap without cutting a core piece. Garchomp is appealing but replacing Basculegion, Indeedee, or Archaludon would weaken the established rain/terrain matchup plan; bench swaps are lateral or irrelevant."
        },
        {
          "franchiseId": "franchise-3",
          "swaps": [
            { "drop": "toxicroak", "add": "greninja" },
            { "drop": "ampharos-mega", "add": "houndoom" }
          ],
          "swapsRemaining": 4,
          "reasoning": "Toxicroak and Mega Ampharos were the two roster pieces with no clear bring case (never registered in week 1; Ampharos is a 6th mega on a team that only megas Gengar). Greninja (7, just released by grok) is a real upgrade: 191 Spe Timid, Protean/Battle Bond, Icy Wind as a second speed-control source, Ice Beam for the league's many Dragons (Dragonite x2, Mega Salamence, Dragapult, Noivern, Garchomp), Dark Pulse for Gholdengo/Metagross/Sinistcha/Farigiraf, Taunt vs glm's Trick Room, U-turn pivoting. Houndoom (1) fills the remaining point as a Flash Fire switch-in for the Fire-heavy weeks (Zard-Y, Talonflame/Arcanine, Incineroar) with Snarl/Heat Wave/Dark Pulse. Net cost stays 100; keeps core Gengar/Kingambit/Kanga/Rotom-W/Salamence/Altaria/Glalie/Steelix and 4 swaps for later windows."
        },
        {
          "franchiseId": "franchise-4",
          "swaps": [],
          "swapsRemaining": 6,
          "reasoning": "Keep the 100-point roster and all six swaps for the two remaining windows. The Gholdengo trade was rejected, not executed. Week1 exposed sequencing and preservation errors rather than a demonstrated roster failure; five members were never brought, so dismantling the support core now would be premature. For week2, existing Chandelure Imprison/TR, Rotom-Heat special pressure, Excadrill, and optional Maushold protection address dual speed control without relying on blocked Prankster Taunt. Preserve Weavile's natural Speed above Mega Salamence and Hydrapple's Water resilience for upcoming matchups. Araquanid would add valuable Wide Guard and slow Water offense, but financing it through Maushold forfeits our sole reliable Follow Me/Friend Guard combination, while its Flying/Electric weaknesses mean it is not a complete rain answer. Cheap Wide Guard substitutions likewise sacrifice useful roles without clearly improving the full six. Reassess after testing matchup-specific sixes in week2; prioritize genuine rain and spread-defense gaps then, rather than buying redundant Fire/Ghost/Steel offense or competing Megas now."
        },
        {
          "franchiseId": "franchise-1",
          "swaps": [],
          "swapsRemaining": 6,
          "reasoning": "No swaps this window. The registered six (Farigiraf/Corv/Hatt/Azu/Drag/Garg) is locked for the W2 script vs astra and fits every scheduled archetype; W1 confirmed the core works (2-1, only loss was a misread, Corv untouched in G3). Bench pieces (Mence, Clawitzer, Palafin, Toxtricity) cover the known modes, and Clawitzer is specifically the first swap-in vs Mega Excadrill. Free-agent adds like Aegislash (16) or Mawile-Mega (16) would require dropping Mence (20) or Farigiraf (18) — the former sheds my only fast-sweeper insurance for a role Corv+Garg already fill, the latter is core. Everyone else is at/near budget and the pool upgrades available are lateral at best. Keeping all 6 season swaps banked for windows 2-3 preserves optionality if W2 exposes a hard hole (target list: second Wide Guard user, Ghost STAB, status-item holder)."
        },
        {
          "franchiseId": "franchise-7",
          "swaps": [],
          "swapsRemaining": 6,
          "reasoning": "Conserving all free-agent swaps. Roster is perfectly balanced at 100/100 points, featuring elite weather synergy (Mega Charizard Y + Chlorophyll Venusaur), unblockable Intimidate (Tauros-Aqua), priority control (Dragonite Extreme Speed, Swampert Wide Guard, Passimian Quick Guard), Lightning Rod redirection (Raichu), and status immunity (Gholdengo Good as Gold), with direct tactical advantages against Week 2 opponent entrant 5."
        },
        {
          "franchiseId": "franchise-5",
          "swaps": [{ "drop": "sinistcha", "add": "hydreigon" }],
          "swapsRemaining": 5,
          "reasoning": "One swap. Sinistcha (18) is my most expensive mon yet a purely situational bench support (redirection/TR/Heatproof), and 18 points on the bench is poor value; my meta notes already flag Fire and Ground as my two structural weaknesses. Hydreigon (14), now undrafted, patches BOTH: Dark/Dragon resists Fire 0.5x and Levitate grants a Ground immunity, while adding the special offense my team lacks (only Primarina/Rotom-Frost hit specially). Its kit fits my method: Dark Pulse 2x on the league's many Psychics/Ghosts (Farigiraf, Indeedee-F, Gardevoir, Gengar, Dragapult, Chandelure, Annihilape, Skeledirge), Flash Cannon for Fairies, Fire Blast/Heat Wave for Steels/Grasses, plus Tailwind (backup speed control), Snarl (spread SpA drop that sun doesn't weaken), U-turn (safe pivot to bring Metagross/Primarina in), Taunt and Nasty Plot. Cost drops 100 -> 96, roster stays 10 mons, one per base species. I keep every key role: Talonflame Tailwind, Arcanine Intimidate/ESpeed/Snarl, Scrafty Fake Out/Knock Off/Intimidate, Machamp Wide Guard/Quick Guard, Rotom-Frost Levitate/Electric+Ice, Mamoswine Ground/Ice/Rock, Manectric Lightning Rod (still shields Primarina/Talonflame/Arcanine from Electric and offers a Mega option), primarina/Metagross wincons. Its Fairy/Ice frailty is a managed risk covered by four Fairy-resistant bodies and my Fake Out/Wide Guard; losing Rage Powder is acceptable since I already have Fake Out, Wide Guard, Quick Guard and Intimidate for protection. I rejected Garchomp (18, 4x Ice, physical, overlaps Mamoswine) and Aegislash (16, adds a second Fire/Ground-weak Steel, worsening my documented weakness). Holding the spare 4 points and 5 swaps for later windows."
        }
      ]
    }
  ],
  "weeklyReviews": [
    {
      "week": 1,
      "stage": "transactions",
      "franchiseId": "franchise-0",
      "rosterVersion": 1,
      "reasoning": "Reconcile 3 changes: Scrafty->Skarmory, Ceruledge->Overqwil, Garchomp->Excadrill. Update plan roster/cost, W2 six (Skarmory over Scrafty, bench new mons with reasons), new roles, build rules (2nd TW), future rosters (deepseek +Scrafty/Hydreigon -Sinistcha/Skarmory, claude -Ampharos, grok +Tauros/Inteleon).",
      "memoryPages": 5,
      "memoryCharacters": 7776
    },
    {
      "week": 1,
      "stage": "transactions",
      "franchiseId": "franchise-2",
      "rosterVersion": 1,
      "reasoning": "W1 window closed with a different path than the pre-window plan: dropped Greninja and Houndoom, signed Combat and Inteleon, kept Rotom. Rewrote plan, sets, rules, calcs, W2, later weeks, and transactions so every later build sees the 10 we actually own. W2 default is now Combat over Clef; Inteleon is the Water/Snipe Shot for W3-W7 Follow Me and weather weeks, not a Gengar-lead partner. Opponent W2/W6 rosters updated for their window.",
      "memoryPages": 9,
      "memoryCharacters": 33756
    },
    {
      "week": 1,
      "stage": "transactions",
      "franchiseId": "franchise-3",
      "rosterVersion": 1,
      "reasoning": "Roster changed: Toxicroak + Mega Ampharos out, Greninja (7) + Houndoom (1) in (both picked up from grok, who replaced them with Tauros-Paldea-Combat and Inteleon). Updated plan roster/roles, verified Greninja/Houndoom stats and calcs, rewrote the week 2 scout for grok's new roster (Greninja Dark Pulse threat gone; Inteleon Dark Pulse/Sniper crit and Tauros Close Combat are the new threats; Tauros Intimidate feeds Kingambit Defiant), refreshed league_scouting roster changes for deepseek/muse and swapped Ampharos/Toxicroak angles for Greninja/Houndoom angles. Noted Choice Specs is illegal in this format.",
      "memoryPages": 6,
      "memoryCharacters": 30635
    },
    {
      "week": 1,
      "stage": "transactions",
      "franchiseId": "franchise-5",
      "rosterVersion": 1,
      "reasoning": "Reconciliation after window 1. Roster actually changed: OUT Sinistcha (dropped, 18) and Skarmory (traded to muse for Scrafty). IN Hydreigon (14) and Scrafty (3). Spend fell 100 -> 96, so 4 budget is FREE. Rewrote plan/roster/playbook to the new 10 (Fake Out + Intimidate tempo shell gained; redirection, Trick Room, Spikes and the Heatproof sun-soak lost). Updated transactions for the 4-free next window with role targets (redirection/TR control/Toxicroak free agent). Updated meta edge/weakness lines and refreshed opp_w2 (my six vs sun), opp_w3 (muse gained Skarmory/Overqwil/Excadrill, lost Garchomp/Ceruledge/Scrafty), opp_w4 (claude dropped Toxicroak/Ampharos-Mega, added Greninja/Houndoom), opp_w5 (no TR reversal available).",
      "memoryPages": 11,
      "memoryCharacters": 33610
    },
    {
      "week": 1,
      "stage": "week",
      "franchiseId": "franchise-0",
      "rosterVersion": 0,
      "reasoning": "W1 loss dissected: sun prep wrong, WideGuard+InnerFocus+Espeed punished Garchomp/Ceru. Fix validated G2. W2 rain+terrain scouted. Ghost immunity, Thunder-in-rain, terrain override via calcs. Only Noivern has Tailwind - must bring + add Skarmory backup. Ceruledge dead -> Skarmory swap saves 9.",
      "memoryPages": 5,
      "memoryCharacters": 7581
    },
    {
      "week": 1,
      "stage": "week",
      "franchiseId": "franchise-1",
      "rosterVersion": 0,
      "reasoning": "Full W1 review: series won 2-1 with 0 errors in G2/G3; archived the repeatable script and G1 lessons in 'series-w1-luna'. Scouted all three public series to build forward intel: verified astra (W2) sheets incl. Piercing Drill (Protect-pierce at 1/4 damage), Annihilape Defiant+Rage Fist, Weavile Fake Out, and their 3/3 Whimsicott+Weavile lead; wrote 'intel-w2-astra' and 'intel-w3-w7' dossiers with observed moves/habits and unknown-slot assumptions. Ran ~30 damage checks to build a verified W2 kill-pair book (Corv BP+Garg BP one-turn TR kill on Mega Excadrill; Dragalge 4x on Whimsicott; Garg/Azu answer Chand/Rotom-Heat; Farigiraf Ghost-immunity wall). Consolidated all sim laws (TR, Protect streaks, FM, Draco self-drop, Defiant/Competitive, Piercing Drill, Normal/Psychic Ghost immunity) into 'laws'. New plan page prioritizes the W2 six (Farig/Corv/Hatt/Azu/Drag/Garg, bench Mence due to Defiant) and defers transactions.",
      "memoryPages": 5,
      "memoryCharacters": 20714
    },
    {
      "week": 1,
      "stage": "week",
      "franchiseId": "franchise-2",
      "rosterVersion": 0,
      "reasoning": "",
      "memoryPages": 9,
      "memoryCharacters": 27793
    },
    {
      "week": 1,
      "stage": "week",
      "franchiseId": "franchise-3",
      "rosterVersion": 0,
      "reasoning": "Week 1 lost 1-2 to gpt-6-astra. Root causes: repeating the exact G2 bring/lead in G3 into an adapting opponent, Salamence Sash giving zero value (double-targeted/multi-hit every game), no Ground-immune answer to Mega Excadrill brought, Gengar-Mega committed without our own Tailwind. Reorganised memory: plan page with roster roles, hard rules and week-2 bring vs grok; separate pages for verified stats/damage numbers, grok scouting (from public series 2 with calcs), gpt-6-astra series memory (playoff use), league scouting of other coaches, and piloting principles. Added transaction guidance: bench Toxicroak/Ampharos are the tradable pieces; target cheap Intimidate/Tailwind/Fake Out support.",
      "memoryPages": 6,
      "memoryCharacters": 24738
    },
    {
      "week": 1,
      "stage": "week",
      "franchiseId": "franchise-4",
      "rosterVersion": 0,
      "reasoning": "Preserved roster flexibility after a win while identifying the actual G2 resource failure and G3 cumulative-priority survival error. Added sourced scouting of all remaining coaches, with detailed near-term anti-TR/rain preparation and corrected base-versus-Mega Salamence speed assumptions. Flagged current learnset discrepancies rather than perpetuating unverified Whimsicott utility. Transaction guidance evaluates coverage and opportunity cost without treating one week's benching as proof for a cut or full-board searches as availability.",
      "memoryPages": 5,
      "memoryCharacters": 29174
    },
    {
      "week": 1,
      "stage": "week",
      "franchiseId": "franchise-5",
      "rosterVersion": 0,
      "reasoning": "Week 1 review. Kept the proven four (Metagross/Primarina/Talonflame/Arcanine) as the identity but rewrote the playbook around tools week 1 ignored: Talonflame/Skarmory Tailwind (my speed-control fix), Machamp Wide Guard/Quick Guard/Knock Off, Sinistcha Rage Powder/Trick Room/Heatproof/Scald (so the 18-cost is NOT wasted — keep it). Corrected a week-1 error: Fighting is neutral on Steel/Psychic Metagross, not resisted. Dex-verified every rival mega rather than importing mainline assumptions (Mega Clefable Fairy/Flying Magic Bounce, Mega Excadrill Piercing Drill, Mega Gengar Shadow Tag, etc.). Added a transaction-window stance with a costed Fake Out wishlist, and one scout page per remaining opponent (weeks 2-7) separating observed sets from hypotheses. The reserved notebook page is left untouched (validation forbids setting/deleting it); its content becomes a new 'playbook' page.",
      "memoryPages": 11,
      "memoryCharacters": 29740
    },
    {
      "week": 1,
      "stage": "week",
      "franchiseId": "franchise-6",
      "rosterVersion": 0,
      "reasoning": "Reviewed the complete Week 1 turn records and build. The same voluntary Indeedee switch enabled Trick Room in both losses, so the new memory elevates active Imprison and target/position verification to hard rules, while tailoring the transaction and preparation plan to Week 2's different roster.",
      "memoryPages": 3,
      "memoryCharacters": 8239
    },
    {
      "week": 1,
      "stage": "week",
      "franchiseId": "franchise-7",
      "rosterVersion": 0,
      "reasoning": "Week 1 was a decisive 2-0 victory against Muse. Our roster demonstrated flawless synergy, with Swampert's Wide Guard, Dragonite's Inner Focus + E-Speed, Scarf Gholdengo, and Mega Charizard Y performing at peak execution. Heading into Week 2 against #1 seed deepseek-v4.1-flash, our roster is 100% complete and requires 0 transactions. DeepSeek's core (Mega Metagross, Talonflame, Arcanine, Primarina, Sinistcha, Mamoswine) is heavily countered by Charizard Y's Sun Overheat/Heat Wave, Swampert's Wide Guard, Passimian's Quick Guard and Defiant, Raichu's Lightning Rod and Fake Out, and Venusaur's Chlorophyll. Stored comprehensive memory pages for scouting/meta analysis, detailed team matchup playbooks, and exact technical set references.",
      "memoryPages": 4,
      "memoryCharacters": 24237
    }
  ],
  "playoffs": null,
  "replays": {
    "f3d85e53af38": {
      "seriesId": "f3d85e53af38",
      "franchises": ["franchise-0", "franchise-7"],
      "games": [
        {
          "number": 1,
          "winnerId": "franchise-7",
          "turns": 6,
          "brought": [
            ["incineroar", "noivern", "ceruledge", "garchomp"],
            ["dragonite", "gholdengo", "swampert", "charizard-mega-y"]
          ],
          "megaEvolved": [null, null],
          "faints": [{ "noivern": 1, "ceruledge": 1 }, {}],
          "raw": "|t:|1789184232\n|gametype|doubles\n|player|p1|p1-opencode:muse-spark-1.3-contributor-free||\n|player|p2|p2-opencode:gemini-3.8-flash||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Incineroar, L50, F|\n|poke|p1|Garchomp, L50, M|\n|poke|p1|Clefable, L50, M|\n|poke|p1|Noivern, L50, M|\n|poke|p1|Rotom-Mow, L50|\n|poke|p1|Ceruledge, L50, F|\n|poke|p2|Charizard, L50, F|\n|poke|p2|Venusaur, L50, M|\n|poke|p2|Swampert, L50, F|\n|poke|p2|Gholdengo, L50|\n|poke|p2|Dragonite, L50, M|\n|poke|p2|Passimian, L50, F|\n|teampreview|4\n|showteam|p1|Incineroar||SitrusBerry|Intimidate|FakeOut,FlareBlitz,DarkestLariat,PartingShot|Careful||F|||50|]Garchomp||MuscleBand|RoughSkin|RockSlide,Earthquake,BreakingSwipe,Protect|Jolly||M|||50|]Clefable||Clefablite|MagicGuard|Moonblast,Flamethrower,FollowMe,Protect|Modest||M|||50|]Noivern||FocusSash|Infiltrator|Tailwind,AirSlash,Taunt,Protect|Timid||M|||50|]Rotom-Mow||OccaBerry|Levitate|LeafStorm,Thunderbolt,WillOWisp,Protect|Modest|||||50|]Ceruledge||LifeOrb|FlashFire|BitterBlade,ShadowSneak,CloseCombat,Protect|Jolly||F|||50|\n|showteam|p2|Charizard||CharizarditeY|Blaze|HeatWave,Overheat,ScorchingSands,Protect|Modest||F|||50|]Venusaur||LifeOrb|Chlorophyll|SludgeBomb,EarthPower,SleepPowder,Protect|Modest||M|||50|]Swampert||SitrusBerry|Torrent|WideGuard,IcePunch,HighHorsepower,FlipTurn|Adamant||F|||50|]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,FocusBlast,Trick|Timid|||||50|]Dragonite||LumBerry|InnerFocus|ExtremeSpeed,DragonClaw,IceSpinner,Tailwind|Adamant||M|||50|]Passimian||FocusSash|Defiant|CloseCombat,KnockOff,GunkShot,QuickGuard|Jolly||F|||50|\n|\n|t:|1789184328\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Incineroar|Incineroar, L50, F|202/202\n|switch|p1b: Noivern|Noivern, L50, M|162/162\n|switch|p2a: Dragonite|Dragonite, L50, M|168/168\n|switch|p2b: Gholdengo|Gholdengo, L50|164/164\n|-ability|p1a: Incineroar|Intimidate|boost\n|-fail|p2a: Dragonite|unboost|atk|[from] ability: Inner Focus|[of] p2a: Dragonite\n|-unboost|p2b: Gholdengo|atk|1\n|turn|1\n|\n|t:|1789184393\n|switch|p2b: Swampert|Swampert, L50, F|207/207\n|move|p1b: Noivern|Protect|p1b: Noivern\n|-singleturn|p1b: Noivern|Protect\n|move|p2a: Dragonite|Ice Spinner|p1b: Noivern\n|-activate|p1b: Noivern|move: Protect\n|move|p1a: Incineroar|Flare Blitz|p2b: Swampert\n|-resisted|p2b: Swampert|1\n|-damage|p2b: Swampert|156/207\n|-damage|p1a: Incineroar|185/202|[from] Recoil\n|\n|upkeep\n|turn|2\n|\n|t:|1789184434\n|move|p1b: Noivern|Tailwind|p1b: Noivern\n|-sidestart|p1: p1-opencode:muse-spark-1.3-contributor-free|move: Tailwind\n|move|p1a: Incineroar|Darkest Lariat|p2b: Swampert\n|-damage|p2b: Swampert|81/207\n|-enditem|p2b: Swampert|Sitrus Berry|[eat]\n|-heal|p2b: Swampert|132/207|[from] item: Sitrus Berry\n|move|p2a: Dragonite|Ice Spinner|p1b: Noivern\n|-supereffective|p1b: Noivern|2\n|-enditem|p1b: Noivern|Focus Sash\n|-damage|p1b: Noivern|1/162\n|move|p2b: Swampert|High Horsepower|p1a: Incineroar\n|-supereffective|p1a: Incineroar|1\n|-damage|p1a: Incineroar|3/202\n|-enditem|p1a: Incineroar|Sitrus Berry|[eat]\n|-heal|p1a: Incineroar|53/202|[from] item: Sitrus Berry\n|\n|upkeep\n|turn|3\n|\n|t:|1789184484\n|switch|p1a: Ceruledge|Ceruledge, L50, F|152/152\n|move|p2a: Dragonite|Extreme Speed|p1b: Noivern\n|-damage|p1b: Noivern|0 fnt\n|faint|p1b: Noivern\n|move|p2b: Swampert|High Horsepower|p1a: Ceruledge\n|-supereffective|p1a: Ceruledge|1\n|-damage|p1a: Ceruledge|0 fnt\n|faint|p1a: Ceruledge\n|\n|upkeep\n|\n|t:|1789184488\n|switch|p1b: Garchomp|Garchomp, L50, M|185/185\n|switch|p1a: Incineroar|Incineroar, L50, F|53/202\n|-ability|p1a: Incineroar|Intimidate|boost\n|-fail|p2a: Dragonite|unboost|atk|[from] ability: Inner Focus|[of] p2a: Dragonite\n|-unboost|p2b: Swampert|atk|1\n|turn|4\n|\n|t:|1789184577\n|move|p1b: Garchomp|Protect|p1b: Garchomp\n|-singleturn|p1b: Garchomp|Protect\n|move|p1a: Incineroar|Fake Out|p2b: Swampert\n|-damage|p2b: Swampert|110/207\n|cant|p2b: Swampert|flinch\n|move|p2a: Dragonite|Ice Spinner|p1b: Garchomp\n|-activate|p1b: Garchomp|move: Protect\n|\n|upkeep\n|turn|5\n|\n|t:|1789184618\n|move|p2b: Swampert|Wide Guard|p2b: Swampert\n|-singleturn|p2b: Swampert|Wide Guard\n|move|p1b: Garchomp|Breaking Swipe|p2b: Swampert|[spread] \n|-activate|p2a: Dragonite|move: Wide Guard\n|-activate|p2b: Swampert|move: Wide Guard\n|move|p1a: Incineroar|Parting Shot|p2a: Dragonite\n|-unboost|p2a: Dragonite|atk|1\n|-unboost|p2a: Dragonite|spa|1\n|move|p2a: Dragonite|Ice Spinner|p1b: Garchomp\n|-supereffective|p1b: Garchomp|2\n|-damage|p1b: Garchomp|37/185\n|-damage|p2a: Dragonite|147/168|[from] ability: Rough Skin|[of] p1b: Garchomp\n|\n|-sideend|p1: p1-opencode:muse-spark-1.3-contributor-free|move: Tailwind\n|upkeep\n|turn|6\n|\n|win|p2-opencode:gemini-3.8-flash\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Incineroar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Incineroar"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Garchomp",
              "actor": { "side": 0, "slot": 0 },
              "species": "Garchomp"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Clefable",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clefable"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Noivern",
              "actor": { "side": 0, "slot": 0 },
              "species": "Noivern"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Rotom-Mow",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rotom-Mow"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Ceruledge",
              "actor": { "side": 0, "slot": 0 },
              "species": "Ceruledge"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Charizard",
              "actor": { "side": 1, "slot": 0 },
              "species": "Charizard"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Venusaur",
              "actor": { "side": 1, "slot": 0 },
              "species": "Venusaur"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Swampert",
              "actor": { "side": 1, "slot": 0 },
              "species": "Swampert"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Gholdengo",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gholdengo"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "species": "Dragonite"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Passimian",
              "actor": { "side": 1, "slot": 0 },
              "species": "Passimian"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Incineroar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Incineroar",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Noivern",
              "actor": { "side": 0, "slot": 1 },
              "species": "Noivern",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "species": "Dragonite",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Gholdengo",
              "actor": { "side": 1, "slot": 1 },
              "species": "Gholdengo",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "detail", "text": "Incineroar ability: Intimidate" },
            { "turn": 0, "kind": "detail", "text": "Dragonite's move failed" },
            { "turn": 0, "kind": "detail", "text": "Gholdengo atk -1" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "switch",
              "text": "P2 sent out Swampert",
              "actor": { "side": 1, "slot": 1 },
              "species": "Swampert",
              "hp": 100,
              "status": null
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Noivern used Protect → Noivern",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Dragonite used Ice Spinner → Noivern",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Incineroar used Flare Blitz → Swampert",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 1, "kind": "detail", "text": "Not very effective on Swampert" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Swampert → 75%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 75,
              "status": null
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Incineroar → 92% (Recoil)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 92,
              "status": null
            },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Noivern used Tailwind → Noivern",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 2, "kind": "field", "text": "Tailwind up on P1's side" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Incineroar used Darkest Lariat → Swampert",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Swampert → 39%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 39,
              "status": null
            },
            { "turn": 2, "kind": "detail", "text": "Swampert lost its Sitrus Berry" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Swampert healed → 64% (Sitrus Berry)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 64,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Dragonite used Ice Spinner → Noivern",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 2, "kind": "detail", "text": "Super effective on Noivern" },
            { "turn": 2, "kind": "detail", "text": "Noivern lost its Focus Sash" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Noivern → 1%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 1,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Swampert used High Horsepower → Incineroar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 2, "kind": "detail", "text": "Super effective on Incineroar" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Incineroar → 1%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 1,
              "status": null
            },
            { "turn": 2, "kind": "detail", "text": "Incineroar lost its Sitrus Berry" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Incineroar healed → 26% (Sitrus Berry)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 26,
              "status": null
            },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Ceruledge",
              "actor": { "side": 0, "slot": 0 },
              "species": "Ceruledge",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Dragonite used Extreme Speed → Noivern",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Noivern → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 3,
              "kind": "faint",
              "text": "Noivern fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Swampert used High Horsepower → Ceruledge",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 3, "kind": "detail", "text": "Super effective on Ceruledge" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Ceruledge → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 3,
              "kind": "faint",
              "text": "Ceruledge fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Garchomp",
              "actor": { "side": 0, "slot": 1 },
              "species": "Garchomp",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Incineroar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Incineroar",
              "hp": 26,
              "status": null
            },
            { "turn": 3, "kind": "detail", "text": "Incineroar ability: Intimidate" },
            { "turn": 3, "kind": "detail", "text": "Dragonite's move failed" },
            { "turn": 3, "kind": "detail", "text": "Swampert atk -1" },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "move",
              "text": "Garchomp used Protect → Garchomp",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Incineroar used Fake Out → Swampert",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Swampert → 53%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 53,
              "status": null
            },
            { "turn": 4, "kind": "detail", "text": "Swampert can't move (flinch)" },
            {
              "turn": 4,
              "kind": "move",
              "text": "Dragonite used Ice Spinner → Garchomp",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Swampert used Wide Guard → Swampert",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Garchomp used Breaking Swipe → Swampert",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Incineroar used Parting Shot → Dragonite",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Dragonite atk -1" },
            { "turn": 5, "kind": "detail", "text": "Dragonite spa -1" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Dragonite used Ice Spinner → Garchomp",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "detail", "text": "Super effective on Garchomp" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Garchomp → 20%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 20,
              "status": null
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Dragonite → 88% (Rough Skin)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 88,
              "status": null
            },
            { "turn": 5, "kind": "field", "text": "Tailwind ended on P1's side" },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            { "turn": 6, "kind": "win", "text": "opencode:gemini-3.8-flash (P2) won the game" }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-0",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1462",
              "selection": ["Pick Incineroar", "Pick Noivern", "Pick Ceruledge", "Pick Garchomp"],
              "rationale": "Lead Incin+Noivern for Fake Out into Venusaur to stop Sleep Powder and Tailwind to outrun Chlorophyll sun. Back Ceruledge Flash Fire wall/sweeper and Garchomp Rock Slide vs Zard/Dnite with EQ+Noivern immunity synergy.",
              "automatic": false,
              "latencyMs": 21053,
              "reasoningTokens": 3712,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 5431",
              "selection": ["Pick Dragonite", "Pick Gholdengo", "Pick Swampert", "Pick Charizard"],
              "rationale": "Lead Dragonite and Gholdengo with Swampert and Mega Charizard Y in reserve. Dragonite's Inner Focus blocks Fake Out and Intimidate, while Gholdengo is immune to Fake Out and outspeeds the entire opposing team with Choice Scarf (223 Spe). This completely shuts down Incineroar/Garchomp lead pressure while threatening an immediate OHKO on Garchomp with 4x Ice Spinner and spread pressure with Make It Rain. Swampert provides Wide Guard and Ice Punch in the back, while Mega Charizard Y brings immense special nuclear offense.",
              "automatic": false,
              "latencyMs": 95283,
              "reasoningTokens": 9563,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 1,
              "phase": "turn",
              "action": "move 2 +2, move 4",
              "selection": ["Flare Blitz -> foe 2 (Gholdengo)", "Protect"],
              "rationale": "Fake Out useless (Gholdengo Ghost immune, Dnite InnerFocus no flinch). Noivern Tailwind now risks double-target KO through sash (Espeed 31-45% + ShadowBall 42-61%). Protect preserves sash/TW for T2 while Incin Flare Blitz threatens 74-134% OHKO range on Gholdengo (better than Lariat 52-96%).",
              "automatic": false,
              "latencyMs": 37187,
              "reasoningTokens": 5429,
              "reasoningChars": 4
            },
            {
              "franchiseId": "franchise-7",
              "turn": 1,
              "phase": "turn",
              "action": "move 3 +2, switch 3",
              "selection": ["Ice Spinner -> foe 2 (Noivern)", "Switch to Swampert"],
              "rationale": "Gholdengo is heavily threatened by Incineroar's Flare Blitz / Darkest Lariat, so we switch Gholdengo out to Swampert who resists Fire and takes minimal damage. Dragonite targets Noivern with 4x Ice Spinner to break its Focus Sash, positioning Dragonite to finish Noivern next turn with Extreme Speed (+2 priority) regardless of whether Noivern sets Tailwind. Wide Guard on Swampert will also neutralize any Garchomp spread moves if opponent relies on Tailwind speed.",
              "automatic": false,
              "latencyMs": 64777,
              "reasoningTokens": 5782,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 2,
              "phase": "turn",
              "action": "move 3 +2, move 1",
              "selection": [
                "Darkest Lariat -> foe 2 (Swampert)",
                "Tailwind (your side, including ally Incineroar)"
              ],
              "rationale": "Tailwind is free: Noivern 192 outruns Dnite 100-132 and Swampert 80-112, only Espeed 31-45% goes first and cannot KO from full, WideGuard does not block Tailwind. Incin at 92% risks HighHorsepower 69-102% but Lariat neutral 25-46% into weakened Swampert is best chip; Flare Blitz NVE did only 25%. Get speed up now before Zard/Venu come in.",
              "automatic": false,
              "latencyMs": 33506,
              "reasoningTokens": 4268,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-7",
              "turn": 2,
              "phase": "turn",
              "action": "move 3 +2, move 3 +1",
              "selection": [
                "Ice Spinner -> foe 2 (Noivern)",
                "High Horsepower -> foe 1 (Incineroar)"
              ],
              "rationale": "Noivern's Protect chance is drastically reduced after turn 1. Dragonite targets Noivern with 4x Ice Spinner to break its Focus Sash, preparing an Extreme Speed finish on turn 3. Swampert targets Incineroar with STAB super-effective High Horsepower to heavily damage or KO Incineroar (66-121% damage against 91% HP), removing the opponent's Intimidate pivot. Both Dragonite and Swampert have high bulk and easily survive incoming attacks this turn.",
              "automatic": false,
              "latencyMs": 40695,
              "reasoningTokens": 4628,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 3,
              "phase": "turn",
              "action": "switch 3, move 3 +1",
              "selection": ["Switch to Ceruledge", "Taunt -> foe 1 (Dragonite)"],
              "rationale": "Incin 26% dies to any Ground/Water hit (HighHorse 69-102%) but still has Intimidate value, so switch first to Ceru which walls Dnite (Espeed immune, Ice 16-23%) and resists Ice Punch. Noivern 1% sash gone has no future TW value vs Espeed, so sack it to Taunt Dnite (384 TW speed outruns 100-132) to deny their Tailwind and preserve our speed edge for Ceru/Garchomp sweep.",
              "automatic": false,
              "latencyMs": 28747,
              "reasoningTokens": 5021,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 3,
              "phase": "forced_switch",
              "action": "switch 3, switch 4",
              "selection": ["Switch to Incineroar", "Switch to Garchomp"],
              "rationale": "Forced double replacement: only Incin 26% and Garchomp 100% remain. Restore Incin to slot A and Garchomp to slot B to keep Tailwind offense alive.",
              "automatic": false,
              "latencyMs": 3662,
              "reasoningTokens": 614,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 3,
              "phase": "turn",
              "action": "move 1 +2, move 3 +1",
              "selection": [
                "Extreme Speed -> foe 2 (Noivern)",
                "High Horsepower -> foe 1 (Incineroar)"
              ],
              "rationale": "Dragonite's Extreme Speed (+2 priority) guarantees the KO on 1% HP Noivern before it can act (Air Slash/Taunt). Swampert's High Horsepower guarantees the KO on 26% HP Incineroar while remaining on the field, which preserves Wide Guard to completely wall Garchomp's spread moves on turn 4 even through opposing Tailwind.",
              "automatic": false,
              "latencyMs": 50232,
              "reasoningTokens": 6432,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 4,
              "phase": "turn",
              "action": "move 1 +2, move 4",
              "selection": ["Fake Out -> foe 2 (Swampert)", "Protect"],
              "rationale": "Incin re-entered so Fake Out works and at 160 TW outruns Swampert to flinch WideGuard/attack before it moves. Garchomp dies to IceSpinner 97-138% + IcePunch 51-75% if it attacks, so Protect (+4 beats Espeed +2) to stay full. Sac Incin after Fake Out value to preserve Garchomp for last TW turn.",
              "automatic": false,
              "latencyMs": 23378,
              "reasoningTokens": 3231,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-7",
              "turn": 4,
              "phase": "turn",
              "action": "move 3 +2, move 1",
              "selection": [
                "Ice Spinner -> foe 2 (Garchomp)",
                "Wide Guard (your side, including ally Dragonite)"
              ],
              "rationale": "Swampert uses Wide Guard (+3 priority), which blocks all three of Garchomp's attacking moves (Rock Slide, Earthquake, Breaking Swipe are all spread moves). This guarantees Dragonite cannot be double-targeted down by Darkest Lariat + Breaking Swipe, ensuring Dragonite survives and lands 4x Ice Spinner to OHKO Garchomp. Even if Incineroar Fakes Out Swampert to flinch Wide Guard, Dragonite easily survives Garchomp's Breaking Swipe from 100% HP to retaliate with Ice Spinner.",
              "automatic": false,
              "latencyMs": 89104,
              "reasoningTokens": 4382,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 5,
              "phase": "turn",
              "action": "move 4 +1, move 3",
              "selection": ["Parting Shot -> foe 1 (Dragonite)", "Breaking Swipe (both foes)"],
              "rationale": "No bench so Parting Shot just debuffs. Debuff Dnite -1 before its IceSpinner (Incin 160 TW outruns 100-132) to turn 97-138% OHKO into survivable, plus Breaking Swipe spread -1 Atk to both foes for max survival vs double Ice. Beats Rock Slide damage because survival matters more at 1 turn TW left; WideGuard blocks either spread but Parting Shot still lands.",
              "automatic": false,
              "latencyMs": 40401,
              "reasoningTokens": 3675,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-7",
              "turn": 5,
              "phase": "turn",
              "action": "move 3 +2, move 1",
              "selection": [
                "Ice Spinner -> foe 2 (Garchomp)",
                "Wide Guard (your side, including ally Dragonite)"
              ],
              "rationale": "Swampert uses Wide Guard (+3 priority), which cannot be flinched this turn (Incineroar already consumed Fake Out). Wide Guard 100% blocks all three of Garchomp's attacking moves (Breaking Swipe, Rock Slide, Earthquake), ensuring Dragonite takes at most single-target damage from 26% Incineroar. Dragonite at 100% HP easily survives and lands 4x Ice Spinner to OHKO Garchomp. Opponent's Tailwind ends this turn.",
              "automatic": false,
              "latencyMs": 18550,
              "reasoningTokens": 2626,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 6,
              "phase": "turn",
              "action": "forfeit",
              "selection": ["Forfeit the game (concede the loss)", "Protect"],
              "rationale": "Position lost: 26%+20% no Tailwind vs 87%+53% plus 2 fresh including Scarf Gholdengo, Garchomp spread walled by WideGuard and 4x Ice weak, no bench. Forfeit unwinnable game1 to focus series.",
              "automatic": false,
              "latencyMs": 9296,
              "reasoningTokens": 1145,
              "reasoningChars": 0
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-0",
              "result": "lost",
              "summary": "G1 loss: expected sun lead but got Dnite+Gholdengo into Swampert. FakeOut dead into Ghost/InnerFocus, Protect stalled T1 but T2 Tailwind cost Noivern sash and Incin Sitrus. Ceru switch-in OHKOed by HH, Noivern picked by Espeed, leaving Incin+Garchomp vs Dnite+Swampert. Garchomp all-spread walled by WideGuard and 4x Ice weak (97-138% Spinner), Tailwind expired for loss. Adjust to Clefable+Rotom over Garchomp+Ceru.",
              "adjustment": "Drop Garchomp+Ceruledge (all Garchomp damage spread walled by WideGuard and 4x Ice weak; Ceru OHKOed by High Horsepower and 76-110% to Shadow Ball). Bring Mega Clefable FollowMe + Rotom-Mow instead. Keep Incin+Noivern lead core but back with Clefable/Rotom: Fake Out Swampert stops WideGuard/attack, Tailwind goes up on sash, Rotom Leaf Storm deletes Swampert through WideGuard (single-target) and Levitate immunes High Horsepower, Clefable redirects/bounces and Moonblasts Dragonite."
            },
            {
              "franchiseId": "franchise-7",
              "result": "won",
              "summary": "Game 1 was a decisive victory. Leading Dragonite + Gholdengo completely disarmed the opponent's Fake Out / Intimidate strategy. Pivoting Gholdengo to Swampert absorbed Incineroar's Flare Blitz, while Dragonite broke Noivern's Sash with Ice Spinner. Turn 3 produced a double KO as Dragonite cleaned Noivern with +2 Extreme Speed and Swampert OHKOed switching Ceruledge with High Horsepower. Swampert's Wide Guard then completely blocked Garchomp's Breaking Swipe on Turn 5 while Dragonite chunked Garchomp to 20%, prompting an immediate concession on Turn 6 with our entire team alive (4v2).",
              "adjustment": "Stick to the winning Dragonite + Gholdengo lead with Swampert and Mega Charizard Y in reserve. Be prepared for opponent to bring Clefable-Mega or Rotom-Mow to counter Swampert; Gholdengo's Make It Rain and Charizard's Sun-boosted Fire moves hard counter both adjustments."
            }
          ]
        },
        {
          "number": 2,
          "winnerId": "franchise-7",
          "turns": 13,
          "brought": [
            ["incineroar", "noivern", "clefable-mega", "rotom-mow"],
            ["dragonite", "gholdengo", "swampert", "charizard-mega-y"]
          ],
          "megaEvolved": [null, "charizard-mega-y"],
          "faints": [
            { "noivern": 1, "incineroar": 1, "clefable-mega": 1, "rotom-mow": 1 },
            { "gholdengo": 1, "charizard-mega-y": 1, "swampert": 1 }
          ],
          "raw": "|t:|1789184646\n|gametype|doubles\n|player|p1|p1-opencode:muse-spark-1.3-contributor-free||\n|player|p2|p2-opencode:gemini-3.8-flash||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Incineroar, L50, F|\n|poke|p1|Garchomp, L50, M|\n|poke|p1|Clefable, L50, F|\n|poke|p1|Noivern, L50, F|\n|poke|p1|Rotom-Mow, L50|\n|poke|p1|Ceruledge, L50, F|\n|poke|p2|Charizard, L50, M|\n|poke|p2|Venusaur, L50, F|\n|poke|p2|Swampert, L50, F|\n|poke|p2|Gholdengo, L50|\n|poke|p2|Dragonite, L50, M|\n|poke|p2|Passimian, L50, F|\n|teampreview|4\n|showteam|p1|Incineroar||SitrusBerry|Intimidate|FakeOut,FlareBlitz,DarkestLariat,PartingShot|Careful||F|||50|]Garchomp||MuscleBand|RoughSkin|RockSlide,Earthquake,BreakingSwipe,Protect|Jolly||M|||50|]Clefable||Clefablite|MagicGuard|Moonblast,Flamethrower,FollowMe,Protect|Modest||F|||50|]Noivern||FocusSash|Infiltrator|Tailwind,AirSlash,Taunt,Protect|Timid||F|||50|]Rotom-Mow||OccaBerry|Levitate|LeafStorm,Thunderbolt,WillOWisp,Protect|Modest|||||50|]Ceruledge||LifeOrb|FlashFire|BitterBlade,ShadowSneak,CloseCombat,Protect|Jolly||F|||50|\n|showteam|p2|Charizard||CharizarditeY|Blaze|HeatWave,Overheat,ScorchingSands,Protect|Modest||M|||50|]Venusaur||LifeOrb|Chlorophyll|SludgeBomb,EarthPower,SleepPowder,Protect|Modest||F|||50|]Swampert||SitrusBerry|Torrent|WideGuard,IcePunch,HighHorsepower,FlipTurn|Adamant||F|||50|]Gholdengo||ChoiceScarf|GoodasGold|MakeItRain,ShadowBall,FocusBlast,Trick|Timid|||||50|]Dragonite||LumBerry|InnerFocus|ExtremeSpeed,DragonClaw,IceSpinner,Tailwind|Adamant||M|||50|]Passimian||FocusSash|Defiant|CloseCombat,KnockOff,GunkShot,QuickGuard|Jolly||F|||50|\n|\n|t:|1789184675\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Incineroar|Incineroar, L50, F|202/202\n|switch|p1b: Noivern|Noivern, L50, F|162/162\n|switch|p2a: Dragonite|Dragonite, L50, M|168/168\n|switch|p2b: Gholdengo|Gholdengo, L50|164/164\n|-ability|p1a: Incineroar|Intimidate|boost\n|-fail|p2a: Dragonite|unboost|atk|[from] ability: Inner Focus|[of] p2a: Dragonite\n|-unboost|p2b: Gholdengo|atk|1\n|turn|1\n|\n|t:|1789184759\n|switch|p2b: Swampert|Swampert, L50, F|207/207\n|move|p1b: Noivern|Tailwind|p1b: Noivern\n|-sidestart|p1: p1-opencode:muse-spark-1.3-contributor-free|move: Tailwind\n|move|p1a: Incineroar|Darkest Lariat|p2b: Swampert\n|-damage|p2b: Swampert|138/207\n|move|p2a: Dragonite|Ice Spinner|p1b: Noivern\n|-supereffective|p1b: Noivern|2\n|-enditem|p1b: Noivern|Focus Sash\n|-damage|p1b: Noivern|1/162\n|\n|upkeep\n|turn|2\n|\n|t:|1789184812\n|switch|p1b: Clefable|Clefable, L50, F|202/202\n|switch|p1a: Rotom|Rotom-Mow, L50|157/157\n|move|p2a: Dragonite|Extreme Speed|p1b: Clefable\n|-damage|p1b: Clefable|130/202\n|move|p2b: Swampert|High Horsepower|p1a: Rotom\n|-immune|p1a: Rotom|[from] ability: Levitate\n|\n|upkeep\n|turn|3\n|\n|t:|1789184879\n|switch|p2a: Gholdengo|Gholdengo, L50|164/164\n|switch|p2b: Charizard|Charizard, L50, M|153/153\n|move|p1b: Clefable|Follow Me|p1b: Clefable\n|-singleturn|p1b: Clefable|move: Follow Me\n|move|p1a: Rotom|Leaf Storm|p2b: Charizard\n|-resisted|p2b: Charizard|2\n|-crit|p2b: Charizard\n|-damage|p2b: Charizard|101/153\n|-unboost|p1a: Rotom|spa|2\n|\n|upkeep\n|turn|4\n|\n|t:|1789184926\n|switch|p1a: Incineroar|Incineroar, L50, F|202/202\n|-ability|p1a: Incineroar|Intimidate|boost\n|-unboost|p2a: Gholdengo|atk|1\n|-unboost|p2b: Charizard|atk|1\n|move|p1b: Clefable|Protect|p1b: Clefable\n|-singleturn|p1b: Clefable|Protect\n|move|p2b: Charizard|Protect|p2b: Charizard\n|-singleturn|p2b: Charizard|Protect\n|move|p2a: Gholdengo|Make It Rain|p1b: Clefable|[spread] p1a\n|-activate|p1b: Clefable|move: Protect\n|-resisted|p1a: Incineroar|1\n|-damage|p1a: Incineroar|162/202\n|-unboost|p2a: Gholdengo|spa|2\n|\n|-sideend|p1: p1-opencode:muse-spark-1.3-contributor-free|move: Tailwind\n|upkeep\n|turn|5\n|\n|t:|1789185001\n|move|p1a: Incineroar|Fake Out|p2b: Charizard\n|-damage|p2b: Charizard|72/153\n|move|p2a: Gholdengo|Make It Rain|p1b: Clefable|[spread] p1b\n|-miss|p2a: Gholdengo|p1a: Incineroar\n|-supereffective|p1b: Clefable|1\n|-damage|p1b: Clefable|44/202\n|-unboost|p2a: Gholdengo|spa|2\n|cant|p2b: Charizard|flinch\n|move|p1b: Clefable|Flamethrower|p2a: Gholdengo\n|-supereffective|p2a: Gholdengo|1\n|-damage|p2a: Gholdengo|46/164\n|\n|upkeep\n|turn|6\n|\n|t:|1789185029\n|detailschange|p2b: Charizard|Charizard-Mega-Y, L50, M\n|-mega|p2b: Charizard|Charizard|Charizardite Y\n|-weather|SunnyDay|[from] ability: Drought|[of] p2b: Charizard\n|move|p1b: Clefable|Protect|p1b: Clefable\n|-singleturn|p1b: Clefable|Protect\n|move|p2a: Gholdengo|Make It Rain|p1b: Clefable|[spread] p1a\n|-activate|p1b: Clefable|move: Protect\n|-resisted|p1a: Incineroar|1\n|-damage|p1a: Incineroar|150/202\n|-unboost|p2a: Gholdengo|spa|2\n|move|p2b: Charizard|Heat Wave|p1a: Incineroar|[spread] p1a\n|-activate|p1b: Clefable|move: Protect\n|-resisted|p1a: Incineroar|1\n|-damage|p1a: Incineroar|92/202\n|-enditem|p1a: Incineroar|Sitrus Berry|[eat]\n|-heal|p1a: Incineroar|142/202|[from] item: Sitrus Berry\n|move|p1a: Incineroar|Darkest Lariat|p2a: Gholdengo\n|-supereffective|p2a: Gholdengo|1\n|-damage|p2a: Gholdengo|0 fnt\n|faint|p2a: Gholdengo\n|\n|-weather|SunnyDay|[upkeep]\n|upkeep\n|\n|t:|1789185050\n|switch|p2a: Dragonite|Dragonite, L50, M|168/168\n|turn|7\n|\n|t:|1789185107\n|switch|p1b: Noivern|Noivern, L50, F|1/162\n|move|p2a: Dragonite|Extreme Speed|p1b: Noivern\n|-damage|p1b: Noivern|0 fnt\n|faint|p1b: Noivern\n|move|p2b: Charizard|Scorching Sands|p1a: Incineroar\n|-supereffective|p1a: Incineroar|1\n|-damage|p1a: Incineroar|44/202\n|move|p1a: Incineroar|Darkest Lariat|p2b: Charizard\n|-damage|p2b: Charizard|0 fnt\n|faint|p2b: Charizard\n|\n|-weather|SunnyDay|[upkeep]\n|upkeep\n|\n|t:|1789185116\n|switch|p1b: Rotom|Rotom-Mow, L50|157/157\n|switch|p2b: Swampert|Swampert, L50, F|138/207\n|turn|8\n|\n|t:|1789185139\n|move|p2a: Dragonite|Extreme Speed|p1a: Incineroar\n|-damage|p1a: Incineroar|0 fnt\n|faint|p1a: Incineroar\n|move|p1b: Rotom|Leaf Storm|p2b: Swampert\n|-supereffective|p2b: Swampert|2\n|-damage|p2b: Swampert|0 fnt\n|-unboost|p1b: Rotom|spa|2\n|faint|p2b: Swampert\n|\n|-weather|SunnyDay|[upkeep]\n|upkeep\n|\n|t:|1789185139\n|switch|p1a: Clefable|Clefable, L50, F|44/202\n|turn|9\n|\n|t:|1789185204\n|move|p1a: Clefable|Protect|p1a: Clefable\n|-singleturn|p1a: Clefable|Protect\n|move|p2a: Dragonite|Extreme Speed|p1a: Clefable\n|-activate|p1a: Clefable|move: Protect\n|move|p1b: Rotom|Will-O-Wisp|p2a: Dragonite|[miss]\n|-miss|p1b: Rotom|p2a: Dragonite\n|\n|-weather|SunnyDay|[upkeep]\n|upkeep\n|turn|10\n|\n|t:|1789185218\n|move|p1a: Clefable|Protect||[still]\n|-fail|p1a: Clefable\n|move|p2a: Dragonite|Extreme Speed|p1a: Clefable\n|-damage|p1a: Clefable|0 fnt\n|faint|p1a: Clefable\n|move|p1b: Rotom|Will-O-Wisp|p2a: Dragonite\n|-status|p2a: Dragonite|brn\n|-enditem|p2a: Dragonite|Lum Berry|[eat]\n|-curestatus|p2a: Dragonite|brn|[msg]\n|\n|-weather|none\n|upkeep\n|turn|11\n|\n|t:|1789185231\n|move|p2a: Dragonite|Ice Spinner|p1b: Rotom\n|-supereffective|p1b: Rotom|1\n|-damage|p1b: Rotom|51/157\n|move|p1b: Rotom|Will-O-Wisp|p2a: Dragonite\n|-status|p2a: Dragonite|brn\n|\n|-damage|p2a: Dragonite|158/168 brn|[from] brn\n|upkeep\n|turn|12\n|\n|t:|1789185258\n|move|p1b: Rotom|Protect|p1b: Rotom\n|-singleturn|p1b: Rotom|Protect\n|move|p2a: Dragonite|Ice Spinner|p1b: Rotom\n|-activate|p1b: Rotom|move: Protect\n|\n|-damage|p2a: Dragonite|148/168 brn|[from] brn\n|upkeep\n|turn|13\n|\n|t:|1789185269\n|move|p2a: Dragonite|Ice Spinner|p1b: Rotom\n|-supereffective|p1b: Rotom|1\n|-damage|p1b: Rotom|0 fnt\n|faint|p1b: Rotom\n|\n|win|p2-opencode:gemini-3.8-flash\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Incineroar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Incineroar"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Garchomp",
              "actor": { "side": 0, "slot": 0 },
              "species": "Garchomp"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Clefable",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clefable"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Noivern",
              "actor": { "side": 0, "slot": 0 },
              "species": "Noivern"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Rotom-Mow",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rotom-Mow"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Ceruledge",
              "actor": { "side": 0, "slot": 0 },
              "species": "Ceruledge"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Charizard",
              "actor": { "side": 1, "slot": 0 },
              "species": "Charizard"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Venusaur",
              "actor": { "side": 1, "slot": 0 },
              "species": "Venusaur"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Swampert",
              "actor": { "side": 1, "slot": 0 },
              "species": "Swampert"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Gholdengo",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gholdengo"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "species": "Dragonite"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Passimian",
              "actor": { "side": 1, "slot": 0 },
              "species": "Passimian"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Incineroar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Incineroar",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Noivern",
              "actor": { "side": 0, "slot": 1 },
              "species": "Noivern",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "species": "Dragonite",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Gholdengo",
              "actor": { "side": 1, "slot": 1 },
              "species": "Gholdengo",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "detail", "text": "Incineroar ability: Intimidate" },
            { "turn": 0, "kind": "detail", "text": "Dragonite's move failed" },
            { "turn": 0, "kind": "detail", "text": "Gholdengo atk -1" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "switch",
              "text": "P2 sent out Swampert",
              "actor": { "side": 1, "slot": 1 },
              "species": "Swampert",
              "hp": 100,
              "status": null
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Noivern used Tailwind → Noivern",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 1, "kind": "field", "text": "Tailwind up on P1's side" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Incineroar used Darkest Lariat → Swampert",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Swampert → 67%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 67,
              "status": null
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Dragonite used Ice Spinner → Noivern",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 1, "kind": "detail", "text": "Super effective on Noivern" },
            { "turn": 1, "kind": "detail", "text": "Noivern lost its Focus Sash" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Noivern → 1%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 1,
              "status": null
            },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "switch",
              "text": "P1 sent out Clefable",
              "actor": { "side": 0, "slot": 1 },
              "species": "Clefable",
              "hp": 100,
              "status": null
            },
            {
              "turn": 2,
              "kind": "switch",
              "text": "P1 sent out Rotom-Mow",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rotom-Mow",
              "hp": 100,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Dragonite used Extreme Speed → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Clefable → 64%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 64,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Swampert used High Horsepower → Rotom",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 2, "kind": "detail", "text": "Rotom is immune" },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P2 sent out Gholdengo",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gholdengo",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P2 sent out Charizard",
              "actor": { "side": 1, "slot": 1 },
              "species": "Charizard",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Clefable used Follow Me → Clefable",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Rotom used Leaf Storm → Charizard",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 3, "kind": "detail", "text": "Not very effective on Charizard" },
            { "turn": 3, "kind": "detail", "text": "Critical hit on Charizard" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Charizard → 66%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 66,
              "status": null
            },
            { "turn": 3, "kind": "detail", "text": "Rotom spa -2" },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P1 sent out Incineroar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Incineroar",
              "hp": 100,
              "status": null
            },
            { "turn": 4, "kind": "detail", "text": "Incineroar ability: Intimidate" },
            { "turn": 4, "kind": "detail", "text": "Gholdengo atk -1" },
            { "turn": 4, "kind": "detail", "text": "Charizard atk -1" },
            {
              "turn": 4,
              "kind": "move",
              "text": "Clefable used Protect → Clefable",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Charizard used Protect → Charizard",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Gholdengo used Make It Rain → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 4, "kind": "detail", "text": "Not very effective on Incineroar" },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Incineroar → 80%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 80,
              "status": null
            },
            { "turn": 4, "kind": "detail", "text": "Gholdengo spa -2" },
            { "turn": 4, "kind": "field", "text": "Tailwind ended on P1's side" },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Incineroar used Fake Out → Charizard",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Charizard → 47%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 47,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Gholdengo used Make It Rain → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "detail", "text": "Gholdengo missed" },
            { "turn": 5, "kind": "detail", "text": "Super effective on Clefable" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Clefable → 22%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 22,
              "status": null
            },
            { "turn": 5, "kind": "detail", "text": "Gholdengo spa -2" },
            { "turn": 5, "kind": "detail", "text": "Charizard can't move (flinch)" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Clefable used Flamethrower → Gholdengo",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Super effective on Gholdengo" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Gholdengo → 28%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 28,
              "status": null
            },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Charizard became Charizard-Mega-Y",
              "actor": { "side": 1, "slot": 1 },
              "species": "Charizard-Mega-Y"
            },
            { "turn": 6, "kind": "field", "text": "Weather: SunnyDay" },
            {
              "turn": 6,
              "kind": "move",
              "text": "Clefable used Protect → Clefable",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Gholdengo used Make It Rain → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 6, "kind": "detail", "text": "Not very effective on Incineroar" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Incineroar → 74%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 74,
              "status": null
            },
            { "turn": 6, "kind": "detail", "text": "Gholdengo spa -2" },
            {
              "turn": 6,
              "kind": "move",
              "text": "Charizard used Heat Wave → Incineroar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 6, "kind": "detail", "text": "Not very effective on Incineroar" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Incineroar → 46%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 46,
              "status": null
            },
            { "turn": 6, "kind": "detail", "text": "Incineroar lost its Sitrus Berry" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Incineroar healed → 70% (Sitrus Berry)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 70,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Incineroar used Darkest Lariat → Gholdengo",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 6, "kind": "detail", "text": "Super effective on Gholdengo" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Gholdengo → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 6,
              "kind": "faint",
              "text": "Gholdengo fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 6,
              "kind": "switch",
              "text": "P2 sent out Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "species": "Dragonite",
              "hp": 100,
              "status": null
            },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P1 sent out Noivern",
              "actor": { "side": 0, "slot": 1 },
              "species": "Noivern",
              "hp": 1,
              "status": null
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Dragonite used Extreme Speed → Noivern",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Noivern → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Noivern fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Charizard used Scorching Sands → Incineroar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 7, "kind": "detail", "text": "Super effective on Incineroar" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Incineroar → 22%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 22,
              "status": null
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Incineroar used Darkest Lariat → Charizard",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Charizard → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Charizard fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P1 sent out Rotom-Mow",
              "actor": { "side": 0, "slot": 1 },
              "species": "Rotom-Mow",
              "hp": 100,
              "status": null
            },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P2 sent out Swampert",
              "actor": { "side": 1, "slot": 1 },
              "species": "Swampert",
              "hp": 67,
              "status": null
            },
            { "turn": 8, "kind": "turn", "text": "Turn 8" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Dragonite used Extreme Speed → Incineroar",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Incineroar → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 8,
              "kind": "faint",
              "text": "Incineroar fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Rotom used Leaf Storm → Swampert",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 8, "kind": "detail", "text": "Super effective on Swampert" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Swampert → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            { "turn": 8, "kind": "detail", "text": "Rotom spa -2" },
            {
              "turn": 8,
              "kind": "faint",
              "text": "Swampert fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 8,
              "kind": "switch",
              "text": "P1 sent out Clefable",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clefable",
              "hp": 22,
              "status": null
            },
            { "turn": 9, "kind": "turn", "text": "Turn 9" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Clefable used Protect → Clefable",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Dragonite used Extreme Speed → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Rotom used Will-O-Wisp → Dragonite",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 9, "kind": "detail", "text": "Rotom missed" },
            { "turn": 10, "kind": "turn", "text": "Turn 10" },
            {
              "turn": 10,
              "kind": "move",
              "text": "Clefable used Protect",
              "actor": { "side": 0, "slot": 0 }
            },
            { "turn": 10, "kind": "detail", "text": "Clefable's move failed" },
            {
              "turn": 10,
              "kind": "move",
              "text": "Dragonite used Extreme Speed → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Clefable → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 10,
              "kind": "faint",
              "text": "Clefable fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 10,
              "kind": "move",
              "text": "Rotom used Will-O-Wisp → Dragonite",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 10,
              "kind": "status",
              "text": "Dragonite was burned",
              "actor": { "side": 1, "slot": 0 },
              "status": "brn"
            },
            { "turn": 10, "kind": "detail", "text": "Dragonite lost its Lum Berry" },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Dragonite recovered from brn",
              "actor": { "side": 1, "slot": 0 },
              "status": null
            },
            { "turn": 10, "kind": "field", "text": "Weather cleared" },
            { "turn": 11, "kind": "turn", "text": "Turn 11" },
            {
              "turn": 11,
              "kind": "move",
              "text": "Dragonite used Ice Spinner → Rotom",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 11, "kind": "detail", "text": "Super effective on Rotom" },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Rotom → 32%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 32,
              "status": null
            },
            {
              "turn": 11,
              "kind": "move",
              "text": "Rotom used Will-O-Wisp → Dragonite",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 11,
              "kind": "status",
              "text": "Dragonite was burned",
              "actor": { "side": 1, "slot": 0 },
              "status": "brn"
            },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Dragonite → 94% (brn)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 94,
              "status": "brn"
            },
            { "turn": 12, "kind": "turn", "text": "Turn 12" },
            {
              "turn": 12,
              "kind": "move",
              "text": "Rotom used Protect → Rotom",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 12,
              "kind": "move",
              "text": "Dragonite used Ice Spinner → Rotom",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 12,
              "kind": "detail",
              "text": "Dragonite → 88% (brn)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 88,
              "status": "brn"
            },
            { "turn": 13, "kind": "turn", "text": "Turn 13" },
            {
              "turn": 13,
              "kind": "move",
              "text": "Dragonite used Ice Spinner → Rotom",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 13, "kind": "detail", "text": "Super effective on Rotom" },
            {
              "turn": 13,
              "kind": "detail",
              "text": "Rotom → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 13,
              "kind": "faint",
              "text": "Rotom fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            { "turn": 13, "kind": "win", "text": "opencode:gemini-3.8-flash (P2) won the game" }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-0",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1435",
              "selection": ["Pick Incineroar", "Pick Noivern", "Pick Clefable", "Pick Rotom-Mow"],
              "rationale": "Bring Incin/Noivern/Clefable/Rotom as planned. Lead Incin+Noivern for FakeOut pressure into Venusaur/Swampert/Passimian plus immediate Tailwind to outrun Chlorophyll; back Clefable FollowMe+bounce for sleep and Rotom LeafStorm for Swampert.",
              "automatic": false,
              "latencyMs": 27982,
              "reasoningTokens": 2349,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 5431",
              "selection": ["Pick Dragonite", "Pick Gholdengo", "Pick Swampert", "Pick Charizard"],
              "rationale": "Lead Dragonite and Gholdengo with Swampert and Charizard in reserve. Dragonite's Inner Focus ignores Fake Out and Intimidate, Choice Scarf Gholdengo outspeeds the entire enemy roster, Swampert provides a 100% hard lock against Garchomp's all-spread moveset via Wide Guard, and Charizard provides nuclear fire offense and Drought in the back.",
              "automatic": false,
              "latencyMs": 9961,
              "reasoningTokens": 1077,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 1,
              "phase": "turn",
              "action": "move 3 +2, move 1",
              "selection": [
                "Darkest Lariat -> foe 2 (Gholdengo)",
                "Tailwind (your side, including ally Incineroar)"
              ],
              "rationale": "G1 they swapped Gholdengo to Swampert T1, leaving only Dnite Ice Spinner. Tailwind is free then (Noivern outruns Dnite, sash survives at 1HP) and gives immediate speed (Incin 160 TW outruns Dnite same turn). Lariat into foe2 hits Swampert if swap (neutral ~36% to secure LeafStorm range) or Gholdengo 52-96% if stay, avoiding Flare Blitz NVE into Swampert and recoil. Protect delays TW and cost Incin HP last time.",
              "automatic": false,
              "latencyMs": 83769,
              "reasoningTokens": 7823,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-7",
              "turn": 1,
              "phase": "turn",
              "action": "move 3 +2, switch 3",
              "selection": ["Ice Spinner -> foe 2 (Noivern)", "Switch to Swampert"],
              "rationale": "Repeat the proven Game 1 Turn 1 line: Switch Gholdengo out to Swampert to cleanly absorb Incineroar's Fire attack, while Dragonite targets Noivern with 4x Ice Spinner to either break its Focus Sash immediately or force its Protect. Dragonite's Inner Focus ignores Fake Out/Intimidate, and +2 Extreme Speed bypasses any opposing Tailwind next turn.",
              "automatic": false,
              "latencyMs": 22503,
              "reasoningTokens": 1724,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 2,
              "phase": "turn",
              "action": "switch 4, switch 3",
              "selection": ["Switch to Rotom-Mow", "Switch to Clefable"],
              "rationale": "Fake Out fails (not first turn), Incin risks HH ~90% and Noivern 1% dies to Espeed (+2 beats all Noivern moves). Double switch baits: Swampert HHs Incin-slot into Rotom Levitate immune, Dnite Ice into Noivern-slot into Clefable 27-39% resist (vs 42-92% into Rotom). Then TW Rotom LeafStorm 139-310% OHKOs Swampert 66% and Clefable Moonblast 58-104% pressures Dnite. Preserves Incin 100%+Sitrus and Noivern 1% for later TW/Intimidate.",
              "automatic": false,
              "latencyMs": 53043,
              "reasoningTokens": 5188,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-7",
              "turn": 2,
              "phase": "turn",
              "action": "move 1 +2, move 3 +1",
              "selection": [
                "Extreme Speed -> foe 2 (Noivern)",
                "High Horsepower -> foe 1 (Incineroar)"
              ],
              "rationale": "Dragonite uses +2 priority Extreme Speed into Noivern to secure the KO before Noivern or Tailwind-boosted Incineroar can act. Incineroar lacks Protect, so Swampert uses STAB super-effective High Horsepower into Incineroar to deal 66-121% damage and remove its Sitrus Berry / bring it to critical HP.",
              "automatic": false,
              "latencyMs": 23177,
              "reasoningTokens": 2101,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 3,
              "phase": "turn",
              "action": "move 1 +2, move 3",
              "selection": ["Leaf Storm -> foe 2 (Swampert)", "Follow Me"],
              "rationale": "Rotom LeafStorm 139-310% OHKOs Swampert 66% (no Protect). Swampert staying risks double Ice into Rotom (IcePunch 42-61% + Spinner 42-92% = 84-153% KO range) to trade 1-for-1. Clefable FollowMe (+2, 160 TW outruns Espeed/attacks) redirects both Ices into Clefable (Spinner 27-39% resist, survives from 64%) to guarantee LeafStorm and preserve Rotom. No Mega (base Fairy neutral to Ice vs Mega Flying 2x weak). If Swampert switches to Gholdengo/Zard/Venu resist, LeafStorm wasted+drop but Rotom saved and TW still 2 turns.",
              "automatic": false,
              "latencyMs": 67403,
              "reasoningTokens": 6708,
              "reasoningChars": 4
            },
            {
              "franchiseId": "franchise-7",
              "turn": 3,
              "phase": "turn",
              "action": "switch 3, switch 4",
              "selection": ["Switch to Gholdengo", "Switch to Charizard"],
              "rationale": "Execute a defensive double switch: Swampert expects Rotom-Mow's 4x Grass Leaf Storm, which Charizard easily absorbs (0.25x resistance). Dragonite expects Clefable's 2x Fairy Moonblast, which Gholdengo comfortably absorbs (0.5x resistance). This preserves both Dragonite and Swampert at full/high HP while letting opponent waste their Tailwind turns and giving us dominant offensive positioning with Scarf Gholdengo and Mega Charizard Y.",
              "automatic": false,
              "latencyMs": 59765,
              "reasoningTokens": 6094,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 4,
              "phase": "turn",
              "action": "switch 4, move 4",
              "selection": ["Switch to Incineroar", "Protect"],
              "rationale": "Mega Zard sun HeatWave 59-82% into Rotom (Occa) + MakeItRain 19-27% = 78-109% KO range on Rotom, and MakeItRain 68-99% always KOs Clefable 64% (HeatWave 52-73% also KOs high). FollowMe useless vs double spread. Switch Rotom (-2) to Incin resists both (Rain 14-20%, Heat NVE) + resets -2 for later Swampert, Protect Clefable to survive. Preserves both, stalls mega/sun turn with TW 1 left.",
              "automatic": false,
              "latencyMs": 46073,
              "reasoningTokens": 4244,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-7",
              "turn": 4,
              "phase": "turn",
              "action": "move 1, move 4",
              "selection": ["Make It Rain (both foes)", "Protect"],
              "rationale": "Gholdengo's Make It Rain deals 65.3-117.6% to Clefable, guaranteeing the KO on its remaining 64% HP while chipping Rotom-Mow. Charizard uses Protect without Mega Evolving to safely stall out the final turn of opposing Tailwind; withholding Mega Evolution prevents Drought from activating, ensuring Clefable cannot use Sun-boosted Flamethrower against Gholdengo. With Tailwind ending this turn, Charizard Y and Scarf Gholdengo will hold complete speed control for the remainder of the match.",
              "automatic": false,
              "latencyMs": 34882,
              "reasoningTokens": 2851,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 5,
              "phase": "turn",
              "action": "move 1 +2, move 2 +1",
              "selection": ["Fake Out -> foe 2 (Charizard)", "Flamethrower -> foe 1 (Gholdengo)"],
              "rationale": "Incin just switched so FakeOut live; FakeOut Charizard (flinch stops sun HeatWave even if it Mega-evolves first, Gholdengo immune so target Zard). Gholdengo -2 locked into MakeItRain weak (34-49% vs Clefable, 7-10% vs Incin) so Clefable safe to Flamethrower Gholdengo 40-72% SE (better than Moonblast NVE). Stops spread damage this turn, chips Gholdengo for FlareBlitz KO range next.",
              "automatic": false,
              "latencyMs": 49628,
              "reasoningTokens": 2069,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 5,
              "phase": "turn",
              "action": "move 1, move 2 +2",
              "selection": ["Make It Rain (both foes)", "Overheat -> foe 2 (Clefable)"],
              "rationale": "Opposing Tailwind has expired, granting our side full Speed dominance. Gholdengo's Make It Rain deals 27.7-60% into Clefable while non-Mega Charizard's Overheat deals 40.1-82.9%, combining for a guaranteed KO (minimum 67.8% vs 64% HP) even if Clefable Mega Evolves. Withholding Mega Evolution keeps Drought inactive, ensuring that even if Incineroar Fakes Out Charizard, Clefable cannot OHKO Gholdengo with a Sun-boosted Flamethrower (dealing at most 91.5%).",
              "automatic": false,
              "latencyMs": 75463,
              "reasoningTokens": 6627,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 6,
              "phase": "turn",
              "action": "move 3 +1, move 4",
              "selection": ["Darkest Lariat -> foe 1 (Gholdengo)", "Protect"],
              "rationale": "Gholdengo 28% dies to any Incin STAB (Lariat min 52% >28%, no recoil vs FlareBlitz). Gholdengo -4 weak so Incin 80% tanks both spreads (Rain NVE 7-10%, Heat NVE). Clefable 22% dies to any spread (Rain -4 22-33% + Heat 52-73%) so Protect (full success, didn't Protect last turn) to survive. Preserves Rotom 100% for T7 vs Zard/Swampert instead of switching now into 59-82% Heat.",
              "automatic": false,
              "latencyMs": 28096,
              "reasoningTokens": 2935,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 6,
              "phase": "turn",
              "action": "move 1, move 1 mega",
              "selection": ["Make It Rain (both foes)", "Heat Wave (both foes) + Mega Evolve"],
              "rationale": "Both our Pokémon hold absolute Speed control over the unboosted foes (Scarf Gholdengo at 223 and Charizard at 152 vs foe max 112). Fake Out is no longer available to Incineroar. Gholdengo's Make It Rain deals 21.8-40% to Clefable, guaranteeing the KO on its remaining 21% HP. Mega Charizard Y activates Drought and uses Heat Wave; because both attacks are spread moves, Follow Me cannot redirect them, ensuring Clefable is eliminated while heavily damaging Incineroar.",
              "automatic": false,
              "latencyMs": 18252,
              "reasoningTokens": 1776,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 6,
              "phase": "forced_switch",
              "action": "switch 3, pass",
              "selection": ["Switch to Dragonite", "Pass"],
              "rationale": "Send in Dragonite to replace Gholdengo. Dragonite at full HP possesses +2 priority Extreme Speed, which naturally outspeeds Clefable (132 vs max 112 Spe) to guarantee the KO on Clefable's remaining 21% HP before it can act, while Mega Charizard Y in Drought exerts overwhelming board pressure alongside healthy Swampert in reserve.",
              "automatic": false,
              "latencyMs": 20986,
              "reasoningTokens": 1137,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 7,
              "phase": "turn",
              "action": "move 3 +2, switch 3",
              "selection": ["Darkest Lariat -> foe 2 (Charizard-Mega-Y)", "Switch to Noivern"],
              "rationale": "Clefable 22% dies to Espeed (36% earlier) before any attack (+2 beats 0) and to sun Heat 52-73%, Protect 50% unreliable. Incin 70% survives double (Espeed 23-33% + sun Heat 21-30% =44-63% leaves 7-26%). Sac expendable Noivern 1% (cannot set TW at 1% vs spread/priority) to absorb slot: switch Clefable->Noivern preserves Clefable 22% + Rotom 100% clean for T8 (vs risking Rotom 59-82% Heat +25-36% Espeed =84-118% KO range if switched now). Incin Lariat Zard 31-59% vs 47% KOs high roll.",
              "automatic": false,
              "latencyMs": 56164,
              "reasoningTokens": 5988,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-0",
              "turn": 7,
              "phase": "forced_switch",
              "action": "pass, switch 4",
              "selection": ["Pass", "Switch to Rotom-Mow"],
              "rationale": "Zard KO'd, Noivern sacked as planned. Incin 22% dies to Espeed (23-33%) but must stay; bring Rotom 100% (not Clefable 22% which also dies to Espeed) for LeafStorm OHKO vs Swampert 66% incoming + Tbolt vs Dnite. Preserve Clefable 22% for later.",
              "automatic": false,
              "latencyMs": 9754,
              "reasoningTokens": 828,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 7,
              "phase": "turn",
              "action": "move 1 +2, move 3 +1",
              "selection": [
                "Extreme Speed -> foe 2 (Clefable)",
                "Scorching Sands -> foe 1 (Incineroar)"
              ],
              "rationale": "Dragonite's +2 priority Extreme Speed outspeeds Clefable (132 vs max 112 Spe) even if Clefable attempts Follow Me (+2 priority), dealing 21.3-46.5% to guarantee the KO on Clefable's remaining 21% HP before it can move. Targeting Clefable with Charizard would be redundant if Clefable doesn't Protect and futile if it does, so Charizard uses 100%-accurate super-effective Scorching Sands into Incineroar to deal 38.6-71.8% damage and bring it into critical range without sacrificing Special Attack stages.",
              "automatic": false,
              "latencyMs": 24387,
              "reasoningTokens": 2065,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 7,
              "phase": "forced_switch",
              "action": "pass, switch 4",
              "selection": ["Pass", "Switch to Swampert"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-0",
              "turn": 8,
              "phase": "turn",
              "action": "move 3 +1, move 1 +2",
              "selection": [
                "Darkest Lariat -> foe 1 (Dragonite)",
                "Leaf Storm -> foe 2 (Swampert)"
              ],
              "rationale": "Incin 22% dies to Espeed (23-33%) before any move, but sacs to absorb Espeed aimed at low slot. Rotom LeafStorm 139-310% OHKOs Swampert 66% (no Protect). Rotom 106 outruns Swampert 80-112 (usually) so KOs before IcePunch 42-61%; Dnite alone max 92% Spinner or 36% Espeed cannot OHKO Rotom 100%, so Rotom survives if Dnite Espeeds Incin (likely pick). Incin Lariat Dnite 25-47% chips if they ignore Incin (Ice NVE).",
              "automatic": false,
              "latencyMs": 22211,
              "reasoningTokens": 2370,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 8,
              "phase": "forced_switch",
              "action": "switch 3, pass",
              "selection": ["Switch to Clefable", "Pass"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-7",
              "turn": 8,
              "phase": "turn",
              "action": "move 1 +1, move 2 +2",
              "selection": [
                "Extreme Speed -> foe 1 (Incineroar)",
                "Ice Punch -> foe 2 (Rotom-Mow)"
              ],
              "rationale": "Dragonite's +2 priority Extreme Speed deals 21.8-39.4% to Incineroar, guaranteeing the KO on its remaining 21% HP before it can act. Swampert targets Rotom-Mow with super-effective Ice Punch (40.8-76.8%). Even if Rotom-Mow connects with Leaf Storm into Swampert, its Special Attack drops to -2, leaving it completely incapable of threatening full-health Lum Berry Dragonite, who easily finishes Rotom-Mow and Clefable (21% HP) to seal the match and series win.",
              "automatic": false,
              "latencyMs": 18786,
              "reasoningTokens": 1844,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 9,
              "phase": "turn",
              "action": "move 4, move 3 +1",
              "selection": ["Protect", "Will-O-Wisp -> foe 1 (Dragonite)"],
              "rationale": "2v1 vs Dnite 100% but Clefable 22% dies to Espeed 36% before Moonblast 58-104% (Espeed +2 beats 0, Dnite 100-132 faster than 80). Must halve damage with burn to survive (burned Espeed 18% <22% lets Moonblast go). Lum cures first WoW so need two WoWs: T9 Clefable Protect (100%, blocks Espeed, preserves) + Rotom WoW (85%, consumes Lum). No Mega (base Fairy neutral to Ice vs Mega Flying 2x). Rotom -2 weak so support, not attack.",
              "automatic": false,
              "latencyMs": 65556,
              "reasoningTokens": 5666,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 9,
              "phase": "turn",
              "action": "move 1 +1, pass",
              "selection": ["Extreme Speed -> foe 1 (Clefable)", "Pass"],
              "rationale": "Dragonite's +2 priority Extreme Speed moves first in the turn (naturally outspeeding Clefable at 132 vs max 112 Spe) and deals 21.3-46.5%, guaranteeing the KO on Clefable's remaining 21% HP before it can move. Rotom-Mow at -2 SpA deals a negligible 17.9-26.8% with Thunderbolt and cannot status Dragonite through Lum Berry, securing a guaranteed win.",
              "automatic": false,
              "latencyMs": 11835,
              "reasoningTokens": 943,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 10,
              "phase": "turn",
              "action": "move 4, move 3 +1",
              "selection": [
                "Protect [success rate reduced: Protected last turn]",
                "Will-O-Wisp -> foe 1 (Dragonite)"
              ],
              "rationale": "WoW missed (15%), Lum intact, still need burn to halve Espeed 36% to 18% <22% so Moonblast can go. T9 Protect blocked Espeed as planned. Retry Protect (50% consecutive) + WoW (85%): Protect blocks Espeed pick, WoW consumes Lum. Without burn Moonblast never lands vs faster Espeed.",
              "automatic": false,
              "latencyMs": 13595,
              "reasoningTokens": 953,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 10,
              "phase": "turn",
              "action": "move 1 +1, pass",
              "selection": ["Extreme Speed -> foe 1 (Clefable)", "Pass"],
              "rationale": "Clefable used Protect on Turn 9, making a consecutive Protect highly likely to fail. Dragonite's +2 priority Extreme Speed acts first, easily securing the KO on Clefable's remaining 21% HP (21.3-46.5% damage). Dragonite sits at 100% HP with Lum Berry intact, while Rotom-Mow at -2 SpA deals negligible damage with Thunderbolt, guaranteeing victory.",
              "automatic": false,
              "latencyMs": 6859,
              "reasoningTokens": 568,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 11,
              "phase": "turn",
              "action": "pass, move 3 +1",
              "selection": ["Pass", "Will-O-Wisp -> foe 1 (Dragonite)"],
              "rationale": "1v1 Rotom 100% -2 vs Dnite 100% Lum gone. Must burn (halves Espeed 25-36% to 12-18% and Spinner 42-92% to 21-46% + 6% chip) to win stall. WoW 85% sticks now. Protect next to stall burn + chip with Tbolt 14-26%.",
              "automatic": false,
              "latencyMs": 12384,
              "reasoningTokens": 923,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 11,
              "phase": "turn",
              "action": "move 3 +2, pass",
              "selection": ["Ice Spinner -> foe 2 (Rotom-Mow)", "Pass"],
              "rationale": "Rotom-Mow holds an Occa Berry (which only reduces Fire damage, not Ice), so Dragonite's STAB-tier 2x super-effective Ice Spinner hits for 49.7-92.8% damage. Meanwhile, Rotom-Mow at -2 SpA deals a paltry 17.9-26.8% with Thunderbolt into Dragonite's 100% HP, locking in an unlosable 2HKO.",
              "automatic": false,
              "latencyMs": 13047,
              "reasoningTokens": 487,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 12,
              "phase": "turn",
              "action": "pass, move 4",
              "selection": ["Pass", "Protect"],
              "rationale": "Rotom 32% -2 vs Dnite 94% brn. Burn halves Spinner 42-92% to 21-46% (still KO high roll >32%) so attacking risks immediate KO before moving if Dnite faster (100-132 vs 106). Protect (+4 first) guarantees survival + 6% burn chip (94->88%) preserving 32% for next Tbolt high-roll miracle. Only out is stall burn + low-roll survival.",
              "automatic": false,
              "latencyMs": 26960,
              "reasoningTokens": 1718,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 12,
              "phase": "turn",
              "action": "move 3 +2, pass",
              "selection": ["Ice Spinner -> foe 2 (Rotom-Mow)", "Pass"],
              "rationale": "Dragonite's super-effective Ice Spinner deals 24.8-46.4% to Rotom-Mow's remaining 32% HP. Even through burn and potential Protect, Rotom-Mow at -2 SpA is incapable of dealing meaningful damage to Dragonite's 94% HP pool (Thunderbolt does max 26.8%), ensuring a guaranteed victory this turn or next.",
              "automatic": false,
              "latencyMs": 14127,
              "reasoningTokens": 522,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-0",
              "turn": 13,
              "phase": "turn",
              "action": "pass, move 2 +1",
              "selection": ["Pass", "Thunderbolt -> foe 1 (Dragonite)"],
              "rationale": "Rotom 32% -2 vs 88% brn. Protect 50% stalls only 6% (88->82%) and chain dies. Must chip: Tbolt 14-26% vs 88% ->62-74% + burn 6% ->56-68%. Survives burned Spinner 21-46% low roll 21-31% (44%) to continue miracle. No other out.",
              "automatic": false,
              "latencyMs": 10401,
              "reasoningTokens": 675,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-7",
              "turn": 13,
              "phase": "turn",
              "action": "move 3 +2, pass",
              "selection": ["Ice Spinner -> foe 2 (Rotom-Mow)", "Pass"],
              "rationale": "Rotom-Mow used Protect on Turn 12, making consecutive Protect unreliable (~33% success). Dragonite's 2x super-effective Ice Spinner deals 24.8-46.4% to Rotom-Mow's remaining 32% HP. Even if Rotom survives with sliver HP, its -2 SpA Thunderbolt deals at most 26.8% to Dragonite's 88% HP pool, locking up the series sweep.",
              "automatic": false,
              "latencyMs": 5432,
              "reasoningTokens": 374,
              "reasoningChars": 0
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-0",
              "result": "lost",
              "summary": "Lost G2 and series 0-2. Adjustment (Garchomp/Ceru -> Clefable/Rotom) helped: avoided WideGuard wall and HH OHKO, got TW up T1, baited HH immune, KOed Gholdengo/Zard/Swampert to reach 2v1 vs solo Dnite 100% (vs G1 forfeit with 0 KOs). Lost winning endgame to variance + structural -2: T3 LeafStorm crit into switched Zard 0.25x left Rotom -2 all game (Tbolt 14-26% vs Dnite), T9 WoW missed (15%), T10 Protect failed (50%) losing Clefable 22% before Moonblast 58-104% could fire vs faster Espeed, Lum ate first burn, Spinner high-rolled 68% (100->32%), burned 1v1 Rotom -2 couldn't outrace Dnite.",
              "adjustment": "Future vs this Dnite/Swampert/Gholdengo/Zard core: keep Rotom+Clefable over Garchomp+Ceru (spread walled by WideGuard, Ceru OHKOed by HH) but fix endgame. Don't LeafStorm blind T3 into likely Zard/Gholdengo resist (0.25x/0.5x + -2 crippled Rotom all game); Tbolt Dnite or double-target Dnite instead, save LeafStorm for confirmed Swampert stay. After TW expires, preserve Incin HP (don't trade 48% into Scorching Sands SE) and preserve one Protect for Clefable Moonblast turn — Moonblast 58-104% is only Dnite answer, it never fired because 22% dies to +2 Espeed first. Bring Noivern back later for second TW instead of sacking 1% early if Dnite left."
            },
            {
              "franchiseId": "franchise-7",
              "result": "won",
              "summary": "Game 2 and the series (2-0) were won through superior positioning, disciplined weather management, and dominant priority control. Leading Dragonite + Gholdengo once again neutralized Incineroar's Intimidate and Fake Out, prompting opponent to pivot into Rotom-Mow and Clefable. Our Turn 3 defensive double switch (swapping Charizard into Swampert's slot to absorb 4x-resisted Leaf Storm, and Gholdengo into Dragonite's slot to absorb Moonblast) reduced Rotom to -2 Special Attack while keeping all four of our Pokémon alive. On Turn 5, intentionally delaying Charizard's Mega Evolution prevented Drought from boosting Clefable's Flamethrower, allowing Gholdengo to comfortably survive and chip Clefable into KO range. Dragonite then closed out the match via Lum Berry (nullifying Will-O-Wisp) and consecutive +2 Extreme Speeds and Ice Spinners, methodically eliminating Noivern, Incineroar, Clefable, and Rotom-Mow.",
              "adjustment": "In a future series against this opponent, maintain the Dragonite + Gholdengo lead with Swampert and Charizard Y in reserve as the default baseline. If opponent leans heavily into Rotom-Mow + Clefable leads to anticipate Swampert, consider leading Charizard Y + Venusaur to exert immediate Sun-boosted Chlorophyll Sleep Powder and Sludge Bomb pressure before Clefable or Rotom can set up."
            }
          ]
        }
      ]
    },
    "c22e30a077af": {
      "seriesId": "c22e30a077af",
      "franchises": ["franchise-1", "franchise-6"],
      "games": [
        {
          "number": 1,
          "winnerId": "franchise-6",
          "turns": 13,
          "brought": [
            ["corviknight", "hatterene", "farigiraf", "dragalge"],
            ["indeedee-f", "pelipper", "basculegion", "gardevoir-mega"]
          ],
          "megaEvolved": [null, "gardevoir-mega"],
          "faints": [
            { "hatterene": 1, "dragalge": 1, "farigiraf": 1, "corviknight": 1 },
            { "indeedee-f": 1, "basculegion": 1, "gardevoir-mega": 1 }
          ],
          "raw": "|t:|1789184182\n|gametype|doubles\n|player|p1|p1-opencode:glm-5.3-flash||\n|player|p2|p2-opencode:gpt-5.6-luna||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Salamence, L50, M|\n|poke|p1|Corviknight, L50, F|\n|poke|p1|Dragalge, L50, F|\n|poke|p1|Hatterene, L50, F|\n|poke|p1|Farigiraf, L50, F|\n|poke|p1|Clawitzer, L50, M|\n|poke|p2|Pelipper, L50, M|\n|poke|p2|Basculegion, L50, M|\n|poke|p2|Archaludon, L50, M|\n|poke|p2|Gardevoir, L50, M|\n|poke|p2|Indeedee-F, L50, F|\n|poke|p2|Qwilfish, L50, M|\n|teampreview|4\n|showteam|p1|Salamence||Salamencite|Intimidate|DoubleEdge,RockSlide,Earthquake,DragonDance|Jolly||M|||50|]Corviknight||RockyHelmet|MirrorArmor|BodyPress,IronHead,Tailwind,Roost|Impish||F|||50|]Dragalge||Leftovers|Adaptability|SludgeWave,IcyWind,HydroPump,Protect|Modest||F|||50|]Hatterene||SitrusBerry|MagicBounce|TrickRoom,DarkPulse,Psychic,Protect|Modest||F|||50|]Farigiraf||MentalHerb|ArmorTail|TrickRoom,Crunch,FoulPlay,Protect|Quiet||F|||50|]Clawitzer||LifeOrb|MegaLauncher|AuraSphere,DarkPulse,IceBeam,HydroPump|Modest||M|||50|\n|showteam|p2|Pelipper||FocusSash|Drizzle|Hurricane,Tailwind,WideGuard,Protect|Timid||M|||50|]Basculegion||LifeOrb|SwiftSwim|WaveCrash,LastRespects,AquaJet,Protect|Adamant||M|||50|]Archaludon||Magnet|Stalwart|ElectroShot,FlashCannon,DracoMeteor,Protect|Modest||M|||50|]Gardevoir||Gardevoirite|Trace|HyperVoice,ExpandingForce,MysticalFire,Protect|Modest||M|||50|]Indeedee-F||PsychicSeed|PsychicSurge|FollowMe,Imprison,TrickRoom,HelpingHand|Bold||F|||50|]Qwilfish||RockyHelmet|Intimidate|PoisonJab,IcyWind,Haze,Protect|Jolly||M|||50|\n|\n|t:|1789184491\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Corviknight|Corviknight, L50, F|193/193\n|switch|p1b: Hatterene|Hatterene, L50, F|156/156\n|switch|p2a: Indeedee|Indeedee-F, L50, F|177/177\n|switch|p2b: Pelipper|Pelipper, L50, M|153/153\n|-weather|RainDance|[from] ability: Drizzle|[of] p2b: Pelipper\n|-fieldstart|move: Psychic Terrain|[from] ability: Psychic Surge|[of] p2a: Indeedee\n|-enditem|p2a: Indeedee|Psychic Seed\n|-boost|p2a: Indeedee|spd|1|[from] item: Psychic Seed\n|turn|1\n|\n|t:|1789184523\n|move|p2b: Pelipper|Tailwind|p2b: Pelipper\n|-sidestart|p2: p2-opencode:gpt-5.6-luna|move: Tailwind\n|move|p2a: Indeedee|Imprison|p2a: Indeedee\n|-start|p2a: Indeedee|move: Imprison\n|move|p1a: Corviknight|Iron Head|p2a: Indeedee\n|-damage|p2a: Indeedee|135/177\n|cant|p1b: Hatterene|move: Imprison|Trick Room\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|turn|2\n|\n|t:|1789184618\n|move|p2a: Indeedee|Follow Me|p2a: Indeedee\n|-singleturn|p2a: Indeedee|move: Follow Me\n|move|p2b: Pelipper|Hurricane|p1b: Hatterene\n|-damage|p1b: Hatterene|87/156\n|move|p1a: Corviknight|Iron Head|p2a: Indeedee\n|-damage|p2a: Indeedee|96/177\n|move|p1b: Hatterene|Dark Pulse|p2a: Indeedee\n|-supereffective|p2a: Indeedee|1\n|-damage|p2a: Indeedee|26/177\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|turn|3\n|\n|t:|1789184709\n|move|p2a: Indeedee|Helping Hand|p2b: Pelipper\n|-singleturn|p2b: Pelipper|Helping Hand|[of] p2a: Indeedee\n|move|p2b: Pelipper|Hurricane|p1b: Hatterene\n|-damage|p1b: Hatterene|0 fnt\n|faint|p1b: Hatterene\n|move|p1a: Corviknight|Iron Head|p2a: Indeedee\n|-damage|p2a: Indeedee|0 fnt\n|faint|p2a: Indeedee\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|\n|t:|1789184765\n|switch|p2a: Basculegion|Basculegion, L50, M|197/197\n|switch|p1b: Farigiraf|Farigiraf, L50, F|213/213\n|turn|4\n|\n|t:|1789185139\n|move|p1b: Farigiraf|Protect|p1b: Farigiraf\n|-singleturn|p1b: Farigiraf|Protect\n|move|p2a: Basculegion|Wave Crash|p1b: Farigiraf\n|-activate|p1b: Farigiraf|move: Protect\n|move|p2b: Pelipper|Hurricane|p1b: Farigiraf\n|-activate|p1b: Farigiraf|move: Protect\n|move|p1a: Corviknight|Iron Head|p2a: Basculegion\n|-resisted|p2a: Basculegion|1\n|-damage|p2a: Basculegion|167/197\n|\n|-weather|RainDance|[upkeep]\n|-sideend|p2: p2-opencode:gpt-5.6-luna|move: Tailwind\n|upkeep\n|turn|5\n|\n|t:|1789185252\n|switch|p1b: Dragalge|Dragalge, L50, F|154/154\n|move|p2a: Basculegion|Wave Crash|p1b: Dragalge\n|-resisted|p1b: Dragalge|1\n|-damage|p1b: Dragalge|25/154\n|-damage|p2a: Basculegion|124/197|[from] Recoil\n|-damage|p2a: Basculegion|105/197|[from] item: Life Orb\n|move|p2b: Pelipper|Hurricane|p1b: Dragalge\n|-damage|p1b: Dragalge|0 fnt\n|faint|p1b: Dragalge\n|move|p1a: Corviknight|Iron Head|p2a: Basculegion\n|-resisted|p2a: Basculegion|1\n|-damage|p2a: Basculegion|73/197\n|\n|-weather|none\n|-fieldend|move: Psychic Terrain\n|upkeep\n|\n|t:|1789185252\n|switch|p1b: Farigiraf|Farigiraf, L50, F|213/213\n|turn|6\n|\n|t:|1789185406\n|switch|p2a: Gardevoir|Gardevoir, L50, M|145/145\n|-ability|p2a: Gardevoir|Mirror Armor|Trace|[from] ability: Trace|[of] p1a: Corviknight\n|move|p2b: Pelipper|Hurricane|p1b: Farigiraf\n|-damage|p1b: Farigiraf|125/213\n|-start|p1b: Farigiraf|confusion\n|move|p1a: Corviknight|Iron Head|p2a: Gardevoir\n|-supereffective|p2a: Gardevoir|1\n|-damage|p2a: Gardevoir|7/145\n|-activate|p1b: Farigiraf|confusion\n|move|p1b: Farigiraf|Trick Room|p1b: Farigiraf\n|-fieldstart|move: Trick Room|[of] p1b: Farigiraf\n|\n|upkeep\n|turn|7\n|\n|t:|1789185497\n|detailschange|p2a: Gardevoir|Gardevoir-Mega, L50, M\n|-mega|p2a: Gardevoir|Gardevoir|Gardevoirite\n|-activate|p1b: Farigiraf|confusion\n|move|p1b: Farigiraf|Protect|p1b: Farigiraf\n|-singleturn|p1b: Farigiraf|Protect\n|move|p2a: Gardevoir|Protect|p2a: Gardevoir\n|-singleturn|p2a: Gardevoir|Protect\n|move|p1a: Corviknight|Iron Head|p2a: Gardevoir\n|-activate|p2a: Gardevoir|move: Protect\n|move|p2b: Pelipper|Hurricane|p1b: Farigiraf\n|-activate|p1b: Farigiraf|move: Protect\n|\n|upkeep\n|turn|8\n|\n|t:|1789185664\n|switch|p2a: Basculegion|Basculegion, L50, M|73/197\n|-activate|p1b: Farigiraf|confusion\n|move|p1b: Farigiraf|Foul Play|p2b: Pelipper\n|-crit|p2b: Pelipper\n|-damage|p2b: Pelipper|123/153\n|move|p1a: Corviknight|Iron Head|p2a: Basculegion\n|-resisted|p2a: Basculegion|1\n|-damage|p2a: Basculegion|43/197\n|move|p2b: Pelipper|Hurricane|p1b: Farigiraf\n|-damage|p1b: Farigiraf|49/213\n|\n|upkeep\n|turn|9\n|\n|t:|1789185738\n|-activate|p1b: Farigiraf|confusion\n|move|p1b: Farigiraf|Foul Play|p2a: Basculegion\n|-supereffective|p2a: Basculegion|1\n|-damage|p2a: Basculegion|0 fnt\n|faint|p2a: Basculegion\n|move|p1a: Corviknight|Tailwind|p1a: Corviknight\n|-sidestart|p1: p1-opencode:glm-5.3-flash|move: Tailwind\n|move|p2b: Pelipper|Hurricane|p1b: Farigiraf\n|-damage|p1b: Farigiraf|0 fnt\n|faint|p1b: Farigiraf\n|\n|upkeep\n|\n|t:|1789185738\n|switch|p2a: Gardevoir|Gardevoir-Mega, L50, M|7/145\n|turn|10\n|\n|t:|1789185802\n|move|p2b: Pelipper|Hurricane|p1a: Corviknight|[miss]\n|-miss|p2b: Pelipper|p1a: Corviknight\n|move|p2a: Gardevoir|Mystical Fire|p1a: Corviknight\n|-supereffective|p1a: Corviknight|1\n|-damage|p1a: Corviknight|77/193\n|-ability|p1a: Corviknight|Mirror Armor\n|-unboost|p2a: Gardevoir|spa|1\n|move|p1a: Corviknight|Iron Head|p2b: Pelipper\n|-resisted|p2b: Pelipper|1\n|-damage|p2b: Pelipper|100/153\n|\n|-fieldend|move: Trick Room\n|upkeep\n|turn|11\n|\n|t:|1789185840\n|move|p1a: Corviknight|Roost|p1a: Corviknight\n|-heal|p1a: Corviknight|174/193\n|-singleturn|p1a: Corviknight|move: Roost\n|move|p2a: Gardevoir|Mystical Fire|p1a: Corviknight\n|-supereffective|p1a: Corviknight|1\n|-damage|p1a: Corviknight|96/193\n|-ability|p1a: Corviknight|Mirror Armor\n|-unboost|p2a: Gardevoir|spa|1\n|move|p2b: Pelipper|Hurricane|p1a: Corviknight\n|-resisted|p1a: Corviknight|1\n|-damage|p1a: Corviknight|60/193\n|\n|upkeep\n|turn|12\n|\n|t:|1789185933\n|move|p1a: Corviknight|Iron Head|p2a: Gardevoir\n|-supereffective|p2a: Gardevoir|1\n|-damage|p2a: Gardevoir|0 fnt\n|faint|p2a: Gardevoir\n|move|p2b: Pelipper|Hurricane|p1a: Corviknight\n|-resisted|p1a: Corviknight|1\n|-damage|p1a: Corviknight|21/193\n|-start|p1a: Corviknight|confusion\n|\n|-sideend|p1: p1-opencode:glm-5.3-flash|move: Tailwind\n|upkeep\n|turn|13\n|\n|t:|1789185945\n|move|p2b: Pelipper|Hurricane|p1a: Corviknight\n|-resisted|p1a: Corviknight|1\n|-damage|p1a: Corviknight|0 fnt\n|faint|p1a: Corviknight\n|\n|win|p2-opencode:gpt-5.6-luna\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Salamence",
              "actor": { "side": 0, "slot": 0 },
              "species": "Salamence"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "species": "Corviknight"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Dragalge",
              "actor": { "side": 0, "slot": 0 },
              "species": "Dragalge"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Hatterene",
              "actor": { "side": 0, "slot": 0 },
              "species": "Hatterene"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "species": "Farigiraf"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Clawitzer",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clawitzer"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Pelipper",
              "actor": { "side": 1, "slot": 0 },
              "species": "Pelipper"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Basculegion",
              "actor": { "side": 1, "slot": 0 },
              "species": "Basculegion"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Archaludon",
              "actor": { "side": 1, "slot": 0 },
              "species": "Archaludon"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Gardevoir",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gardevoir"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Indeedee-F",
              "actor": { "side": 1, "slot": 0 },
              "species": "Indeedee-F"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Qwilfish",
              "actor": { "side": 1, "slot": 0 },
              "species": "Qwilfish"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "species": "Corviknight",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Hatterene",
              "actor": { "side": 0, "slot": 1 },
              "species": "Hatterene",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Indeedee-F",
              "actor": { "side": 1, "slot": 0 },
              "species": "Indeedee-F",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Pelipper",
              "actor": { "side": 1, "slot": 1 },
              "species": "Pelipper",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "field", "text": "Weather: RainDance" },
            { "turn": 0, "kind": "field", "text": "Psychic Terrain began" },
            { "turn": 0, "kind": "detail", "text": "Indeedee lost its Psychic Seed" },
            { "turn": 0, "kind": "detail", "text": "Indeedee spd +1" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Pelipper used Tailwind → Pelipper",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 1, "kind": "field", "text": "Tailwind up on P2's side" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Indeedee used Imprison → Indeedee",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 1, "kind": "detail", "text": "Indeedee: Imprison" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Corviknight used Iron Head → Indeedee",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Indeedee → 76%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 76,
              "status": null
            },
            { "turn": 1, "kind": "detail", "text": "Hatterene can't move (Imprison)" },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Indeedee used Follow Me → Indeedee",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Pelipper used Hurricane → Hatterene",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Hatterene → 56%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 56,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Corviknight used Iron Head → Indeedee",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Indeedee → 54%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 54,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Hatterene used Dark Pulse → Indeedee",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 2, "kind": "detail", "text": "Super effective on Indeedee" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Indeedee → 15%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 15,
              "status": null
            },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "move",
              "text": "Indeedee used Helping Hand → Pelipper",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Pelipper used Hurricane → Hatterene",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Hatterene → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 3,
              "kind": "faint",
              "text": "Hatterene fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Corviknight used Iron Head → Indeedee",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Indeedee → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 3,
              "kind": "faint",
              "text": "Indeedee fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P2 sent out Basculegion",
              "actor": { "side": 1, "slot": 0 },
              "species": "Basculegion",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Farigiraf",
              "actor": { "side": 0, "slot": 1 },
              "species": "Farigiraf",
              "hp": 100,
              "status": null
            },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "move",
              "text": "Farigiraf used Protect → Farigiraf",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Basculegion used Wave Crash → Farigiraf",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Pelipper used Hurricane → Farigiraf",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Corviknight used Iron Head → Basculegion",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 4, "kind": "detail", "text": "Not very effective on Basculegion" },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Basculegion → 85%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 85,
              "status": null
            },
            { "turn": 4, "kind": "field", "text": "Tailwind ended on P2's side" },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Dragalge",
              "actor": { "side": 0, "slot": 1 },
              "species": "Dragalge",
              "hp": 100,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Basculegion used Wave Crash → Dragalge",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "detail", "text": "Not very effective on Dragalge" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Dragalge → 16%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 16,
              "status": null
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Basculegion → 63% (Recoil)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 63,
              "status": null
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Basculegion → 53% (Life Orb)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 53,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Pelipper used Hurricane → Dragalge",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Dragalge → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 5,
              "kind": "faint",
              "text": "Dragalge fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Corviknight used Iron Head → Basculegion",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Not very effective on Basculegion" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Basculegion → 37%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 37,
              "status": null
            },
            { "turn": 5, "kind": "field", "text": "Weather cleared" },
            { "turn": 5, "kind": "field", "text": "Psychic Terrain ended" },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Farigiraf",
              "actor": { "side": 0, "slot": 1 },
              "species": "Farigiraf",
              "hp": 100,
              "status": null
            },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "switch",
              "text": "P2 sent out Gardevoir",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gardevoir",
              "hp": 100,
              "status": null
            },
            { "turn": 6, "kind": "detail", "text": "Gardevoir ability: Mirror Armor" },
            {
              "turn": 6,
              "kind": "move",
              "text": "Pelipper used Hurricane → Farigiraf",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Farigiraf → 59%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 59,
              "status": null
            },
            { "turn": 6, "kind": "detail", "text": "Farigiraf: confusion" },
            {
              "turn": 6,
              "kind": "move",
              "text": "Corviknight used Iron Head → Gardevoir",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 6, "kind": "detail", "text": "Super effective on Gardevoir" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Gardevoir → 5%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 5,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Farigiraf used Trick Room → Farigiraf",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 6, "kind": "field", "text": "Trick Room began" },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Gardevoir became Gardevoir-Mega",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gardevoir-Mega"
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Farigiraf used Protect → Farigiraf",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Gardevoir used Protect → Gardevoir",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Corviknight used Iron Head → Gardevoir",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Pelipper used Hurricane → Farigiraf",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 8, "kind": "turn", "text": "Turn 8" },
            {
              "turn": 8,
              "kind": "switch",
              "text": "P2 sent out Basculegion",
              "actor": { "side": 1, "slot": 0 },
              "species": "Basculegion",
              "hp": 37,
              "status": null
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Farigiraf used Foul Play → Pelipper",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 8, "kind": "detail", "text": "Critical hit on Pelipper" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Pelipper → 80%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 80,
              "status": null
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Corviknight used Iron Head → Basculegion",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 8, "kind": "detail", "text": "Not very effective on Basculegion" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Basculegion → 22%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 22,
              "status": null
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Pelipper used Hurricane → Farigiraf",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Farigiraf → 23%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 23,
              "status": null
            },
            { "turn": 9, "kind": "turn", "text": "Turn 9" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Farigiraf used Foul Play → Basculegion",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 9, "kind": "detail", "text": "Super effective on Basculegion" },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Basculegion → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 9,
              "kind": "faint",
              "text": "Basculegion fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Corviknight used Tailwind → Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 9, "kind": "field", "text": "Tailwind up on P1's side" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Pelipper used Hurricane → Farigiraf",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Farigiraf → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 9,
              "kind": "faint",
              "text": "Farigiraf fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 9,
              "kind": "switch",
              "text": "P2 sent out Gardevoir-Mega",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gardevoir-Mega",
              "hp": 5,
              "status": null
            },
            { "turn": 10, "kind": "turn", "text": "Turn 10" },
            {
              "turn": 10,
              "kind": "move",
              "text": "Pelipper used Hurricane → Corviknight",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 10, "kind": "detail", "text": "Pelipper missed" },
            {
              "turn": 10,
              "kind": "move",
              "text": "Gardevoir used Mystical Fire → Corviknight",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 10, "kind": "detail", "text": "Super effective on Corviknight" },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Corviknight → 40%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 40,
              "status": null
            },
            { "turn": 10, "kind": "detail", "text": "Corviknight ability: Mirror Armor" },
            { "turn": 10, "kind": "detail", "text": "Gardevoir spa -1" },
            {
              "turn": 10,
              "kind": "move",
              "text": "Corviknight used Iron Head → Pelipper",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 10, "kind": "detail", "text": "Not very effective on Pelipper" },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Pelipper → 65%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 65,
              "status": null
            },
            { "turn": 10, "kind": "field", "text": "Trick Room ended" },
            { "turn": 11, "kind": "turn", "text": "Turn 11" },
            {
              "turn": 11,
              "kind": "move",
              "text": "Corviknight used Roost → Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Corviknight healed → 90%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 90,
              "status": null
            },
            {
              "turn": 11,
              "kind": "move",
              "text": "Gardevoir used Mystical Fire → Corviknight",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 11, "kind": "detail", "text": "Super effective on Corviknight" },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Corviknight → 50%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 50,
              "status": null
            },
            { "turn": 11, "kind": "detail", "text": "Corviknight ability: Mirror Armor" },
            { "turn": 11, "kind": "detail", "text": "Gardevoir spa -1" },
            {
              "turn": 11,
              "kind": "move",
              "text": "Pelipper used Hurricane → Corviknight",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 11, "kind": "detail", "text": "Not very effective on Corviknight" },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Corviknight → 31%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 31,
              "status": null
            },
            { "turn": 12, "kind": "turn", "text": "Turn 12" },
            {
              "turn": 12,
              "kind": "move",
              "text": "Corviknight used Iron Head → Gardevoir",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 12, "kind": "detail", "text": "Super effective on Gardevoir" },
            {
              "turn": 12,
              "kind": "detail",
              "text": "Gardevoir → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 12,
              "kind": "faint",
              "text": "Gardevoir fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 12,
              "kind": "move",
              "text": "Pelipper used Hurricane → Corviknight",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 12, "kind": "detail", "text": "Not very effective on Corviknight" },
            {
              "turn": 12,
              "kind": "detail",
              "text": "Corviknight → 11%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 11,
              "status": null
            },
            { "turn": 12, "kind": "detail", "text": "Corviknight: confusion" },
            { "turn": 12, "kind": "field", "text": "Tailwind ended on P1's side" },
            { "turn": 13, "kind": "turn", "text": "Turn 13" },
            {
              "turn": 13,
              "kind": "move",
              "text": "Pelipper used Hurricane → Corviknight",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 13, "kind": "detail", "text": "Not very effective on Corviknight" },
            {
              "turn": 13,
              "kind": "detail",
              "text": "Corviknight → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 13,
              "kind": "faint",
              "text": "Corviknight fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            { "turn": 13, "kind": "win", "text": "opencode:gpt-5.6-luna (P2) won the game" }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-1",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 2453",
              "selection": [
                "Pick Corviknight",
                "Pick Hatterene",
                "Pick Farigiraf",
                "Pick Dragalge"
              ],
              "rationale": "Bringing the TR control core. Corviknight leads to wall Mega Gardevoir's Hyper Voice (0.5x, Iron Head is 2x back; Body Press 2x Archaludon) while Hatterene sets Trick Room on T1 - Magic Bounce covers Indeedee's Imprison and there's no Taunt/Encore/Disable on their sheets. Once TR is up all my mons (49-87 Spe) outspeed their entire roster (93+ min) and move first. Farigiraf is the backup setter with Armor Tail blanking their only priority (Aqua Jet) plus Foul Play 2x Basculegion; Dragalge soaks Electro Shot (0.5x) and Adaptability Sludge Wave is 2x/OHKO-range on Gardevoir. Dropped Mence (loses to Hyper Voice focus; Intimidate wasted into Mirror Armor... their Intimidate Qwilfish is the threat, but walls matter more here) and Clawitzer (79 Spe is dead weight without TR, Farigiraf's double-setter insurance is more consistent).",
              "automatic": false,
              "latencyMs": 309010,
              "reasoningTokens": 0,
              "reasoningChars": 61720
            },
            {
              "franchiseId": "franchise-6",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 5124",
              "selection": [
                "Pick Indeedee-F",
                "Pick Pelipper",
                "Pick Basculegion",
                "Pick Gardevoir"
              ],
              "rationale": "Lead Indeedee-F with Pelipper to establish Psychic Terrain/rain while immediately threatening to Imprison Trick Room and retaining Follow Me support. Basculegion and Mega Gardevoir provide strong rain and anti-Dragon endgame pressure.",
              "automatic": false,
              "latencyMs": 9480,
              "reasoningTokens": 584,
              "reasoningChars": 411
            },
            {
              "franchiseId": "franchise-1",
              "turn": 1,
              "phase": "turn",
              "action": "move 2 +1, move 1",
              "selection": [
                "Iron Head -> foe 1 (Indeedee-F)",
                "Trick Room (all adjacent, including ally Corviknight)"
              ],
              "rationale": "Hatterene sets TR (-7 resolves last; even if Indeedee uses its own TR first, my TR overwrites with a fresh 5t and helps me either way - all my speeds 49-87 sit below their 93+ range). If Imprison is used, Magic Bounce bounces it. Corviknight Iron Heads Indeedee (2x STAB): if Indeedee Follow-Me redirects, it takes the hit anyway and may KO/crit; terrain stays up regardless. Targeting Pelipper is 0.5x and sash-protected, so Indeedee is the lane.",
              "automatic": false,
              "latencyMs": 32039,
              "reasoningTokens": 0,
              "reasoningChars": 5394
            },
            {
              "franchiseId": "franchise-6",
              "turn": 1,
              "phase": "turn",
              "action": "move 2, move 2",
              "selection": ["Imprison", "Tailwind (your side, including ally Indeedee-F)"],
              "rationale": "Imprison immediately denies Hatterene's revealed Trick Room, while Pelipper establishes Tailwind to offset the opponent's potential Tailwind and enable the incoming rain offense.",
              "automatic": false,
              "latencyMs": 5641,
              "reasoningTokens": 194,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 2,
              "phase": "turn",
              "action": "move 2 +1, move 2 +1",
              "selection": ["Iron Head -> foe 1 (Indeedee-F)", "Dark Pulse -> foe 1 (Indeedee-F)"],
              "rationale": "Imprison is the linchpin of their anti-TR plan, and it only holds while Indeedee is on the field. Both attacks into Indeedee: Iron Head (22-43%) + Dark Pulse (29-54%) vs 76% - combined odds to KO are solid, and if Follow Me is used it redirects both into the same target anyway. Hatterene can't Protect (Imprison blocks it) and can't TR, so Dark Pulse is the only real action. Even if Indeedee survives, it must burn Protect/Follow Me or switch, and if it self-TRs, TR helps me more than them. Pelipper's Hurricane into Hatterene (37-56%) is survivable with Sitrus.",
              "automatic": false,
              "latencyMs": 94220,
              "reasoningTokens": 0,
              "reasoningChars": 15023
            },
            {
              "franchiseId": "franchise-6",
              "turn": 2,
              "phase": "turn",
              "action": "move 1, move 1 +2",
              "selection": ["Follow Me", "Hurricane -> foe 2 (Hatterene)"],
              "rationale": "Indeedee uses Follow Me to keep both attacks away from Pelipper while Imprison remains active, and Pelipper pressures the dangerous Hatterene with Hurricane.",
              "automatic": false,
              "latencyMs": 7360,
              "reasoningTokens": 380,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 3,
              "phase": "turn",
              "action": "move 2 +1, move 1",
              "selection": [
                "Iron Head -> foe 1 (Indeedee-F)",
                "Trick Room (all adjacent, including ally Corviknight)"
              ],
              "rationale": "Indeedee sits at 14% - any hit ends Imprison. Corv moves before Hatterene (87 > 49), so Iron Head kills it first and Trick Room resolves right after, same turn, even if Indeedee only tried to Protect/switch... if it Protects, TR fails and I adapt T4, but at 14% they more likely switch it out or eat the KO. Freeing Hatterene's TR the same turn is worth risking a Hurricane chip (37-56% on 56%, Sitrus covers the low end).",
              "automatic": false,
              "latencyMs": 34432,
              "reasoningTokens": 0,
              "reasoningChars": 5232
            },
            {
              "franchiseId": "franchise-1",
              "turn": 3,
              "phase": "turn",
              "action": "move 2 +1, move 2 +2",
              "selection": ["Iron Head -> foe 1 (Indeedee-F)", "Dark Pulse -> foe 2 (Pelipper)"],
              "rationale": "Resubmitting: TR was rejected as disabled while Imprison is live, so the KO->TR chain in one turn isn't possible. Instead: Corv Iron Head ends Indeedee (14% < 22% min), which kills Imprison for next turn; Hatterene Dark Pulses Pelipper to chip through its Sash rather than wasting a target on an already-doomed Indeedee (its attack would fizzle after Corv's KO). Hatterene can't be KO'd by a plain Hurricane except a ~max roll (37-56% on 56 HP%), Sitrus covers sub-50. TR goes up cleanly next turn once Imprison is gone.",
              "automatic": false,
              "latencyMs": 57201,
              "reasoningTokens": 0,
              "reasoningChars": 7957
            },
            {
              "franchiseId": "franchise-1",
              "turn": 3,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Farigiraf"],
              "rationale": "Farigiraf is the immediate TR setter - Imprison died with Indeedee, so TR is legal again and I want the speed inversion up before their Tailwind even expires. Farigiraf also handles the likely Gardevoir switch-in well (0.5x to terrain-boosted Expanding Force, tanky 213 HP) whereas Dragalge would walk into 2x Expanding Force while terrain is still up. Armor Tail + Mental Herb protect the TR attempt; Dragalge stays fresh for the rain lane afterwards.",
              "automatic": false,
              "latencyMs": 55153,
              "reasoningTokens": 0,
              "reasoningChars": 9138
            },
            {
              "franchiseId": "franchise-6",
              "turn": 3,
              "phase": "turn",
              "action": "move 4 -2, move 1 +2",
              "selection": ["Helping Hand -> ally 2 (Pelipper)", "Hurricane -> foe 2 (Hatterene)"],
              "rationale": "Hatterene is at 55% and remains the primary Trick Room threat; Helping Hand amplifies Pelipper's Hurricane for a likely knockout while Imprison continues to deny Trick Room.",
              "automatic": false,
              "latencyMs": 5953,
              "reasoningTokens": 133,
              "reasoningChars": 552
            },
            {
              "franchiseId": "franchise-6",
              "turn": 3,
              "phase": "forced_switch",
              "action": "switch 3, pass",
              "selection": ["Switch to Basculegion", "Pass"],
              "rationale": "Bring in Basculegion to exploit the remaining rain and Tailwind immediately; Pelipper remains active while the next opposing Pokémon is revealed.",
              "automatic": false,
              "latencyMs": 6730,
              "reasoningTokens": 103,
              "reasoningChars": 506
            },
            {
              "franchiseId": "franchise-1",
              "turn": 4,
              "phase": "turn",
              "action": "move 2 +1, move 4",
              "selection": ["Iron Head -> foe 1 (Basculegion)", "Protect"],
              "rationale": "Basculegion is the linchpin: its rain Wave Crash is the only guaranteed OHKO on my last TR setter, so TR is impossible while it lives. Farigiraf Protects (only safe action - if it attacks, it dies to Wave Crash before resolving). Corviknight Iron Heads Basculegion for chip: if Basc crashes Corv in response, Corv survives all rolls (58.5+15.5 min vs 100%) while Basc pays ~64-86% total (my chip + Helmet + LO + recoil) - setting up a kill. If Basc refuses to crash Corv, I keep chipping while it sits passive. Corv eats the risk because Dragalge (no Helmet, Leftovers) is worse at punishing crashes and Corv's Iron Head/Helmet are my best Basc pressure.",
              "automatic": false,
              "latencyMs": 374223,
              "reasoningTokens": 0,
              "reasoningChars": 67070
            },
            {
              "franchiseId": "franchise-6",
              "turn": 4,
              "phase": "turn",
              "action": "move 1 +2, move 1 +2",
              "selection": ["Wave Crash -> foe 2 (Farigiraf)", "Hurricane -> foe 2 (Farigiraf)"],
              "rationale": "Farigiraf is the remaining Trick Room enabler. Double-targeting it with rain-boosted Wave Crash and Hurricane uses the current speed advantage and gives the best chance to remove it before Trick Room.",
              "automatic": false,
              "latencyMs": 11369,
              "reasoningTokens": 223,
              "reasoningChars": 981
            },
            {
              "franchiseId": "franchise-1",
              "turn": 5,
              "phase": "turn",
              "action": "move 2 +1, switch 4",
              "selection": ["Iron Head -> foe 1 (Basculegion)", "Switch to Dragalge"],
              "rationale": "Protect's next-use success is 33% - a 67% chance to lose my last TR setter to a rain Wave Crash is unacceptable when a free switch exists. Farigiraf to the bench preserves it at 100% for the post-rain TR window (T6+: Wave Crash 67-98% can never solo it). Corviknight stays and chips Basculegion down (every % helps the eventual TR-turn survival odds and the kill race), taking at most 74-109% combined burst on 100% HP - survivable on all but high-high rolls.",
              "automatic": false,
              "latencyMs": 112753,
              "reasoningTokens": 0,
              "reasoningChars": 20349
            },
            {
              "franchiseId": "franchise-1",
              "turn": 5,
              "phase": "forced_switch",
              "action": "pass, switch 4",
              "selection": ["Pass", "Switch to Farigiraf"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-6",
              "turn": 5,
              "phase": "turn",
              "action": "move 1 +2, move 1 +2",
              "selection": ["Wave Crash -> foe 2 (Farigiraf)", "Hurricane -> foe 2 (Farigiraf)"],
              "rationale": "Farigiraf's Protect is now less reliable; repeat the double-target to punish it and potentially KO before its negative-priority Trick Room can resolve. Basculegion's rain-boosted Wave Crash is the main knockout attempt.",
              "automatic": false,
              "latencyMs": 8393,
              "reasoningTokens": 136,
              "reasoningChars": 918
            },
            {
              "franchiseId": "franchise-1",
              "turn": 6,
              "phase": "turn",
              "action": "move 2 +1, move 1",
              "selection": [
                "Iron Head -> foe 1 (Basculegion)",
                "Trick Room (all adjacent, including ally Corviknight)"
              ],
              "rationale": "This is the planned TR window: rain expired, so Basculegion's Wave Crash (67-98%) can no longer solo-KO a full-HP Farigiraf - TR resolves after their attacks and lands unless they roll high-high with crash+Hurricane into the same target (~45-50% death chance, less if Hurricane misses). Foul Play now would 'trade' Basc but leave Farigiraf at 2-33%, permanently ending TR - worse EV than keeping the setter at full HP. Corviknight chips Basculegion to 20-28% so that the very first Foul Play under TR is a guaranteed KO.",
              "automatic": false,
              "latencyMs": 153675,
              "reasoningTokens": 0,
              "reasoningChars": 17573
            },
            {
              "franchiseId": "franchise-6",
              "turn": 6,
              "phase": "turn",
              "action": "switch 4, move 1 +2",
              "selection": ["Switch to Gardevoir", "Hurricane -> foe 2 (Farigiraf)"],
              "rationale": "Preserve the heavily injured Basculegion from Farigiraf's super-effective Dark attack, Mega Evolve Gardevoir, and double-target Farigiraf with Hyper Voice plus Hurricane to deny another Trick Room attempt.",
              "automatic": false,
              "latencyMs": 16815,
              "reasoningTokens": 639,
              "reasoningChars": 437
            },
            {
              "franchiseId": "franchise-1",
              "turn": 7,
              "phase": "turn",
              "action": "move 2 +1, move 4",
              "selection": ["Iron Head -> foe 1 (Gardevoir)", "Protect"],
              "rationale": "Under Trick Room Corviknight acts before Gardevoir and Iron Head's minimum (48%) exceeds Gardevoir's 4% - a guaranteed kill that also denies their Mega and any Protect read. Farigiraf Protects rather than chipping: the Foul Play chip (~10-24%) is worth far less than keeping 59% HP, since Farigiraf only needs to survive 2-3 Hurricanes (and every KO'd foe shifts chip duty to Corviknight's Roost loop). Confusion makes every Farigiraf action a 33% no-op, so no-risk Protect maximizes setter survival while Gardevoir dies regardless.",
              "automatic": false,
              "latencyMs": 91410,
              "reasoningTokens": 0,
              "reasoningChars": 15215
            },
            {
              "franchiseId": "franchise-6",
              "turn": 7,
              "phase": "turn",
              "action": "move 4 mega, move 1 +2",
              "selection": ["Protect + Mega Evolve", "Hurricane -> foe 2 (Farigiraf)"],
              "rationale": "Gardevoir is at 5% and Trick Room lets Corviknight move first, so Mega Protect preserves it from another Iron Head while securing the Mega resource. Pelipper continues attacking the confused Farigiraf.",
              "automatic": false,
              "latencyMs": 6014,
              "reasoningTokens": 261,
              "reasoningChars": 423
            },
            {
              "franchiseId": "franchise-1",
              "turn": 8,
              "phase": "turn",
              "action": "move 2 +1, move 3 +2",
              "selection": ["Iron Head -> foe 1 (Gardevoir-Mega)", "Foul Play -> foe 2 (Pelipper)"],
              "rationale": "Corviknight takes the kill job (never confused): Iron Head minimum 48% removes Gardevoir-Mega's 4% before it can act, unless it chains a reduced-success Protect (33%). Farigiraf Foul Plays Pelipper for the only meaningful chip available - double-tapping a 4% target wastes both attacks and leaves Pelipper untouched at 100%, whereas this split keeps the endgame boss on a kill clock. Basculegion stays benched until a slot opens, and the kill of Gardevoir forces it in next turn where Foul Play (min 39.6% vs 37%) or a Corv-baited Wave Crash suicide closes it out.",
              "automatic": false,
              "latencyMs": 167142,
              "reasoningTokens": 0,
              "reasoningChars": 25412
            },
            {
              "franchiseId": "franchise-6",
              "turn": 8,
              "phase": "turn",
              "action": "switch 4, move 1 +2",
              "selection": ["Switch to Basculegion", "Hurricane -> foe 2 (Farigiraf)"],
              "rationale": "A second Protect is unreliable and Corviknight's Iron Head would otherwise remove the 5%-HP Mega Gardevoir. Switch to the 37%-HP Basculegion as a buffer while Pelipper keeps pressuring the confused Farigiraf.",
              "automatic": false,
              "latencyMs": 7173,
              "reasoningTokens": 310,
              "reasoningChars": 443
            },
            {
              "franchiseId": "franchise-1",
              "turn": 9,
              "phase": "turn",
              "action": "move 3, move 3 +1",
              "selection": [
                "Tailwind (your side, including ally Farigiraf)",
                "Foul Play -> foe 1 (Basculegion)"
              ],
              "rationale": "Farigiraf is at 23% and will die to essentially any incoming hit - its last safe high-value action is Foul Play, which is a guaranteed KO on Basculegion's 21% (min 39.6%), removing the only mon that can OHKO my side before Trick Room expires. Corviknight sets Tailwind this turn: it costs nothing while TR is up (my doubled 144/174 still act first vs their doubled 186+), and from T11 it lets both survivors outspeed Pelipper (93-128), turning the endgame grind into a 2-attacker kill clock instead of a lone Corviknight race.",
              "automatic": false,
              "latencyMs": 73620,
              "reasoningTokens": 0,
              "reasoningChars": 13864
            },
            {
              "franchiseId": "franchise-6",
              "turn": 9,
              "phase": "turn",
              "action": "move 1 +2, move 1 +2",
              "selection": ["Wave Crash -> foe 2 (Farigiraf)", "Hurricane -> foe 2 (Farigiraf)"],
              "rationale": "Farigiraf is at only 23%, so Basculegion must commit Wave Crash while Pelipper provides a second knockout attempt. Removing the Trick Room setter is more important than preserving Basculegion at 22%.",
              "automatic": false,
              "latencyMs": 7831,
              "reasoningTokens": 295,
              "reasoningChars": 451
            },
            {
              "franchiseId": "franchise-6",
              "turn": 9,
              "phase": "forced_switch",
              "action": "switch 4, pass",
              "selection": ["Switch to Gardevoir-Mega", "Pass"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-1",
              "turn": 10,
              "phase": "turn",
              "action": "move 2 +2, pass",
              "selection": ["Iron Head -> foe 2 (Pelipper)", "Pass"],
              "rationale": "The 4% Gardevoir is a Protect-bait (they Protected it predictively at T7 and sac-swapped it out once already) - Iron Heading it is 60%+ a wasted turn. Pelipper is the actual endgame boss and the only mon that can out-damage Corviknight's Roost loop over time, so every guaranteed chip matters: Iron Head takes it to 62-70%. Gardevoir at 4% cannot survive my Iron Head once it acts post-TR (Corviknight outspeeds it 174 to 120-152 under Tailwind, and its Protect chain is reduced), and even its best anti-Corv play (Mystical Fire + Hurricane) leaves Corviknight alive to Roost-stabilize.",
              "automatic": false,
              "latencyMs": 63899,
              "reasoningTokens": 0,
              "reasoningChars": 11850
            },
            {
              "franchiseId": "franchise-6",
              "turn": 10,
              "phase": "turn",
              "action": "move 3 +1, move 1 +1",
              "selection": [
                "Mystical Fire -> foe 1 (Corviknight)",
                "Hurricane -> foe 1 (Corviknight)"
              ],
              "rationale": "With Trick Room still active, both attacks can resolve before Corviknight's Iron Head. Mystical Fire is the strongest super-effective hit, while Hurricane adds chip and together gives the best immediate chance to finish Corviknight.",
              "automatic": false,
              "latencyMs": 10835,
              "reasoningTokens": 228,
              "reasoningChars": 449
            },
            {
              "franchiseId": "franchise-1",
              "turn": 11,
              "phase": "turn",
              "action": "move 4, pass",
              "selection": ["Roost", "Pass"],
              "rationale": "Roost is the only safe action: with Gardevoir-Mega alive (Mystical Fire 33-47% even at -1 SpA) plus Pelipper's Hurricane, any Corviknight attack this turn risks the 48-70% combo against 40% HP. Roosting to ~90% survives everything and sets up the guaranteed Iron Head kill on Gardevoir next turn - its Protect chain was reset (Protect T7, Mystical Fire T10), so at most one successful Protect remains before the 2x STAB connects. Pelipper cannot burst Corviknight alone (Hurricane 15-23%, 70% acc).",
              "automatic": false,
              "latencyMs": 38012,
              "reasoningTokens": 0,
              "reasoningChars": 4780
            },
            {
              "franchiseId": "franchise-6",
              "turn": 11,
              "phase": "turn",
              "action": "move 3 +1, move 1 +1",
              "selection": [
                "Mystical Fire -> foe 1 (Corviknight)",
                "Hurricane -> foe 1 (Corviknight)"
              ],
              "rationale": "Corviknight is at 39%; repeat the super-effective Mystical Fire plus Hurricane before it can Roost, accepting the risk to 5%-HP Gardevoir to maximize the knockout chance.",
              "automatic": false,
              "latencyMs": 4409,
              "reasoningTokens": 101,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 12,
              "phase": "turn",
              "action": "move 2 +1, pass",
              "selection": ["Iron Head -> foe 1 (Gardevoir-Mega)", "Pass"],
              "rationale": "With Corviknight at 31% and Mystical Fire alone (22-37% at -2 SpA) nearly lethal, the only live win path is using my Tailwind speed priority to remove the Mystical Fire source before it acts: Iron Head's 48% minimum vastly exceeds Gardevoir's 4%. If they Protect (likely), Corviknight survives on Hurricane alone (8-16%), Roosts last next turn to ~58-66% where the decayed (-3 SpA) MF + Hurricane combo can no longer kill, and the 1v1 Pelipper grind is fully sustainable via Roost. Roosting instead leaves Corviknight eating the full MF+Hurricane combo at 31% with no kill pressure - strictly worse.",
              "automatic": false,
              "latencyMs": 92907,
              "reasoningTokens": 0,
              "reasoningChars": 21128
            },
            {
              "franchiseId": "franchise-6",
              "turn": 12,
              "phase": "turn",
              "action": "move 3 +1, move 1 +1",
              "selection": [
                "Mystical Fire -> foe 1 (Corviknight)",
                "Hurricane -> foe 1 (Corviknight)"
              ],
              "rationale": "Corviknight is at 31%; Mystical Fire remains the only strong super-effective option, and Hurricane supplies the needed finishing chip before another Roost.",
              "automatic": false,
              "latencyMs": 3988,
              "reasoningTokens": 61,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 13,
              "phase": "turn",
              "action": "move 4, pass",
              "selection": ["Roost", "Pass"],
              "rationale": "The gamble paid off - Gardevoir-Mega died before it could act, leaving the Mystical Fire threat gone. Now Corviknight at 11% must Roost: it outsped by Pelipper (93-128), any Hurricane hit is lethal at 11%, so the only live line is Hurricane missing (30%) followed by an unconfused Roost (67%) to 61%, after which the Roost/Iron Head loop out-sustains and out-chips Pelipper 1v1 indefinitely. Attacking instead leaves Corviknight killable to the very next Hurricane.",
              "automatic": false,
              "latencyMs": 11473,
              "reasoningTokens": 0,
              "reasoningChars": 1674
            },
            {
              "franchiseId": "franchise-6",
              "turn": 13,
              "phase": "turn",
              "action": "pass, move 1 +1",
              "selection": ["Pass", "Hurricane -> foe 1 (Corviknight)"],
              "rationale": "Gardevoir is fainted; Pelipper must use its final Hurricane to finish the confused 10%-HP Corviknight.",
              "automatic": false,
              "latencyMs": 4037,
              "reasoningTokens": 17,
              "reasoningChars": 0
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-1",
              "result": "lost",
              "summary": "Game 1 lost 0-1 in 13 turns. Structure was mostly right, variance and two fixable choices killed it. What worked: killing Indeedee to end Imprison (TR gate), Farigiraf's Foul Play executions (Basculegion KO), Corviknight's Miracle-armor grind (walls Hyper Voice/MF, Mirror Armor made their Mystical Fire self-nerf -1 SpA per use, Tailwind-priority kill on Gardevoir-Mega at T12), and correct kill-order math throughout. What went wrong: (1) their anti-TR screen (Tailwind+Imprison lead, Helping Hand+Hurricane snipe) - Hatterene died T3 to the burst I'd read but chose to trade into; my T3 resubmit (Dark Pulse chip on Pelipper instead of Protecting Hatterene) was the key fixable error - Hatterene Protect (100% chain) survives and TR goes up a turn earlier with a setter intact; (2) Dragalge's entry T5 was a pure sponge turn and it died to a max-roll Wave Crash (~84%) + Hurricane - entry-turn Protect would have kept it alive; (3) the 4% Gardevoir survived 6 turns on sac-swaps/Protect while Corv chipped Pelipper - by the time G died (T12, they finally didn't Protect), Corv was at 11% and the T13 Roost needed a Hurricane miss (30%) that didn't come. The 1 decision error was the T3 rejected submission (Hatterene Trick Room disabled by live Imprison). Net: right plan, wrong setter-safety sequencing; game 2 should lead the walls and Protect entries instead of trading into bursts.",
              "adjustment": "Keep the TR frame but restructure the opener: G1 lost the setter race to their anti-TR screen (Imprison + burst snipes). Game 2: lead Corviknight + Dragalge, bench Hatterene + Farigiraf. Corv presses Indeedee (IH 22-43%/hit; dead by ~T3, ending Imprison), Dragalge Protects its entry turn (it was the burst victim: rain Wave Crash rolled 84% + Hurricane). Setters enter only after Indeedee is gone, setter Protects its entry turn (streak resets - entry-turn Protect is 100%). Under TR: double-tap Gardevoir (Corv IH + Dragalge Sludge Wave) so sac-swap/Protect can't preserve it; Foul Play executes Basc; Pelipper is the slow boss only Corv can out-sustain - keep Corv >=60% entering endgames and never attack into MF+Hurricane coverage below ~50%."
            },
            {
              "franchiseId": "franchise-6",
              "result": "won",
              "summary": "Won 1-0 in 13 turns. The Indeedee-F/Pelipper lead successfully established Psychic Terrain, rain, Tailwind, and Imprison, completely denying Hatterene's initial Trick Room and enabling Hurricane to remove Hatterene. The game became difficult after Indeedee and Basculegion were sacrificed; Dragalge resisted Wave Crash, and Farigiraf eventually set Trick Room. Gardevoir plus Pelipper still overcame the endgame, with Mystical Fire and repeated Hurricane finally removing Corviknight despite Roost, Mirror Armor, and a Hurricane miss.",
              "adjustment": "Keep the anti-Trick Room lead concept, but consider Archaludon over Basculegion into this opponent: Basculegion's Wave Crash was resisted by Dragalge and recoil plus Foul Play made it fragile, while rain-powered Electro Shot pressures Corviknight. Avoid exposing Mega Gardevoir to Corviknight's Iron Head unless Protect or a knockout is secured; use Pelipper's Wide Guard/Protect more deliberately against the physical endgame."
            }
          ]
        },
        {
          "number": 2,
          "winnerId": "franchise-1",
          "turns": 11,
          "brought": [
            ["corviknight", "dragalge", "hatterene", "farigiraf"],
            ["indeedee-f", "pelipper", "archaludon", "gardevoir-mega"]
          ],
          "megaEvolved": [null, "gardevoir-mega"],
          "faints": [
            { "dragalge": 1 },
            { "indeedee-f": 1, "archaludon": 1, "gardevoir-mega": 1, "pelipper": 1 }
          ],
          "raw": "|t:|1789186195\n|gametype|doubles\n|player|p1|p1-opencode:glm-5.3-flash||\n|player|p2|p2-opencode:gpt-5.6-luna||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Salamence, L50, F|\n|poke|p1|Corviknight, L50, M|\n|poke|p1|Dragalge, L50, F|\n|poke|p1|Hatterene, L50, F|\n|poke|p1|Farigiraf, L50, F|\n|poke|p1|Clawitzer, L50, F|\n|poke|p2|Pelipper, L50, F|\n|poke|p2|Basculegion, L50, M|\n|poke|p2|Archaludon, L50, M|\n|poke|p2|Gardevoir, L50, M|\n|poke|p2|Indeedee-F, L50, F|\n|poke|p2|Qwilfish, L50, F|\n|teampreview|4\n|showteam|p1|Salamence||Salamencite|Intimidate|DoubleEdge,RockSlide,Earthquake,DragonDance|Jolly||F|||50|]Corviknight||RockyHelmet|MirrorArmor|BodyPress,IronHead,Tailwind,Roost|Impish||M|||50|]Dragalge||Leftovers|Adaptability|SludgeWave,IcyWind,HydroPump,Protect|Modest||F|||50|]Hatterene||SitrusBerry|MagicBounce|TrickRoom,DarkPulse,Psychic,Protect|Modest||F|||50|]Farigiraf||MentalHerb|ArmorTail|TrickRoom,Crunch,FoulPlay,Protect|Quiet||F|||50|]Clawitzer||LifeOrb|MegaLauncher|AuraSphere,DarkPulse,IceBeam,HydroPump|Modest||F|||50|\n|showteam|p2|Pelipper||FocusSash|Drizzle|Hurricane,Tailwind,WideGuard,Protect|Timid||F|||50|]Basculegion||LifeOrb|SwiftSwim|WaveCrash,LastRespects,AquaJet,Protect|Adamant||M|||50|]Archaludon||Magnet|Stalwart|ElectroShot,FlashCannon,DracoMeteor,Protect|Modest||M|||50|]Gardevoir||Gardevoirite|Trace|HyperVoice,ExpandingForce,MysticalFire,Protect|Modest||M|||50|]Indeedee-F||PsychicSeed|PsychicSurge|FollowMe,Imprison,TrickRoom,HelpingHand|Bold||F|||50|]Qwilfish||RockyHelmet|Intimidate|PoisonJab,IcyWind,Haze,Protect|Jolly||F|||50|\n|\n|t:|1789186220\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Corviknight|Corviknight, L50, M|193/193\n|switch|p1b: Dragalge|Dragalge, L50, F|154/154\n|switch|p2a: Indeedee|Indeedee-F, L50, F|177/177\n|switch|p2b: Pelipper|Pelipper, L50, F|153/153\n|-weather|RainDance|[from] ability: Drizzle|[of] p2b: Pelipper\n|-fieldstart|move: Psychic Terrain|[from] ability: Psychic Surge|[of] p2a: Indeedee\n|-enditem|p2a: Indeedee|Psychic Seed\n|-boost|p2a: Indeedee|spd|1|[from] item: Psychic Seed\n|turn|1\n|\n|t:|1789186239\n|move|p1b: Dragalge|Protect|p1b: Dragalge\n|-singleturn|p1b: Dragalge|Protect\n|move|p2b: Pelipper|Hurricane|p1b: Dragalge\n|-activate|p1b: Dragalge|move: Protect\n|move|p2a: Indeedee|Imprison|p2a: Indeedee\n|-start|p2a: Indeedee|move: Imprison\n|move|p1a: Corviknight|Iron Head|p2a: Indeedee\n|-damage|p2a: Indeedee|134/177\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|turn|2\n|\n|t:|1789186379\n|switch|p2a: Archaludon|Archaludon, L50, M|167/167\n|move|p2b: Pelipper|Hurricane|p1b: Dragalge\n|-damage|p1b: Dragalge|97/154\n|move|p1a: Corviknight|Body Press|p2a: Archaludon\n|-supereffective|p2a: Archaludon|1\n|-damage|p2a: Archaludon|93/167\n|move|p1b: Dragalge|Sludge Wave|p2b: Pelipper|[spread] p2b\n|-immune|p1a: Corviknight\n|-immune|p2a: Archaludon\n|-damage|p2b: Pelipper|55/153\n|\n|-weather|RainDance|[upkeep]\n|-heal|p1b: Dragalge|106/154|[from] item: Leftovers\n|upkeep\n|turn|3\n|\n|t:|1789186544\n|switch|p1a: Farigiraf|Farigiraf, L50, F|213/213\n|move|p2b: Pelipper|Protect|p2b: Pelipper\n|-singleturn|p2b: Pelipper|Protect\n|move|p2a: Archaludon|Draco Meteor|p1b: Dragalge\n|-supereffective|p1b: Dragalge|1\n|-damage|p1b: Dragalge|0 fnt\n|-unboost|p2a: Archaludon|spa|2\n|faint|p1b: Dragalge\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|\n|t:|1789186735\n|switch|p1b: Hatterene|Hatterene, L50, F|156/156\n|turn|4\n|\n|t:|1789186836\n|switch|p2b: Indeedee|Indeedee-F, L50, F|134/177\n|move|p2a: Archaludon|Flash Cannon|p1b: Hatterene\n|-supereffective|p1b: Hatterene|1\n|-damage|p1b: Hatterene|82/156\n|-unboost|p1b: Hatterene|spd|1\n|move|p1b: Hatterene|Psychic|p2b: Indeedee\n|-resisted|p2b: Indeedee|1\n|-damage|p2b: Indeedee|77/177\n|move|p1a: Farigiraf|Trick Room|p1a: Farigiraf\n|-fieldstart|move: Trick Room|[of] p1a: Farigiraf\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|turn|5\n|\n|t:|1789187006\n|move|p1b: Hatterene|Protect|p1b: Hatterene\n|-singleturn|p1b: Hatterene|Protect\n|move|p2b: Indeedee|Follow Me|p2b: Indeedee\n|-singleturn|p2b: Indeedee|move: Follow Me\n|move|p1a: Farigiraf|Crunch|p2b: Indeedee\n|-supereffective|p2b: Indeedee|1\n|-damage|p2b: Indeedee|19/177\n|move|p2a: Archaludon|Flash Cannon|p1b: Hatterene\n|-activate|p1b: Hatterene|move: Protect\n|\n|-weather|none\n|-fieldend|move: Psychic Terrain\n|upkeep\n|turn|6\n|\n|t:|1789187138\n|switch|p1b: Corviknight|Corviknight, L50, M|193/193\n|move|p2b: Indeedee|Follow Me|p2b: Indeedee\n|-singleturn|p2b: Indeedee|move: Follow Me\n|move|p1a: Farigiraf|Crunch|p2b: Indeedee\n|-supereffective|p2b: Indeedee|1\n|-damage|p2b: Indeedee|0 fnt\n|faint|p2b: Indeedee\n|move|p2a: Archaludon|Flash Cannon|p1b: Corviknight\n|-resisted|p1b: Corviknight|1\n|-damage|p1b: Corviknight|172/193\n|\n|upkeep\n|\n|t:|1789187142\n|switch|p2b: Gardevoir|Gardevoir, L50, M|145/145\n|-ability|p2b: Gardevoir|Mirror Armor|Trace|[from] ability: Trace|[of] p1b: Corviknight\n|turn|7\n|\n|t:|1789187274\n|detailschange|p2b: Gardevoir|Gardevoir-Mega, L50, M\n|-mega|p2b: Gardevoir|Gardevoir|Gardevoirite\n|move|p2b: Gardevoir|Protect|p2b: Gardevoir\n|-singleturn|p2b: Gardevoir|Protect\n|move|p1a: Farigiraf|Foul Play|p2a: Archaludon\n|-damage|p2a: Archaludon|61/167\n|move|p1b: Corviknight|Body Press|p2a: Archaludon\n|-supereffective|p2a: Archaludon|1\n|-damage|p2a: Archaludon|0 fnt\n|faint|p2a: Archaludon\n|\n|upkeep\n|\n|t:|1789187274\n|switch|p2a: Pelipper|Pelipper, L50, F|55/153\n|-weather|RainDance|[from] ability: Drizzle|[of] p2a: Pelipper\n|turn|8\n|\n|t:|1789187333\n|move|p1a: Farigiraf|Protect|p1a: Farigiraf\n|-singleturn|p1a: Farigiraf|Protect\n|move|p2b: Gardevoir|Protect||[still]\n|-fail|p2b: Gardevoir\n|move|p1b: Corviknight|Iron Head|p2b: Gardevoir\n|-supereffective|p2b: Gardevoir|1\n|-damage|p2b: Gardevoir|25/145\n|move|p2a: Pelipper|Hurricane|p1a: Farigiraf\n|-activate|p1a: Farigiraf|move: Protect\n|\n|-weather|RainDance|[upkeep]\n|-fieldend|move: Trick Room\n|upkeep\n|turn|9\n|\n|t:|1789187367\n|move|p2b: Gardevoir|Mystical Fire|p1b: Corviknight\n|-supereffective|p1b: Corviknight|1\n|-damage|p1b: Corviknight|112/193\n|-ability|p1b: Corviknight|Mirror Armor\n|-unboost|p2b: Gardevoir|spa|1\n|move|p2a: Pelipper|Hurricane|p1b: Corviknight\n|-resisted|p1b: Corviknight|1\n|-damage|p1b: Corviknight|77/193\n|move|p1b: Corviknight|Iron Head|p2b: Gardevoir\n|-supereffective|p2b: Gardevoir|1\n|-damage|p2b: Gardevoir|0 fnt\n|faint|p2b: Gardevoir\n|move|p1a: Farigiraf|Trick Room|p1a: Farigiraf\n|-fieldstart|move: Trick Room|[of] p1a: Farigiraf\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|turn|10\n|\n|t:|1789187407\n|switch|p1a: Hatterene|Hatterene, L50, F|82/156\n|move|p1b: Corviknight|Iron Head|p2a: Pelipper\n|-resisted|p2a: Pelipper|1\n|-damage|p2a: Pelipper|34/153\n|move|p2a: Pelipper|Hurricane|p1b: Corviknight\n|-resisted|p1b: Corviknight|1\n|-damage|p1b: Corviknight|41/193\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|turn|11\n|\n|t:|1789187431\n|move|p1a: Hatterene|Psychic|p2a: Pelipper\n|-damage|p2a: Pelipper|0 fnt\n|faint|p2a: Pelipper\n|\n|win|p1-opencode:glm-5.3-flash\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Salamence",
              "actor": { "side": 0, "slot": 0 },
              "species": "Salamence"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "species": "Corviknight"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Dragalge",
              "actor": { "side": 0, "slot": 0 },
              "species": "Dragalge"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Hatterene",
              "actor": { "side": 0, "slot": 0 },
              "species": "Hatterene"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "species": "Farigiraf"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Clawitzer",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clawitzer"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Pelipper",
              "actor": { "side": 1, "slot": 0 },
              "species": "Pelipper"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Basculegion",
              "actor": { "side": 1, "slot": 0 },
              "species": "Basculegion"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Archaludon",
              "actor": { "side": 1, "slot": 0 },
              "species": "Archaludon"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Gardevoir",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gardevoir"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Indeedee-F",
              "actor": { "side": 1, "slot": 0 },
              "species": "Indeedee-F"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Qwilfish",
              "actor": { "side": 1, "slot": 0 },
              "species": "Qwilfish"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "species": "Corviknight",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Dragalge",
              "actor": { "side": 0, "slot": 1 },
              "species": "Dragalge",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Indeedee-F",
              "actor": { "side": 1, "slot": 0 },
              "species": "Indeedee-F",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Pelipper",
              "actor": { "side": 1, "slot": 1 },
              "species": "Pelipper",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "field", "text": "Weather: RainDance" },
            { "turn": 0, "kind": "field", "text": "Psychic Terrain began" },
            { "turn": 0, "kind": "detail", "text": "Indeedee lost its Psychic Seed" },
            { "turn": 0, "kind": "detail", "text": "Indeedee spd +1" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Dragalge used Protect → Dragalge",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Pelipper used Hurricane → Dragalge",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Indeedee used Imprison → Indeedee",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 1, "kind": "detail", "text": "Indeedee: Imprison" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Corviknight used Iron Head → Indeedee",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Indeedee → 76%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 76,
              "status": null
            },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "switch",
              "text": "P2 sent out Archaludon",
              "actor": { "side": 1, "slot": 0 },
              "species": "Archaludon",
              "hp": 100,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Pelipper used Hurricane → Dragalge",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Dragalge → 63%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 63,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Corviknight used Body Press → Archaludon",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 2, "kind": "detail", "text": "Super effective on Archaludon" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Archaludon → 56%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 56,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Dragalge used Sludge Wave → Pelipper",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 2, "kind": "detail", "text": "Corviknight is immune" },
            { "turn": 2, "kind": "detail", "text": "Archaludon is immune" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Pelipper → 36%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 36,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Dragalge healed → 69% (Leftovers)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 69,
              "status": null
            },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "species": "Farigiraf",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Pelipper used Protect → Pelipper",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Archaludon used Draco Meteor → Dragalge",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 3, "kind": "detail", "text": "Super effective on Dragalge" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Dragalge → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            { "turn": 3, "kind": "detail", "text": "Archaludon spa -2" },
            {
              "turn": 3,
              "kind": "faint",
              "text": "Dragalge fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Hatterene",
              "actor": { "side": 0, "slot": 1 },
              "species": "Hatterene",
              "hp": 100,
              "status": null
            },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P2 sent out Indeedee-F",
              "actor": { "side": 1, "slot": 1 },
              "species": "Indeedee-F",
              "hp": 76,
              "status": null
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Archaludon used Flash Cannon → Hatterene",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 4, "kind": "detail", "text": "Super effective on Hatterene" },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Hatterene → 53%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 53,
              "status": null
            },
            { "turn": 4, "kind": "detail", "text": "Hatterene spd -1" },
            {
              "turn": 4,
              "kind": "move",
              "text": "Hatterene used Psychic → Indeedee",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 4, "kind": "detail", "text": "Not very effective on Indeedee" },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Indeedee → 44%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 44,
              "status": null
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Farigiraf used Trick Room → Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 4, "kind": "field", "text": "Trick Room began" },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Hatterene used Protect → Hatterene",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Indeedee used Follow Me → Indeedee",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Farigiraf used Crunch → Indeedee",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 5, "kind": "detail", "text": "Super effective on Indeedee" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Indeedee → 11%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 11,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Archaludon used Flash Cannon → Hatterene",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "field", "text": "Weather cleared" },
            { "turn": 5, "kind": "field", "text": "Psychic Terrain ended" },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "switch",
              "text": "P1 sent out Corviknight",
              "actor": { "side": 0, "slot": 1 },
              "species": "Corviknight",
              "hp": 100,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Indeedee used Follow Me → Indeedee",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Farigiraf used Crunch → Indeedee",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 6, "kind": "detail", "text": "Super effective on Indeedee" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Indeedee → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 6,
              "kind": "faint",
              "text": "Indeedee fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Archaludon used Flash Cannon → Corviknight",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 6, "kind": "detail", "text": "Not very effective on Corviknight" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Corviknight → 89%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 89,
              "status": null
            },
            {
              "turn": 6,
              "kind": "switch",
              "text": "P2 sent out Gardevoir",
              "actor": { "side": 1, "slot": 1 },
              "species": "Gardevoir",
              "hp": 100,
              "status": null
            },
            { "turn": 6, "kind": "detail", "text": "Gardevoir ability: Mirror Armor" },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Gardevoir became Gardevoir-Mega",
              "actor": { "side": 1, "slot": 1 },
              "species": "Gardevoir-Mega"
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Gardevoir used Protect → Gardevoir",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Farigiraf used Foul Play → Archaludon",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Archaludon → 37%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 37,
              "status": null
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Corviknight used Body Press → Archaludon",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 7, "kind": "detail", "text": "Super effective on Archaludon" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Archaludon → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Archaludon fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P2 sent out Pelipper",
              "actor": { "side": 1, "slot": 0 },
              "species": "Pelipper",
              "hp": 36,
              "status": null
            },
            { "turn": 7, "kind": "field", "text": "Weather: RainDance" },
            { "turn": 8, "kind": "turn", "text": "Turn 8" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Farigiraf used Protect → Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Gardevoir used Protect",
              "actor": { "side": 1, "slot": 1 }
            },
            { "turn": 8, "kind": "detail", "text": "Gardevoir's move failed" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Corviknight used Iron Head → Gardevoir",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 8, "kind": "detail", "text": "Super effective on Gardevoir" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Gardevoir → 17%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 17,
              "status": null
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Pelipper used Hurricane → Farigiraf",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 8, "kind": "field", "text": "Trick Room ended" },
            { "turn": 9, "kind": "turn", "text": "Turn 9" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Gardevoir used Mystical Fire → Corviknight",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 9, "kind": "detail", "text": "Super effective on Corviknight" },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Corviknight → 58%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 58,
              "status": null
            },
            { "turn": 9, "kind": "detail", "text": "Corviknight ability: Mirror Armor" },
            { "turn": 9, "kind": "detail", "text": "Gardevoir spa -1" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Pelipper used Hurricane → Corviknight",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 9, "kind": "detail", "text": "Not very effective on Corviknight" },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Corviknight → 40%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 40,
              "status": null
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Corviknight used Iron Head → Gardevoir",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 9, "kind": "detail", "text": "Super effective on Gardevoir" },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Gardevoir → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 9,
              "kind": "faint",
              "text": "Gardevoir fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Farigiraf used Trick Room → Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 9, "kind": "field", "text": "Trick Room began" },
            { "turn": 10, "kind": "turn", "text": "Turn 10" },
            {
              "turn": 10,
              "kind": "switch",
              "text": "P1 sent out Hatterene",
              "actor": { "side": 0, "slot": 0 },
              "species": "Hatterene",
              "hp": 53,
              "status": null
            },
            {
              "turn": 10,
              "kind": "move",
              "text": "Corviknight used Iron Head → Pelipper",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 10, "kind": "detail", "text": "Not very effective on Pelipper" },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Pelipper → 22%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 22,
              "status": null
            },
            {
              "turn": 10,
              "kind": "move",
              "text": "Pelipper used Hurricane → Corviknight",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 10, "kind": "detail", "text": "Not very effective on Corviknight" },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Corviknight → 21%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 21,
              "status": null
            },
            { "turn": 11, "kind": "turn", "text": "Turn 11" },
            {
              "turn": 11,
              "kind": "move",
              "text": "Hatterene used Psychic → Pelipper",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Pelipper → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 11,
              "kind": "faint",
              "text": "Pelipper fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            { "turn": 11, "kind": "win", "text": "opencode:glm-5.3-flash (P1) won the game" }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-1",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 2345",
              "selection": [
                "Pick Corviknight",
                "Pick Dragalge",
                "Pick Hatterene",
                "Pick Farigiraf"
              ],
              "rationale": "G2 skeleton: lead Corviknight+Dragalge (sponge Hyper Voice 20-28%, absorb Electro Shot 18-27% and one rain Wave Crash), bench Hatterene+Farigiraf for TR inversion. Mence benched (G-Mega Pixilate HV ~60-90% on it; they always bring Gardevoir). T1: Corv IH -> Indeedee + Dragalge Protect; kill Imprison tech early, then Farigiraf in first, TR once safe.",
              "automatic": false,
              "latencyMs": 23892,
              "reasoningTokens": 2009,
              "reasoningChars": 6853
            },
            {
              "franchiseId": "franchise-6",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 5134",
              "selection": [
                "Pick Indeedee-F",
                "Pick Pelipper",
                "Pick Archaludon",
                "Pick Gardevoir"
              ],
              "rationale": "Use the established anti-Trick Room lead: Indeedee supplies Psychic Terrain and Imprison while Pelipper establishes rain. Bring Archaludon and Gardevoir to pressure the recurring Corviknight/Dragalge core without relying on Basculegion into Dragalge.",
              "automatic": false,
              "latencyMs": 3501,
              "reasoningTokens": 53,
              "reasoningChars": 391
            },
            {
              "franchiseId": "franchise-1",
              "turn": 1,
              "phase": "turn",
              "action": "move 2 +1, move 4",
              "selection": ["Iron Head -> foe 1 (Indeedee-F)", "Protect"],
              "rationale": "Same lead as G1: Pelipper+Indeedee. Corv IH -> Indeedee (22-43%, physical so Psychic Seed's +1 SpD is irrelevant; pressures the Imprison TR-block). Dragalge Protects its entry turn (100%) to safely absorb the T1-3 burst that killed Dragalge/Hatterene in G1; keeps it healthy as the Wave Crash absorber while rain is up.",
              "automatic": false,
              "latencyMs": 18795,
              "reasoningTokens": 1396,
              "reasoningChars": 4934
            },
            {
              "franchiseId": "franchise-6",
              "turn": 1,
              "phase": "turn",
              "action": "move 2, move 1 +2",
              "selection": ["Imprison", "Hurricane -> foe 2 (Dragalge)"],
              "rationale": "Re-establish Imprison immediately to deny Trick Room from either revealed setter. Pelipper uses rain-boosted Hurricane into Dragalge for meaningful neutral pressure while preserving the anti-TR structure.",
              "automatic": false,
              "latencyMs": 5625,
              "reasoningTokens": 147,
              "reasoningChars": 514
            },
            {
              "franchiseId": "franchise-1",
              "turn": 2,
              "phase": "turn",
              "action": "move 1 +1, move 1",
              "selection": [
                "Body Press -> foe 1 (Indeedee-F)",
                "Sludge Wave (all adjacent, including ally Corviknight)"
              ],
              "rationale": "Indeedee (75%, Imprison active) is the TR-block linchpin: Corv Body Press hits it hardest (Def 172 as attack, est ~27-50% vs Bold defenses; +1 SpD irrelevant), Dragalge Sludge Wave spreads 43-86% onto Pelipper (removing Sash relevance, rain dies with Pelipper) + more Indeedee chip (combined likely leaves it 0-33%). Accept 0.5x self-chip on Corv (Roost heals it later). Risk: Pelipper WideGuard eats the spread — BP pressure remains.",
              "automatic": false,
              "latencyMs": 140000,
              "reasoningTokens": 0,
              "reasoningChars": 23204
            },
            {
              "franchiseId": "franchise-6",
              "turn": 2,
              "phase": "turn",
              "action": "switch 3, move 1 +2",
              "selection": ["Switch to Archaludon", "Hurricane -> foe 2 (Dragalge)"],
              "rationale": "Imprison is already active, so Indeedee can safely rotate into Archaludon, which resists Dragalge's Poison pressure and improves the board against Corviknight/Dragalge. Pelipper keeps immediate rain Hurricane pressure on Dragalge after its prior Protect.",
              "automatic": false,
              "latencyMs": 4881,
              "reasoningTokens": 202,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 3,
              "phase": "turn",
              "action": "switch 4, move 1",
              "selection": [
                "Switch to Farigiraf",
                "Sludge Wave (all adjacent, including ally Corviknight)"
              ],
              "rationale": "Electro Shot = 81.9-117.1% into Corv (Magnet+rain instant fire) — switching. Farigiraf is the safest entry: ES 40.8-58.7%, Hurricane 31.5-46.9%, worst-case double-target 72.3-105.6% (rarely lethal); it then TRs T4 with Indeedee benched (Imprison dormant). Dragalge SW -> Pelipper is a guaranteed kill (43.1% min > 35%) if not Protected/WideGuarded — killing Pelipper ends rain, defanging Basculegion Wave Crash and future ES insta-fires.",
              "automatic": false,
              "latencyMs": 165240,
              "reasoningTokens": 0,
              "reasoningChars": 28121
            },
            {
              "franchiseId": "franchise-1",
              "turn": 3,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Hatterene"],
              "rationale": "Farigiraf passes (menu limited); Hatterene takes the free slot — it tanks ES at only 25-35.9% (-2 SpA) and T5 its terrain-boosted Psychic is a guaranteed kill on 35% Pelipper (64.7-127.4%, Sash can't save non-full HP) → rain dies, Electro Shot re-charges, Basc loses Swift Swim. Corv stays benched 100% (ES would still do 40-59% to it) as the G-Mega IH answer. T5: Psychic Pelipper + Farigiraf TR (Indeedee benched, Imprison dormant). Contingency: if they re-enter Indeedee (re-arms Imprison), delay TR and chip it with Corv BP on entry.",
              "automatic": false,
              "latencyMs": 190811,
              "reasoningTokens": 0,
              "reasoningChars": 32483
            },
            {
              "franchiseId": "franchise-6",
              "turn": 3,
              "phase": "turn",
              "action": "move 3 +2, move 4",
              "selection": ["Draco Meteor -> foe 2 (Dragalge)", "Protect"],
              "rationale": "Draco Meteor is a guaranteed KO on Dragalge from its shown 68% across the damage range, while Pelipper Protects to avoid being removed by another spread attack. This also removes the main special-pressure threat and preserves Pelipper's Focus Sash insurance.",
              "automatic": false,
              "latencyMs": 10939,
              "reasoningTokens": 418,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-1",
              "turn": 4,
              "phase": "turn",
              "action": "move 1, move 3 +2",
              "selection": [
                "Trick Room (all adjacent, including ally Hatterene)",
                "Psychic -> foe 2 (Pelipper)"
              ],
              "rationale": "Combo turn: Farigiraf TR (Imprison dormant — Indeedee benched; even if it re-enters later, Imprison can't erase an active TR) + Hatt Psychic -> Pelipper, a guaranteed kill (64.7-127.4% vs 35%, Sash can't save from 35%). Rain ends with Pelipper, de-fanging Electro Shot (re-charges) and Basc's Swift Swim. Intake this turn is safe: Draco is 0x on Hatt (Fairy), ES 25-36%, worst Farig case ~35%. T5+ under TR my whole side moves first.",
              "automatic": false,
              "latencyMs": 100407,
              "reasoningTokens": 0,
              "reasoningChars": 15678
            },
            {
              "franchiseId": "franchise-6",
              "turn": 4,
              "phase": "turn",
              "action": "move 2 +2, switch 3",
              "selection": ["Flash Cannon -> foe 2 (Hatterene)", "Switch to Indeedee-F"],
              "rationale": "Bring Indeedee back to restore active Imprison and prevent the newly revealed Hatterene/Farigiraf from establishing Trick Room. Archaludon targets Hatterene with super-effective Flash Cannon while Pelipper safely exits at 36%.",
              "automatic": false,
              "latencyMs": 6174,
              "reasoningTokens": 326,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 5,
              "phase": "turn",
              "action": "move 2 +2, move 4",
              "selection": ["Crunch -> foe 2 (Indeedee-F)", "Protect"],
              "rationale": "Flash Cannon = 55.1-82.1% vs Hatt's 53% — any targeted hit kills Hatt, so Protect (fresh 100%) blanks it while Farig Crunch -> Indeedee (2x, 32.8-66.2% vs 43%, ~60% kill; it has no Protect and can't dodge). If Indeedee survives on a sliver, Hatt's Psychic (or terrain removal) finishes T6. Hatt kept alive as the guaranteed Pelipper killer (Psychic ≥43% no-terrain) and backup TR setter; Corv 100% benched for the G-Mega/endgame. Rain expires end of T5 either way.",
              "automatic": false,
              "latencyMs": 170849,
              "reasoningTokens": 0,
              "reasoningChars": 25694
            },
            {
              "franchiseId": "franchise-6",
              "turn": 5,
              "phase": "turn",
              "action": "move 2 +2, move 1",
              "selection": ["Flash Cannon -> foe 2 (Hatterene)", "Follow Me"],
              "rationale": "Trick Room is already active, so prioritize removing Hatterene while Indeedee uses Follow Me to redirect the likely Dark/Psychic single-target attacks away from Archaludon. A second Flash Cannon should finish Hatterene from 52% despite Archaludon's Special Attack drop.",
              "automatic": false,
              "latencyMs": 8450,
              "reasoningTokens": 297,
              "reasoningChars": 420
            },
            {
              "franchiseId": "franchise-1",
              "turn": 6,
              "phase": "turn",
              "action": "move 2 +2, switch 4",
              "selection": ["Crunch -> foe 2 (Indeedee-F)", "Switch to Corviknight"],
              "rationale": "Indeedee execute: Farig Crunch floor 32.8% > 10% — guaranteed kill, erasing Imprison/FollowMe/HH for good. Hatt (53%, dies to any Flash Cannon) exits for Corviknight — Corv is nearly untouchable without rain (Flash/Draco 0.5x ~8-15%; ES charge = telegraphed -1 SpA shot next turn). T7 under TR: Corv BP + Farig Foul Play both into Archaludon (29.4-50.9% + ~20-28% = dead ~60% now, guaranteed by T8). TR expires end of T8; plan TR re-set T9 if the 4th/Pelipper grind needs it.",
              "automatic": false,
              "latencyMs": 131473,
              "reasoningTokens": 0,
              "reasoningChars": 16491
            },
            {
              "franchiseId": "franchise-6",
              "turn": 6,
              "phase": "turn",
              "action": "move 2 +2, move 1",
              "selection": ["Flash Cannon -> foe 2 (Hatterene)", "Follow Me"],
              "rationale": "Repeat the Hatterene removal attempt: its Protect is now on reduced success, and Flash Cannon is the strongest available direct pressure. Indeedee's 11% HP is expendable while Follow Me shields Archaludon from single-target attacks and enables the KO attempt.",
              "automatic": false,
              "latencyMs": 4403,
              "reasoningTokens": 104,
              "reasoningChars": 479
            },
            {
              "franchiseId": "franchise-6",
              "turn": 6,
              "phase": "forced_switch",
              "action": "pass, switch 4",
              "selection": ["Pass", "Switch to Gardevoir"],
              "rationale": "Indeedee is fainted, so pass with Archaludon and bring in Gardevoir as the final pressure piece. Mega Gardevoir can threaten spread damage into Farigiraf while Archaludon remains the Steel pivot against Corviknight.",
              "automatic": false,
              "latencyMs": 4356,
              "reasoningTokens": 111,
              "reasoningChars": 483
            },
            {
              "franchiseId": "franchise-1",
              "turn": 7,
              "phase": "turn",
              "action": "move 3 +1, move 1 +1",
              "selection": ["Foul Play -> foe 1 (Archaludon)", "Body Press -> foe 1 (Archaludon)"],
              "rationale": "Double-tap Archaludon under TR before Gardevoir can matter: BP+Foul Play = 40.6-75.7% vs 55% (~55-60% kill; survivor ≤14.4% dies to BP floor T8 — always before an ES fires). Archaludon first because its only burst (charged ES 60-89% into Corv) can flip the game; -2 SpA makes everything else negligible. Farigiraf then Protects future HVs (39.9-55.4%/turn kills it in 2); T8 contingency: Corv BP-kill + Roost, or pure Roost if Archaludon already dead, before the no-TR G-Mega grind (Corv IH x2-3 + Roost loop).",
              "automatic": false,
              "latencyMs": 131157,
              "reasoningTokens": 0,
              "reasoningChars": 17084
            },
            {
              "franchiseId": "franchise-6",
              "turn": 7,
              "phase": "turn",
              "action": "move 1 +2, move 4 mega",
              "selection": ["Electro Shot -> foe 2 (Corviknight)", "Protect + Mega Evolve"],
              "rationale": "Under Trick Room, protect Mega Gardevoir from Corviknight's super-effective Iron Head while Archaludon fires rain-independent Electro Shot pressure into Corviknight. This preserves Gardevoir through the remaining Trick Room turn and targets the immediate Steel threat.",
              "automatic": false,
              "latencyMs": 4382,
              "reasoningTokens": 129,
              "reasoningChars": 524
            },
            {
              "franchiseId": "franchise-6",
              "turn": 7,
              "phase": "forced_switch",
              "action": "switch 3, pass",
              "selection": ["Switch to Pelipper", "Pass"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-1",
              "turn": 8,
              "phase": "turn",
              "action": "move 4, move 2 +2",
              "selection": ["Protect", "Iron Head -> foe 2 (Gardevoir-Mega)"],
              "rationale": "Final TR turn: Corv IH -> G-Mega (48-96.5% → 3.5-52%; T10 IH+Foul ≈70% kill, T11 guaranteed at ≤44%). Farig Protects (fresh 100%) so it enters T9 at full HP for the TR re-set — worst-case Farig intake T9 (HV 39.9-55.4 + Hurr 31.5-46.9) is 71-102%, fatal only on double-max rolls. Corv absorbs whatever T8 hits come (worst 35-51% → 38-54%, fine). Under TR T10+: Hatt/Crav execute Pelipper (Psychic ≥43% vs 35%, IH grind backup), G-Mega dies T10-11.",
              "automatic": false,
              "latencyMs": 59312,
              "reasoningTokens": 0,
              "reasoningChars": 10453
            },
            {
              "franchiseId": "franchise-6",
              "turn": 8,
              "phase": "turn",
              "action": "move 1 +1, move 4",
              "selection": [
                "Hurricane -> foe 1 (Farigiraf)",
                "Protect [success rate reduced: Protected last turn]"
              ],
              "rationale": "Use Pelipper's Hurricane to pressure Farigiraf while Mega Gardevoir Protects through the final Trick Room turn, avoiding Corviknight's super-effective Iron Head. Gardevoir can attack safely once normal speed order returns.",
              "automatic": false,
              "latencyMs": 4711,
              "reasoningTokens": 149,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 9,
              "phase": "turn",
              "action": "move 1, move 2 +2",
              "selection": [
                "Trick Room (all adjacent, including ally Corviknight)",
                "Iron Head -> foe 2 (Gardevoir-Mega)"
              ],
              "rationale": "Corv IH (48% floor) executes 17% G-Mega this turn despite moving second — Pelipper+G become their LAST mon. Farig re-sets TR (resolves after enemy attacks; Imprison dead) → T10-14 full inversion vs a lone 35% Pelipper: Corv IH 3-hit grind or Hatt Psychic execute, Pelipper can't out-damage Corv's Roost loop. Residual risk: Farig sniped by HV+Hurr double-max (~4%) — even then Corv wins 1v1 + Hatt Psychic finish.",
              "automatic": false,
              "latencyMs": 34058,
              "reasoningTokens": 0,
              "reasoningChars": 6883
            },
            {
              "franchiseId": "franchise-6",
              "turn": 9,
              "phase": "turn",
              "action": "move 1 +2, move 3 +2",
              "selection": [
                "Hurricane -> foe 2 (Corviknight)",
                "Mystical Fire -> foe 2 (Corviknight)"
              ],
              "rationale": "Now out of Trick Room, focus both attacks on Corviknight: Mega Gardevoir's super-effective Mystical Fire and Pelipper's Hurricane can remove the Steel threat before another Iron Head. Leaving Corviknight alive is the immediate loss condition for the 17% Gardevoir.",
              "automatic": false,
              "latencyMs": 3866,
              "reasoningTokens": 134,
              "reasoningChars": 491
            },
            {
              "franchiseId": "franchise-1",
              "turn": 10,
              "phase": "turn",
              "action": "switch 4, move 2 +2",
              "selection": ["Switch to Hatterene", "Iron Head -> foe 2"],
              "rationale": "Cleanup phase, 3v1 vs 35% Pelipper (their last mon). Corv exits (40%, preserves the Roost-loop insurance) for Hatt — it can't be OHKO'd from 53% (Hurricane max 56.4% but Sitrus heals mid-drop) and T11 under TR its Psychic (floor 43.1% > 25%) kills Pelipper before it moves. Farig Foul Play chips now (WideGuard can't block single-target). Contingency: Pelipper Protect streaks just delay the guaranteed Psychic to T12.",
              "automatic": false,
              "latencyMs": 39702,
              "reasoningTokens": 0,
              "reasoningChars": 5961
            },
            {
              "franchiseId": "franchise-6",
              "turn": 10,
              "phase": "turn",
              "action": "move 1 +2, pass",
              "selection": ["Hurricane -> foe 2 (Corviknight)", "Pass"],
              "rationale": "With only Pelipper remaining, continue targeting Corviknight at 39% with Hurricane for the best available chance to remove the Steel threat; no defensive or setup action can recover the position.",
              "automatic": false,
              "latencyMs": 4060,
              "reasoningTokens": 141,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 11,
              "phase": "turn",
              "action": "move 3 +1, move 4",
              "selection": ["Psychic -> foe 1 (Pelipper)", "Roost"],
              "rationale": "Hatt Psychic -> Pelipper: floor 43.1% > 22% remaining, 100% acc, TR means it resolves before Pelipper acts — guaranteed game-winning KO on their final Pokémon. Corv Roosts to 71% (insurance only; the game ends on the Psychic). WideGuard can't block single-target; nothing else can interfere.",
              "automatic": false,
              "latencyMs": 23543,
              "reasoningTokens": 0,
              "reasoningChars": 3762
            },
            {
              "franchiseId": "franchise-6",
              "turn": 11,
              "phase": "turn",
              "action": "move 1 +2, pass",
              "selection": ["Hurricane -> foe 2 (Corviknight)", "Pass"],
              "rationale": "Corviknight is now at 21%, within the demonstrated Hurricane damage range; attack it again before it can Roost. Pelipper has no viable alternative to preserve the game.",
              "automatic": false,
              "latencyMs": 2865,
              "reasoningTokens": 38,
              "reasoningChars": 418
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-1",
              "result": "won",
              "summary": "WON G2 on T11, series 1-1. The TR-tempo plan executed end to end: Corv+Dragalge lead survived the Imprison+Hurricane screen; Indeedee was ground down (Crunch 2x) and killed T6 — its FollowMe was useless because I targeted it directly; when they sac-swapped Archaludon in, Corv was safely benched from every Electro Shot window (82-117% in rain would have OHKO'd it) and Archaludon died to a BP+Foul Play double-tap under TR while at -2 SpA. Gardevoir-Mega wasted T7-T8 on a Protect streak (2-stack fail) and died T9 to Iron Head (83% roll + execute) — I never ate a single Pixilate Hyper Voice. Pelipper's re-entry reset rain, but the T9 re-TR gave T10-14 inversion and Hatt's Psychic (43.1% floor) executed the 22% last mon. New verified data: Flash Cannon into Hatt is only 47% at -2 SpA but ~94% at full SpA; MF into Corv rolled 31% at 0-stage (vs G1's 60% read — treat as 30-60%); Psychic Terrain confirmed to boost my grounded Psychics x1.5 and NOT block Protect/TR; Imprison volatile confirmed cleared on switch-out; Steel immunity made Sludge Wave zero-cost to my Steel mons. Two blemishes: Dragalge died to Draco Meteor T3 (opened with SW instead of Protecting a fresh streak), and a T10 menu-index mixup between slots (benign, outcome equivalent). Zero decision errors, zero substitutions.",
              "adjustment": "Keep: the 4 (Corv+Dragalge+Hatt+Farig, bench Mence+Clawitzer), TR-tempo skeleton, Corv as the sole HV wall + G-Mega executioner (IH 48-96.5%, rolled 83%), re-TR the turn after expiry (setter survives ~102% worst intake). Change for G3: (1) Dragalge never open-attacks while Archaludon lives — Protect the fresh streak vs Draco (G2's only fatality); (2) kill Pelipper EARLY with Sludge Wave (min 43.1% executes its 35%) — ending rain permanently defangs Electro Shot and Swift Swim; (3) Corv Roosts at >=60% HP, never grinds to 21% again under Hurricane spam; (4) prepare for a possible Archaludon+Pelipper lead: rain ES = 82-117% OHKO on Corv, so Corv exits T1 and only re-enters rainless or post-Archaludon; (5) expect G-Mega to Mega+attack immediately this time — keep Farig/Hatt off-board vs HV (39.9-55.4%/turn each), only Corv tanks it; (6) verify slot-to-mon menu mapping every turn; (7) they read lethal attacks and Protect them — pair kill attempts in the same turn (SW+IH) so one read can't blank the turn."
            },
            {
              "franchiseId": "franchise-6",
              "result": "lost",
              "summary": "Lost Game 2 after successfully removing Dragalge but allowing Trick Room to go up once Indeedee was rotated out. The decisive strategic error was abandoning active Imprison: Farigiraf established Trick Room on turn 4, and later Hatterene/Farigiraf plus Corviknight overwhelmed the endgame. Archaludon also fell to Body Press while targeting Corviknight under Trick Room, and Mega Gardevoir was repeatedly exposed to Iron Head; Corviknight survived at 21%.",
              "adjustment": "Keep Indeedee active until both Trick Room setters are removed or clearly unable to act; switching it out forfeited the main control plan. Against Corviknight under Trick Room, prioritize Protecting Archaludon rather than attacking into a likely Body Press, and avoid consecutive Gardevoir Protects when Iron Head remains available. Preserve Gardevoir behind redirection or wait out Trick Room before committing it."
            }
          ]
        },
        {
          "number": 3,
          "winnerId": "franchise-1",
          "turns": 9,
          "brought": [
            ["corviknight", "dragalge", "hatterene", "farigiraf"],
            ["indeedee-f", "pelipper", "archaludon", "gardevoir-mega"]
          ],
          "megaEvolved": [null, "gardevoir-mega"],
          "faints": [
            { "hatterene": 1 },
            { "pelipper": 1, "archaludon": 1, "indeedee-f": 1, "gardevoir-mega": 1 }
          ],
          "raw": "|t:|1789187824\n|gametype|doubles\n|player|p1|p1-opencode:glm-5.3-flash||\n|player|p2|p2-opencode:gpt-5.6-luna||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Salamence, L50, F|\n|poke|p1|Corviknight, L50, F|\n|poke|p1|Dragalge, L50, F|\n|poke|p1|Hatterene, L50, F|\n|poke|p1|Farigiraf, L50, M|\n|poke|p1|Clawitzer, L50, M|\n|poke|p2|Pelipper, L50, F|\n|poke|p2|Basculegion, L50, M|\n|poke|p2|Archaludon, L50, F|\n|poke|p2|Gardevoir, L50, F|\n|poke|p2|Indeedee-F, L50, F|\n|poke|p2|Qwilfish, L50, F|\n|teampreview|4\n|showteam|p1|Salamence||Salamencite|Intimidate|DoubleEdge,RockSlide,Earthquake,DragonDance|Jolly||F|||50|]Corviknight||RockyHelmet|MirrorArmor|BodyPress,IronHead,Tailwind,Roost|Impish||F|||50|]Dragalge||Leftovers|Adaptability|SludgeWave,IcyWind,HydroPump,Protect|Modest||F|||50|]Hatterene||SitrusBerry|MagicBounce|TrickRoom,DarkPulse,Psychic,Protect|Modest||F|||50|]Farigiraf||MentalHerb|ArmorTail|TrickRoom,Crunch,FoulPlay,Protect|Quiet||M|||50|]Clawitzer||LifeOrb|MegaLauncher|AuraSphere,DarkPulse,IceBeam,HydroPump|Modest||M|||50|\n|showteam|p2|Pelipper||FocusSash|Drizzle|Hurricane,Tailwind,WideGuard,Protect|Timid||F|||50|]Basculegion||LifeOrb|SwiftSwim|WaveCrash,LastRespects,AquaJet,Protect|Adamant||M|||50|]Archaludon||Magnet|Stalwart|ElectroShot,FlashCannon,DracoMeteor,Protect|Modest||F|||50|]Gardevoir||Gardevoirite|Trace|HyperVoice,ExpandingForce,MysticalFire,Protect|Modest||F|||50|]Indeedee-F||PsychicSeed|PsychicSurge|FollowMe,Imprison,TrickRoom,HelpingHand|Bold||F|||50|]Qwilfish||RockyHelmet|Intimidate|PoisonJab,IcyWind,Haze,Protect|Jolly||F|||50|\n|\n|t:|1789187846\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Corviknight|Corviknight, L50, F|193/193\n|switch|p1b: Dragalge|Dragalge, L50, F|154/154\n|switch|p2a: Indeedee|Indeedee-F, L50, F|177/177\n|switch|p2b: Pelipper|Pelipper, L50, F|153/153\n|-weather|RainDance|[from] ability: Drizzle|[of] p2b: Pelipper\n|-fieldstart|move: Psychic Terrain|[from] ability: Psychic Surge|[of] p2a: Indeedee\n|-enditem|p2a: Indeedee|Psychic Seed\n|-boost|p2a: Indeedee|spd|1|[from] item: Psychic Seed\n|turn|1\n|\n|t:|1789187877\n|move|p1b: Dragalge|Protect|p1b: Dragalge\n|-singleturn|p1b: Dragalge|Protect\n|move|p2b: Pelipper|Hurricane|p1b: Dragalge\n|-activate|p1b: Dragalge|move: Protect\n|move|p2a: Indeedee|Imprison|p2a: Indeedee\n|-start|p2a: Indeedee|move: Imprison\n|move|p1a: Corviknight|Iron Head|p2a: Indeedee\n|-damage|p2a: Indeedee|138/177\n|\n|-weather|RainDance|[upkeep]\n|upkeep\n|turn|2\n|\n|t:|1789188028\n|move|p2a: Indeedee|Helping Hand|p2b: Pelipper\n|-singleturn|p2b: Pelipper|Helping Hand|[of] p2a: Indeedee\n|move|p2b: Pelipper|Hurricane|p1b: Dragalge\n|-damage|p1b: Dragalge|72/154\n|move|p1a: Corviknight|Body Press|p2a: Indeedee\n|-damage|p2a: Indeedee|89/177\n|move|p1b: Dragalge|Sludge Wave|p2b: Pelipper|[spread] p2a,p2b\n|-immune|p1a: Corviknight\n|-damage|p2a: Indeedee|37/177\n|-damage|p2b: Pelipper|55/153\n|\n|-weather|RainDance|[upkeep]\n|-heal|p1b: Dragalge|81/154|[from] item: Leftovers\n|upkeep\n|turn|3\n|\n|t:|1789188099\n|switch|p2a: Archaludon|Archaludon, L50, F|167/167\n|move|p2b: Pelipper|Protect|p2b: Pelipper\n|-singleturn|p2b: Pelipper|Protect\n|move|p1a: Corviknight|Body Press|p2a: Archaludon\n|-supereffective|p2a: Archaludon|1\n|-damage|p2a: Archaludon|87/167\n|move|p1b: Dragalge|Sludge Wave|p2a: Archaludon|[spread] \n|-activate|p2b: Pelipper|move: Protect\n|-immune|p1a: Corviknight\n|-immune|p2a: Archaludon\n|\n|-weather|RainDance|[upkeep]\n|-heal|p1b: Dragalge|90/154|[from] item: Leftovers\n|upkeep\n|turn|4\n|\n|t:|1789188336\n|switch|p1a: Farigiraf|Farigiraf, L50, M|213/213\n|move|p2b: Pelipper|Protect||[still]\n|-fail|p2b: Pelipper\n|move|p1b: Dragalge|Protect|p1b: Dragalge\n|-singleturn|p1b: Dragalge|Protect\n|move|p2a: Archaludon|Draco Meteor|p1b: Dragalge\n|-activate|p1b: Dragalge|move: Protect\n|\n|-weather|RainDance|[upkeep]\n|-heal|p1b: Dragalge|99/154|[from] item: Leftovers\n|upkeep\n|turn|5\n|\n|t:|1789188747\n|switch|p1b: Hatterene|Hatterene, L50, F|156/156\n|move|p2b: Pelipper|Hurricane|p1b: Hatterene\n|-damage|p1b: Hatterene|81/156\n|move|p2a: Archaludon|Draco Meteor|p1b: Hatterene\n|-immune|p1b: Hatterene\n|move|p1a: Farigiraf|Trick Room|p1a: Farigiraf\n|-fieldstart|move: Trick Room|[of] p1a: Farigiraf\n|\n|-weather|none\n|-fieldend|move: Psychic Terrain\n|upkeep\n|turn|6\n|\n|t:|1789188929\n|switch|p1a: Corviknight|Corviknight, L50, F|193/193\n|move|p2b: Pelipper|Protect|p2b: Pelipper\n|-singleturn|p2b: Pelipper|Protect\n|move|p1b: Hatterene|Psychic|p2a: Archaludon\n|-resisted|p2a: Archaludon|1\n|-damage|p2a: Archaludon|39/167\n|move|p2a: Archaludon|Flash Cannon|p1b: Hatterene\n|-supereffective|p1b: Hatterene|1\n|-damage|p1b: Hatterene|0 fnt\n|faint|p1b: Hatterene\n|\n|upkeep\n|\n|t:|1789188974\n|switch|p1b: Dragalge|Dragalge, L50, F|99/154\n|turn|7\n|\n|t:|1789188988\n|move|p1b: Dragalge|Sludge Wave|p2b: Pelipper|[spread] p2b\n|-immune|p1a: Corviknight\n|-immune|p2a: Archaludon\n|-crit|p2b: Pelipper\n|-damage|p2b: Pelipper|0 fnt\n|faint|p2b: Pelipper\n|move|p1a: Corviknight|Body Press|p2a: Archaludon\n|-supereffective|p2a: Archaludon|1\n|-damage|p2a: Archaludon|0 fnt\n|faint|p2a: Archaludon\n|\n|-heal|p1b: Dragalge|108/154|[from] item: Leftovers\n|upkeep\n|\n|t:|1789188994\n|switch|p2a: Gardevoir|Gardevoir, L50, F|145/145\n|switch|p2b: Indeedee|Indeedee-F, L50, F|37/177\n|-fieldstart|move: Psychic Terrain|[from] ability: Psychic Surge|[of] p2b: Indeedee\n|-ability|p2a: Gardevoir|Mirror Armor|Trace|[from] ability: Trace|[of] p1a: Corviknight\n|turn|8\n|\n|t:|1789189139\n|detailschange|p2a: Gardevoir|Gardevoir-Mega, L50, F\n|-mega|p2a: Gardevoir|Gardevoir|Gardevoirite\n|move|p2a: Gardevoir|Protect|p2a: Gardevoir\n|-singleturn|p2a: Gardevoir|Protect\n|move|p1b: Dragalge|Sludge Wave|p2b: Indeedee|[spread] p2b\n|-activate|p2a: Gardevoir|move: Protect\n|-immune|p1a: Corviknight\n|-damage|p2b: Indeedee|0 fnt\n|faint|p2b: Indeedee\n|move|p1a: Corviknight|Iron Head|p2a: Gardevoir\n|-activate|p2a: Gardevoir|move: Protect\n|\n|-heal|p1b: Dragalge|117/154|[from] item: Leftovers\n|upkeep\n|turn|9\n|\n|t:|1789189221\n|move|p1b: Dragalge|Sludge Wave|p2a: Gardevoir|[spread] p2a\n|-immune|p1a: Corviknight\n|-supereffective|p2a: Gardevoir|1\n|-damage|p2a: Gardevoir|9/145\n|move|p1a: Corviknight|Iron Head|p2a: Gardevoir\n|-supereffective|p2a: Gardevoir|1\n|-damage|p2a: Gardevoir|0 fnt\n|faint|p2a: Gardevoir\n|\n|win|p1-opencode:glm-5.3-flash\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Salamence",
              "actor": { "side": 0, "slot": 0 },
              "species": "Salamence"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "species": "Corviknight"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Dragalge",
              "actor": { "side": 0, "slot": 0 },
              "species": "Dragalge"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Hatterene",
              "actor": { "side": 0, "slot": 0 },
              "species": "Hatterene"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "species": "Farigiraf"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Clawitzer",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clawitzer"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Pelipper",
              "actor": { "side": 1, "slot": 0 },
              "species": "Pelipper"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Basculegion",
              "actor": { "side": 1, "slot": 0 },
              "species": "Basculegion"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Archaludon",
              "actor": { "side": 1, "slot": 0 },
              "species": "Archaludon"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Gardevoir",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gardevoir"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Indeedee-F",
              "actor": { "side": 1, "slot": 0 },
              "species": "Indeedee-F"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Qwilfish",
              "actor": { "side": 1, "slot": 0 },
              "species": "Qwilfish"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "species": "Corviknight",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Dragalge",
              "actor": { "side": 0, "slot": 1 },
              "species": "Dragalge",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Indeedee-F",
              "actor": { "side": 1, "slot": 0 },
              "species": "Indeedee-F",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Pelipper",
              "actor": { "side": 1, "slot": 1 },
              "species": "Pelipper",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "field", "text": "Weather: RainDance" },
            { "turn": 0, "kind": "field", "text": "Psychic Terrain began" },
            { "turn": 0, "kind": "detail", "text": "Indeedee lost its Psychic Seed" },
            { "turn": 0, "kind": "detail", "text": "Indeedee spd +1" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Dragalge used Protect → Dragalge",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Pelipper used Hurricane → Dragalge",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Indeedee used Imprison → Indeedee",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 1, "kind": "detail", "text": "Indeedee: Imprison" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Corviknight used Iron Head → Indeedee",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Indeedee → 78%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 78,
              "status": null
            },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Indeedee used Helping Hand → Pelipper",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Pelipper used Hurricane → Dragalge",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Dragalge → 47%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 47,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Corviknight used Body Press → Indeedee",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Indeedee → 50%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 50,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Dragalge used Sludge Wave → Pelipper",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 2, "kind": "detail", "text": "Corviknight is immune" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Indeedee → 21%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 21,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Pelipper → 36%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 36,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Dragalge healed → 53% (Leftovers)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 53,
              "status": null
            },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P2 sent out Archaludon",
              "actor": { "side": 1, "slot": 0 },
              "species": "Archaludon",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Pelipper used Protect → Pelipper",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Corviknight used Body Press → Archaludon",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 3, "kind": "detail", "text": "Super effective on Archaludon" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Archaludon → 52%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 52,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Dragalge used Sludge Wave → Archaludon",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 3, "kind": "detail", "text": "Corviknight is immune" },
            { "turn": 3, "kind": "detail", "text": "Archaludon is immune" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Dragalge healed → 58% (Leftovers)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 58,
              "status": null
            },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P1 sent out Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "species": "Farigiraf",
              "hp": 100,
              "status": null
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Pelipper used Protect",
              "actor": { "side": 1, "slot": 1 }
            },
            { "turn": 4, "kind": "detail", "text": "Pelipper's move failed" },
            {
              "turn": 4,
              "kind": "move",
              "text": "Dragalge used Protect → Dragalge",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Archaludon used Draco Meteor → Dragalge",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Dragalge healed → 64% (Leftovers)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 64,
              "status": null
            },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Hatterene",
              "actor": { "side": 0, "slot": 1 },
              "species": "Hatterene",
              "hp": 100,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Pelipper used Hurricane → Hatterene",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Hatterene → 52%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 52,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Archaludon used Draco Meteor → Hatterene",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "detail", "text": "Hatterene is immune" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Farigiraf used Trick Room → Farigiraf",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 5, "kind": "field", "text": "Trick Room began" },
            { "turn": 5, "kind": "field", "text": "Weather cleared" },
            { "turn": 5, "kind": "field", "text": "Psychic Terrain ended" },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "switch",
              "text": "P1 sent out Corviknight",
              "actor": { "side": 0, "slot": 0 },
              "species": "Corviknight",
              "hp": 100,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Pelipper used Protect → Pelipper",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Hatterene used Psychic → Archaludon",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 6, "kind": "detail", "text": "Not very effective on Archaludon" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Archaludon → 23%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 23,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Archaludon used Flash Cannon → Hatterene",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 6, "kind": "detail", "text": "Super effective on Hatterene" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Hatterene → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 6,
              "kind": "faint",
              "text": "Hatterene fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 6,
              "kind": "switch",
              "text": "P1 sent out Dragalge",
              "actor": { "side": 0, "slot": 1 },
              "species": "Dragalge",
              "hp": 64,
              "status": null
            },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "move",
              "text": "Dragalge used Sludge Wave → Pelipper",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 7, "kind": "detail", "text": "Corviknight is immune" },
            { "turn": 7, "kind": "detail", "text": "Archaludon is immune" },
            { "turn": 7, "kind": "detail", "text": "Critical hit on Pelipper" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Pelipper → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Pelipper fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Corviknight used Body Press → Archaludon",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 7, "kind": "detail", "text": "Super effective on Archaludon" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Archaludon → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Archaludon fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Dragalge healed → 70% (Leftovers)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 70,
              "status": null
            },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P2 sent out Gardevoir",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gardevoir",
              "hp": 100,
              "status": null
            },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P2 sent out Indeedee-F",
              "actor": { "side": 1, "slot": 1 },
              "species": "Indeedee-F",
              "hp": 21,
              "status": null
            },
            { "turn": 7, "kind": "field", "text": "Psychic Terrain began" },
            { "turn": 7, "kind": "detail", "text": "Gardevoir ability: Mirror Armor" },
            { "turn": 8, "kind": "turn", "text": "Turn 8" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Gardevoir became Gardevoir-Mega",
              "actor": { "side": 1, "slot": 0 },
              "species": "Gardevoir-Mega"
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Gardevoir used Protect → Gardevoir",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Dragalge used Sludge Wave → Indeedee",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 8, "kind": "detail", "text": "Corviknight is immune" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Indeedee → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 8,
              "kind": "faint",
              "text": "Indeedee fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Corviknight used Iron Head → Gardevoir",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Dragalge healed → 76% (Leftovers)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 76,
              "status": null
            },
            { "turn": 9, "kind": "turn", "text": "Turn 9" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Dragalge used Sludge Wave → Gardevoir",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 9, "kind": "detail", "text": "Corviknight is immune" },
            { "turn": 9, "kind": "detail", "text": "Super effective on Gardevoir" },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Gardevoir → 6%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 6,
              "status": null
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Corviknight used Iron Head → Gardevoir",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 9, "kind": "detail", "text": "Super effective on Gardevoir" },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Gardevoir → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 9,
              "kind": "faint",
              "text": "Gardevoir fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            { "turn": 9, "kind": "win", "text": "opencode:glm-5.3-flash (P1) won the game" }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-1",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 2345",
              "selection": [
                "Pick Corviknight",
                "Pick Dragalge",
                "Pick Hatterene",
                "Pick Farigiraf"
              ],
              "rationale": "G3 decider. Opponent locked Pelipper/Indeedee/Archaludon/Gardevoir both games and led P+Ind 3 straight — bring the proven anti-rain/TR core: Corv+Dragalge lead (IH->Ind 22-43, Drag absorbs ES/Hurr, SW executes Pelipper), Hatt+Farig back (dual TR setters, Magic Bounce + Armor Tail). Bench Mence (dies to HV; anti-rain only if G-Mega gone) and Clawitzer (TR nuke, redundant vs this 4). Follows G3 plan: never field Corv while rain+Arch coexist.",
              "automatic": false,
              "latencyMs": 20812,
              "reasoningTokens": 0,
              "reasoningChars": 3910
            },
            {
              "franchiseId": "franchise-6",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 5134",
              "selection": [
                "Pick Indeedee-F",
                "Pick Pelipper",
                "Pick Archaludon",
                "Pick Gardevoir"
              ],
              "rationale": "Lead Indeedee-F/Pelipper to establish Psychic Terrain and rain while Imprison immediately denies the recurring Trick Room core; bring Archaludon for rain-boosted Electro Shot and Gardevoir for decisive spread pressure, preserving the anti-TR and anti-Corviknight plan.",
              "automatic": false,
              "latencyMs": 2862,
              "reasoningTokens": 96,
              "reasoningChars": 470
            },
            {
              "franchiseId": "franchise-1",
              "turn": 1,
              "phase": "turn",
              "action": "move 2 +1, move 4",
              "selection": ["Iron Head -> foe 1 (Indeedee-F)", "Protect"],
              "rationale": "G2 script T1: Corv IH->Ind 22-43 (targets Ind directly, so FollowMe is useless); Drag PROTECT blocks Hurr and denies a Pelipper Protect-read on early SW. Save SW for T2 when Pelipper commits.</think><tool_call>execute<arg_key>code</arg_key><arg_value>// T1 cross-checks before committing to the G2 script: Corv IH->Ind + Drag Protect.\n// Questions: (1) Pelipper Hurr into Dragalge if Protect somehow fails / is ignored;\n// (2) IH->Ind chip range with Ind's +1 SpD (Seed) — physical, so SpD boost shouldn't matter;\n// (3) order sanity: does Corv outspeed Ind/Pel here, and could Ind TR first?\nconst [hurrDrag, ihInd, order1, order2] = await Promise.all([\n  tools.estimate_damage({ attacker: \"Pelipper\", defender: \"Dragalge\", move: \"Hurricane\" }),\n  tools.estimate_damage({ attacker: \"Corviknight\", defender: \"Indeedee-F\", move: \"Iron Head\" }),\n  tools.compare_action_order({ first: \"Corviknight\", second: \"Indeedee-F\", first_move: \"Iron Head\", second_move: \"FollowMe\" }),\n  tools.compare_action_order({ first: \"Dragalge\", second: \"Pelipper\", first_move: \"Protect\", second_move: \"Hurricane\" })\n]);\nreturn { hurrDrag, ihInd, order1, order2 };",
              "automatic": false,
              "latencyMs": 30774,
              "reasoningTokens": 0,
              "reasoningChars": 6680
            },
            {
              "franchiseId": "franchise-6",
              "turn": 1,
              "phase": "turn",
              "action": "move 2, move 1 +2",
              "selection": ["Imprison", "Hurricane -> foe 2 (Dragalge)"],
              "rationale": "Keep Indeedee active and Imprison to deny either hidden Trick Room user if switched in; Pelipper uses rain-accurate Hurricane into Dragalge for neutral chip, the more vulnerable and recurring target, while staying faster than Corviknight.",
              "automatic": false,
              "latencyMs": 8567,
              "reasoningTokens": 283,
              "reasoningChars": 551
            },
            {
              "franchiseId": "franchise-1",
              "turn": 2,
              "phase": "turn",
              "action": "move 1 +1, move 1",
              "selection": [
                "Body Press -> foe 1 (Indeedee-F)",
                "Sludge Wave (all adjacent, including ally Corviknight)"
              ],
              "rationale": "T2 script: BP->Ind slot dominates both branches (stay: 23.2-46.2, plus SW->Ind 20.3-38.6 can kill 77% Ind outright; swap: 29.4-50.9 on Archaludon entry, 2x, vs IH's 0.5x). Dragalge SW puts Pelipper at 14-57%, setting a guaranteed T3 SW execute that I'll pair with BP. G2 T2 evidence says they Protect the swap-in rather than insta-ES, so Corv survives to keep pressure.",
              "automatic": false,
              "latencyMs": 151382,
              "reasoningTokens": 0,
              "reasoningChars": 26042
            },
            {
              "franchiseId": "franchise-6",
              "turn": 2,
              "phase": "turn",
              "action": "move 4 -2, move 1 +2",
              "selection": ["Helping Hand -> ally 2 (Pelipper)", "Hurricane -> foe 2 (Dragalge)"],
              "rationale": "Imprison is already active, so use Indeedee’s priority Helping Hand to maximize Pelipper’s rain Hurricane into Dragalge; Dragalge’s Protect is already weakened after turn 1, making this the best chance to force meaningful damage while retaining Trick Room denial.",
              "automatic": false,
              "latencyMs": 4423,
              "reasoningTokens": 154,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 3,
              "phase": "turn",
              "action": "move 1 +1, move 1",
              "selection": [
                "Body Press -> foe 1 (Indeedee-F)",
                "Sludge Wave (all adjacent, including ally Corviknight)"
              ],
              "rationale": "Double-kill turn: BP->Ind is guaranteed (23.2-46.2 vs 20%) and SW executes both Pelipper (min 43.1 vs 35, kills rain) and Ind (min 20.3 vs 20). If they Protect the read, Ind still dies to BP and Pelipper is set for a T4 re-execute against a broken Protect streak. BP also stays 2x into an Archaludon swap.",
              "automatic": false,
              "latencyMs": 70593,
              "reasoningTokens": 0,
              "reasoningChars": 14349
            },
            {
              "franchiseId": "franchise-6",
              "turn": 3,
              "phase": "turn",
              "action": "switch 3, move 4",
              "selection": ["Switch to Archaludon", "Protect"],
              "rationale": "Indeedee is at 21% and has done its Imprison job; switch it to the Steel-resistant Archaludon to preserve the position and absorb Sludge Wave, while Pelipper Protects at 36% to avoid being worn down. This retains Pelipper and brings Archaludon safely against both revealed foes.",
              "automatic": false,
              "latencyMs": 11108,
              "reasoningTokens": 729,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-1",
              "turn": 4,
              "phase": "turn",
              "action": "switch 4, move 4",
              "selection": ["Switch to Farigiraf", "Protect"],
              "rationale": "Denial turn: Archaludon acts first and their G2 script is Draco->Dragalge (kills 58% SW carrier before it fires) — Drag Protect on a fresh streak blocks it plus Hurr. Corviknight exits the rain+Arch ES zone (81.9-117.1 coin-flip OHKO) into Farigiraf, the only healthy Arch-special absorber. Concede tempo now to convert T5: Farig TR resolves -7 first, Drag fires SW before Arch/Pel in inverted order, Pelipper (and any Ind re-entry) dies, rain expires, and a rainless T6 with TR up lets Corv re-enter for the endgame.",
              "automatic": false,
              "latencyMs": 236493,
              "reasoningTokens": 0,
              "reasoningChars": 60904
            },
            {
              "franchiseId": "franchise-6",
              "turn": 4,
              "phase": "turn",
              "action": "move 3 +2, move 4",
              "selection": [
                "Draco Meteor -> foe 2 (Dragalge)",
                "Protect [success rate reduced: Protected last turn]"
              ],
              "rationale": "Draco Meteor is a guaranteed KO on Dragalge from 58%, removing the immediate rain-resistant threat. Pelipper Protects to avoid Sludge Wave and preserve a rain setter; even if Corviknight’s Body Press removes Archaludon afterward, this trades Archaludon for Dragalge while retaining Pelipper and the backline.",
              "automatic": false,
              "latencyMs": 13538,
              "reasoningTokens": 703,
              "reasoningChars": 1031
            },
            {
              "franchiseId": "franchise-1",
              "turn": 5,
              "phase": "turn",
              "action": "move 1, switch 3",
              "selection": [
                "Trick Room (all adjacent, including ally Dragalge)",
                "Switch to Hatterene"
              ],
              "rationale": "Tool data flipped the plan: their Draco was Protect-blocked, so Archaludon kept 0 SpA — Draco (93.5-136.4) kills 64% Dragalge guaranteed, and rain-ES still coin-flips Corviknight. So SW is off the table this turn; instead Dragalge exits into Hatterene as a sac-bait (their ES kills it; a Draco into Hatt is Fairy-immune and wasted), while Farigiraf sets TR for a rainless, inverted T6 where fresh Corviknight BPs Archaludon to 1-23% and kills it T7 before it ever acts under TR. Pelipper (35%) and Indeedee (20%) both fall to Drag-first SW once Arch is gone.",
              "automatic": false,
              "latencyMs": 410938,
              "reasoningTokens": 0,
              "reasoningChars": 88616
            },
            {
              "franchiseId": "franchise-6",
              "turn": 5,
              "phase": "turn",
              "action": "move 3 +2, move 1 +2",
              "selection": ["Draco Meteor -> foe 2 (Dragalge)", "Hurricane -> foe 2 (Dragalge)"],
              "rationale": "Dragalge has now spent Protect twice and remains the key threat; double-target it with Draco Meteor plus rain Hurricane to secure its removal before it can attack again. This also pressures through the weakened consecutive-Protect odds, accepting that Farigiraf may establish Trick Room afterward.",
              "automatic": false,
              "latencyMs": 6705,
              "reasoningTokens": 390,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-1",
              "turn": 6,
              "phase": "turn",
              "action": "switch 4, move 3 +1",
              "selection": ["Switch to Corviknight", "Psychic -> foe 1 (Archaludon)"],
              "rationale": "The sim shows Archaludon self-dropped to -2 SpA even on the blocked/immune Dracos — its burst is halved, so Corviknight can safely enter now that rain is gone. Farigiraf benches itself (the only body Draco still threatens hard), Corv comes in fresh as the BP finisher, and Hatterene — guaranteed first under TR — chips Archaludon into double-tap kill range for T7, where BP + second Psychic kill it before it acts. Pelipper's Psychic execute (50.3-98.5 vs 35%) waits behind its decaying Protect chain.",
              "automatic": false,
              "latencyMs": 182385,
              "reasoningTokens": 0,
              "reasoningChars": 45298
            },
            {
              "franchiseId": "franchise-1",
              "turn": 6,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Dragalge"],
              "rationale": "Replacement prompt: Dragalge enters over Farigiraf because T7 is a free turn for it — Archaludon (23%) is guaranteed dead to Corv's Body Press (min 29.4) before Arch ever moves under TR, removing Drag's only killer. That lets Drag SW-execute Pelipper immediately (67% vs 33% Protect chain). Farigiraf stays banked as the sole Trick Room re-setter for the post-T9 G-Mega war, where Drag's SW (52.6-95.1) plus Corv's Iron Head kill 68-HP G-Mega in one focused round.",
              "automatic": false,
              "latencyMs": 44932,
              "reasoningTokens": 0,
              "reasoningChars": 10761
            },
            {
              "franchiseId": "franchise-6",
              "turn": 6,
              "phase": "turn",
              "action": "move 2 +2, move 4",
              "selection": ["Flash Cannon -> foe 2 (Hatterene)", "Protect"],
              "rationale": "Under Trick Room, Hatterene acts first and is the immediate threat to the fragile Pelipper. Archaludon’s Flash Cannon is a guaranteed KO from Hatterene’s 51%, while Pelipper Protects to survive Hatterene’s priority-under-TR attack and preserve the remaining rain utility.",
              "automatic": false,
              "latencyMs": 9094,
              "reasoningTokens": 327,
              "reasoningChars": 841
            },
            {
              "franchiseId": "franchise-1",
              "turn": 7,
              "phase": "turn",
              "action": "move 1 +1, move 1",
              "selection": [
                "Body Press -> foe 1 (Archaludon)",
                "Sludge Wave (all adjacent, including ally Corviknight)"
              ],
              "rationale": "Guaranteed Archaludon kill: BP min 29.4 covers its 23%, and under TR Corv moves before Arch's slot resolves. Dragalge's SW hits Pelipper for a 67% execute while Corv is Steel-immune to the self-spread. If they retreat Arch for G-Mega, T8's IH+SW (100.7 min) still one-rounds fresh G-Mega before it acts.",
              "automatic": false,
              "latencyMs": 14118,
              "reasoningTokens": 0,
              "reasoningChars": 2697
            },
            {
              "franchiseId": "franchise-6",
              "turn": 7,
              "phase": "turn",
              "action": "move 3 +2, move 1 +2",
              "selection": ["Draco Meteor -> foe 2 (Dragalge)", "Hurricane -> foe 2 (Dragalge)"],
              "rationale": "Dragalge remains at 64% and is the only active target vulnerable to Archaludon’s guaranteed super-effective Draco Meteor; pair it with Hurricane to maximize removal before its Sludge Wave. Archaludon may be lost to Corviknight under Trick Room, but eliminating Dragalge leaves the healthier Gardevoir/Indeedee endgame against Corviknight and Farigiraf.",
              "automatic": false,
              "latencyMs": 8440,
              "reasoningTokens": 382,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-6",
              "turn": 7,
              "phase": "forced_switch",
              "action": "switch 4, switch 3",
              "selection": ["Switch to Gardevoir", "Switch to Indeedee-F"],
              "rationale": "Bring the healthy Gardevoir alongside the remaining Indeedee-F. Gardevoir is the only meaningful endgame attacker into Corviknight/Dragalge, while Indeedee’s entry restores Psychic Terrain and preserves the possibility of reversing Trick Room or using redirection next turn.",
              "automatic": false,
              "latencyMs": 5286,
              "reasoningTokens": 230,
              "reasoningChars": 494
            },
            {
              "franchiseId": "franchise-1",
              "turn": 8,
              "phase": "turn",
              "action": "move 2 +1, move 1",
              "selection": [
                "Iron Head -> foe 1 (Gardevoir)",
                "Sludge Wave (all adjacent, including ally Corviknight)"
              ],
              "rationale": "Close-out sequencing: Drag's SW (unredirectable spread) fires first under TR, killing 20% Indeedee outright and dropping Gardevoir to ≤47.4%; Corv's Iron Head (min 48.1) then kills G before its action — and a dead Indeedee means FollowMe can never redirect the IH. All four foes die by T8-T9 with only G's Protect as a one-turn delay.",
              "automatic": false,
              "latencyMs": 145499,
              "reasoningTokens": 0,
              "reasoningChars": 23626
            },
            {
              "franchiseId": "franchise-6",
              "turn": 8,
              "phase": "turn",
              "action": "move 4 mega, move 3",
              "selection": [
                "Protect + Mega Evolve",
                "Trick Room (all adjacent, including ally Gardevoir)"
              ],
              "rationale": "Mega Evolve and Protect Gardevoir through the remaining Trick Room turn, while Indeedee uses Trick Room to reverse the field for next turn. This preserves the full-health win condition from Dragalge’s super-effective Sludge Wave and enables Gardevoir to attack first afterward.",
              "automatic": false,
              "latencyMs": 4835,
              "reasoningTokens": 199,
              "reasoningChars": 531
            },
            {
              "franchiseId": "franchise-1",
              "turn": 9,
              "phase": "turn",
              "action": "move 2 +1, move 1",
              "selection": [
                "Iron Head -> foe 1 (Gardevoir-Mega)",
                "Sludge Wave (all adjacent, including ally Corviknight)"
              ],
              "rationale": "Double-tap kill on a 33% Protect chain: SW (unredirectable, self-free on Steel Corv) drops G-Mega to ≤47.4%, Iron Head (min 48.1) finishes before G's 120-152 Speed ever comes up under TR. If G Protects, Corv is still at 100% with Roost discipline for the T10 fight. This closes the series at 2-1 if it lands.",
              "automatic": false,
              "latencyMs": 81228,
              "reasoningTokens": 0,
              "reasoningChars": 3353
            },
            {
              "franchiseId": "franchise-6",
              "turn": 9,
              "phase": "turn",
              "action": "move 2 +2, pass",
              "selection": ["Expanding Force -> foe 2 (Dragalge)", "Pass"],
              "rationale": "With Indeedee gone, use Mega Gardevoir’s Psychic Terrain-boosted Expanding Force into Dragalge, the super-effective target and main source of lethal Sludge Wave pressure. This is the best immediate route to a one-Pokémon endgame versus Corviknight.",
              "automatic": false,
              "latencyMs": 4158,
              "reasoningTokens": 147,
              "reasoningChars": 0
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-1",
              "result": "won",
              "summary": "SERIES WON 2-1 (G1 L, G2 W, G3 W). G3 decider: won T9 with 0 decision errors; my only loss was Hatterene. Every between-game adjustment from G2's review paid off. (1) The Corv+Drag lead neutralized their 4th consecutive P+Ind lead — T1 Protect ate the Hurricane and BP/IH/SW chipped all three leads into execute range. (2) I exploited their dominant habit — Protecting lethal reads — by pairing kill attempts and re-executing next turn against decaying Protect streaks: Pelipper's T4 Protect failed on schedule and T7 it died before its action resolved. (3) The pivotal denial sequence: their T3 sac-swap to Archaludon + T4 Draco threat triggered T4 Drag fresh-streak Protect (blocking the exact Draco→Drag kill script that lost Drag in G2) and the Corv rain-exit law, then T5 Farig TR'd as rain expired. (4) The damage tool revealed Archaludon at -2 SpA — this sim applies Draco's self-drop even on blocked/immune Dracos — which re-valued Arch as defanged and freed Corviknight to play the endgame at 100% HP. T6 Hatt's Psychic chip cost it to a high Flash roll despite the -2 SpA read (only loss, accepted sac-bait variance). T7-T9 closed it: SW crit-killed Pelipper while BP killed Archaludon the same turn; T8 SW (unredirectable spread) killed Indeedee through the FollowMe threat and exposed G-Mega; T9 SW+Iron Head killed G-Mega before it EVER attacked all game (1 entry-Protect, 0 offensive actions). End state: Corv untouched at 100%, Drag 76%, Farig never damaged. G1 was lost to my Corv tank misread (Mystical Fire 2x band 30-60% at 0-stage, read as survivable); G2 fixed it with the TR cycle; G3 ran the same rain/TR script with the Draco-drop mechanic discovery on top. Core win engine: a fully telegraphed draft exploited with tempo denial, Protect-streak math and TR inversion; one SW crit helped but wasn't load-bearing — Pel was SW-executable T8 regardless.",
              "adjustment": "Vs this opponent/archetype in a future series: keep the G3 script (repeatable, 0 errors) with three tweaks: (1) never field Hatterene vs a live Archaludon below ~65% HP even at -2 SpA — Flash variance killed my only G3 loss and its Psychic chip isn't worth the risk; use Corv entry or Farig Protect instead; (2) manage the TR re-set explicitly — position Farig (or keep Hatt alive) to re-set the turn after expiry; G3 ended before the clock mattered, but longer games need a T10+ plan; (3) G-Mega's entry-turn Protect is a habit, not variance — bank the focused double-tap (SW+IH, 100.7 min vs 68 HP) for the turn AFTER entry and it always lands. Bank the sim mechanic league-wide: Draco self-drops even when blocked/immune, so any opposing Archaludon defangs itself after its first Draco regardless of my answers — absorbing one Draco (Protect or Fairy-immune bait) buys a -2 SpA nuke and frees my Steel walls. Draft note: Mence+Clawitzer were correctly benched all series vs rain+TR spam — don't force them into this archetype; save them for weeks where the opponent lacks a Pixilate spread or the roster needs a nuke."
            },
            {
              "franchiseId": "franchise-6",
              "result": "lost",
              "summary": "Lost game 3 and the series 1-2 primarily because I abandoned the active Imprison plan on turn 3, switching Indeedee out for Archaludon at 21%. Farigiraf then entered and established Trick Room, recreating the opponent’s proven winning structure. Once Trick Room was active, Archaludon was exposed to Corviknight Body Press, Pelipper was eventually lost to Sludge Wave, and Mega Gardevoir could not survive Dragalge plus Iron Head. The between-game adjustment helped early—Imprison denied Trick Room and Archaludon pressured Dragalge—but switching Indeedee backfired and gave up the central win condition.",
              "adjustment": "Against this opponent, keep Indeedee active with Imprison even at low HP until both Trick Room users are removed; do not prioritize preserving it over denial. After Trick Room begins, Protect Archaludon from Body Press rather than accepting a trade, and avoid exposing Gardevoir to Corviknight Iron Head. Track Dragalge’s repeated Protect and switch patterns instead of committing Draco Meteor into a likely protected or newly switched slot. Consider bringing Qwilfish or Basculegion over the least useful slot if they provide a safer post-Trick Room endgame."
            }
          ]
        }
      ]
    },
    "95feb7024a1d": {
      "seriesId": "95feb7024a1d",
      "franchises": ["franchise-2", "franchise-5"],
      "games": [
        {
          "number": 1,
          "winnerId": "franchise-5",
          "turns": 11,
          "brought": [
            ["rillaboom", "clefable", "dragonite-mega", "skeledirge"],
            ["metagross-mega", "primarina", "talonflame", "arcanine"]
          ],
          "megaEvolved": ["dragonite-mega", "metagross-mega"],
          "faints": [
            { "skeledirge": 1, "clefable": 1, "rillaboom": 1, "dragonite-mega": 1 },
            { "metagross-mega": 1, "talonflame": 1 }
          ],
          "raw": "|t:|1789184508\n|gametype|doubles\n|player|p1|p1-opencode:grok-4.6||\n|player|p2|p2-opencode-go:deepseek-v4.1-flash||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Rillaboom, L50, M|\n|poke|p1|Sneasler, L50, F|\n|poke|p1|Clefable, L50, M|\n|poke|p1|Dragonite, L50, M|\n|poke|p1|Skeledirge, L50, M|\n|poke|p1|Greninja, L50, F|\n|poke|p2|Metagross, L50|\n|poke|p2|Mamoswine, L50, M|\n|poke|p2|Primarina, L50, F|\n|poke|p2|Talonflame, L50, F|\n|poke|p2|Arcanine, L50, M|\n|poke|p2|Rotom-Frost, L50|\n|teampreview|4\n|showteam|p1|Rillaboom||SitrusBerry|GrassySurge|FakeOut,WoodHammer,GrassyGlide,Protect|Adamant||M|||50|]Sneasler||FocusSash|Unburden|FakeOut,CloseCombat,DireClaw,Protect|Jolly||F|||50|]Clefable||MentalHerb|MagicGuard|FollowMe,Moonblast,HelpingHand,Protect|Bold||M|||50|]Dragonite||Dragoninite|Multiscale|ExtremeSpeed,FireBlast,Hurricane,Protect|Modest||M|||50|]Skeledirge||Leftovers|Unaware|TorchSong,ShadowBall,SlackOff,Protect|Modest||M|||50|]Greninja||LifeOrb|Protean|HydroPump,DarkPulse,IceBeam,Protect|Timid||F|||50|\n|showteam|p2|Metagross||Metagrossite|ClearBody|MeteorMash,ZenHeadbutt,IcePunch,Protect|Adamant|||||50|]Mamoswine||LifeOrb|ThickFat|IceShard,IcicleSpear,Earthquake,Protect|Adamant||M|||50|]Primarina||Leftovers|Torrent|Moonblast,IceBeam,HydroPump,Protect|Modest||F|||50|]Talonflame||SharpBeak|GaleWings|BraveBird,FlareBlitz,Uturn,Protect|Jolly||F|||50|]Arcanine||SitrusBerry|Intimidate|FlareBlitz,ExtremeSpeed,WillOWisp,Protect|Adamant||M|||50|]Rotom-Frost||ExpertBelt|Levitate|Blizzard,Thunderbolt,VoltSwitch,Protect|Modest|||||50|\n|\n|t:|1789184765\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Rillaboom|Rillaboom, L50, M|195/195\n|switch|p1b: Clefable|Clefable, L50, M|202/202\n|switch|p2a: Metagross|Metagross, L50|187/187\n|switch|p2b: Primarina|Primarina, L50, F|187/187\n|-fieldstart|move: Grassy Terrain|[from] ability: Grassy Surge|[of] p1a: Rillaboom\n|turn|1\n|\n|t:|1789184934\n|detailschange|p2a: Metagross|Metagross-Mega, L50\n|-mega|p2a: Metagross|Metagross|Metagrossite\n|move|p2b: Primarina|Protect|p2b: Primarina\n|-singleturn|p2b: Primarina|Protect\n|move|p1a: Rillaboom|Fake Out|p2a: Metagross\n|-resisted|p2a: Metagross|1\n|-damage|p2a: Metagross|176/187\n|move|p1b: Clefable|Follow Me|p1b: Clefable\n|-singleturn|p1b: Clefable|move: Follow Me\n|cant|p2a: Metagross|flinch\n|\n|-heal|p2a: Metagross|187/187|[from] Grassy Terrain\n|upkeep\n|turn|2\n|\n|t:|1789185180\n|switch|p2b: Talonflame|Talonflame, L50, F|155/155\n|move|p1b: Clefable|Protect|p1b: Clefable\n|-singleturn|p1b: Clefable|Protect\n|move|p2a: Metagross|Meteor Mash|p1b: Clefable\n|-activate|p1b: Clefable|move: Protect\n|move|p1a: Rillaboom|Wood Hammer|p2b: Talonflame\n|-resisted|p2b: Talonflame|2\n|-damage|p2b: Talonflame|106/155\n|-damage|p1a: Rillaboom|179/195|[from] Recoil\n|\n|-heal|p1a: Rillaboom|191/195|[from] Grassy Terrain\n|upkeep\n|turn|3\n|\n|t:|1789185292\n|switch|p1b: Skeledirge|Skeledirge, L50, M|211/211\n|move|p1a: Rillaboom|Protect|p1a: Rillaboom\n|-singleturn|p1a: Rillaboom|Protect\n|move|p2b: Talonflame|Brave Bird|p1a: Rillaboom\n|-activate|p1a: Rillaboom|move: Protect\n|move|p2a: Metagross|Meteor Mash|p1b: Skeledirge\n|-resisted|p1b: Skeledirge|1\n|-damage|p1b: Skeledirge|145/211\n|\n|-heal|p1a: Rillaboom|195/195|[from] Grassy Terrain\n|-heal|p1b: Skeledirge|158/211|[from] Grassy Terrain\n|-heal|p1b: Skeledirge|171/211|[from] item: Leftovers\n|upkeep\n|turn|4\n|\n|t:|1789185468\n|switch|p1a: Clefable|Clefable, L50, M|202/202\n|move|p2b: Talonflame|Brave Bird|p1b: Skeledirge\n|-damage|p1b: Skeledirge|77/211\n|-damage|p2b: Talonflame|75/155|[from] Recoil\n|move|p2a: Metagross|Zen Headbutt|p1b: Skeledirge\n|-damage|p1b: Skeledirge|0 fnt\n|faint|p1b: Skeledirge\n|\n|upkeep\n|\n|t:|1789185527\n|switch|p1b: Dragonite|Dragonite, L50, M|168/168\n|turn|5\n|\n|t:|1789185590\n|detailschange|p1b: Dragonite|Dragonite-Mega, L50, M\n|-mega|p1b: Dragonite|Dragonite|Dragoninite\n|move|p1a: Clefable|Follow Me|p1a: Clefable\n|-singleturn|p1a: Clefable|move: Follow Me\n|move|p2b: Talonflame|Brave Bird|p1a: Clefable\n|-crit|p1a: Clefable\n|-damage|p1a: Clefable|67/202\n|-damage|p2b: Talonflame|30/155|[from] Recoil\n|move|p1b: Dragonite|Fire Blast|p2a: Metagross\n|-supereffective|p2a: Metagross|1\n|-damage|p2a: Metagross|31/187\n|move|p2a: Metagross|Meteor Mash|p1a: Clefable\n|-supereffective|p1a: Clefable|1\n|-damage|p1a: Clefable|0 fnt\n|-boost|p2a: Metagross|atk|1\n|faint|p1a: Clefable\n|\n|-heal|p2a: Metagross|42/187|[from] Grassy Terrain\n|-fieldend|move: Grassy Terrain\n|upkeep\n|\n|t:|1789185590\n|switch|p1a: Rillaboom|Rillaboom, L50, M|195/195\n|-fieldstart|move: Grassy Terrain|[from] ability: Grassy Surge|[of] p1a: Rillaboom\n|turn|6\n|\n|t:|1789185764\n|switch|p2b: Arcanine|Arcanine, L50, M|197/197\n|-ability|p2b: Arcanine|Intimidate|boost\n|-unboost|p1a: Rillaboom|atk|1\n|-unboost|p1b: Dragonite|atk|1\n|move|p1a: Rillaboom|Fake Out|p2a: Metagross\n|-resisted|p2a: Metagross|1\n|-damage|p2a: Metagross|35/187\n|move|p1b: Dragonite|Extreme Speed|p2b: Arcanine\n|-damage|p2b: Arcanine|167/197\n|cant|p2a: Metagross|flinch\n|\n|-heal|p2a: Metagross|46/187|[from] Grassy Terrain\n|-heal|p2b: Arcanine|179/197|[from] Grassy Terrain\n|upkeep\n|turn|7\n|\n|t:|1789185880\n|move|p1a: Rillaboom|Protect|p1a: Rillaboom\n|-singleturn|p1a: Rillaboom|Protect\n|move|p1b: Dragonite|Fire Blast|p2a: Metagross\n|-supereffective|p2a: Metagross|1\n|-damage|p2a: Metagross|0 fnt\n|faint|p2a: Metagross\n|move|p2b: Arcanine|Flare Blitz|p1a: Rillaboom\n|-activate|p1a: Rillaboom|move: Protect\n|\n|-heal|p2b: Arcanine|191/197|[from] Grassy Terrain\n|upkeep\n|\n|t:|1789185906\n|switch|p2a: Talonflame|Talonflame, L50, F|30/155\n|turn|8\n|\n|t:|1789186013\n|move|p1a: Rillaboom|Protect||[still]\n|-fail|p1a: Rillaboom\n|move|p2a: Talonflame|Brave Bird|p1b: Dragonite\n|-damage|p1b: Dragonite|127/168\n|-damage|p2a: Talonflame|16/155|[from] Recoil\n|move|p1b: Dragonite|Fire Blast|p2a: Talonflame\n|-resisted|p2a: Talonflame|1\n|-damage|p2a: Talonflame|0 fnt\n|faint|p2a: Talonflame\n|move|p2b: Arcanine|Flare Blitz|p1a: Rillaboom\n|-supereffective|p1a: Rillaboom|1\n|-damage|p1a: Rillaboom|0 fnt\n|faint|p1a: Rillaboom\n|-damage|p2b: Arcanine|127/197|[from] Recoil\n|\n|-heal|p2b: Arcanine|139/197|[from] Grassy Terrain\n|upkeep\n|\n|t:|1789186013\n|switch|p2a: Primarina|Primarina, L50, F|187/187\n|turn|9\n|\n|t:|1789186059\n|move|p1b: Dragonite|Protect|p1b: Dragonite\n|-singleturn|p1b: Dragonite|Protect\n|move|p2b: Arcanine|Extreme Speed|p1b: Dragonite\n|-activate|p1b: Dragonite|move: Protect\n|move|p2a: Primarina|Ice Beam|p1b: Dragonite\n|-activate|p1b: Dragonite|move: Protect\n|\n|-heal|p2b: Arcanine|151/197|[from] Grassy Terrain\n|upkeep\n|turn|10\n|\n|t:|1789186081\n|move|p1b: Dragonite|Protect|p1b: Dragonite\n|-singleturn|p1b: Dragonite|Protect\n|move|p2b: Arcanine|Extreme Speed|p1b: Dragonite\n|-activate|p1b: Dragonite|move: Protect\n|move|p2a: Primarina|Ice Beam|p1b: Dragonite\n|-activate|p1b: Dragonite|move: Protect\n|\n|-heal|p2b: Arcanine|163/197|[from] Grassy Terrain\n|-fieldend|move: Grassy Terrain\n|upkeep\n|turn|11\n|\n|t:|1789186117\n|move|p1b: Dragonite|Protect||[still]\n|-fail|p1b: Dragonite\n|move|p2b: Arcanine|Extreme Speed|p1b: Dragonite\n|-damage|p1b: Dragonite|81/168\n|move|p2a: Primarina|Ice Beam|p1b: Dragonite\n|-supereffective|p1b: Dragonite|2\n|-damage|p1b: Dragonite|0 fnt\n|faint|p1b: Dragonite\n|\n|win|p2-opencode-go:deepseek-v4.1-flash\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rillaboom"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Sneasler",
              "actor": { "side": 0, "slot": 0 },
              "species": "Sneasler"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Clefable",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clefable"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Dragonite",
              "actor": { "side": 0, "slot": 0 },
              "species": "Dragonite"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Skeledirge",
              "actor": { "side": 0, "slot": 0 },
              "species": "Skeledirge"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Greninja",
              "actor": { "side": 0, "slot": 0 },
              "species": "Greninja"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Metagross",
              "actor": { "side": 1, "slot": 0 },
              "species": "Metagross"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Mamoswine",
              "actor": { "side": 1, "slot": 0 },
              "species": "Mamoswine"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Primarina",
              "actor": { "side": 1, "slot": 0 },
              "species": "Primarina"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Talonflame",
              "actor": { "side": 1, "slot": 0 },
              "species": "Talonflame"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Arcanine",
              "actor": { "side": 1, "slot": 0 },
              "species": "Arcanine"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Rotom-Frost",
              "actor": { "side": 1, "slot": 0 },
              "species": "Rotom-Frost"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rillaboom",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Clefable",
              "actor": { "side": 0, "slot": 1 },
              "species": "Clefable",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Metagross",
              "actor": { "side": 1, "slot": 0 },
              "species": "Metagross",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Primarina",
              "actor": { "side": 1, "slot": 1 },
              "species": "Primarina",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "field", "text": "Grassy Terrain began" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Metagross became Metagross-Mega",
              "actor": { "side": 1, "slot": 0 },
              "species": "Metagross-Mega"
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Primarina used Protect → Primarina",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Rillaboom used Fake Out → Metagross",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 1, "kind": "detail", "text": "Not very effective on Metagross" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Metagross → 94%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 94,
              "status": null
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Clefable used Follow Me → Clefable",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 1, "kind": "detail", "text": "Metagross can't move (flinch)" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Metagross healed → 100% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 100,
              "status": null
            },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "switch",
              "text": "P2 sent out Talonflame",
              "actor": { "side": 1, "slot": 1 },
              "species": "Talonflame",
              "hp": 100,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Clefable used Protect → Clefable",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Metagross used Meteor Mash → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Rillaboom used Wood Hammer → Talonflame",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 2, "kind": "detail", "text": "Not very effective on Talonflame" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Talonflame → 68%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 68,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Rillaboom → 92% (Recoil)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 92,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Rillaboom healed → 98% (Grassy Terrain)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 98,
              "status": null
            },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Skeledirge",
              "actor": { "side": 0, "slot": 1 },
              "species": "Skeledirge",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Rillaboom used Protect → Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Rillaboom",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Metagross used Meteor Mash → Skeledirge",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 3, "kind": "detail", "text": "Not very effective on Skeledirge" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Skeledirge → 69%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 69,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Rillaboom healed → 100% (Grassy Terrain)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Skeledirge healed → 75% (Grassy Terrain)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 75,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Skeledirge healed → 81% (Leftovers)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 81,
              "status": null
            },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P1 sent out Clefable",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clefable",
              "hp": 100,
              "status": null
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Skeledirge",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Skeledirge → 36%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 36,
              "status": null
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Talonflame → 48% (Recoil)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 48,
              "status": null
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Metagross used Zen Headbutt → Skeledirge",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Skeledirge → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 4,
              "kind": "faint",
              "text": "Skeledirge fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P1 sent out Dragonite",
              "actor": { "side": 0, "slot": 1 },
              "species": "Dragonite",
              "hp": 100,
              "status": null
            },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Dragonite became Dragonite-Mega",
              "actor": { "side": 0, "slot": 1 },
              "species": "Dragonite-Mega"
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Clefable used Follow Me → Clefable",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Clefable",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Critical hit on Clefable" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Clefable → 33%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 33,
              "status": null
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Talonflame → 19% (Recoil)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 19,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Dragonite used Fire Blast → Metagross",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Super effective on Metagross" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Metagross → 17%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 17,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Metagross used Meteor Mash → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Super effective on Clefable" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Clefable → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            { "turn": 5, "kind": "detail", "text": "Metagross atk +1" },
            {
              "turn": 5,
              "kind": "faint",
              "text": "Clefable fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Metagross healed → 22% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 22,
              "status": null
            },
            { "turn": 5, "kind": "field", "text": "Grassy Terrain ended" },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rillaboom",
              "hp": 100,
              "status": null
            },
            { "turn": 5, "kind": "field", "text": "Grassy Terrain began" },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "switch",
              "text": "P2 sent out Arcanine",
              "actor": { "side": 1, "slot": 1 },
              "species": "Arcanine",
              "hp": 100,
              "status": null
            },
            { "turn": 6, "kind": "detail", "text": "Arcanine ability: Intimidate" },
            { "turn": 6, "kind": "detail", "text": "Rillaboom atk -1" },
            { "turn": 6, "kind": "detail", "text": "Dragonite atk -1" },
            {
              "turn": 6,
              "kind": "move",
              "text": "Rillaboom used Fake Out → Metagross",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 6, "kind": "detail", "text": "Not very effective on Metagross" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Metagross → 19%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 19,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Dragonite used Extreme Speed → Arcanine",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Arcanine → 85%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 85,
              "status": null
            },
            { "turn": 6, "kind": "detail", "text": "Metagross can't move (flinch)" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Metagross healed → 25% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 25,
              "status": null
            },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Arcanine healed → 91% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 91,
              "status": null
            },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "move",
              "text": "Rillaboom used Protect → Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Dragonite used Fire Blast → Metagross",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 7, "kind": "detail", "text": "Super effective on Metagross" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Metagross → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Metagross fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Arcanine used Flare Blitz → Rillaboom",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Arcanine healed → 97% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 97,
              "status": null
            },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P2 sent out Talonflame",
              "actor": { "side": 1, "slot": 0 },
              "species": "Talonflame",
              "hp": 19,
              "status": null
            },
            { "turn": 8, "kind": "turn", "text": "Turn 8" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Rillaboom used Protect",
              "actor": { "side": 0, "slot": 0 }
            },
            { "turn": 8, "kind": "detail", "text": "Rillaboom's move failed" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Dragonite → 76%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 76,
              "status": null
            },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Talonflame → 10% (Recoil)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 10,
              "status": null
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Dragonite used Fire Blast → Talonflame",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 8, "kind": "detail", "text": "Not very effective on Talonflame" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Talonflame → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 8,
              "kind": "faint",
              "text": "Talonflame fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Arcanine used Flare Blitz → Rillaboom",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 8, "kind": "detail", "text": "Super effective on Rillaboom" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Rillaboom → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 8,
              "kind": "faint",
              "text": "Rillaboom fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Arcanine → 64% (Recoil)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 64,
              "status": null
            },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Arcanine healed → 71% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 71,
              "status": null
            },
            {
              "turn": 8,
              "kind": "switch",
              "text": "P2 sent out Primarina",
              "actor": { "side": 1, "slot": 0 },
              "species": "Primarina",
              "hp": 100,
              "status": null
            },
            { "turn": 9, "kind": "turn", "text": "Turn 9" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Dragonite used Protect → Dragonite",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Arcanine used Extreme Speed → Dragonite",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Primarina used Ice Beam → Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Arcanine healed → 77% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 77,
              "status": null
            },
            { "turn": 10, "kind": "turn", "text": "Turn 10" },
            {
              "turn": 10,
              "kind": "move",
              "text": "Dragonite used Protect → Dragonite",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 10,
              "kind": "move",
              "text": "Arcanine used Extreme Speed → Dragonite",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 10,
              "kind": "move",
              "text": "Primarina used Ice Beam → Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Arcanine healed → 83% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 83,
              "status": null
            },
            { "turn": 10, "kind": "field", "text": "Grassy Terrain ended" },
            { "turn": 11, "kind": "turn", "text": "Turn 11" },
            {
              "turn": 11,
              "kind": "move",
              "text": "Dragonite used Protect",
              "actor": { "side": 0, "slot": 1 }
            },
            { "turn": 11, "kind": "detail", "text": "Dragonite's move failed" },
            {
              "turn": 11,
              "kind": "move",
              "text": "Arcanine used Extreme Speed → Dragonite",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Dragonite → 48%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 48,
              "status": null
            },
            {
              "turn": 11,
              "kind": "move",
              "text": "Primarina used Ice Beam → Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 11, "kind": "detail", "text": "Super effective on Dragonite" },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Dragonite → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 11,
              "kind": "faint",
              "text": "Dragonite fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 11,
              "kind": "win",
              "text": "opencode-go:deepseek-v4.1-flash (P2) won the game"
            }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-2",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1345",
              "selection": ["Pick Rillaboom", "Pick Clefable", "Pick Dragonite", "Pick Skeledirge"],
              "rationale": "G1 bring Rilla+Clef+DN+Dirge vs Metagross/Mamo core. Lead Rilla/Clef for T1 Fake Out (Talon to break Gale Wings, else Metagross/Primarina) plus Follow Me if Ice Shard/Ice Punch/Mash aims at a frail target; terrain cuts Mamo EQ. DN and Dirge back: mega DN only with Follow Me vs Ice or when no Ice is in; Dirge Unaware walls Mash, Brave Bird, and Intimidate and Torch Songs Steels. Leave Greninja/Sneasler; Dirge already walls both Fires and Metagross. Thick Fat means Fire is not the Mamo KO—Wood Hammer is. Watch Rotom Blizzard (spread, Follow Me does not save DN).",
              "automatic": false,
              "latencyMs": 255818,
              "reasoningTokens": 13609,
              "reasoningChars": 8841
            },
            {
              "franchiseId": "franchise-5",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1345",
              "selection": ["Pick Metagross", "Pick Primarina", "Pick Talonflame", "Pick Arcanine"],
              "rationale": "Bring Metagross/Primarina/Talonflame/Arcanine; lead Metagross+Primarina, back Talonflame+Arcanine. Primarina is the Dragonite/Greninja/Skeledirge wall (immune Dragon; resists Fire/Water/Dark/Ice) with 4x Ice Beam; Metagross is the Sneasler/Clefable answer (immune Poison, resists Fighting, 4x Zen Headbutt, Meteor Mash 2x Fairy) and a second 4x Ice move (Ice Punch) to break Dragonite's Multiscale. Talonflame (195) outspeeds every foe including Greninja (156-191) and Sneasler (154-189) and KOs Rillaboom (Flare Blitz 2x) or Greninja (Brave Bird). Arcanine brings Intimidate to blunt Sneasler/Rillaboom, Will-O-Wisp, and ExtremeSpeed priority to finish Focus-Sash Sneasler. Both leads are immune/resistant to the opponent's key STABs so the lead survives Fake Out turns.",
              "automatic": false,
              "latencyMs": 175534,
              "reasoningTokens": 24689,
              "reasoningChars": 84878
            },
            {
              "franchiseId": "franchise-2",
              "turn": 1,
              "phase": "turn",
              "action": "move 1 +1, move 1",
              "selection": ["Fake Out -> foe 1 (Metagross)", "Follow Me"],
              "rationale": "Fake Out Mega Gross so Tough Claws Mash (87–123% into Clef) never lands; Follow Me then takes Primarina’s only action. Primarina cannot KO Clef (Hydro 45–64, Moonblast 38–55, Ice Beam 24–35) and Ice Beam on Rilla (63–89) is the line we dodge so Rilla stays full for T2 Wood Hammer. Do not WH/Glide Primarina T1: Mash still moves first and KO-ranges Clef via Follow Me, and open sheets make Primarina Protect likely. No Dirge switch (Hydro 97–140% KO range). No DN switch (Ice Punch+Ice Beam breaks Multiscale).",
              "automatic": false,
              "latencyMs": 169842,
              "reasoningTokens": 7825,
              "reasoningChars": 1986
            },
            {
              "franchiseId": "franchise-5",
              "turn": 1,
              "phase": "turn",
              "action": "move 1 +2 mega, move 4",
              "selection": ["Meteor Mash -> foe 2 (Clefable) + Mega Evolve", "Protect"],
              "rationale": "Opponent led a support pair (Rillaboom + Clefable), so Clefable will likely Follow Me (+2) and Rillaboom will Fake Out or Wood Hammer Primarina. Answer: Mega Evolve Metagross for Tough Claws and Meteor Mash the redirector itself (Steel 2x vs Fairy, Tough Claws+STAB ~4x effective on Clefable's bulk = guaranteed KO), which removes their Follow Me shield for Dragonite and cannot be redirected since Clefable IS the target. Primarina Protects: Protect is +4 priority, so it beats Rillaboom's Fake Out (+3) and blanks a Helping Hand-boosted Wood Hammer (2x) that would otherwise OHKO it. Worst case (Fake Out on Metagross) I lose only a low-damage 0.5x hit and keep full HP on both.",
              "automatic": false,
              "latencyMs": 27883,
              "reasoningTokens": 4184,
              "reasoningChars": 14293
            },
            {
              "franchiseId": "franchise-2",
              "turn": 2,
              "phase": "turn",
              "action": "move 2 +2, move 4",
              "selection": ["Wood Hammer -> foe 2 (Primarina)", "Protect"],
              "rationale": "WH Primarina is a guaranteed OHKO if it stays (144–276%); Glide/HH Glide are not (67–129 / 99.5–191). Clef must Protect—Follow Me into live Mash is 87–123% KO range. This also beats T1 Follow Me read (Mash Clef into Protect) and KOs Mamo if they pivot there. Do not switch Clef to Dirge: Primarina Hydro into that slot is 97–140% and they have no reason to Hydro Clef. Accept the double-Rilla punish (Ice Punch+Ice Beam) as a Rilla-for-Primarina trade; if they pivot Talon/Arcanine, Clef lives and we learn the back. Recoil is 33% of Primarina HP lost (~25% of Rilla) so Rilla lives a single Gross hit plus WH.",
              "automatic": false,
              "latencyMs": 245868,
              "reasoningTokens": 11373,
              "reasoningChars": 3930
            },
            {
              "franchiseId": "franchise-5",
              "turn": 2,
              "phase": "turn",
              "action": "move 1 +2, switch 3",
              "selection": ["Meteor Mash -> foe 2 (Clefable)", "Switch to Talonflame"],
              "rationale": "Turn 1 was Rillaboom Fake Out on Metagross + Clefable Follow Me; Grassy Terrain heals 1/16 so all four actives are effectively back to full. Clefable will almost certainly Follow Me again (its job) or Protect to block Meteor Mash. Meteor Mash into Clefable cannot be redirected (Clefable IS the redirector) and is a clean Tough Claws+STAB 2x KO on Bold Clefable (~330 dmg vs ~177 HP), so I remove their Follow Me shield before Dragonite arrives. Primarina must NOT stay in: Rillaboom's Wood Hammer is 2x and a guaranteed OHKO on Primarina's 94 Def, and a second consecutive Protect has a heavily reduced success rate, so Protection is not reliable. Switching to Talonflame eats any Grass attack at 0.25x, gains the fastest mon on the field, and sets up a Brave Bird (2x, ~237 vs ~205 HP, beats Sitrus) KO on Rillaboom next turn.",
              "automatic": false,
              "latencyMs": 61684,
              "reasoningTokens": 10690,
              "reasoningChars": 37315
            },
            {
              "franchiseId": "franchise-2",
              "turn": 3,
              "phase": "turn",
              "action": "move 4, switch 4",
              "selection": ["Protect", "Switch to Skeledirge"],
              "rationale": "Talon 68% so Gale Wings is off; BB Rilla is still 69–106% KO range and Mash Clef is still 87–123%. Clef consecutive Protect is 1/3, Follow Me is suicide, Moonblast does not KO Talon. Protect Rilla beats the likely T2-Protect punish (BB/Ice Punch/Mash into Rilla) and U-turn-into-Protect keeps Talon stuck. Clef → Dirge punishes Mash-Clef retry (Mash 24–33 into Dirge) and lives BB (33–51). Do not double-switch DN onto Rilla slot: Ice Punch 69–98 Multiscale + BB KO-ranges DN if they double the Grass. Keep Rilla on field so WH is live vs Primarina if they pivot later. Dirge is the Gross+Talon wall; Clef stays in back for Follow Me + DN.",
              "automatic": false,
              "latencyMs": 111663,
              "reasoningTokens": 4899,
              "reasoningChars": 912
            },
            {
              "franchiseId": "franchise-5",
              "turn": 3,
              "phase": "turn",
              "action": "move 1 +2, move 1 +1",
              "selection": ["Meteor Mash -> foe 2 (Clefable)", "Brave Bird -> foe 1 (Rillaboom)"],
              "rationale": "Clefable burned its Protect last turn (next use reduced success), so its most likely move is Follow Me again. Meteor Mash into Clefable cannot be redirected (Clefable IS the redirector) and is a guaranteed 2x Tough Claws KO, so Clefable dies in every branch except the ~1/3 Protect. Brave Bird into Rillaboom is the KO move (~237 dmg > ~205 HP + Sitrus), and note Talonflame is at 68% so Gale Wings priority is OFF - but at 195 Speed it still moves before both foes except Rillaboom's Grassy Glide (+1, only ~30 dmg at 0.25x). Branch analysis: no Follow Me -> Rillaboom dies to Brave Bird and Clefable to Meteor Mash (double KO); Clefable Follow Me -> Talonflame's Brave Bird is redirected onto Clefable (~67%) and Metagross finishes it with Meteor Mash, killing the shield before Dragonite arrives; Clefable Protects -> Meteor Mash is blanked but Brave Bird lands on Rillaboom and KOs it; Clefable switched out to Dragonite -> Meteor Mash chips Dragonite through Multiscale (~17%) and Brave Bird still KOs Rillaboom, setting up an Ice Punch KO next turn. Recoil from Brave Bird is accepted: the value of removing Rillaboom (which 2x OHKOs Primarina) is high.",
              "automatic": false,
              "latencyMs": 31054,
              "reasoningTokens": 5167,
              "reasoningChars": 16862
            },
            {
              "franchiseId": "franchise-2",
              "turn": 4,
              "phase": "turn",
              "action": "switch 4, move 1 +1",
              "selection": ["Switch to Clefable", "Torch Song -> foe 1 (Metagross-Mega)"],
              "rationale": "Rilla cannot stay (BB 69–106% KO) and consecutive Protect is 1/3. Do not switch DN: it gets no move this turn, BB 21–33% breaks Multiscale, then Ice Punch/BB next turn KOs. They have split BB-slot-a / Mash-slot-b twice; Clef on slot a lives BB 30–47 and Ice Punch 24–34 and even BB+Ice Punch 54–81. Clef dies only to Mash on slot a (they have mashed slot b both attacks). Dirge stays and Torch Songs Gross 55–97 plus SpA boost (Shadow Ball same damage, no boost); another Mash/Zen from 81% does not KO Dirge. Next turn Clef can 100% Protect while +1 Torch Song finishes Gross. Keep DN in back for a Follow Me send later.",
              "automatic": false,
              "latencyMs": 175615,
              "reasoningTokens": 8396,
              "reasoningChars": 2336
            },
            {
              "franchiseId": "franchise-2",
              "turn": 4,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Dragonite"],
              "rationale": "Dirge died to BB+Zen on slot b; they doubled the Unaware wall. Send DN beside Clef (the Follow Me partner) so T5 we can Mega and Fire Blast Gross (60–106%). Rilla into slot b is weak to another BB+Ice Punch double and does not pressure Gross. Fake Out on a Rilla re-entry is tempting but delays the only remaining Gross answer. Clef Pass. Next turn: Follow Me or Protect Clef; never leave DN on Ice Punch without redirection. Talon 48% Gale Wings still off.",
              "automatic": false,
              "latencyMs": 58618,
              "reasoningTokens": 2256,
              "reasoningChars": 539
            },
            {
              "franchiseId": "franchise-5",
              "turn": 4,
              "phase": "turn",
              "action": "move 2 +2, move 1 +2",
              "selection": [
                "Zen Headbutt -> foe 2 (Skeledirge)",
                "Brave Bird -> foe 2 (Skeledirge)"
              ],
              "rationale": "Turn 3 revealed their 4th-game context: Clefable was switched out for Skeledirge and Rillaboom used Protect, so both are still alive and Clefable's Protect counter was reset by switching. Skeledirge is the single biggest threat to my win condition (Torch Song and Shadow Ball are both 2x on Mega Metagross, ~68% each, plus Slack Off/Leftovers/Unaware make it hard to remove later). Zen Headbutt (neutral, ~127) plus Talonflame's Brave Bird (~108) totals ~235 vs Skeledirge's ~162 current HP - a clean KO. Ordering is safe: Talonflame (195) acts first, Metagross (132) still outspeeds Skeledirge (86-118), so Skeledirge is removed before it can Torch Song or Slack Off. This leaves Metagross at 100%, which matters most because their unrevealed 4th mon is one of Sneasler/Dragonite/Greninja and Metagross is my answer to all three (4x Zen Headbutt on Sneasler, Ice Punch on Dragonite, resists Greninja's Water/Dark coming off a 2x weakness being avoided... Dark Pulse IS 2x but Metagross at full HP survives). The recoil cost (~36) plus at most one Grassy Glide (~30 at 0.25x) leaves Talonflame around 25-45%, an acceptable price. Also switching is fully punished by this pair: Zen Headbutt 4x KOs a switched-in Sneasler after Focus Sash, and Brave Bird KOs Greninja.",
              "automatic": false,
              "latencyMs": 65579,
              "reasoningTokens": 12164,
              "reasoningChars": 36806
            },
            {
              "franchiseId": "franchise-2",
              "turn": 5,
              "phase": "turn",
              "action": "move 1, move 2 +1 mega",
              "selection": ["Follow Me", "Fire Blast -> foe 1 (Metagross-Mega) + Mega Evolve"],
              "rationale": "They doubled slot b (Dirge) last turn; DN is now slot b so Ice Punch+BB is the KO line. Follow Me sends Ice Punch (24–34) + BB (30–47) to Clef (54–81, lives) and DN Fire Blasts with Multiscale intact. Mash Clef still KOs Clef either way; Protect Clef loses DN to the slot-b double. HH Fire Blast is 89–157 still not a guaranteed OHKO and lets Ice Punch hit DN. Hurricane Talon is a 70% acc KO on 48% but leaves Gross 100% with Ice Punch. Mega immediately, Fire Blast Gross (85% acc, 60–106%). ES does not KO Talon.",
              "automatic": false,
              "latencyMs": 62518,
              "reasoningTokens": 2682,
              "reasoningChars": 795
            },
            {
              "franchiseId": "franchise-2",
              "turn": 5,
              "phase": "forced_switch",
              "action": "switch 4, pass",
              "selection": ["Switch to Rillaboom", "Pass"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-5",
              "turn": 5,
              "phase": "turn",
              "action": "move 1 +1, move 1 +2",
              "selection": ["Meteor Mash -> foe 1 (Clefable)", "Brave Bird -> foe 2 (Dragonite)"],
              "rationale": "Their 4th is Dragonite (Sneasler/Greninja not brought); Clefable + Dragonite are active with Rillaboom benched. This turn is about trading securely rather than gambling on the double-Ice KO. Meteor Mash into Clefable is a guaranteed 2x Tough Claws KO whenever Clefable does not Protect, and crucially it still lands if the opponent's read is \"they will double Dragonite\" (Follow Me or Dragonite Protect): Follow Me is useless against a move already aimed at Clefable, so Clefable dies either way and their shield for Dragonite is gone. Brave Bird into Dragonite chips through Multiscale (~54) so Dragonite is left at ~71% with Multiscale BROKEN, which means next turn a single Metagross Ice Punch (4x, ~327 full) KOs it outright. Talonflame is faster (195) than even Mega Dragonite (max 152), and Dragonite's only fast move is ExtremeSpeed (+2) which does ~50, so the chip is safe to attempt. Choice of Brave Bird over Flare Blitz: Flying is 1x on Dragon/Flying (~54 through Multiscale) while Flare Blitz is 0.5x (~27). Losing Talonflame is affordable - Rillaboom is the only mon left that punishes it, and Primarina/Arcanine are healthy in back.",
              "automatic": false,
              "latencyMs": 62113,
              "reasoningTokens": 11486,
              "reasoningChars": 38694
            },
            {
              "franchiseId": "franchise-2",
              "turn": 6,
              "phase": "turn",
              "action": "move 1 +1, move 1 +2",
              "selection": [
                "Fake Out -> foe 1 (Metagross-Mega)",
                "Extreme Speed -> foe 2 (Talonflame)"
              ],
              "rationale": "+1 Ice Punch is 88–125% into Multiscale DN and 83–117% into Rilla—Gross must not get an attack. Fake Out Gross flinches Ice Punch (Protect Gross also means no Ice Punch). Talon outspeeds Fire Blast/Hurricane so those cannot stop BB; only ES (+2) or Fake Out can. ES Talon is 17–33% vs 19% (KO most rolls, 100% acc) before BB. Fire Blast Talon is a guaranteed KO on hit but Talon BBs first and 15% miss. Fake Out Talon + Fire Blast Gross loses DN if Gross is 153–162 Spe and Ice Punches. Fake Out Gross + ES Talon: Gross flinches, Talon likely dies, Multiscale intact. If ES low-rolls, BB DN is only 18–29% Multi. Next turn WH/Fire Blast the 22% Gross.",
              "automatic": false,
              "latencyMs": 163011,
              "reasoningTokens": 6961,
              "reasoningChars": 2674
            },
            {
              "franchiseId": "franchise-5",
              "turn": 6,
              "phase": "turn",
              "action": "move 3 +2, switch 4",
              "selection": ["Ice Punch -> foe 2 (Dragonite-Mega)", "Switch to Arcanine"],
              "rationale": "Their last two mons are Rillaboom + Dragonite (Clefable and Skeledirge are gone, and they have no bench to switch into), so every branch is Protect-or-attack. My two actives are nearly dead (Metagross 22%, Talonflame 19%) and both die to either foe's move, so I optimize positioning instead of gambling. Ice Punch is still the single highest-value click: 4x through Multiscale = 164, dropping Dragonite to ~11% with Multiscale broken, which Arcanine's ExtremeSpeed (+2, ~32) then finishes without needing Primarina. Switching Talonflame out to Arcanine gains three things even in the bad branch: Intimidate weakens Dragonite's ExtremeSpeed and Rillaboom's physical attacks by 25% (Grassy Glide on a 19% Talonflame was a guaranteed KO at 0.25x), a fresh 197 HP body enters instead of a 29 HP one, and Talonflame survives on the bench so it can still be the sacrifice body later - keeping Primarina (my Dragonite wall) safely benched until Rillaboom is dead, since Wood Hammer 2x OHKOs Primarina. If instead they were going to blank me with a double Protect, this line still makes progress (Arcanine in + Intimidate) whereas attacking with both would achieve nothing. Master plan from here: kill Rillaboom with Arcanine's Flare Blitz / Talonflame Brave Bird / Metagross Meteor Mash (+1 Atk = ~233, OHKO through Sitrus), then Arcanine ExtremeSpeed (breaks Multiscale) + Primarina Ice Beam (214) KOs Dragonite.",
              "automatic": false,
              "latencyMs": 174293,
              "reasoningTokens": 35197,
              "reasoningChars": 115039
            },
            {
              "franchiseId": "franchise-2",
              "turn": 7,
              "phase": "turn",
              "action": "move 4, move 2 +1",
              "selection": ["Protect", "Fire Blast -> foe 1 (Metagross-Mega)"],
              "rationale": "+1 Ice Punch still 88–125% into Multiscale DN and 83–117% into Rilla; Flare Blitz is 80–118% into Rilla. Only Fire Blast guaranteed-KOs 24% Gross (WH -1 Atk is 15–26 vs 24, not reliable). DN 152 vs Gross 130–162 is a speed gamble: if we outspeed, Fire Blast KOs before Ice Punch and Rilla Protect covers Blitz/ES/WoW. If they Ice Punch Rilla, Protect eats it and Fire Blast still KOs Gross. Protect DN fails to kill Gross so Ice Punch remains next turn. Hurricane Gross is 23–39 vs 24% and 70% acc. Intimidate does not affect Fire Blast. Rilla Protect is 100% (last Protect T3). 4th is Arcanine; Mamo/Rotom not brought.",
              "automatic": false,
              "latencyMs": 115651,
              "reasoningTokens": 4291,
              "reasoningChars": 1818
            },
            {
              "franchiseId": "franchise-5",
              "turn": 7,
              "phase": "turn",
              "action": "move 3 +2, move 1 +1",
              "selection": [
                "Ice Punch -> foe 2 (Dragonite-Mega)",
                "Flare Blitz -> foe 1 (Rillaboom)"
              ],
              "rationale": "Intimidate is now on both foes (-1 Atk), Arcanine is at 91%, and the board is Metagross 25% / Arcanine 91% vs Rillaboom 100% (Sitrus, fresh Protect) + Dragonite-Mega 100% (Multiscale, Protect unused). If Rillaboom dies, Primarina can finally come in safely and Arcanine ExtremeSpeed (~32, priority +2) + Primarina Ice Beam (214) KOs a full-health Multiscale Dragonite in one turn, so killing Rillaboom is the win condition. Metagross is a lost cause (it dies to Fire Blast/Hurricane/Wood Hammer and Dragonite is faster), so it is spent on the highest-value click: Ice Punch, 4x for 164 through Multiscale, which drops Dragonite to ~11% with Multiscale broken and makes it die to a single ExtremeSpeed. Arcanine's Flare Blitz (~262 vs 205 HP) OHKOs Rillaboom through Sitrus even if they Protect Dragonite, which is the read I expect them to make against the obvious Ice Punch + ExtremeSpeed double-up on Dragonite. The two attacks target different foes, so a single Protect only blanks one of them: Dragonite Protect still leaves Rillaboom dead; Rillaboom Protect still leaves the Ice Punch free to land (Metagross survives Grassy Glide at 0.5x ~23). Accepting the Flare Blitz recoil (~87) is fine because once Rillaboom is gone my 3 remaining mons beat Dragonite alone.",
              "automatic": false,
              "latencyMs": 53025,
              "reasoningTokens": 9582,
              "reasoningChars": 30281
            },
            {
              "franchiseId": "franchise-5",
              "turn": 7,
              "phase": "forced_switch",
              "action": "switch 4, pass",
              "selection": ["Switch to Talonflame", "Pass"],
              "rationale": "Metagross is gone and Rillaboom Protected my Flare Blitz, so the board is Arcanine 97% + a replacement vs Rillaboom 100% (Sitrus, -1 Atk, Protect now used twice so its next use is unreliable) + Dragonite-Mega 100% (Multiscale intact, -1 Atk). I must send Talonflame, not Primarina: Rillaboom is still alive and its Wood Hammer (2x, ~228 even at -1 Atk) is a clean OHKO on Primarina, so exposing her now would just hand them my Dragonite wall for free. Talonflame is the perfect sacrifice body - at 19% it is expected to die anyway, and it can either chip Dragonite with Brave Bird (~54, breaking Multiscale) or trade Brave Bird (~237) into Rillaboom if they misplay. Next turn Arcanine's Flare Blitz (~262) OHKOs Rillaboom through Sitrus, and Arcanine's ExtremeSpeed (~32, priority +2) plus Primarina's Ice Beam (214) KOs a full-health Multiscale Dragonite in a single turn once Rillaboom is gone; if Talonflame faints on that turn I get Primarina in for free at the end of it. Primarina also survives one Dragonite hit (Hurricane ~100 of 187), so she only needs one clean turn in the endgame.",
              "automatic": false,
              "latencyMs": 26568,
              "reasoningTokens": 4291,
              "reasoningChars": 13200
            },
            {
              "franchiseId": "franchise-2",
              "turn": 8,
              "phase": "turn",
              "action": "move 4, move 2 +1",
              "selection": [
                "Protect [success rate reduced: Protected last turn]",
                "Fire Blast -> foe 1 (Talonflame)"
              ],
              "rationale": "They sent 19% Talon over Primarina to double Rilla with Arcanine Blitz (80–118%) + BB (69–106%). Rilla Protect is 1/3 but it is the only save; it blocks both if it hits. ES Talon is only 12–23% vs 19% with -1 Atk (not a KO). Fire Blast Talon is a guaranteed KO on 85% acc after they attack; if they BB Rilla, DN is untouched and still KOs Talon. Glide does not KO. If Protect fails we lose Rilla but Talon still dies and DN is 100% Multi vs Arcanine+Prim. If they U-turn, Fire Blast hits Primarina—accepted. Do not Protect DN (Rilla then dies for sure).",
              "automatic": false,
              "latencyMs": 106847,
              "reasoningTokens": 4386,
              "reasoningChars": 2172
            },
            {
              "franchiseId": "franchise-5",
              "turn": 8,
              "phase": "turn",
              "action": "move 1 +2, move 1 +1",
              "selection": [
                "Brave Bird -> foe 2 (Dragonite-Mega)",
                "Flare Blitz -> foe 1 (Rillaboom)"
              ],
              "rationale": "Arcanine is the only mon that can reliably kill Rillaboom: it survives everything the pair can do (Fire Blast 0.5x ~70, Wood Hammer 0.5x ~60, ExtremeSpeed ~37 on 191 HP), so it always gets Flare Blitz off - and Flare Blitz (~262) OHKOs Rillaboom through Sitrus unless Rillaboom tries its third Protect (reduced success after two uses). Talonflame is sent at Dragonite-Mega instead of doubling on Rillaboom for three reasons: (1) targeting two different foes is the best hedge, since a single Protect only blanks one of my two attacks; (2) Brave Bird (~54 through Multiscale) BREAKS Multiscale, which is worth more than any chip on Rillaboom - with Multiscale gone, Arcanine's ExtremeSpeed (~32) plus Primarina's Ice Beam (214) KOs a full-health Dragonite in one turn; (3) I do NOT want to rely on Talonflame for the Rillaboom kill, because Dragonite's ExtremeSpeed (+2, faster than Arcanine) KOs 19% Talonflame before it can move. If Talonflame dies (whether to ExtremeSpeed before acting or to Brave Bird recoil after chipping), Primarina comes in at the END of the turn, which is exactly what I want: she then faces no Grass attack and is active and able to act alongside Arcanine's ExtremeSpeed for the one-turn KO. Primarina survives a single Dragonite hit (Hurricane ~100 of 187), so she only needs that one clean turn.",
              "automatic": false,
              "latencyMs": 95239,
              "reasoningTokens": 8349,
              "reasoningChars": 26087
            },
            {
              "franchiseId": "franchise-5",
              "turn": 8,
              "phase": "forced_switch",
              "action": "switch 3, pass",
              "selection": ["Switch to Primarina", "Pass"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-2",
              "turn": 9,
              "phase": "turn",
              "action": "pass, move 4",
              "selection": ["Pass", "Protect"],
              "rationale": "1v2. Ice Beam is 91–131% into 76% DN (guaranteed KO, Multiscale broken). Hurricane does not KO Primarina (43–76%) or reliably KO Arcanine (52–96 vs 70%). Fire Blast/ES do nothing useful. DN outspeeds both but cannot KO Primarina before Ice Beam. Protect is the only action that does not lose on the spot; play for Ice Beam into Protect and a possible T10 Hurricane. Rilla Pass.",
              "automatic": false,
              "latencyMs": 45442,
              "reasoningTokens": 1329,
              "reasoningChars": 672
            },
            {
              "franchiseId": "franchise-5",
              "turn": 9,
              "phase": "turn",
              "action": "move 2 +2, move 2 +2",
              "selection": [
                "Ice Beam -> foe 2 (Dragonite-Mega)",
                "Extreme Speed -> foe 2 (Dragonite-Mega)"
              ],
              "rationale": "Rillaboom died to Flare Blitz (its third Protect failed) and Talonflame's Brave Bird already broke Multiscale before fainting, so Dragonite-Mega sits at 75% with Multiscale GONE and no bench left - it is their last Pokémon and can only Protect or attack. Primarina's Ice Beam is now a raw 4x hit at full power (~214 vs roughly 125-149 remaining HP), so it OHKOs outright; I click it as the primary win. Arcanine's ExtremeSpeed (+2, ~32) goes on the same target purely as insurance against a Protect/miss and to end the game even if Ice Beam were somehow short. Order is safe either way: ExtremeSpeed resolves first, and even if Dragonite moves before Primarina it cannot remove her - Fire Blast is 0.5x (~70 of 187) and Hurricane is ~100, leaving her alive to fire the Ice Beam. If Dragonite Protects this turn, the only cost is one turn, since its Protect counter is then consumed (a repeat use has reduced success) and Primarina still wins the following turn.",
              "automatic": false,
              "latencyMs": 14366,
              "reasoningTokens": 1650,
              "reasoningChars": 5402
            },
            {
              "franchiseId": "franchise-2",
              "turn": 10,
              "phase": "turn",
              "action": "pass, move 4",
              "selection": ["Pass", "Protect [success rate reduced: Protected last turn]"],
              "rationale": "Ice Beam still guaranteed-KOs 76% DN. Hurricane does not KO Primarina (43–76%). Attacking loses on the spot. Consecutive Protect is 1/3, which is the only non-zero chance they Ice Beam into it again (they just did). Rilla Pass. If Protect fails G1 is lost; G2 bring Greninja vs their Gross+Prim+Talon+Arcanine (no Mamo/Rotom).",
              "automatic": false,
              "latencyMs": 22133,
              "reasoningTokens": 718,
              "reasoningChars": 426
            },
            {
              "franchiseId": "franchise-5",
              "turn": 10,
              "phase": "turn",
              "action": "move 2 +2, move 2 +2",
              "selection": [
                "Ice Beam -> foe 2 (Dragonite-Mega)",
                "Extreme Speed -> foe 2 (Dragonite-Mega)"
              ],
              "rationale": "Nothing changed except that Dragonite burned its Protect, so its next Protect has heavily reduced success and it can no longer blank me reliably. Dragonite-Mega is still their only remaining Pokémon, sitting at 75% with Multiscale broken, so Primarina's Ice Beam (~214, 4x) is a clean OHKO on its remaining ~125-150 HP and Arcanine's ExtremeSpeed (+2, ~32) adds insurance on the same target. Even if Dragonite attacks first it cannot remove Primarina (Fire Blast 0.5x ~70, Hurricane ~100 of 187), so I keep full offensive pressure instead of stalling. If the low-probability repeat Protect does land, the position is unchanged and I simply repeat this winning line next turn.",
              "automatic": false,
              "latencyMs": 7375,
              "reasoningTokens": 340,
              "reasoningChars": 1196
            },
            {
              "franchiseId": "franchise-2",
              "turn": 11,
              "phase": "turn",
              "action": "pass, move 4",
              "selection": ["Pass", "Protect [success rate reduced: Protected last turn]"],
              "rationale": "Still cannot KO Primarina (Hurricane 43–76%). Ice Beam still KOs. Protect is 1/9 but attacking into Ice Beam is 0%. They Ice Beamed twice into Protect; third Ice Beam is likely, so 1/9 is the only non-zero live. Rilla Pass. G2: they brought Gross+Prim+Talon+Arcanine (no Mamo/Rotom)—bring Greninja over Dirge.",
              "automatic": false,
              "latencyMs": 35407,
              "reasoningTokens": 1339,
              "reasoningChars": 835
            },
            {
              "franchiseId": "franchise-5",
              "turn": 11,
              "phase": "turn",
              "action": "move 2 +2, move 2 +2",
              "selection": [
                "Ice Beam -> foe 2 (Dragonite-Mega)",
                "Extreme Speed -> foe 2 (Dragonite-Mega)"
              ],
              "rationale": "Dragonite has now Protected on two consecutive turns, so its streak is at 2 and the next Protect has heavily reduced success (~1/9 or worse) - it cannot keep blanking me. Nothing else has changed: it is their last Pokémon, still at 75% with Multiscale broken, and Primarina's Ice Beam (4x, ~214) OHKOs its remaining ~125-150 HP outright, with Arcanine's ExtremeSpeed (+2, ~32) as same-target insurance. Re-clicking the exact same winning line is correct: if Dragonite finally attacks instead, Primarina survives its best hit (Hurricane ~100 of 187) and still fires the Ice Beam for the win.",
              "automatic": false,
              "latencyMs": 5182,
              "reasoningTokens": 137,
              "reasoningChars": 510
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-2",
              "result": "lost",
              "summary": "Lost G1 0-1 in 11 turns. They brought Mega Gross + Primarina + Talon + Arcanine (no Mamo/Rotom). Our Rilla+Clef+DN+Dirge core was the Mamo plan; Dirge got doubled out (BB+Zen) before Torch Song, Follow Me T5 into live Mash sacked Clef (BB crit then Mash) while Fire Blast left Gross at 16%, then Intimidate Arcanine + consecutive Protect failing let Blitz KO Rilla after we had already KO’d Gross and Talon. 1v2 Mega DN vs Prim Ice Beam is unwinnable without Multiscale. Fake Out Gross T1 and T6 and the T7 Fire Blast KO on Gross were correct. Decision-error count 0; the loss was bring (Dirge vs Fires) plus Follow Me into Mash-range Clef.",
              "adjustment": "G2 sit Dirge, bring Rilla+Clef+DN+Greninja. Lead Rilla+Greninja: Fake Out Gross or Talon, Hydro Pump Talon/Arcanine (and Mamo if they change). Never Follow Me into live Mash—Protect Clef or keep Clef off vs Gross. WH Primarina. Mega DN Fire Blast Gross only behind Clef Protect or after Gross is chipped. If they swap Mamo in, Greninja Hydro still answers it; Clef Follow Me is for Ice Shard/Ice Punch, not Mash."
            },
            {
              "franchiseId": "franchise-5",
              "result": "won",
              "summary": "Won game 1 (1-0) with 0 decision errors. Their 4 was Rillaboom + Clefable + Skeledirge + Dragonite (Sneasler and Greninja not brought), led Rillaboom + Clefable. My four (Mega Metagross, Primarina, Talonflame, Arcanine) were exactly right. Key winning decisions: (1) turn 1 Primarina Protected instead of attacking, blanking Fake Out and a possible Helping-Hand-boosted Wood Hammer; (2) turn 2 I switched Primarina out rather than leave it in Rillaboom's Wood Hammer range (a guaranteed 2x OHKO on its 94 Def) and absorbed Grass with Talonflame at 0.25x, while gaining a free turn; (3) I correctly valued Clefable as the Follow Me shield and removed it with Meteor Mash, then Skeledirge (the 2x Torch Song/Shadow Ball threat to Metagross) with Brave Bird chip + Zen Headbutt; (4) Arcanine's Intimidate + Flare Blitz removed Rillaboom through Sitrus; (5) I recognized Multiscale only halves the FIRST hit, so Brave Bird/ExtremeSpeed chip before a 4x Ice move; (6) I kept re-clicking Ice Beam + ExtremeSpeed through Dragonite's Protect stall - it failed on the third consecutive attempt and Primarina finished it. Talonflame and Metagross were spent as intended, and Primarina entered only after Rillaboom was dead, so she never faced a Grass attack.",
              "adjustment": "Keep the same core and the same lead for game 2: Metagross + Primarina in front, Talonflame + Arcanine in back. The only real adjustment is anticipating that they will swap the two support mons for speed: Clefable + Skeledirge lost as a slow shell, so Sneasler (Focus Sash/Unburden, Fake Out, Close Combat/Dire Claw) and/or Greninja (Life Orb Protean) are the likely changes. Do not change my own team - Metagross is immune to Dire Claw and resists Close Combat and is 4x on Sneasler, Talonflame (195) outspeeds Greninja (max 191) and OHKOs it with Brave Bird. The one execution change: against Sneasler, chip it before committing to a KO (Focus Sash leaves it at 1 HP and Unburden doubles its speed), and use Arcanine's ExtremeSpeed as the finisher. Everything else - never exposing Primarina while a Grass attacker or unrevealed Fake Out mon is active, and breaking Multiscale before the Ice Beam - carries over."
            }
          ]
        },
        {
          "number": 2,
          "winnerId": "franchise-5",
          "turns": 9,
          "brought": [
            ["rillaboom", "greninja", "clefable", "dragonite-mega"],
            ["metagross-mega", "arcanine", "primarina", "talonflame"]
          ],
          "megaEvolved": ["dragonite-mega", "metagross-mega"],
          "faints": [
            { "rillaboom": 1, "clefable": 1, "dragonite-mega": 1, "greninja": 1 },
            { "arcanine": 1, "talonflame": 1, "metagross-mega": 1 }
          ],
          "raw": "|t:|1789186181\n|gametype|doubles\n|player|p1|p1-opencode:grok-4.6||\n|player|p2|p2-opencode-go:deepseek-v4.1-flash||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Rillaboom, L50, F|\n|poke|p1|Sneasler, L50, F|\n|poke|p1|Clefable, L50, F|\n|poke|p1|Dragonite, L50, M|\n|poke|p1|Skeledirge, L50, M|\n|poke|p1|Greninja, L50, F|\n|poke|p2|Metagross, L50|\n|poke|p2|Mamoswine, L50, M|\n|poke|p2|Primarina, L50, M|\n|poke|p2|Talonflame, L50, M|\n|poke|p2|Arcanine, L50, F|\n|poke|p2|Rotom-Frost, L50|\n|teampreview|4\n|showteam|p1|Rillaboom||SitrusBerry|GrassySurge|FakeOut,WoodHammer,GrassyGlide,Protect|Adamant||F|||50|]Sneasler||FocusSash|Unburden|FakeOut,CloseCombat,DireClaw,Protect|Jolly||F|||50|]Clefable||MentalHerb|MagicGuard|FollowMe,Moonblast,HelpingHand,Protect|Bold||F|||50|]Dragonite||Dragoninite|Multiscale|ExtremeSpeed,FireBlast,Hurricane,Protect|Modest||M|||50|]Skeledirge||Leftovers|Unaware|TorchSong,ShadowBall,SlackOff,Protect|Modest||M|||50|]Greninja||LifeOrb|Protean|HydroPump,DarkPulse,IceBeam,Protect|Timid||F|||50|\n|showteam|p2|Metagross||Metagrossite|ClearBody|MeteorMash,ZenHeadbutt,IcePunch,Protect|Adamant|||||50|]Mamoswine||LifeOrb|ThickFat|IceShard,IcicleSpear,Earthquake,Protect|Adamant||M|||50|]Primarina||Leftovers|Torrent|Moonblast,IceBeam,HydroPump,Protect|Modest||M|||50|]Talonflame||SharpBeak|GaleWings|BraveBird,FlareBlitz,Uturn,Protect|Jolly||M|||50|]Arcanine||SitrusBerry|Intimidate|FlareBlitz,ExtremeSpeed,WillOWisp,Protect|Adamant||F|||50|]Rotom-Frost||ExpertBelt|Levitate|Blizzard,Thunderbolt,VoltSwitch,Protect|Modest|||||50|\n|\n|t:|1789186345\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Rillaboom|Rillaboom, L50, F|195/195\n|switch|p1b: Greninja|Greninja, L50, F|149/149\n|switch|p2a: Metagross|Metagross, L50|187/187\n|switch|p2b: Arcanine|Arcanine, L50, F|197/197\n|-ability|p2b: Arcanine|Intimidate|boost\n|-unboost|p1a: Rillaboom|atk|1\n|-unboost|p1b: Greninja|atk|1\n|-fieldstart|move: Grassy Terrain|[from] ability: Grassy Surge|[of] p1a: Rillaboom\n|turn|1\n|\n|t:|1789186481\n|detailschange|p2a: Metagross|Metagross-Mega, L50\n|-mega|p2a: Metagross|Metagross|Metagrossite\n|move|p1a: Rillaboom|Fake Out|p2a: Metagross\n|-resisted|p2a: Metagross|1\n|-damage|p2a: Metagross|180/187\n|move|p1b: Greninja|Hydro Pump|p2b: Arcanine\n|-start|p1b: Greninja|typechange|Water|[from] ability: Protean\n|-supereffective|p2b: Arcanine|1\n|-damage|p2b: Arcanine|0 fnt\n|faint|p2b: Arcanine\n|-damage|p1b: Greninja|135/149|[from] item: Life Orb\n|cant|p2a: Metagross|flinch\n|\n|-heal|p1b: Greninja|144/149|[from] Grassy Terrain\n|-heal|p2a: Metagross|187/187|[from] Grassy Terrain\n|upkeep\n|\n|t:|1789186508\n|switch|p2b: Talonflame|Talonflame, L50, M|155/155\n|turn|2\n|\n|t:|1789186620\n|move|p1a: Rillaboom|Protect|p1a: Rillaboom\n|-singleturn|p1a: Rillaboom|Protect\n|move|p2b: Talonflame|Brave Bird|p1b: Greninja\n|-damage|p1b: Greninja|3/149\n|-damage|p2b: Talonflame|108/155|[from] Recoil\n|move|p1b: Greninja|Hydro Pump|p2b: Talonflame|[miss]\n|-miss|p1b: Greninja|p2b: Talonflame\n|move|p2a: Metagross|Ice Punch|p1a: Rillaboom\n|-activate|p1a: Rillaboom|move: Protect\n|\n|-heal|p1b: Greninja|12/149|[from] Grassy Terrain\n|upkeep\n|turn|3\n|\n|t:|1789186797\n|switch|p1b: Dragonite|Dragonite, L50, M|168/168\n|move|p1a: Rillaboom|Protect||[still]\n|-fail|p1a: Rillaboom\n|move|p2b: Talonflame|Brave Bird|p1b: Dragonite\n|-damage|p1b: Dragonite|114/168\n|-damage|p2b: Talonflame|90/155|[from] Recoil\n|move|p2a: Metagross|Ice Punch|p1a: Rillaboom\n|-supereffective|p1a: Rillaboom|1\n|-damage|p1a: Rillaboom|63/195\n|-enditem|p1a: Rillaboom|Sitrus Berry|[eat]\n|-heal|p1a: Rillaboom|111/195|[from] item: Sitrus Berry\n|\n|-heal|p1a: Rillaboom|123/195|[from] Grassy Terrain\n|upkeep\n|turn|4\n|\n|t:|1789186921\n|detailschange|p1b: Dragonite|Dragonite-Mega, L50, M\n|-mega|p1b: Dragonite|Dragonite|Dragoninite\n|move|p1b: Dragonite|Protect|p1b: Dragonite\n|-singleturn|p1b: Dragonite|Protect\n|move|p1a: Rillaboom|Protect|p1a: Rillaboom\n|-singleturn|p1a: Rillaboom|Protect\n|move|p2b: Talonflame|Brave Bird|p1a: Rillaboom\n|-activate|p1a: Rillaboom|move: Protect\n|move|p2a: Metagross|Ice Punch|p1b: Dragonite\n|-activate|p1b: Dragonite|move: Protect\n|\n|-heal|p1a: Rillaboom|135/195|[from] Grassy Terrain\n|upkeep\n|turn|5\n|\n|t:|1789186973\n|switch|p1b: Clefable|Clefable, L50, F|202/202\n|move|p1a: Rillaboom|Protect||[still]\n|-fail|p1a: Rillaboom\n|move|p2b: Talonflame|Brave Bird|p1a: Rillaboom\n|-supereffective|p1a: Rillaboom|1\n|-damage|p1a: Rillaboom|0 fnt\n|faint|p1a: Rillaboom\n|-damage|p2b: Talonflame|45/155|[from] Recoil\n|move|p2a: Metagross|Ice Punch|p1b: Clefable\n|-damage|p1b: Clefable|142/202\n|\n|-heal|p1b: Clefable|154/202|[from] Grassy Terrain\n|-fieldend|move: Grassy Terrain\n|upkeep\n|\n|t:|1789186982\n|switch|p1a: Dragonite|Dragonite-Mega, L50, M|114/168\n|turn|6\n|\n|t:|1789187043\n|move|p1b: Clefable|Follow Me|p1b: Clefable\n|-singleturn|p1b: Clefable|move: Follow Me\n|move|p2b: Talonflame|Brave Bird|p1b: Clefable\n|-damage|p1b: Clefable|73/202\n|-damage|p2b: Talonflame|18/155|[from] Recoil\n|move|p1a: Dragonite|Fire Blast|p2a: Metagross\n|-supereffective|p2a: Metagross|1\n|-damage|p2a: Metagross|47/187\n|move|p2a: Metagross|Ice Punch|p1b: Clefable\n|-damage|p1b: Clefable|9/202\n|\n|upkeep\n|turn|7\n|\n|t:|1789187115\n|move|p1a: Dragonite|Extreme Speed|p2b: Talonflame\n|-damage|p2b: Talonflame|0 fnt\n|faint|p2b: Talonflame\n|move|p1b: Clefable|Follow Me|p1b: Clefable\n|-singleturn|p1b: Clefable|move: Follow Me\n|move|p2a: Metagross|Ice Punch|p1b: Clefable\n|-damage|p1b: Clefable|0 fnt\n|faint|p1b: Clefable\n|\n|upkeep\n|\n|t:|1789187115\n|switch|p2b: Primarina|Primarina, L50, M|187/187\n|switch|p1b: Greninja|Greninja, L50, F|12/149\n|turn|8\n|\n|t:|1789187248\n|move|p1b: Greninja|Protect|p1b: Greninja\n|-start|p1b: Greninja|typechange|Normal|[from] ability: Protean\n|-singleturn|p1b: Greninja|Protect\n|move|p1a: Dragonite|Fire Blast|p2a: Metagross\n|-supereffective|p2a: Metagross|1\n|-damage|p2a: Metagross|0 fnt\n|faint|p2a: Metagross\n|move|p2b: Primarina|Ice Beam|p1a: Dragonite\n|-supereffective|p1a: Dragonite|2\n|-damage|p1a: Dragonite|0 fnt\n|faint|p1a: Dragonite\n|\n|upkeep\n|turn|9\n|\n|t:|1789187269\n|move|p1b: Greninja|Hydro Pump|p2b: Primarina\n|-resisted|p2b: Primarina|1\n|-damage|p2b: Primarina|152/187\n|-damage|p1b: Greninja|0 fnt|[from] item: Life Orb\n|faint|p1b: Greninja\n|\n|win|p2-opencode-go:deepseek-v4.1-flash\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rillaboom"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Sneasler",
              "actor": { "side": 0, "slot": 0 },
              "species": "Sneasler"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Clefable",
              "actor": { "side": 0, "slot": 0 },
              "species": "Clefable"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Dragonite",
              "actor": { "side": 0, "slot": 0 },
              "species": "Dragonite"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Skeledirge",
              "actor": { "side": 0, "slot": 0 },
              "species": "Skeledirge"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Greninja",
              "actor": { "side": 0, "slot": 0 },
              "species": "Greninja"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Metagross",
              "actor": { "side": 1, "slot": 0 },
              "species": "Metagross"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Mamoswine",
              "actor": { "side": 1, "slot": 0 },
              "species": "Mamoswine"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Primarina",
              "actor": { "side": 1, "slot": 0 },
              "species": "Primarina"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Talonflame",
              "actor": { "side": 1, "slot": 0 },
              "species": "Talonflame"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Arcanine",
              "actor": { "side": 1, "slot": 0 },
              "species": "Arcanine"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Rotom-Frost",
              "actor": { "side": 1, "slot": 0 },
              "species": "Rotom-Frost"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rillaboom",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Greninja",
              "actor": { "side": 0, "slot": 1 },
              "species": "Greninja",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Metagross",
              "actor": { "side": 1, "slot": 0 },
              "species": "Metagross",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Arcanine",
              "actor": { "side": 1, "slot": 1 },
              "species": "Arcanine",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "detail", "text": "Arcanine ability: Intimidate" },
            { "turn": 0, "kind": "detail", "text": "Rillaboom atk -1" },
            { "turn": 0, "kind": "detail", "text": "Greninja atk -1" },
            { "turn": 0, "kind": "field", "text": "Grassy Terrain began" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Metagross became Metagross-Mega",
              "actor": { "side": 1, "slot": 0 },
              "species": "Metagross-Mega"
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Rillaboom used Fake Out → Metagross",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 1, "kind": "detail", "text": "Not very effective on Metagross" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Metagross → 96%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 96,
              "status": null
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Greninja used Hydro Pump → Arcanine",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 1, "kind": "detail", "text": "Greninja: typechange" },
            { "turn": 1, "kind": "detail", "text": "Super effective on Arcanine" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Arcanine → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 1,
              "kind": "faint",
              "text": "Arcanine fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Greninja → 91% (Life Orb)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 91,
              "status": null
            },
            { "turn": 1, "kind": "detail", "text": "Metagross can't move (flinch)" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Greninja healed → 97% (Grassy Terrain)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 97,
              "status": null
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Metagross healed → 100% (Grassy Terrain)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 100,
              "status": null
            },
            {
              "turn": 1,
              "kind": "switch",
              "text": "P2 sent out Talonflame",
              "actor": { "side": 1, "slot": 1 },
              "species": "Talonflame",
              "hp": 100,
              "status": null
            },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Rillaboom used Protect → Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Greninja",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Greninja → 2%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 2,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Talonflame → 70% (Recoil)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 70,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Greninja used Hydro Pump → Talonflame",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 2, "kind": "detail", "text": "Greninja missed" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Metagross used Ice Punch → Rillaboom",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Greninja healed → 8% (Grassy Terrain)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 8,
              "status": null
            },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Dragonite",
              "actor": { "side": 0, "slot": 1 },
              "species": "Dragonite",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Rillaboom used Protect",
              "actor": { "side": 0, "slot": 0 }
            },
            { "turn": 3, "kind": "detail", "text": "Rillaboom's move failed" },
            {
              "turn": 3,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Dragonite",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Dragonite → 68%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 68,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Talonflame → 58% (Recoil)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 58,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Metagross used Ice Punch → Rillaboom",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 3, "kind": "detail", "text": "Super effective on Rillaboom" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Rillaboom → 32%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 32,
              "status": null
            },
            { "turn": 3, "kind": "detail", "text": "Rillaboom lost its Sitrus Berry" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Rillaboom healed → 57% (Sitrus Berry)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 57,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Rillaboom healed → 63% (Grassy Terrain)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 63,
              "status": null
            },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Dragonite became Dragonite-Mega",
              "actor": { "side": 0, "slot": 1 },
              "species": "Dragonite-Mega"
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Dragonite used Protect → Dragonite",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Rillaboom used Protect → Rillaboom",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Rillaboom",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Metagross used Ice Punch → Dragonite",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Rillaboom healed → 69% (Grassy Terrain)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 69,
              "status": null
            },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Clefable",
              "actor": { "side": 0, "slot": 1 },
              "species": "Clefable",
              "hp": 100,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Rillaboom used Protect",
              "actor": { "side": 0, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Rillaboom's move failed" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Rillaboom",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Super effective on Rillaboom" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Rillaboom → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 5,
              "kind": "faint",
              "text": "Rillaboom fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Talonflame → 29% (Recoil)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 29,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Metagross used Ice Punch → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Clefable → 70%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 70,
              "status": null
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Clefable healed → 76% (Grassy Terrain)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 76,
              "status": null
            },
            { "turn": 5, "kind": "field", "text": "Grassy Terrain ended" },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Dragonite-Mega",
              "actor": { "side": 0, "slot": 0 },
              "species": "Dragonite-Mega",
              "hp": 68,
              "status": null
            },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "move",
              "text": "Clefable used Follow Me → Clefable",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Talonflame used Brave Bird → Clefable",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Clefable → 36%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 36,
              "status": null
            },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Talonflame → 12% (Recoil)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 12,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Dragonite used Fire Blast → Metagross",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 6, "kind": "detail", "text": "Super effective on Metagross" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Metagross → 25%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 25,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Metagross used Ice Punch → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Clefable → 4%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 4,
              "status": null
            },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "move",
              "text": "Dragonite used Extreme Speed → Talonflame",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Talonflame → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Talonflame fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Clefable used Follow Me → Clefable",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Metagross used Ice Punch → Clefable",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Clefable → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Clefable fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P2 sent out Primarina",
              "actor": { "side": 1, "slot": 1 },
              "species": "Primarina",
              "hp": 100,
              "status": null
            },
            {
              "turn": 7,
              "kind": "switch",
              "text": "P1 sent out Greninja",
              "actor": { "side": 0, "slot": 1 },
              "species": "Greninja",
              "hp": 8,
              "status": null
            },
            { "turn": 8, "kind": "turn", "text": "Turn 8" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Greninja used Protect → Greninja",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 8, "kind": "detail", "text": "Greninja: typechange" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Dragonite used Fire Blast → Metagross",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 8, "kind": "detail", "text": "Super effective on Metagross" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Metagross → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 8,
              "kind": "faint",
              "text": "Metagross fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Primarina used Ice Beam → Dragonite",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 8, "kind": "detail", "text": "Super effective on Dragonite" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Dragonite → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 8,
              "kind": "faint",
              "text": "Dragonite fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            { "turn": 9, "kind": "turn", "text": "Turn 9" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Greninja used Hydro Pump → Primarina",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 9, "kind": "detail", "text": "Not very effective on Primarina" },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Primarina → 81%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 81,
              "status": null
            },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Greninja → 0% (Life Orb)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 9,
              "kind": "faint",
              "text": "Greninja fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 9,
              "kind": "win",
              "text": "opencode-go:deepseek-v4.1-flash (P2) won the game"
            }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-2",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1634",
              "selection": ["Pick Rillaboom", "Pick Greninja", "Pick Clefable", "Pick Dragonite"],
              "rationale": "G2 bring Rilla+Greninja+Clef+DN, sit Dirge/Sneasler. G1 Dirge was doubled by Talon BB + Gross Zen before Torch Song; Greninja is the Talon/Arcanine/Mamo answer and Dark Pulses Gross. Lead Rilla+Gren: Grassy Surge, Fake Out Gross (stop Mash/Ice Punch) or Talon (break Gale Wings); Hydro Talon/Arcanine/Mamo or Dark Pulse Gross. Clef+DN in back for HH/Protect Blast and Follow Me vs Ice Shard/Blizzard—never Follow Me into live Mash. WH Prim/Mamo. Mega DN on first send.",
              "automatic": false,
              "latencyMs": 163290,
              "reasoningTokens": 8954,
              "reasoningChars": 2974
            },
            {
              "franchiseId": "franchise-5",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1534",
              "selection": ["Pick Metagross", "Pick Arcanine", "Pick Primarina", "Pick Talonflame"],
              "rationale": "Bring the proven winning four (Mega Metagross, Arcanine, Primarina, Talonflame). Team preview is simultaneous so I can't react to their lead; rather than commit fragile Primarina to a likely Rillaboom lead (2x Wood Hammer/Grassy Glide KOs it, losing my Dragonite answer), I lead Mega Metagross + Arcanine. Metagross is bulky and immune/resistant to their fast threats (immune Poison/Dire Claw, resists CC/Grass), while Arcanine's turn-1 Intimidate blunts Rillaboom/Sneasler physical damage and its ExtremeSpeed chips to break Multiscale/Sash. Keep Primarina and Talonflame in back: Primarina enters late only after Grass attackers leave and is the Ice Beam 4x answer to Dragonite; Talonflame (195 Spe) stays fresh as the Greninja/Sneasler revenge killer.",
              "automatic": false,
              "latencyMs": 23940,
              "reasoningTokens": 4204,
              "reasoningChars": 14936
            },
            {
              "franchiseId": "franchise-2",
              "turn": 1,
              "phase": "turn",
              "action": "move 1 +1, move 1 +2",
              "selection": ["Fake Out -> foe 1 (Metagross)", "Hydro Pump -> foe 2 (Arcanine)"],
              "rationale": "T1 Fake Out Gross + Hydro Arcanine. Fake Out stops Mash/Ice Punch so they cannot double Rilla (Ice Punch 55-79% + Blitz 80-118% KO). Greninja 191 outspeeds Arcanine and Mega Gross; LO Hydro is 96-181% into Arcanine (even bulky lives only low rolls) so a hit usually KOs before Blitz. 80% accuracy is the risk; if it hits we get a free Arcanine KO and a flinch. Do not Fake Out Arcanine — that gives Gross a free Ice Punch and wastes the perfect turn. Wood Hammer is 22-41% into Fire after Intimidate. Never waste Fake Out on Protect/switch.",
              "automatic": false,
              "latencyMs": 135648,
              "reasoningTokens": 7037,
              "reasoningChars": 2219
            },
            {
              "franchiseId": "franchise-5",
              "turn": 1,
              "phase": "turn",
              "action": "move 3 +1 mega, move 1 +1",
              "selection": [
                "Ice Punch -> foe 1 (Rillaboom) + Mega Evolve",
                "Flare Blitz -> foe 1 (Rillaboom)"
              ],
              "rationale": "Focus-fire Rillaboom. Greninja's Hydro Pump is a guaranteed OHKO on Arcanine, so Arcanine should spend its likely-final action on the biggest hit: Flare Blitz (82-149%, real KO chance) into Rillaboom. Mega Metagross adds Ice Punch (54-98%, best option into Rillaboom; Meteor Mash only 49-88% and less accurate). If Rillaboom Fake Outs one of mine, the other's attack still lands, and combined damage (even through Sitrus) should remove the terrain setter. Mega Evolution is strictly better here (Tough Claws boosts Ice Punch; survives Greninja's Dark Pulse at 60-89% instead of possible OHKO). Rillaboom's own attacks are 0.5x into both my actives, so my mons are safe from it this turn.",
              "automatic": false,
              "latencyMs": 48807,
              "reasoningTokens": 8507,
              "reasoningChars": 29141
            },
            {
              "franchiseId": "franchise-5",
              "turn": 1,
              "phase": "forced_switch",
              "action": "pass, switch 4",
              "selection": ["Pass", "Switch to Talonflame"],
              "rationale": "Bring Talonflame, not Primarina. Greninja is active and my remaining pair (Metagross + Primarina) has no way to break it — Metagross's moves are 0.5x/0x into it and Primarina's Moonblast/Ice Beam/Hydro Pump are only 1x/0.5x, while Greninja 2x Dark Pulses Metagross. Talonflame (195 Spe) outspeeds Greninja's max 191 and threatens a Brave Bird OHKO (STAB + Sharp Beak), and Gale Wings gives it priority at full HP. Rillaboom cannot punish Talonflame (Grass is 0.5x into Fire/Flying, and its Fake Out is used up). Primarina stays in back as the Dragonite answer and can enter later once the Grass attacker is gone.",
              "automatic": false,
              "latencyMs": 26859,
              "reasoningTokens": 3302,
              "reasoningChars": 11202
            },
            {
              "franchiseId": "franchise-2",
              "turn": 2,
              "phase": "turn",
              "action": "move 4, move 1 +2",
              "selection": ["Protect", "Hydro Pump -> foe 2 (Talonflame)"],
              "rationale": "Rilla Protect + Hydro Talon. Full-HP Gale Wings BB is +1 so it beats Hydro; BB Rilla is 69-106% and with Ice Punch/Mash is a KO, and G1 they BB'd Rilla. Protect is 100% this turn. LO Hydro is 114-219% OHKO on Talon (80% acc) after BB. Do not switch Clef into live Mash (87-123% KO) or DN into Ice Punch (69-98% even Multiscale). Do not Dark Pulse Gross while Talon still has Gale Wings. If they BB Greninja instead, high roll can KO from 97%; still the right line vs their G1 targeting. Never both-Protect (Talon keeps Gale Wings if BB hits Protect with no recoil).",
              "automatic": false,
              "latencyMs": 112094,
              "reasoningTokens": 5659,
              "reasoningChars": 1493
            },
            {
              "franchiseId": "franchise-5",
              "turn": 2,
              "phase": "turn",
              "action": "move 3 +1, move 1 +2",
              "selection": ["Ice Punch -> foe 1 (Rillaboom)", "Brave Bird -> foe 2 (Greninja)"],
              "rationale": "Remove Greninja: Talonflame outspeeds (195>191) and Gale Wings gives Brave Bird priority at full HP, so it can KO Greninja before Greninja's Hydro Pump (which is a guaranteed OHKO on Talonflame). Metagross-Mega Ice Punch goes at Rillaboom (54-98%, best available) to chip the terrain setter/Fake Out user and start the Multiscale-agnostic damage. Splitting targets on foe1/foe2 hedges against a Greninja Protect: if Greninja Protects, Talonflame is safe and Metagross still chips Rillaboom; if Greninja attacks, Brave Bird should remove it. Rillaboom cannot punish either of my actives (Grass is 0.5x into Metagross, 0.25x into Talonflame), so this turn is low-risk for me outside the Brave Bird roll.",
              "automatic": false,
              "latencyMs": 67159,
              "reasoningTokens": 11596,
              "reasoningChars": 39764
            },
            {
              "franchiseId": "franchise-2",
              "turn": 3,
              "phase": "turn",
              "action": "move 4, switch 4",
              "selection": [
                "Protect [success rate reduced: Protected last turn]",
                "Switch to Dragonite"
              ],
              "rationale": "Greninja 8% dies to any hit and LO recoil (15 HP) faints it after an attack, so suicide Hydro is a speed coin flip vs Talon 160-195. Switch Greninja→DN: last turn they BB'd Greninja (finish) and Ice Punched Rilla, so DN takes BB 21-33% Multiscale and Rilla takes Ice Punch 55-79% (Sitrus). Do not send Clef into live Mash (87-123%). Rilla has no useful damage (WH Gross 15-26% at -1); consecutive Protect is 1/3 but strictly better than a dead attack and hedges a Rilla double. DN Megas next turn for Fire Blast Gross. Do not switch Rilla into the Ice Punch slot.",
              "automatic": false,
              "latencyMs": 176941,
              "reasoningTokens": 9030,
              "reasoningChars": 2805
            },
            {
              "franchiseId": "franchise-5",
              "turn": 3,
              "phase": "turn",
              "action": "move 3 +1, move 1 +2",
              "selection": ["Ice Punch -> foe 1 (Rillaboom)", "Brave Bird -> foe 2 (Greninja)"],
              "rationale": "Talonflame must be the Greninja-killer: it outspeeds (195 > 191) and KOs the 8% Greninja with Brave Bird BEFORE Greninja can Hydro Pump it. If instead Metagross targeted Greninja, Greninja (faster than Metagross's 132) would move first and could KO Talonflame. So Talonflame Brave Bird -> Greninja, and Metagross-Mega Ice Punch -> Rillaboom (2x, 54-98%) to chip the terrain setter; with Rillaboom's Protect at reduced success, the Ice Punch likely connects. Recoil from Brave Bird is negligible since damage is capped at Greninja's ~8% HP. Rillaboom cannot punish either active (0.5x/0.25x Grass), and Primarina stays benched until the Grass attacker is gone.",
              "automatic": false,
              "latencyMs": 35498,
              "reasoningTokens": 6468,
              "reasoningChars": 21804
            },
            {
              "franchiseId": "franchise-2",
              "turn": 4,
              "phase": "turn",
              "action": "move 4, move 4 mega",
              "selection": ["Protect", "Protect + Mega Evolve"],
              "rationale": "Rilla Protect is 100% (last failed, counter reset) and required: BB OHKOs 63% Rilla, Ice Punch 55-79% can KO. Mega DN Ice Punch is 119-167% from 68% even after Mega—cannot take it. Mash can also KO 68%. Fire Blast Mega is only 60-106% 85% and Mega DN 152 vs Gross 130-162 is a speed flip, so clicking Blast risks losing DN for chip. Both Protect keeps DN for a real Blast. They Ice Punched Rilla three times but the 4x on DN is the obvious retarget. Mega now for bulk/SpA. T5: Clef Follow Me if they keep Ice Punch (not Mash) + Fire Blast, or DN Protect. Do not send Clef into Mash this turn.",
              "automatic": false,
              "latencyMs": 123580,
              "reasoningTokens": 6263,
              "reasoningChars": 1172
            },
            {
              "franchiseId": "franchise-5",
              "turn": 4,
              "phase": "turn",
              "action": "move 3 +2, move 1 +1",
              "selection": ["Ice Punch -> foe 2 (Dragonite)", "Brave Bird -> foe 1 (Rillaboom)"],
              "rationale": "Double KO: Metagross-Mega Ice Punch (4x, Tough Claws, 111-198%) removes Dragonite from 67% at both endpoints, and Talonflame Brave Bird (2x, 73-134%) removes Rillaboom from 63% at both endpoints - both are guaranteed KOs. Talonflame (195) outspeeds Dragonite's Fire Blast/Hurricane and its Brave Bird resolves before them (only Dragonite's +2 ExtremeSpeed goes first, and ESpeed is 30-43%, not lethal), so Talonflame's KO on Rillaboom lands. Aiming at two different foes hedges against Protect: if Dragonite Protects, Talonflame still deletes Rillaboom, and if Rillaboom Protects, Metagross still deletes Dragonite. Losing Dragonite + Rillaboom in one turn leaves them with only a 8% Greninja plus one hidden mon vs my Metagross + Primarina + Talonflame.",
              "automatic": false,
              "latencyMs": 27264,
              "reasoningTokens": 4460,
              "reasoningChars": 15160
            },
            {
              "franchiseId": "franchise-2",
              "turn": 5,
              "phase": "turn",
              "action": "move 4, switch 3",
              "selection": [
                "Protect [success rate reduced: Protected last turn]",
                "Switch to Clefable"
              ],
              "rationale": "They Ice Punched Mega DN last turn (4x KO 119-167% from 68%) and BB'd Rilla. Switch DN→Clef: Ice Punch Clef is only 24-34%. Do not Fire Blast—Gross 130-162 vs 152 is a speed flip and Blast is 60-106% 85%, so we can lose DN for chip. Do not send Clef into predicted Mash if we can help it, but Ice Punch is the repeat. Rilla Protect is 1/3 vs BB (68-106%, KO from 69% on most rolls); attacking doesn't KO and 8% Greninja dies to BB. If Protect fails we lose Rilla but keep Clef+DN. Never Follow Me this turn (switch is the action).",
              "automatic": false,
              "latencyMs": 51560,
              "reasoningTokens": 2619,
              "reasoningChars": 661
            },
            {
              "franchiseId": "franchise-2",
              "turn": 5,
              "phase": "forced_switch",
              "action": "switch 3, pass",
              "selection": ["Switch to Dragonite-Mega", "Pass"],
              "rationale": "Send Mega DN; 8% Greninja dies to any hit. Next: Clef Follow Me vs Ice Punch (24-34% into Clef, they just Ice Punched the DN slot) + Fire Blast Gross. Never Follow Me if they Mash (87-123% KO Clef). Talon is 29% after BB recoil.",
              "automatic": false,
              "latencyMs": 9514,
              "reasoningTokens": 314,
              "reasoningChars": 136
            },
            {
              "franchiseId": "franchise-5",
              "turn": 5,
              "phase": "turn",
              "action": "move 3 +2, move 1 +1",
              "selection": [
                "Ice Punch -> foe 2 (Dragonite-Mega)",
                "Brave Bird -> foe 1 (Rillaboom)"
              ],
              "rationale": "Re-apply the double KO now that both foes' Protect is at reduced success. Metagross-Mega Ice Punch (4x, 111-198%) KOs Dragonite-Mega from 67% at both endpoints; Talonflame Brave Bird (2x, 73-134%) KOs Rillaboom from 69% at both endpoints. Talonflame (195) outspeeds Dragonite-Mega's max 152, so Brave Bird lands on Rillaboom before Dragonite's Hurricane can retaliate; Dragonite's only faster move is +2 ExtremeSpeed which does 30-43% (not lethal). Splitting targets again hedges Protect. Even at worst (Talonflame eating a Hurricane after KOing Rillaboom), I trade 1 for 2 and end with Metagross + Primarina vs an 8% Greninja and one hidden mon.",
              "automatic": false,
              "latencyMs": 10229,
              "reasoningTokens": 1456,
              "reasoningChars": 5018
            },
            {
              "franchiseId": "franchise-2",
              "turn": 6,
              "phase": "turn",
              "action": "move 2 +1, move 1",
              "selection": ["Fire Blast -> foe 1 (Metagross-Mega)", "Follow Me"],
              "rationale": "Follow Me + Fire Blast Gross. They Ice Punched the DN slot last turn and 4 times this game, never Mashed. Ice Punch OHKOs 68% DN (119-167%); Follow Me puts it on Clef at 24-34% from 76% (lives). Mash would KO Clef from 76% (87-123%)—the playbook risk—but Ice Punch is the repeat. Fire Blast 60-106% 85% often needs DN alive for a second shot, so HH is worse (DN dies to Ice Punch). ES Talon 17-33% may not KO 29%. U-turn into Follow Me is 5-7% on Clef. If they BB+Ice Punch both redirect, Clef is in KO range on high rolls; still the line that keeps DN.",
              "automatic": false,
              "latencyMs": 60867,
              "reasoningTokens": 2740,
              "reasoningChars": 1482
            },
            {
              "franchiseId": "franchise-5",
              "turn": 6,
              "phase": "turn",
              "action": "move 3 +1, move 1 +2",
              "selection": [
                "Ice Punch -> foe 1 (Dragonite-Mega)",
                "Brave Bird -> foe 2 (Clefable)"
              ],
              "rationale": "Dragonite-Mega is the priority target: Metagross-Mega Ice Punch (4x, 111-198%) KOs it from 67% at both endpoints. Talonflame Brave Bird goes at Clefable (1x STAB + Sharp Beak, Talonflame 195 outspeeds Clefable) to chip the last support mon and hedge: if Dragonite Protects (its counter was reset when it switched out and back in), Talonflame still damages Clefable; if Dragonite attacks, Metagross removes it. Talonflame's job on Rillaboom is done and at 29% it may eat an ExtremeSpeed/Hurricane anyway, so spending it on damage is fine. Losing Dragonite leaves them with only Clefable plus an 8% Greninja vs my Metagross + Primarina (+ Talonflame/Primarina), and Metagross's Meteor Mash (2x) KOs Clefable while anything removes Greninja.",
              "automatic": false,
              "latencyMs": 30561,
              "reasoningTokens": 5923,
              "reasoningChars": 20024
            },
            {
              "franchiseId": "franchise-2",
              "turn": 7,
              "phase": "turn",
              "action": "move 1 +2, move 1",
              "selection": ["Extreme Speed -> foe 2 (Talonflame)", "Follow Me"],
              "rationale": "T6 order: DN Fire Blast then Gross Ice Punch, so Mega DN 152 outspeeds this Gross. Talon 160+ still outspeeds DN, so Follow Me fails if 4% Clef dies to BB before Ice Punch. ES +2 KOs Talon from 11% (ES 17-33% of max) before BB; Follow Me then absorbs Ice Punch and Clef faints. DN lives at 68% vs Gross 25% + 4th; next turn we outspeed Fire Blast to KO Gross. Do not Fire Blast this turn—Talon would KO Clef, Follow Me drops, Ice Punch KOs DN. HH Blast also loses DN.",
              "automatic": false,
              "latencyMs": 71675,
              "reasoningTokens": 4034,
              "reasoningChars": 752
            },
            {
              "franchiseId": "franchise-2",
              "turn": 7,
              "phase": "forced_switch",
              "action": "pass, switch 4",
              "selection": ["Pass", "Switch to Greninja"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-5",
              "turn": 7,
              "phase": "turn",
              "action": "move 3 +2, move 1 +1",
              "selection": [
                "Ice Punch -> foe 2 (Clefable)",
                "Brave Bird -> foe 1 (Dragonite-Mega)"
              ],
              "rationale": "Clefable's Follow Me is the obstacle. Aiming Metagross-Mega Ice Punch directly at Clefable (4% HP) KOs it - Follow Me cannot redirect a move already targeting it - eliminating the redirect so Dragonite becomes killable. Dragonite-Mega (up to 152) likely outspeeds Metagross (132, it outsped Metagross in game 1), and its Fire Blast KOs my 25% Metagross, so Metagross probably trades down; that's fine. Talonflame Brave Bird goes at Dragonite (1x chip): if Clefable Protects, my Ice Punch is blocked but Brave Bird still damages Dragonite, whereas aiming Talonflame at Clefable would be wasted if Clefable Protects. After this I have Primarina, which 4x Ice Beams Dragonite (Multiscale already broken) and hard-walls Greninja's entire kit, so I win the endgame regardless.",
              "automatic": false,
              "latencyMs": 41830,
              "reasoningTokens": 8212,
              "reasoningChars": 28390
            },
            {
              "franchiseId": "franchise-5",
              "turn": 7,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Primarina"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-2",
              "turn": 8,
              "phase": "turn",
              "action": "move 2 +1, move 4",
              "selection": ["Fire Blast -> foe 1 (Metagross-Mega)", "Protect"],
              "rationale": "Fire Blast KO 25% Gross (we outspeed; 60-106% vs 25%) + Greninja Protect. Greninja attacking dies to LO (15 HP > 8%). DN cannot 1v1 Prim (Ice Beam 90-131% from 68%; Hurricane only 43-75%). Win path: Prim Protects on entry like G1 T1, or targets 8% Greninja into Protect, then T9 Hydro+Hurricane Prim (63-110%). If they Ice Beam/Moonblast DN we lose—both KO 68% DN—but Protecting DN and Dark Pulsing Gross still loses the 1v1 next turn. Play for the Protect/wrong-target that keeps both alive.",
              "automatic": false,
              "latencyMs": 133097,
              "reasoningTokens": 6435,
              "reasoningChars": 953
            },
            {
              "franchiseId": "franchise-5",
              "turn": 8,
              "phase": "turn",
              "action": "move 3 +2, move 2 +1",
              "selection": ["Ice Punch -> foe 2 (Greninja)", "Ice Beam -> foe 1 (Dragonite-Mega)"],
              "rationale": "Primarina Ice Beam (4x, 76.8-132.5%) KOs Dragonite-Mega from 67% at both endpoints, and Primarina comfortably survives Dragonite's best moves (Hurricane 44-62%, Fire Blast 14-20%) plus Greninja's whole kit (all 0.5x). Metagross-Mega Ice Punch (19-37%) KOs the 8% Greninja. Splitting targets hedges Protect: if Dragonite Protects, Metagross still deletes Greninja and Primarina finishes Dragonite next turn; if Greninja Protects, Primarina still deletes Dragonite and Primarina's Moonblast (95-185%) finishes Greninja next turn. Even if Greninja's faster Dark Pulse (which KOs my 25% Metagross) removes Metagross first, Primarina alone beats both remaining foes, so the game is won in every branch.",
              "automatic": false,
              "latencyMs": 22807,
              "reasoningTokens": 3696,
              "reasoningChars": 12558
            },
            {
              "franchiseId": "franchise-2",
              "turn": 9,
              "phase": "turn",
              "action": "pass, move 1 +2",
              "selection": ["Pass", "Hydro Pump -> foe 2 (Primarina)"],
              "rationale": "G2 lost: 8% Greninja vs full Prim, all moves 0.5x, LO recoil faints after any hit. Hydro Prim for the chip then we faint. Pass fainted DN. Do not forfeit menu if Hydro still executes. G3 plan after.",
              "automatic": false,
              "latencyMs": 20356,
              "reasoningTokens": 744,
              "reasoningChars": 392
            },
            {
              "franchiseId": "franchise-5",
              "turn": 9,
              "phase": "turn",
              "action": "pass, move 1 +2",
              "selection": ["Pass", "Moonblast -> foe 2 (Greninja)"],
              "rationale": "Final KO: Primarina Moonblast is 2x on Greninja (95-185%) and KOs the 8% Greninja at both endpoints, while every Greninja move (Hydro Pump/Dark Pulse/Ice Beam) is only 0.5x into Primarina and cannot KO it. Even if Greninja Protects again (now at reduced success), Primarina survives, re-applies Moonblast next turn, and wins the game and the series 2-0.",
              "automatic": false,
              "latencyMs": 5546,
              "reasoningTokens": 337,
              "reasoningChars": 1181
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-2",
              "result": "lost",
              "summary": "G2 loss, series 0-2. Same opp 4 both games (Mega Gross, Prim, Talon, Arcanine; no Mamo/Rotom). G2 they led Gross+Arcanine. T1 Fake Out Gross + LO Hydro KO Arcanine was the Greninja-for-Dirge adjustment working. T2 Talon entered at 100% Gale Wings with Fake Out already spent; we Protected Rilla (G1 they BB'd Rilla) but they BB'd the Hydro slot to 2% and Hydro missed. That miss decided the game: Greninja became a LO-dead 8% slot and Gale Wings was unanswered. Consecutive Protect failed T3 and T5; Rilla died to BB before Prim appeared, so the WH-Prim wincon never fired. From there the play was correct—Clef into Ice Punch (they never Mashed G2), Follow Me Ice Punch, Blast Gross 100→25 then KO, ES Talon—but it ended in the same closer as G1: Prim Ice Beam KO Mega DN without Multiscale, 8% Greninja 0.5x into Prim and faints to LO. Series lost because both games Talon+Ice Punch break Multiscale, then Prim Ice Beams DN, and Rilla is never alive to WH Prim. Greninja-for-Dirge helped T1 vs Arcanine and backfired T2 (80% Hydro, they BB the attacker). Dirge G1 was doubled BB+Zen before Torch Song.",
              "adjustment": "Vs Gross/Prim/Talon/Arcanine: do not spend Fake Out on Gross if they can send 100% Talon next; Fake Out Talon on sight or keep Sneasler sash in back to live Gale Wings BB. Do not Protect Rilla vs Talon after G2—they BB the Hydro/attacker slot. Prefer Rilla+Clef+DN with Sneasler or Dirge over a second-lead LO Greninja; Greninja is the Arcanine/Talon KO but is unusable after one BB and cannot break Prim. Keep Rilla healthy for WH Prim (unused both games). Fire Blast Gross only with Ice Punch redirected or Gross already in KO; this Adamant Mega Gross is slower than Mega DN 152 (Blast then Ice Punch). Never 1v1 DN vs Prim Ice Beam/Moonblast without Multiscale. Sneasler Dire Claw Prim after sash Fake Out is the cleaner Prim answer than 8% Greninja. Do not chain Protect (failed twice G2). If Greninja is in vs Talon with Fake Out gone, switch it out the turn Talon enters rather than 80% Hydro."
            },
            {
              "franchiseId": "franchise-5",
              "result": "won",
              "summary": "Won game 2 and the series 2-0. Game 2 was a disciplined win despite a bad opening: their Rillaboom+Greninja lead Fake Out'd Metagross and Hydro Pump OHKO'd Arcanine (an unavoidable 2x OHKO), so turn 1 dealt zero damage and cost Arcanine. From there the plan held. Talonflame (fastest) removed Rillaboom with a guaranteed Brave Bird, and Metagross-Mega's 4x Ice Punch removed Dragonite and then Clefable. Their Protect-heavy stalls (a turn-4 double Protect, repeated Protects) delayed but never stopped the KOs - I simply re-clicked the same moves and their Protect counters wore down (~1/3 after each success, reset by switching). Clefable's Follow Me was self-defeating: the redirected Ice Punch still KO'd the 4% Clefable, which reopened Dragonite. Primarina, deliberately held back until the Grass attacker was gone, closed the game: her 4x Ice Beam KO'd Mega Dragonite from 67% and she hard-walls Greninja (every Greninja move is 0.5x), so she easily outlasted it (Greninja ultimately died to its own Life Orb recoil). The key reason for the series result was the between-game adjustment: keeping the proven four (Metagross/Primarina/Talonflame/Arcanine) matched their composition - Primarina neutralized their two biggest threats (Dragonite as the only Dragonite answer, Greninja as a full wall), while Metagross's Ice Punch/Meteor Mash and Talonflame's Brave Bird traded efficiently. It helped, with one clear blemish (the lead choice, see adjustment).",
              "adjustment": "Biggest fix: do not lead Arcanine into a Rillaboom+Greninja lead. Arcanine is OHKO'd by Protean Hydro Pump and Metagross is the Fake Out magnet, so turn 1 yields zero damage for a lost Arcanine (an even trade or worse). Lead Metagross + Talonflame against that lead instead: Talonflame outspeeds Greninja and forces an immediate KO/Protect/switch, while Metagross punishes Rillaboom; keep Arcanine in back for a mid-game Intimidate and an ExtremeSpeed Multiscale-breaker. Second, expect Clefable's Follow Me to shield Dragonite - either KO Clefable directly first (a move aimed at the Follow Me user is not redirected; Metagross Ice Punch/Meteor Mash both kill it) or use a spread move, rather than firing 4x Ice Punch into the redirect. Third, keep Primarina benched until Grass is cleared and enter her only at end of turn; she is the single best answer to their Dragonite and a full Greninja wall, and she needs only one turn. Everything else about the four-mon core matches this opponent well - the team and the overall KO trades do not need changing."
            }
          ]
        }
      ]
    },
    "1c02676e8a79": {
      "seriesId": "1c02676e8a79",
      "franchises": ["franchise-3", "franchise-4"],
      "games": [
        {
          "number": 1,
          "winnerId": "franchise-4",
          "turns": 13,
          "brought": [
            ["gengar-mega", "kangaskhan-mega", "salamence", "rotom-wash"],
            ["whimsicott", "weavile", "annihilape", "excadrill-mega"]
          ],
          "megaEvolved": ["gengar-mega", null],
          "faints": [
            { "rotom-wash": 1, "salamence": 1, "kangaskhan-mega": 1, "gengar-mega": 1 },
            { "weavile": 1 }
          ],
          "raw": "|t:|1789183850\n|gametype|doubles\n|player|p1|p1-opencode:claude-fable-5-1||\n|player|p2|p2-opencode:gpt-6-astra||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Gengar, L50, M|\n|poke|p1|Kangaskhan, L50, F|\n|poke|p1|Salamence, L50, M|\n|poke|p1|Rotom-Wash, L50|\n|poke|p1|Kingambit, L50, F|\n|poke|p1|Altaria, L50, M|\n|poke|p2|Whimsicott, L50, F|\n|poke|p2|Annihilape, L50, F|\n|poke|p2|Maushold, L50|\n|poke|p2|Excadrill, L50, M|\n|poke|p2|Weavile, L50, F|\n|poke|p2|Hydrapple, L50, M|\n|teampreview|4\n|showteam|p1|Gengar||Gengarite|CursedBody|SludgeBomb,ShadowBall,FocusBlast,Protect|Timid||M|||50|]Kangaskhan||Kangaskhanite|Scrappy|FakeOut,DoubleEdge,DrainPunch,Protect|Jolly||F|||50|]Salamence||FocusSash|Intimidate|Tailwind,HeatWave,DracoMeteor,Protect|Timid||M|||50|]Rotom-Wash||SitrusBerry|Levitate|HydroPump,Thunderbolt,WillOWisp,Protect|Modest|||||50|]Kingambit||ChopleBerry|Defiant|KowtowCleave,IronHead,SuckerPunch,Protect|Adamant||F|||50|]Altaria||Altarianite|NaturalCure|HyperVoice,HeatWave,Tailwind,Protect|Modest||M|||50|\n|showteam|p2|Whimsicott||FocusSash|Prankster|Tailwind,BeatUp,Moonblast,Taunt|Timid||F|||50|]Annihilape||LumBerry|Defiant|RageFist,DrainPunch,BulkUp,Protect|Adamant||F|||50|]Maushold||RockyHelmet|FriendGuard|FollowMe,SuperFang,HelpingHand,Protect|Bold|||||50|]Excadrill||Excadrite|MoldBreaker|HighHorsepower,IronHead,SwordsDance,Protect|Jolly||M|||50|]Weavile||WideLens|Pressure|FakeOut,KnockOff,TripleAxel,Protect|Jolly||F|||50|]Hydrapple||SitrusBerry|Regenerator|GigaDrain,DracoMeteor,EarthPower,Protect|Modest||M|||50|\n|\n|t:|1789183937\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Gengar|Gengar, L50, M|137/137\n|switch|p1b: Kangaskhan|Kangaskhan, L50, F|182/182\n|switch|p2a: Whimsicott|Whimsicott, L50, F|137/137\n|switch|p2b: Weavile|Weavile, L50, F|147/147\n|-ability|p2b: Weavile|Pressure\n|turn|1\n|\n|t:|1789183998\n|detailschange|p1a: Gengar|Gengar-Mega, L50, M\n|-mega|p1a: Gengar|Gengar|Gengarite\n|move|p2b: Weavile|Fake Out|p1b: Kangaskhan\n|-damage|p1b: Kangaskhan|151/182\n|cant|p1b: Kangaskhan|flinch\n|move|p2a: Whimsicott|Tailwind|p2a: Whimsicott\n|-sidestart|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|move|p1a: Gengar|Focus Blast|p2b: Weavile|[miss]\n|-miss|p1a: Gengar|p2b: Weavile\n|\n|upkeep\n|turn|2\n|\n|t:|1789184024\n|move|p1a: Gengar|Protect|p1a: Gengar\n|-singleturn|p1a: Gengar|Protect\n|move|p2b: Weavile|Knock Off|p1a: Gengar\n|-activate|p1a: Gengar|move: Protect\n|move|p2a: Whimsicott|Beat Up|p1a: Gengar\n|-activate|p1a: Gengar|move: Protect\n|move|p1b: Kangaskhan|Drain Punch|p2b: Weavile\n|-supereffective|p2b: Weavile|2\n|-damage|p2b: Weavile|0 fnt\n|-heal|p1b: Kangaskhan|182/182|[from] drain|[of] p2b: Weavile\n|faint|p2b: Weavile\n|\n|upkeep\n|\n|t:|1789184028\n|switch|p2b: Annihilape|Annihilape, L50, F|209/209\n|turn|3\n|\n|t:|1789184088\n|switch|p1a: Rotom|Rotom-Wash, L50|157/157\n|move|p1b: Kangaskhan|Protect|p1b: Kangaskhan\n|-singleturn|p1b: Kangaskhan|Protect\n|move|p2a: Whimsicott|Beat Up|p2b: Annihilape\n|-damage|p2b: Annihilape|205/209\n|-damage|p2b: Annihilape|199/209\n|-damage|p2b: Annihilape|193/209\n|-hitcount|p2b: Annihilape|3\n|move|p2b: Annihilape|Rage Fist|p1a: Rotom\n|-damage|p1a: Rotom|4/157\n|-enditem|p1a: Rotom|Sitrus Berry|[eat]\n|-heal|p1a: Rotom|43/157|[from] item: Sitrus Berry\n|\n|upkeep\n|turn|4\n|\n|t:|1789184159\n|move|p1a: Rotom|Protect|p1a: Rotom\n|-singleturn|p1a: Rotom|Protect\n|move|p2a: Whimsicott|Moonblast|p1a: Rotom\n|-activate|p1a: Rotom|move: Protect\n|move|p2b: Annihilape|Bulk Up|p2b: Annihilape\n|-boost|p2b: Annihilape|atk|1\n|-boost|p2b: Annihilape|def|1\n|move|p1b: Kangaskhan|Double-Edge|p2b: Annihilape\n|-damage|p2b: Annihilape|117/209\n|-damage|p1b: Kangaskhan|157/182|[from] Recoil\n|\n|-sideend|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|upkeep\n|turn|5\n|\n|t:|1789184199\n|switch|p1b: Gengar|Gengar-Mega, L50, M|137/137\n|move|p2a: Whimsicott|Tailwind|p2a: Whimsicott\n|-sidestart|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|move|p2b: Annihilape|Drain Punch|p1b: Gengar\n|-immune|p1b: Gengar\n|move|p1a: Rotom|Hydro Pump|p2b: Annihilape|[miss]\n|-miss|p1a: Rotom|p2b: Annihilape\n|\n|upkeep\n|turn|6\n|\n|t:|1789184247\n|move|p1b: Gengar|Protect|p1b: Gengar\n|-singleturn|p1b: Gengar|Protect\n|move|p2a: Whimsicott|Moonblast|p1a: Rotom\n|-damage|p1a: Rotom|0 fnt\n|faint|p1a: Rotom\n|move|p2b: Annihilape|Rage Fist|p1b: Gengar\n|-activate|p1b: Gengar|move: Protect\n|\n|upkeep\n|\n|t:|1789184256\n|switch|p1a: Kangaskhan|Kangaskhan, L50, F|157/182\n|turn|7\n|\n|t:|1789184272\n|move|p2b: Annihilape|Protect|p2b: Annihilape\n|-singleturn|p2b: Annihilape|Protect\n|move|p1a: Kangaskhan|Fake Out|p2b: Annihilape\n|-activate|p2b: Annihilape|move: Protect\n|move|p2a: Whimsicott|Moonblast|p1a: Kangaskhan\n|-damage|p1a: Kangaskhan|75/182\n|move|p1b: Gengar|Shadow Ball|p2b: Annihilape\n|-activate|p2b: Annihilape|move: Protect\n|\n|upkeep\n|turn|8\n|\n|t:|1789184428\n|switch|p1a: Salamence|Salamence, L50, M|172/172\n|-ability|p1a: Salamence|Intimidate|boost\n|-unboost|p2a: Whimsicott|atk|1\n|-unboost|p2b: Annihilape|atk|1\n|-ability|p2b: Annihilape|Defiant|boost\n|-boost|p2b: Annihilape|atk|2\n|move|p1b: Gengar|Protect|p1b: Gengar\n|-singleturn|p1b: Gengar|Protect\n|move|p2a: Whimsicott|Moonblast|p1a: Salamence\n|-supereffective|p1a: Salamence|1\n|-crit|p1a: Salamence\n|-enditem|p1a: Salamence|Focus Sash\n|-damage|p1a: Salamence|1/172\n|move|p2b: Annihilape|Rage Fist|p1b: Gengar\n|-activate|p1b: Gengar|move: Protect\n|\n|-sideend|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|upkeep\n|turn|9\n|\n|t:|1789184476\n|switch|p1b: Kangaskhan|Kangaskhan, L50, F|75/182\n|move|p2a: Whimsicott|Tailwind|p2a: Whimsicott\n|-sidestart|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|move|p2b: Annihilape|Rage Fist|p1b: Kangaskhan\n|-immune|p1b: Kangaskhan\n|move|p1a: Salamence|Tailwind|p1a: Salamence\n|-sidestart|p1: p1-opencode:claude-fable-5-1|move: Tailwind\n|\n|upkeep\n|turn|10\n|\n|t:|1789184553\n|move|p2b: Annihilape|Protect|p2b: Annihilape\n|-singleturn|p2b: Annihilape|Protect\n|move|p1b: Kangaskhan|Fake Out|p2a: Whimsicott\n|-damage|p2a: Whimsicott|104/137\n|cant|p2a: Whimsicott|flinch\n|move|p1a: Salamence|Heat Wave|p2b: Annihilape|[spread] p2a\n|-activate|p2b: Annihilape|move: Protect\n|-supereffective|p2a: Whimsicott|1\n|-damage|p2a: Whimsicott|8/137\n|\n|upkeep\n|turn|11\n|\n|t:|1789184583\n|move|p2a: Whimsicott|Moonblast|p1a: Salamence\n|-supereffective|p1a: Salamence|1\n|-damage|p1a: Salamence|0 fnt\n|faint|p1a: Salamence\n|move|p1b: Kangaskhan|Double-Edge|p2b: Annihilape\n|-damage|p2b: Annihilape|47/209\n|-damage|p1b: Kangaskhan|52/182|[from] Recoil\n|move|p2b: Annihilape|Drain Punch|p1b: Kangaskhan\n|-supereffective|p1b: Kangaskhan|1\n|-damage|p1b: Kangaskhan|0 fnt\n|-heal|p2b: Annihilape|73/209|[from] drain|[of] p1b: Kangaskhan\n|faint|p1b: Kangaskhan\n|\n|upkeep\n|\n|t:|1789184589\n|switch|p1a: Gengar|Gengar-Mega, L50, M|137/137\n|turn|12\n|\n|t:|1789184617\n|move|p2b: Annihilape|Protect|p2b: Annihilape\n|-singleturn|p2b: Annihilape|Protect\n|move|p2a: Whimsicott|Taunt|p1a: Gengar\n|-start|p1a: Gengar|move: Taunt\n|move|p1a: Gengar|Shadow Ball|p2b: Annihilape\n|-activate|p2b: Annihilape|move: Protect\n|\n|-sideend|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|-sideend|p1: p1-opencode:claude-fable-5-1|move: Tailwind\n|upkeep\n|turn|13\n|\n|t:|1789184632\n|move|p2a: Whimsicott|Tailwind|p2a: Whimsicott\n|-sidestart|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|move|p2b: Annihilape|Rage Fist|p1a: Gengar\n|-supereffective|p1a: Gengar|1\n|-damage|p1a: Gengar|0 fnt\n|faint|p1a: Gengar\n|\n|win|p2-opencode:gpt-6-astra\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Gengar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Kangaskhan",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kangaskhan"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Salamence",
              "actor": { "side": 0, "slot": 0 },
              "species": "Salamence"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Rotom-Wash",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rotom-Wash"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Kingambit",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kingambit"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Altaria",
              "actor": { "side": 0, "slot": 0 },
              "species": "Altaria"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "species": "Whimsicott"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Annihilape",
              "actor": { "side": 1, "slot": 0 },
              "species": "Annihilape"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Maushold",
              "actor": { "side": 1, "slot": 0 },
              "species": "Maushold"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Excadrill",
              "actor": { "side": 1, "slot": 0 },
              "species": "Excadrill"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Weavile",
              "actor": { "side": 1, "slot": 0 },
              "species": "Weavile"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Hydrapple",
              "actor": { "side": 1, "slot": 0 },
              "species": "Hydrapple"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Gengar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Kangaskhan",
              "actor": { "side": 0, "slot": 1 },
              "species": "Kangaskhan",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "species": "Whimsicott",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Weavile",
              "actor": { "side": 1, "slot": 1 },
              "species": "Weavile",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "detail", "text": "Weavile ability: Pressure" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Gengar became Gengar-Mega",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar-Mega"
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Weavile used Fake Out → Kangaskhan",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Kangaskhan → 83%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 83,
              "status": null
            },
            { "turn": 1, "kind": "detail", "text": "Kangaskhan can't move (flinch)" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Whimsicott used Tailwind → Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 1, "kind": "field", "text": "Tailwind up on P2's side" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Gengar used Focus Blast → Weavile",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 1, "kind": "detail", "text": "Gengar missed" },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Gengar used Protect → Gengar",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Weavile used Knock Off → Gengar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Whimsicott used Beat Up → Gengar",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Kangaskhan used Drain Punch → Weavile",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 2, "kind": "detail", "text": "Super effective on Weavile" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Weavile → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Kangaskhan healed → 100% (drain)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 100,
              "status": null
            },
            {
              "turn": 2,
              "kind": "faint",
              "text": "Weavile fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 2,
              "kind": "switch",
              "text": "P2 sent out Annihilape",
              "actor": { "side": 1, "slot": 1 },
              "species": "Annihilape",
              "hp": 100,
              "status": null
            },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Rotom-Wash",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rotom-Wash",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Kangaskhan used Protect → Kangaskhan",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Whimsicott used Beat Up → Annihilape",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Annihilape → 98%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 98,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Annihilape → 95%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 95,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Annihilape → 92%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 92,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Annihilape used Rage Fist → Rotom",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Rotom → 3%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 3,
              "status": null
            },
            { "turn": 3, "kind": "detail", "text": "Rotom lost its Sitrus Berry" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Rotom healed → 27% (Sitrus Berry)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 27,
              "status": null
            },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "move",
              "text": "Rotom used Protect → Rotom",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Rotom",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Annihilape used Bulk Up → Annihilape",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 4, "kind": "detail", "text": "Annihilape atk +1" },
            { "turn": 4, "kind": "detail", "text": "Annihilape def +1" },
            {
              "turn": 4,
              "kind": "move",
              "text": "Kangaskhan used Double-Edge → Annihilape",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Annihilape → 56%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 56,
              "status": null
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Kangaskhan → 86% (Recoil)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 86,
              "status": null
            },
            { "turn": 4, "kind": "field", "text": "Tailwind ended on P2's side" },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Gengar-Mega",
              "actor": { "side": 0, "slot": 1 },
              "species": "Gengar-Mega",
              "hp": 100,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Whimsicott used Tailwind → Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 5, "kind": "field", "text": "Tailwind up on P2's side" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Annihilape used Drain Punch → Gengar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "detail", "text": "Gengar is immune" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Rotom used Hydro Pump → Annihilape",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 5, "kind": "detail", "text": "Rotom missed" },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "move",
              "text": "Gengar used Protect → Gengar",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Rotom",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Rotom → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 6,
              "kind": "faint",
              "text": "Rotom fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Annihilape used Rage Fist → Gengar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "switch",
              "text": "P1 sent out Kangaskhan",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kangaskhan",
              "hp": 86,
              "status": null
            },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "move",
              "text": "Annihilape used Protect → Annihilape",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Kangaskhan used Fake Out → Annihilape",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Kangaskhan",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Kangaskhan → 41%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 41,
              "status": null
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Gengar used Shadow Ball → Annihilape",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 8, "kind": "turn", "text": "Turn 8" },
            {
              "turn": 8,
              "kind": "switch",
              "text": "P1 sent out Salamence",
              "actor": { "side": 0, "slot": 0 },
              "species": "Salamence",
              "hp": 100,
              "status": null
            },
            { "turn": 8, "kind": "detail", "text": "Salamence ability: Intimidate" },
            { "turn": 8, "kind": "detail", "text": "Whimsicott atk -1" },
            { "turn": 8, "kind": "detail", "text": "Annihilape atk -1" },
            { "turn": 8, "kind": "detail", "text": "Annihilape ability: Defiant" },
            { "turn": 8, "kind": "detail", "text": "Annihilape atk +2" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Gengar used Protect → Gengar",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Salamence",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 8, "kind": "detail", "text": "Super effective on Salamence" },
            { "turn": 8, "kind": "detail", "text": "Critical hit on Salamence" },
            { "turn": 8, "kind": "detail", "text": "Salamence lost its Focus Sash" },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Salamence → 1%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 1,
              "status": null
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Annihilape used Rage Fist → Gengar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 8, "kind": "field", "text": "Tailwind ended on P2's side" },
            { "turn": 9, "kind": "turn", "text": "Turn 9" },
            {
              "turn": 9,
              "kind": "switch",
              "text": "P1 sent out Kangaskhan",
              "actor": { "side": 0, "slot": 1 },
              "species": "Kangaskhan",
              "hp": 41,
              "status": null
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Whimsicott used Tailwind → Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 9, "kind": "field", "text": "Tailwind up on P2's side" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Annihilape used Rage Fist → Kangaskhan",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 9, "kind": "detail", "text": "Kangaskhan is immune" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Salamence used Tailwind → Salamence",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 9, "kind": "field", "text": "Tailwind up on P1's side" },
            { "turn": 10, "kind": "turn", "text": "Turn 10" },
            {
              "turn": 10,
              "kind": "move",
              "text": "Annihilape used Protect → Annihilape",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 10,
              "kind": "move",
              "text": "Kangaskhan used Fake Out → Whimsicott",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Whimsicott → 76%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 76,
              "status": null
            },
            { "turn": 10, "kind": "detail", "text": "Whimsicott can't move (flinch)" },
            {
              "turn": 10,
              "kind": "move",
              "text": "Salamence used Heat Wave → Annihilape",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 10, "kind": "detail", "text": "Super effective on Whimsicott" },
            {
              "turn": 10,
              "kind": "detail",
              "text": "Whimsicott → 6%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 6,
              "status": null
            },
            { "turn": 11, "kind": "turn", "text": "Turn 11" },
            {
              "turn": 11,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Salamence",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 11, "kind": "detail", "text": "Super effective on Salamence" },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Salamence → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 11,
              "kind": "faint",
              "text": "Salamence fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 11,
              "kind": "move",
              "text": "Kangaskhan used Double-Edge → Annihilape",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Annihilape → 22%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 22,
              "status": null
            },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Kangaskhan → 29% (Recoil)",
              "actor": { "side": 0, "slot": 1 },
              "hp": 29,
              "status": null
            },
            {
              "turn": 11,
              "kind": "move",
              "text": "Annihilape used Drain Punch → Kangaskhan",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 11, "kind": "detail", "text": "Super effective on Kangaskhan" },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Kangaskhan → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 11,
              "kind": "detail",
              "text": "Annihilape healed → 35% (drain)",
              "actor": { "side": 1, "slot": 1 },
              "hp": 35,
              "status": null
            },
            {
              "turn": 11,
              "kind": "faint",
              "text": "Kangaskhan fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 11,
              "kind": "switch",
              "text": "P1 sent out Gengar-Mega",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar-Mega",
              "hp": 100,
              "status": null
            },
            { "turn": 12, "kind": "turn", "text": "Turn 12" },
            {
              "turn": 12,
              "kind": "move",
              "text": "Annihilape used Protect → Annihilape",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 12,
              "kind": "move",
              "text": "Whimsicott used Taunt → Gengar",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 12, "kind": "detail", "text": "Gengar: Taunt" },
            {
              "turn": 12,
              "kind": "move",
              "text": "Gengar used Shadow Ball → Annihilape",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 12, "kind": "field", "text": "Tailwind ended on P2's side" },
            { "turn": 12, "kind": "field", "text": "Tailwind ended on P1's side" },
            { "turn": 13, "kind": "turn", "text": "Turn 13" },
            {
              "turn": 13,
              "kind": "move",
              "text": "Whimsicott used Tailwind → Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 13, "kind": "field", "text": "Tailwind up on P2's side" },
            {
              "turn": 13,
              "kind": "move",
              "text": "Annihilape used Rage Fist → Gengar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 13, "kind": "detail", "text": "Super effective on Gengar" },
            {
              "turn": 13,
              "kind": "detail",
              "text": "Gengar → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 13,
              "kind": "faint",
              "text": "Gengar fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            { "turn": 13, "kind": "win", "text": "opencode:gpt-6-astra (P2) won the game" }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-3",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1234",
              "selection": ["Pick Gengar", "Pick Kangaskhan", "Pick Salamence", "Pick Rotom-Wash"],
              "rationale": "Lead Gengar + Kangaskhan for Fake Out + Mega Gengar Shadow Tag pressure (Sludge Bomb Whimsicott, Shadow Ball Annihilape; Scrappy Fake Out hits Annihilape too). Back Salamence (Tailwind/Intimidate/Heat Wave for Excadrill/Whimsicott/Weavile) and Rotom-Wash as the Mega Excadrill answer (Levitate, Hydro Pump, Will-O-Wisp). Left Kingambit (Ground/Fighting weak vs Excadrill/Annihilape) and Altaria.",
              "automatic": false,
              "latencyMs": 86365,
              "reasoningTokens": 2645,
              "reasoningChars": 4
            },
            {
              "franchiseId": "franchise-4",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1524",
              "selection": ["Pick Whimsicott", "Pick Weavile", "Pick Annihilape", "Pick Excadrill"],
              "rationale": "Lead Whimsicott + Weavile to secure speed control against Kangaskhan with the verified faster Fake Out, while threatening Salamence with Triple Axel. Keep Annihilape as the anti-Kangaskhan/Kingambit and potential Beat Up win condition, and Excadrill as the primary Mega Gengar/Altaria attacker. This avoids exposing Annihilape immediately to fast Gengar while retaining two strong damage plans; Rotom is handled through charged Annihilape rather than diluting the four with another support or slower specialist.",
              "automatic": false,
              "latencyMs": 24237,
              "reasoningTokens": 447,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-3",
              "turn": 1,
              "phase": "turn",
              "action": "move 3 +2 mega, move 1 +1",
              "selection": [
                "Focus Blast -> foe 2 (Weavile) + Mega Evolve",
                "Fake Out -> foe 1 (Whimsicott)"
              ],
              "rationale": "Mega Gengar (200 Spe) outspeeds both foes; Focus Blast is a guaranteed OHKO on Weavile if it hits (70%), removing the only thing that threatens Gengar (Knock Off 76-111%). Kangaskhan Fake Out Whimsicott: +3 priority beats Prankster Tailwind, flinches it and breaks Sash if Weavile doesn't Fake Out Kangaskhan first. Sludge Bomb on Whimsicott would only leave it at 1 HP through Sash if Kanga is flinched, while letting Weavile set up a Tailwind Knock Off next turn.",
              "automatic": false,
              "latencyMs": 60791,
              "reasoningTokens": 3809,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 1,
              "phase": "turn",
              "action": "move 1, move 1 +2",
              "selection": [
                "Tailwind (your side, including ally Weavile)",
                "Fake Out -> foe 2 (Kangaskhan)"
              ],
              "rationale": "Fake Out Kangaskhan before its own Fake Out, ensuring priority Tailwind succeeds. Gengar cannot stop both the speed setup and our follow-up attackers alone; this also scouts which opposing Mega they commit.",
              "automatic": false,
              "latencyMs": 3340,
              "reasoningTokens": 0,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 2,
              "phase": "turn",
              "action": "move 4, move 3 +2",
              "selection": ["Protect", "Drain Punch -> foe 2 (Weavile)"],
              "rationale": "Under their Tailwind Weavile outspeeds Mega Gengar and Knock Off does 76-111%, so Gengar Protects. Kangaskhan Drain Punch (4x, 81-163%) threatens to KO Weavile and heals. If Weavile Protects, next turn Gengar pivots to Rotom-Wash (Knock Off 31-70%) while Kanga repeats Drain Punch; Shadow Tag keeps both foes trapped meanwhile.",
              "automatic": false,
              "latencyMs": 26580,
              "reasoningTokens": 1146,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 2,
              "phase": "turn",
              "action": "move 2 +1, move 2 +1",
              "selection": ["Beat Up -> foe 1 (Gengar-Mega)", "Knock Off -> foe 1 (Gengar-Mega)"],
              "rationale": "Concentrate Knock Off and four-participant super-effective Beat Up into Mega Gengar while Tailwind guarantees Whimsicott acts before it. Knock Off alone is not a reliable KO across hidden bulk, and Moonblast is resisted. If Gengar Protects and Kangaskhan removes Weavile, Annihilape gains entry for the remaining Tailwind turns and Beat Up; otherwise removing Gengar unlocks our positioning.",
              "automatic": false,
              "latencyMs": 13338,
              "reasoningTokens": 132,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 2,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Annihilape"],
              "rationale": "Bring Annihilape to threaten Beat Up into boosted Rage Fist during Tailwind, with Gengar's consecutive Protect unreliable. Preserve Excadrill for cleanup.",
              "automatic": false,
              "latencyMs": 4113,
              "reasoningTokens": 0,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 3,
              "phase": "turn",
              "action": "switch 4, move 4",
              "selection": ["Switch to Rotom-Wash", "Protect"],
              "rationale": "Under Tailwind (2 turns) Annihilape outspeeds Mega Gengar and Rage Fist does 61-92% with Beat Up finishing; Gengar's Protect is on cooldown, so pivot Gengar to Rotom-Wash (Rage Fist 17-39%, Drain Punch 26-58%, Sitrus). Kangaskhan Protects to avoid Annihilape Drain Punch (69-102%) and burn a Tailwind turn. Plan: turn 4 Rotom attacks/Wisps, Kanga pivots to Gengar (immune to Drain Punch aimed at that slot); turn 5 Tailwind ends and Gengar at 200 Spe outspeeds all and cleans with Shadow Ball/Sludge Bomb.",
              "automatic": false,
              "latencyMs": 58990,
              "reasoningTokens": 3260,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 3,
              "phase": "turn",
              "action": "move 2 -2, move 1 +1",
              "selection": ["Beat Up -> ally 2 (Annihilape)", "Rage Fist -> foe 1 (Gengar-Mega)"],
              "rationale": "Beat Up charges Annihilape before its Rage Fist, and Tailwind guarantees both act before Gengar. Remove the opposing Mega and trapping threat now; even a defensive switch or repeated Protect leaves persistent Rage Fist charge for the endgame.",
              "automatic": false,
              "latencyMs": 5947,
              "reasoningTokens": 0,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 4,
              "phase": "turn",
              "action": "move 4, move 2 +2",
              "selection": ["Protect", "Double-Edge -> foe 2 (Annihilape)"],
              "rationale": "Annihilape's Rage Fist is now 200 BP (3 Beat Up hits) and it outspeeds everything this last Tailwind turn; Rotom at 27% is its obvious target, so Rotom Protects to waste that turn. Kangaskhan (immune to Rage Fist) Double-Edges Annihilape for 35-64%, putting it in range for Kanga (156 > 110-142 once Tailwind ends) to finish next turn, with Gengar kept safely in back to clean once Annihilape is gone. Never bring Gengar in while Annihilape lives - 200 BP Rage Fist OHKOs it.",
              "automatic": false,
              "latencyMs": 71088,
              "reasoningTokens": 4063,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 4,
              "phase": "turn",
              "action": "move 3 +1, move 3",
              "selection": ["Moonblast -> foe 1 (Rotom-Wash)", "Bulk Up"],
              "rationale": "Moonblast threatens to finish 27% Rotom without spending Annihilape's attack. Bulk Up exploits likely Protect/switch stalling on the last Tailwind turn, avoids throwing Drain Punch into a Gengar switch, and strengthens Annihilape against Scrappy Kangaskhan. Full-health Sash Whimsicott can renew Tailwind next turn.",
              "automatic": false,
              "latencyMs": 14580,
              "reasoningTokens": 104,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-3",
              "turn": 5,
              "phase": "turn",
              "action": "move 1 +2, switch 4",
              "selection": ["Hydro Pump -> foe 2 (Annihilape)", "Switch to Gengar-Mega"],
              "rationale": "Annihilape at +1 now OHKOs Kanga with Drain Punch and Rotom with anything; Kanga's Double-Edge into +1 Def won't finish 55%. Pivot Kanga to Gengar: a Drain Punch aimed at that slot is immune, Rage Fist should be aimed at Rotom (Kanga is Ghost-immune), so Gengar enters safely. With Tailwind gone Gengar (200) outspeeds everything and Shadow Ball (66%+) KOs Annihilape from 55% next turn unless it Protects; Shadow Tag keeps it trapped. Rotom likely dies first but Hydro Pumps Annihilape if it survives (35-62%, can KO).",
              "automatic": false,
              "latencyMs": 40128,
              "reasoningTokens": 2744,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 5,
              "phase": "turn",
              "action": "move 1, move 2 +2",
              "selection": [
                "Tailwind (your side, including ally Annihilape)",
                "Drain Punch -> foe 2 (Kangaskhan)"
              ],
              "rationale": "Renew Tailwind and use boosted Drain Punch to remove or heavily damage Kangaskhan while restoring Annihilape. Rotom alone cannot KO current Annihilape with the evaluated Hydro Pump range; Lum covers its first burn attempt. This prioritizes recovery and the Normal-type obstacle to charged Rage Fist.",
              "automatic": false,
              "latencyMs": 11368,
              "reasoningTokens": 127,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 6,
              "phase": "turn",
              "action": "move 1 +2, move 4",
              "selection": ["Hydro Pump -> foe 2 (Annihilape)", "Protect"],
              "rationale": "Tailwind is back so +1 Annihilape outspeeds Gengar and its 200 BP Rage Fist OHKOs; Gengar Protects (off cooldown) to burn a Tailwind turn. Rotom is likely KO'd first, but if it survives Hydro Pump on Annihilape (35-62% vs 55%) has real KO odds. Next turn plan: pivot Gengar to Kangaskhan (Ghost-immune) to absorb Rage Fist, and look to kill Annihilape with Gengar Shadow Ball once Tailwind lapses or it is forced out of Protect.",
              "automatic": false,
              "latencyMs": 48061,
              "reasoningTokens": 3046,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 6,
              "phase": "forced_switch",
              "action": "switch 4, pass",
              "selection": ["Switch to Kangaskhan", "Pass"],
              "rationale": "Kangaskhan replaces Rotom: it is immune to Rage Fist and doesn't trigger Defiant (Salamence's Intimidate would give Annihilape +2). Next turn Scrappy Fake Out (+3 priority) can flinch Annihilape before it moves under Tailwind, letting Gengar Shadow Ball KO it from 55%.",
              "automatic": false,
              "latencyMs": 9130,
              "reasoningTokens": 370,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 6,
              "phase": "turn",
              "action": "move 3 +1, move 1 +2",
              "selection": ["Moonblast -> foe 1 (Rotom-Wash)", "Rage Fist -> foe 2 (Gengar-Mega)"],
              "rationale": "Threaten both KOs with Moonblast into weakened Rotom and charged +1 Rage Fist into Gengar. Both attackers outspeed under Tailwind. Opponent can defend with Protect or Kangaskhan pivoting into Rage Fist, but this denies a free offensive turn and avoids risking Annihilape on an unnecessary prediction.",
              "automatic": false,
              "latencyMs": 6405,
              "reasoningTokens": 68,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 7,
              "phase": "turn",
              "action": "move 1 +2, move 2 +2",
              "selection": ["Fake Out -> foe 2 (Annihilape)", "Shadow Ball -> foe 2 (Annihilape)"],
              "rationale": "Scrappy Fake Out (+3) hits Annihilape through its Ghost typing before it moves under Tailwind, flinching it so its Rage Fist can't OHKO Gengar; Gengar Shadow Ball (min 66%) then KOs Annihilape from 55%. Only Annihilape Protect stops it, in which case Gengar just eats a weak Beat Up/Moonblast and we re-evaluate with Tailwind down to 1 turn.",
              "automatic": false,
              "latencyMs": 15508,
              "reasoningTokens": 762,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 7,
              "phase": "turn",
              "action": "move 3 +1, move 4",
              "selection": ["Moonblast -> foe 1 (Kangaskhan)", "Protect"],
              "rationale": "Protect Annihilape against returning Scrappy Kangaskhan's Fake Out plus Gengar Shadow Ball. Moonblast chips Kangaskhan into safer Drain Punch range if it targets Annihilape; if Fake Out hits Whimsicott instead, Annihilape remains safe and we still have a Tailwind turn to attack.",
              "automatic": false,
              "latencyMs": 5791,
              "reasoningTokens": 54,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 8,
              "phase": "turn",
              "action": "switch 3, move 4",
              "selection": ["Switch to Salamence", "Protect"],
              "rationale": "Gengar must Protect (Annihilape under Tailwind, 200 BP Rage Fist OHKOs) - Protect is off cooldown. Kanga at 41% dies to Drain Punch/half of Moonblasts, so pivot it to Salamence: it takes the hit aimed at Kanga (Moonblast 60-95% / resisted Drain Punch), Kanga is preserved in the back to reset Scrappy Fake Out (our only way to stop Rage Fist while Gengar attacks), and Salamence can Tailwind/Draco next turn. Double Protect would just hand Annihilape a fresh Protect while ours are reduced. Next turn: Gengar likely pivots to Kanga (Rage Fist immune) while Salamence Tailwinds.",
              "automatic": false,
              "latencyMs": 155695,
              "reasoningTokens": 10595,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 8,
              "phase": "turn",
              "action": "move 3 +1, move 1 +2",
              "selection": ["Moonblast -> foe 1 (Kangaskhan)", "Rage Fist -> foe 2 (Gengar-Mega)"],
              "rationale": "Moonblast again threatens Kangaskhan after dealing 45% last turn, while Rage Fist threatens Gengar. Attack both slots on the final Tailwind turn; Whimsicott remains full-health with Sash to renew speed control if they Protect.",
              "automatic": false,
              "latencyMs": 7433,
              "reasoningTokens": 20,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 9,
              "phase": "turn",
              "action": "move 1, switch 3",
              "selection": [
                "Tailwind (your side, including ally Gengar-Mega)",
                "Switch to Kangaskhan"
              ],
              "rationale": "Whimsicott will Prankster Tailwind again, making +2 Annihilape outspeed Gengar with an OHKO Rage Fist while Gengar's Protect is reduced, so Gengar pivots to Kangaskhan (immune to Rage Fist, resets Fake Out). Salamence at 1% uses its last action on Tailwind: under our Tailwind Gengar hits 400 Spe, above their Tailwind Annihilape (max 284), so Gengar can Shadow Ball it before it moves. Plan: T10 Kanga Fake Out Annihilape + Sludge Bomb Whimsicott (no Protect on it) / Salamence Draco if alive; T11 Gengar Shadow Ball KOs Annihilape (Protect reduced) while Kanga finishes Whimsicott.",
              "automatic": false,
              "latencyMs": 48246,
              "reasoningTokens": 3176,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 9,
              "phase": "turn",
              "action": "move 1, move 1 +2",
              "selection": [
                "Tailwind (your side, including ally Annihilape)",
                "Rage Fist -> foe 2 (Gengar-Mega)"
              ],
              "rationale": "Reestablish priority Tailwind and threaten Gengar with +2 charged Rage Fist before it can attack. Salamence may match Tailwind, but preserving our speed control keeps Whimsicott ahead of it and enables a follow-up Moonblast at 1%; Gengar cannot reliably repeat Protect.",
              "automatic": false,
              "latencyMs": 10717,
              "reasoningTokens": 212,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 10,
              "phase": "turn",
              "action": "move 2, move 1 +1",
              "selection": ["Heat Wave (both foes)", "Fake Out -> foe 1 (Whimsicott)"],
              "rationale": "Fake Out Whimsicott (+3) stops its Moonblast on 1% Salamence, breaks Focus Sash (15-29%) and guarantees Salamence acts (334 Spe > Annihilape). Heat Wave then does 41-82% to Whimsicott (roughly coin-flip KO, otherwise very low with no Sash) and chips Annihilape 14-25% through any Protect read. Annihilape's reply will likely KO Salamence or Kanga, bringing Gengar in for free under our Tailwind (2 turns left) where at 400 Spe it Shadow Balls Annihilape before Rage Fist; if they Protect, Gengar isn't hit either.",
              "automatic": false,
              "latencyMs": 76921,
              "reasoningTokens": 4885,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 10,
              "phase": "turn",
              "action": "move 3 +1, move 4",
              "selection": ["Moonblast -> foe 1 (Salamence)", "Protect"],
              "rationale": "Protect Annihilape through Kangaskhan's renewed Fake Out and Salamence's potential Draco Meteor. Moonblast removes Salamence before its normal-priority move if Kangaskhan targets Annihilape again, preventing further Tailwind refreshes.",
              "automatic": false,
              "latencyMs": 5452,
              "reasoningTokens": 46,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 11,
              "phase": "turn",
              "action": "move 3 +2, move 2 +2",
              "selection": [
                "Draco Meteor -> foe 2 (Annihilape)",
                "Double-Edge -> foe 2 (Annihilape)"
              ],
              "rationale": "Both our actives outspeed Annihilape under Tailwind and its Protect is reduced. Draco Meteor (39-70%) + Double-Edge (24-43%) total at least 63% vs its 55%, so if Salamence isn't KO'd first by a faster Whimsicott Moonblast and Draco hits (90%), Annihilape dies before it can Drain Punch. Removing Annihilape lets Gengar (400 Spe under our Tailwind) clean the 5% Whimsicott and the last foe freely; Whimsicott at 5% with no Sash is a non-threat that anything finishes later.",
              "automatic": false,
              "latencyMs": 29998,
              "reasoningTokens": 1954,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 11,
              "phase": "forced_switch",
              "action": "switch 3, pass",
              "selection": ["Switch to Gengar-Mega", "Pass"],
              "rationale": "Gengar is the last Pokémon; send it in. Under our Tailwind (1 more turn) it moves at 400, first: Shadow Ball KOs Annihilape (34%) unless it Protects, in which case Gengar isn't attacked and Sludge Bomb/Shadow Ball finishes Whimsicott next.",
              "automatic": false,
              "latencyMs": 6351,
              "reasoningTokens": 90,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 11,
              "phase": "turn",
              "action": "move 3 +1, move 2 +2",
              "selection": ["Moonblast -> foe 1 (Salamence)", "Drain Punch -> foe 2 (Kangaskhan)"],
              "rationale": "Pressure both weakened targets: Moonblast removes Salamence before it attacks, while +2 Drain Punch KOs Kangaskhan and restores Annihilape if it stays. Annihilape can survive Kangaskhan's unboosted Double-Edge from its current health, and this forces defensive action rather than allowing more free damage.",
              "automatic": false,
              "latencyMs": 9216,
              "reasoningTokens": 199,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 12,
              "phase": "turn",
              "action": "move 2 +2, pass",
              "selection": ["Shadow Ball -> foe 2 (Annihilape)", "Pass"],
              "rationale": "Gengar moves first at 400 Spe; Shadow Ball (min 66%) KOs Annihilape from 34% unless it Protects, and if it Protects it can't Rage Fist. This forces their Protect now so next turn (no Tailwinds, Gengar 200 still fastest) Shadow Ball beats a reduced-rate Protect 2/3 of the time. Sludge Bombing the 5% Whimsicott first would leave Gengar exposed to a lethal Rage Fist. Shadow Tag keeps both foes trapped so the 4th Pokémon can't be pivoted in.",
              "automatic": false,
              "latencyMs": 27574,
              "reasoningTokens": 1494,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 12,
              "phase": "turn",
              "action": "move 4 +1, move 4",
              "selection": ["Taunt -> foe 1 (Gengar-Mega)", "Protect"],
              "rationale": "Protect low-health Annihilape while priority Taunt denies Gengar future Protect stalls. If Gengar attacks Annihilape, Whimsicott can renew Tailwind next turn; if it removes Whimsicott, Excadrill enters beside Annihilape and both threaten the last opponent.",
              "automatic": false,
              "latencyMs": 10404,
              "reasoningTokens": 226,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 13,
              "phase": "turn",
              "action": "move 2 +2, pass",
              "selection": ["Shadow Ball -> foe 2 (Annihilape)", "Pass"],
              "rationale": "Gengar outspeeds; Shadow Ball KOs Annihilape from 34% unless its reduced-rate Protect (1/3) succeeds, and a Protecting Annihilape can't Rage Fist. Any other target risks eating a lethal Rage Fist. Whimsicott at 5% is cleaned up afterward.",
              "automatic": false,
              "latencyMs": 8855,
              "reasoningTokens": 260,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 13,
              "phase": "turn",
              "action": "move 1, move 1 +1",
              "selection": [
                "Tailwind (your side, including ally Annihilape)",
                "Rage Fist -> foe 1 (Gengar-Mega)"
              ],
              "rationale": "Priority Tailwind restores Annihilape's verified Speed advantage, then +2 fully charged Rage Fist removes the final Gengar. Taunt prevents Protect.",
              "automatic": false,
              "latencyMs": 14276,
              "reasoningTokens": 0,
              "reasoningChars": 0
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-3",
              "result": "lost",
              "summary": "Lost G1 in 13 turns, 0-4 vs their Whimsicott/Annihilape (Weavile KO'd, 4th never revealed). Turning points: (1) T1 Focus Blast miss on Weavile (70%) cost a free KO and let Tailwind go up; (2) T3 Whimsicott Beat Up into its own Annihilape made Rage Fist 200 BP - it nearly OHKO'd Rotom and forced Gengar to Protect/pivot every Annihilape turn; (3) T8 I switched Salamence in next to Annihilape despite my own \"never Intimidate Annihilape\" note - Defiant gave it +2 net +1, then a crit Moonblast burned the Sash; (4) opponent read every Gengar Protect perfectly: Annihilape Protected exactly on the turns Gengar attacked (T7, T10, T12) and attacked on the turns Gengar Protected (T6, T8). (5) The decisive error was T12: I Shadow Balled Annihilape into a predictable Protect instead of Sludge Bombing the 5% Whimsicott. With Whimsicott alive, Prankster Tailwind always resolves first, so Mega Gengar's 200 Speed never actually beats Annihilape; killing Whimsicott T12 would have given a 2/3 (reduced Protect) win on T13. Rotom-Wash contributed nothing (Hydro Pump miss, then KO'd) - it is a poor bring into this Whimsicott/Annihilape core. Kangaskhan was our best piece: Scrappy Fake Out + Ghost immunity + Drain Punch OHKO on Weavile.",
              "adjustment": "Keep: Gengar + Kangaskhan core (Kanga unmega'd to keep Scrappy), Salamence Tailwind for speed parity. Change: drop Rotom-Wash for Kingambit (resists Rage Fist, Iron Head OHKO threat on Weavile/Whimsicott, Sucker Punch ignores their Tailwind, Chople eats one Drain Punch). Prioritise removing Whimsicott before trying to Shadow Ball Annihilape - Prankster Tailwind means Gengar never outspeeds Annihilape while Whimsicott lives. Exploit the opponent's alternating Protect rhythm: after Annihilape Protects, it attacks next turn (Gengar Protects or pivots to Kanga); after Gengar Protects, Annihilape Protects next turn (use that turn to hit Whimsicott or set Tailwind, not to hit Annihilape). Never switch Salamence in while Annihilape is active."
            },
            {
              "franchiseId": "franchise-4",
              "result": "won",
              "summary": "Won 13 turns, taking a 1–0 series lead with Excadrill untouched and no decision errors. Fast Fake Out secured Tailwind; three-hit Beat Up established Annihilape's damage, while Whimsicott's Moonblast supplied essential progress against Rotom, Kangaskhan and Salamence. Bulk Up and correctly timed Protects kept Ape alive, and Taunt + Protect into renewed Tailwind closed safely against Gengar. The main inefficiency was repeatedly attacking into Gengar Protect or immunity pivots, starting with the T2 double-target that lost Weavile for no damage. The win also benefited from T5 Hydro Pump missing Ape and T8's critical Moonblast breaking Salamence's Sash; T1 Focus Blast missed too, though a hit would have provided earlier Ape entry. Do not treat this as a guaranteed repeatable sweep.",
              "adjustment": "Retain Whimsicott/Weavile lead with Annihilape/Excadrill back as the default. Against the same lead, faster Fake Out + Tailwind remains sound. Reassess T2 rather than automatically doubling Gengar: Protect Weavile + Moonblast Kangaskhan is a consideration if expecting the same Gengar Protect/Drain Punch response. Use earlier Taunt only when it can connect safely; it cannot stop Protect already used that turn. Preserve Whimsicott's renewal opportunities and respect opposing Tailwind: equal Tailwinds leave Ape slower than their attackers. Watch both Fake Out targets on Kangaskhan reentry and continue using Moonblast to pressure immunity pivots. Keep Excadrill available for an Altaria adaptation."
            }
          ]
        },
        {
          "number": 2,
          "winnerId": "franchise-3",
          "turns": 7,
          "brought": [
            ["kangaskhan-mega", "kingambit", "gengar-mega", "salamence"],
            ["whimsicott", "weavile", "annihilape", "excadrill-mega"]
          ],
          "megaEvolved": ["gengar-mega", "excadrill-mega"],
          "faints": [
            { "kingambit": 1, "kangaskhan-mega": 1 },
            { "weavile": 1, "whimsicott": 1, "excadrill-mega": 1, "annihilape": 1 }
          ],
          "raw": "|t:|1789184732\n|gametype|doubles\n|player|p1|p1-opencode:claude-fable-5-1||\n|player|p2|p2-opencode:gpt-6-astra||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Gengar, L50, M|\n|poke|p1|Kangaskhan, L50, F|\n|poke|p1|Salamence, L50, M|\n|poke|p1|Rotom-Wash, L50|\n|poke|p1|Kingambit, L50, M|\n|poke|p1|Altaria, L50, M|\n|poke|p2|Whimsicott, L50, M|\n|poke|p2|Annihilape, L50, F|\n|poke|p2|Maushold, L50|\n|poke|p2|Excadrill, L50, M|\n|poke|p2|Weavile, L50, M|\n|poke|p2|Hydrapple, L50, M|\n|teampreview|4\n|showteam|p1|Gengar||Gengarite|CursedBody|SludgeBomb,ShadowBall,FocusBlast,Protect|Timid||M|||50|]Kangaskhan||Kangaskhanite|Scrappy|FakeOut,DoubleEdge,DrainPunch,Protect|Jolly||F|||50|]Salamence||FocusSash|Intimidate|Tailwind,HeatWave,DracoMeteor,Protect|Timid||M|||50|]Rotom-Wash||SitrusBerry|Levitate|HydroPump,Thunderbolt,WillOWisp,Protect|Modest|||||50|]Kingambit||ChopleBerry|Defiant|KowtowCleave,IronHead,SuckerPunch,Protect|Adamant||M|||50|]Altaria||Altarianite|NaturalCure|HyperVoice,HeatWave,Tailwind,Protect|Modest||M|||50|\n|showteam|p2|Whimsicott||FocusSash|Prankster|Tailwind,BeatUp,Moonblast,Taunt|Timid||M|||50|]Annihilape||LumBerry|Defiant|RageFist,DrainPunch,BulkUp,Protect|Adamant||F|||50|]Maushold||RockyHelmet|FriendGuard|FollowMe,SuperFang,HelpingHand,Protect|Bold|||||50|]Excadrill||Excadrite|MoldBreaker|HighHorsepower,IronHead,SwordsDance,Protect|Jolly||M|||50|]Weavile||WideLens|Pressure|FakeOut,KnockOff,TripleAxel,Protect|Jolly||M|||50|]Hydrapple||SitrusBerry|Regenerator|GigaDrain,DracoMeteor,EarthPower,Protect|Modest||M|||50|\n|\n|t:|1789184782\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Kangaskhan|Kangaskhan, L50, F|182/182\n|switch|p1b: Kingambit|Kingambit, L50, M|207/207\n|switch|p2a: Whimsicott|Whimsicott, L50, M|137/137\n|switch|p2b: Weavile|Weavile, L50, M|147/147\n|-ability|p2b: Weavile|Pressure\n|turn|1\n|\n|t:|1789184834\n|switch|p2a: Annihilape|Annihilape, L50, F|209/209\n|move|p2b: Weavile|Fake Out|p1a: Kangaskhan\n|-damage|p1a: Kangaskhan|153/182\n|cant|p1a: Kangaskhan|flinch\n|move|p1b: Kingambit|Iron Head|p2b: Weavile\n|-supereffective|p2b: Weavile|1\n|-damage|p2b: Weavile|0 fnt\n|faint|p2b: Weavile\n|\n|upkeep\n|\n|t:|1789184838\n|switch|p2b: Whimsicott|Whimsicott, L50, M|137/137\n|turn|2\n|\n|t:|1789184944\n|move|p1a: Kangaskhan|Protect|p1a: Kangaskhan\n|-singleturn|p1a: Kangaskhan|Protect\n|move|p2b: Whimsicott|Beat Up|p2a: Annihilape\n|-damage|p2a: Annihilape|203/209\n|-damage|p2a: Annihilape|199/209\n|-damage|p2a: Annihilape|192/209\n|-hitcount|p2a: Annihilape|3\n|move|p2a: Annihilape|Bulk Up|p2a: Annihilape\n|-boost|p2a: Annihilape|atk|1\n|-boost|p2a: Annihilape|def|1\n|move|p1b: Kingambit|Iron Head|p2b: Whimsicott\n|-supereffective|p2b: Whimsicott|1\n|-enditem|p2b: Whimsicott|Focus Sash\n|-damage|p2b: Whimsicott|1/137\n|\n|upkeep\n|turn|3\n|\n|t:|1789185009\n|switch|p1a: Gengar|Gengar, L50, M|137/137\n|move|p2b: Whimsicott|Tailwind|p2b: Whimsicott\n|-sidestart|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|move|p2a: Annihilape|Drain Punch|p1b: Kingambit\n|-supereffective|p1b: Kingambit|2\n|-enditem|p1b: Kingambit|Chople Berry|[eat]\n|-enditem|p1b: Kingambit|Chople Berry|[weaken]\n|-damage|p1b: Kingambit|49/207\n|-heal|p2a: Annihilape|209/209|[from] drain|[of] p1b: Kingambit\n|move|p1b: Kingambit|Iron Head|p2b: Whimsicott\n|-supereffective|p2b: Whimsicott|1\n|-damage|p2b: Whimsicott|0 fnt\n|faint|p2b: Whimsicott\n|\n|upkeep\n|\n|t:|1789185009\n|switch|p2b: Excadrill|Excadrill, L50, M|187/187\n|-ability|p2b: Excadrill|Mold Breaker\n|turn|4\n|\n|t:|1789185166\n|switch|p1a: Kangaskhan|Kangaskhan, L50, F|153/182\n|detailschange|p2b: Excadrill|Excadrill-Mega, L50, M\n|-mega|p2b: Excadrill|Excadrill|Excadrite\n|move|p1b: Kingambit|Sucker Punch|p2b: Excadrill\n|-damage|p2b: Excadrill|118/187\n|move|p2b: Excadrill|High Horsepower|p1a: Kangaskhan\n|-damage|p1a: Kangaskhan|33/182\n|move|p2a: Annihilape|Drain Punch|p1b: Kingambit\n|-supereffective|p1b: Kingambit|2\n|-crit|p1b: Kingambit\n|-damage|p1b: Kingambit|0 fnt\n|faint|p1b: Kingambit\n|\n|upkeep\n|\n|t:|1789185192\n|switch|p1b: Salamence|Salamence, L50, M|172/172\n|-ability|p1b: Salamence|Intimidate|boost\n|-unboost|p2a: Annihilape|atk|1\n|-ability|p2a: Annihilape|Defiant|boost\n|-boost|p2a: Annihilape|atk|2\n|-unboost|p2b: Excadrill|atk|1\n|turn|5\n|\n|t:|1789185219\n|move|p1a: Kangaskhan|Fake Out|p2a: Annihilape\n|-damage|p2a: Annihilape|185/209\n|move|p2b: Excadrill|Iron Head|p1a: Kangaskhan\n|-crit|p1a: Kangaskhan\n|-damage|p1a: Kangaskhan|0 fnt\n|faint|p1a: Kangaskhan\n|cant|p2a: Annihilape|flinch\n|move|p1b: Salamence|Tailwind|p1b: Salamence\n|-sidestart|p1: p1-opencode:claude-fable-5-1|move: Tailwind\n|\n|upkeep\n|\n|t:|1789185219\n|switch|p1a: Gengar|Gengar, L50, M|137/137\n|turn|6\n|\n|t:|1789185330\n|detailschange|p1a: Gengar|Gengar-Mega, L50, M\n|-mega|p1a: Gengar|Gengar|Gengarite\n|move|p2a: Annihilape|Protect|p2a: Annihilape\n|-singleturn|p2a: Annihilape|Protect\n|move|p1a: Gengar|Focus Blast|p2b: Excadrill\n|-supereffective|p2b: Excadrill|1\n|-damage|p2b: Excadrill|0 fnt\n|faint|p2b: Excadrill\n|move|p1b: Salamence|Draco Meteor|p2a: Annihilape\n|-activate|p2a: Annihilape|move: Protect\n|\n|-sideend|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|upkeep\n|turn|7\n|\n|t:|1789185362\n|move|p1a: Gengar|Shadow Ball|p2a: Annihilape\n|-supereffective|p2a: Annihilape|1\n|-damage|p2a: Annihilape|17/209\n|-unboost|p2a: Annihilape|spd|1\n|-ability|p2a: Annihilape|Defiant|boost\n|-boost|p2a: Annihilape|atk|2\n|move|p1b: Salamence|Draco Meteor|p2a: Annihilape\n|-damage|p2a: Annihilape|0 fnt\n|-unboost|p1b: Salamence|spa|2\n|faint|p2a: Annihilape\n|\n|win|p1-opencode:claude-fable-5-1\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Gengar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Kangaskhan",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kangaskhan"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Salamence",
              "actor": { "side": 0, "slot": 0 },
              "species": "Salamence"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Rotom-Wash",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rotom-Wash"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Kingambit",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kingambit"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Altaria",
              "actor": { "side": 0, "slot": 0 },
              "species": "Altaria"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "species": "Whimsicott"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Annihilape",
              "actor": { "side": 1, "slot": 0 },
              "species": "Annihilape"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Maushold",
              "actor": { "side": 1, "slot": 0 },
              "species": "Maushold"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Excadrill",
              "actor": { "side": 1, "slot": 0 },
              "species": "Excadrill"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Weavile",
              "actor": { "side": 1, "slot": 0 },
              "species": "Weavile"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Hydrapple",
              "actor": { "side": 1, "slot": 0 },
              "species": "Hydrapple"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Kangaskhan",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kangaskhan",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Kingambit",
              "actor": { "side": 0, "slot": 1 },
              "species": "Kingambit",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "species": "Whimsicott",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Weavile",
              "actor": { "side": 1, "slot": 1 },
              "species": "Weavile",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "detail", "text": "Weavile ability: Pressure" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "switch",
              "text": "P2 sent out Annihilape",
              "actor": { "side": 1, "slot": 0 },
              "species": "Annihilape",
              "hp": 100,
              "status": null
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Weavile used Fake Out → Kangaskhan",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Kangaskhan → 84%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 84,
              "status": null
            },
            { "turn": 1, "kind": "detail", "text": "Kangaskhan can't move (flinch)" },
            {
              "turn": 1,
              "kind": "move",
              "text": "Kingambit used Iron Head → Weavile",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 1, "kind": "detail", "text": "Super effective on Weavile" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Weavile → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 1,
              "kind": "faint",
              "text": "Weavile fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 1,
              "kind": "switch",
              "text": "P2 sent out Whimsicott",
              "actor": { "side": 1, "slot": 1 },
              "species": "Whimsicott",
              "hp": 100,
              "status": null
            },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Kangaskhan used Protect → Kangaskhan",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Whimsicott used Beat Up → Annihilape",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Annihilape → 97%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 97,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Annihilape → 95%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 95,
              "status": null
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Annihilape → 92%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 92,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Annihilape used Bulk Up → Annihilape",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 2, "kind": "detail", "text": "Annihilape atk +1" },
            { "turn": 2, "kind": "detail", "text": "Annihilape def +1" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Kingambit used Iron Head → Whimsicott",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 2, "kind": "detail", "text": "Super effective on Whimsicott" },
            { "turn": 2, "kind": "detail", "text": "Whimsicott lost its Focus Sash" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Whimsicott → 1%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 1,
              "status": null
            },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Gengar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar",
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Whimsicott used Tailwind → Whimsicott",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 3, "kind": "field", "text": "Tailwind up on P2's side" },
            {
              "turn": 3,
              "kind": "move",
              "text": "Annihilape used Drain Punch → Kingambit",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 3, "kind": "detail", "text": "Super effective on Kingambit" },
            { "turn": 3, "kind": "detail", "text": "Kingambit lost its Chople Berry" },
            { "turn": 3, "kind": "detail", "text": "Kingambit lost its Chople Berry" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Kingambit → 24%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 24,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Annihilape healed → 100% (drain)",
              "actor": { "side": 1, "slot": 0 },
              "hp": 100,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Kingambit used Iron Head → Whimsicott",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 3, "kind": "detail", "text": "Super effective on Whimsicott" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Whimsicott → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 3,
              "kind": "faint",
              "text": "Whimsicott fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P2 sent out Excadrill",
              "actor": { "side": 1, "slot": 1 },
              "species": "Excadrill",
              "hp": 100,
              "status": null
            },
            { "turn": 3, "kind": "detail", "text": "Excadrill ability: Mold Breaker" },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P1 sent out Kangaskhan",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kangaskhan",
              "hp": 84,
              "status": null
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Excadrill became Excadrill-Mega",
              "actor": { "side": 1, "slot": 1 },
              "species": "Excadrill-Mega"
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Kingambit used Sucker Punch → Excadrill",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Excadrill → 63%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 63,
              "status": null
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Excadrill used High Horsepower → Kangaskhan",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Kangaskhan → 18%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 18,
              "status": null
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Annihilape used Drain Punch → Kingambit",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 4, "kind": "detail", "text": "Super effective on Kingambit" },
            { "turn": 4, "kind": "detail", "text": "Critical hit on Kingambit" },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Kingambit → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 4,
              "kind": "faint",
              "text": "Kingambit fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P1 sent out Salamence",
              "actor": { "side": 0, "slot": 1 },
              "species": "Salamence",
              "hp": 100,
              "status": null
            },
            { "turn": 4, "kind": "detail", "text": "Salamence ability: Intimidate" },
            { "turn": 4, "kind": "detail", "text": "Annihilape atk -1" },
            { "turn": 4, "kind": "detail", "text": "Annihilape ability: Defiant" },
            { "turn": 4, "kind": "detail", "text": "Annihilape atk +2" },
            { "turn": 4, "kind": "detail", "text": "Excadrill atk -1" },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Kangaskhan used Fake Out → Annihilape",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Annihilape → 89%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 89,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Excadrill used Iron Head → Kangaskhan",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            { "turn": 5, "kind": "detail", "text": "Critical hit on Kangaskhan" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Kangaskhan → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 5,
              "kind": "faint",
              "text": "Kangaskhan fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            { "turn": 5, "kind": "detail", "text": "Annihilape can't move (flinch)" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Salamence used Tailwind → Salamence",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "field", "text": "Tailwind up on P1's side" },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Gengar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar",
              "hp": 100,
              "status": null
            },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Gengar became Gengar-Mega",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar-Mega"
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Annihilape used Protect → Annihilape",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Gengar used Focus Blast → Excadrill",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 6, "kind": "detail", "text": "Super effective on Excadrill" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Excadrill → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 6,
              "kind": "faint",
              "text": "Excadrill fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Salamence used Draco Meteor → Annihilape",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 6, "kind": "field", "text": "Tailwind ended on P2's side" },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "move",
              "text": "Gengar used Shadow Ball → Annihilape",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 7, "kind": "detail", "text": "Super effective on Annihilape" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Annihilape → 8%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 8,
              "status": null
            },
            { "turn": 7, "kind": "detail", "text": "Annihilape spd -1" },
            { "turn": 7, "kind": "detail", "text": "Annihilape ability: Defiant" },
            { "turn": 7, "kind": "detail", "text": "Annihilape atk +2" },
            {
              "turn": 7,
              "kind": "move",
              "text": "Salamence used Draco Meteor → Annihilape",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Annihilape → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            { "turn": 7, "kind": "detail", "text": "Salamence spa -2" },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Annihilape fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            { "turn": 7, "kind": "win", "text": "opencode:claude-fable-5-1 (P1) won the game" }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-3",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 2513",
              "selection": ["Pick Kangaskhan", "Pick Kingambit", "Pick Gengar", "Pick Salamence"],
              "rationale": "Bring Kanga, Kingambit, Gengar, Salamence. Lead Kanga + Kingambit: both handle the expected Whimsicott+Weavile lead (Kingambit resists Moonblast/Knock Off, Iron Head OHKOs Weavile, Sucker Punch ignores Tailwind; Kanga Scrappy Fake Out flinches Annihilape/Whimsicott and is Ghost-immune). Gengar in back to trap late without eating the T2 Knock Off; Salamence for Excadrill/Hydrapple.",
              "automatic": false,
              "latencyMs": 48486,
              "reasoningTokens": 2405,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1524",
              "selection": ["Pick Whimsicott", "Pick Weavile", "Pick Annihilape", "Pick Excadrill"],
              "rationale": "Retain the successful flexible four: Whimsicott/Weavile threatens fast Fake Out plus Tailwind without exposing Ape to an immediate Gengar attack, with Annihilape as the charged Rage Fist win condition and Excadrill covering Gengar/possible Mega Altaria adaptation. Improve second-turn targeting rather than change the composition on the basis of one favorable game; no automatic double into Gengar Protect.",
              "automatic": false,
              "latencyMs": 3789,
              "reasoningTokens": 0,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 1,
              "phase": "turn",
              "action": "move 1 +1, move 2 +2",
              "selection": ["Fake Out -> foe 1 (Whimsicott)", "Iron Head -> foe 2 (Weavile)"],
              "rationale": "Kanga Fake Out Whimsicott (+3 beats Prankster Tailwind; if Weavile Fake Outs Kanga instead, Kingambit still acts). Kingambit Iron Head Weavile: 89-178%, likely OHKO. Covers Weavile Fake Out on either of our slots, Weavile Protect, and stops Tailwind whenever Kanga isn't flinched.",
              "automatic": false,
              "latencyMs": 51978,
              "reasoningTokens": 1841,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 1,
              "phase": "turn",
              "action": "switch 3, move 1 +1",
              "selection": ["Switch to Annihilape", "Fake Out -> foe 1 (Kangaskhan)"],
              "rationale": "Adapt to the slow double-physical lead: pivot Whimsicott into Annihilape while Weavile's verified faster Fake Out denies Kangaskhan's action. Preserve Whimsicott's Sash and avoid spending Tailwind unnecessarily. Ape resists Dark and can take an Iron Head, which also charges Rage Fist; next turn Weavile can remove Kingambit's Chople ahead of Drain Punch. Mega Kangaskhan would also lose Scrappy against Ape.",
              "automatic": false,
              "latencyMs": 14811,
              "reasoningTokens": 204,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 1,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Whimsicott"],
              "rationale": "Bring Whimsicott back alongside undamaged Ape. It offers Moonblast pressure on Kangaskhan, Beat Up setup, and priority Tailwind if needed, preserving Excadrill as the final attacker.",
              "automatic": false,
              "latencyMs": 4335,
              "reasoningTokens": 0,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 2,
              "phase": "turn",
              "action": "move 4, move 2 +2",
              "selection": ["Protect", "Iron Head -> foe 2 (Whimsicott)"],
              "rationale": "Annihilape Drain Punch KOs Kanga from 84% at high rolls (69-102%), and Double-Edge recoil would make it certain, so Kanga Protects this turn. Kingambit Iron Head breaks Whimsicott's Sash (to 1 HP); Chople absorbs a Drain Punch if Kingambit is targeted. Next turn Kanga Double-Edge finishes Whimsicott with near-zero recoil while Kingambit pressures Annihilape.",
              "automatic": false,
              "latencyMs": 105346,
              "reasoningTokens": 5339,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 2,
              "phase": "turn",
              "action": "move 3, move 2 -1",
              "selection": ["Bulk Up", "Beat Up -> ally 1 (Annihilape)"],
              "rationale": "Use the full-health pairing to establish the endgame: three-hit Beat Up charges Rage Fist while Bulk Up improves Ape's damage and physical survival. Ape moves before Kingambit's normal attacks, so the Defense boost mitigates Iron Head; even Scrappy Kangaskhan Double-Edge is not an immediate OHKO. This also gains progress against their frequent Protect/immunity pivots rather than committing unboosted attacks into Chople or a Gengar switch.",
              "automatic": false,
              "latencyMs": 25168,
              "reasoningTokens": 247,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-3",
              "turn": 3,
              "phase": "turn",
              "action": "switch 3, move 2 +2",
              "selection": ["Switch to Gengar", "Iron Head -> foe 2 (Whimsicott)"],
              "rationale": "+1 Drain Punch KOs Kanga from 84% and Protect is on cooldown, so pivot Kanga to Gengar, which is immune to the expected Drain Punch into that slot (Rage Fist into Kingambit is only 43-64%). Kingambit Iron Head guarantees the Whimsicott KO even if it Prankster-Tailwinds first (Sucker Punch would fail vs Tailwind). Next turn: expect Rage Fist at Gengar under Tailwind - pivot Gengar back to Kanga (Ghost-immune) or Protect; Kingambit Sucker Punch chips Annihilape.",
              "automatic": false,
              "latencyMs": 65207,
              "reasoningTokens": 4050,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 3,
              "phase": "turn",
              "action": "move 2 +2, move 1",
              "selection": [
                "Drain Punch -> foe 2 (Kingambit)",
                "Tailwind (your side, including ally Annihilape)"
              ],
              "rationale": "Cash Whimsicott's remaining HP into priority Tailwind before either physical attacker can remove it. Drain Punch pressures Kingambit and consumes Chople or punishes a non-Ghost switch, while avoiding the particularly telegraphed Kangaskhan-to-Gengar immunity pivot. Charged +1 Ape plus Tailwind Mega Excadrill remains our damage plan if Whimsicott falls.",
              "automatic": false,
              "latencyMs": 8852,
              "reasoningTokens": 92,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 3,
              "phase": "forced_switch",
              "action": "pass, switch 4",
              "selection": ["Pass", "Switch to Excadrill"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-3",
              "turn": 4,
              "phase": "turn",
              "action": "switch 3, move 3 +2",
              "selection": ["Switch to Kangaskhan", "Sucker Punch -> foe 2 (Excadrill)"],
              "rationale": "Under their Tailwind both foes move first and each can OHKO Gengar (Rage Fist 115-168%, HHP 150%+) and Kingambit (24%). Pivot Gengar to Kanga: immune to the expected Rage Fist, survives HHP (55-76% max). Kingambit uses its priority Sucker Punch on Excadrill (34-65%, 25-44% if mega) before likely dying, setting up a Kanga Drain Punch/Focus Blast KO. Defensive double-Protect rejected: opponent set up (Bulk Up) the last time we protected.",
              "automatic": false,
              "latencyMs": 156265,
              "reasoningTokens": 8017,
              "reasoningChars": 4
            },
            {
              "franchiseId": "franchise-3",
              "turn": 4,
              "phase": "forced_switch",
              "action": "pass, switch 4",
              "selection": ["Pass", "Switch to Salamence"],
              "rationale": "Bring Salamence: immune to HHP, Sash guarantees Tailwind; Intimidate cost on Annihilape is now marginal (it already OHKOs everything non-Normal) while it weakens Excadrill. Plan T5: Kanga Fake Out Annihilape (Scrappy), Salamence Tailwind; T6 Gengar-Mega under our Tailwind outspeeds both for Focus Blast/Shadow Ball with Salamence Heat Wave/Draco support.",
              "automatic": false,
              "latencyMs": 26284,
              "reasoningTokens": 959,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 4,
              "phase": "turn",
              "action": "move 2 +2, move 1 +1 mega",
              "selection": [
                "Drain Punch -> foe 2 (Kingambit)",
                "High Horsepower -> foe 1 (Gengar) + Mega Evolve"
              ],
              "rationale": "Split our KO threats: Mega High Horsepower into Gengar and +1 Drain Punch into weakened Kingambit. Excadrill is verified faster and threatens a full-health Mega Gengar KO, while Piercing Drill still chips Protect. Drain Punch removes Kingambit if it attacks, including after Sucker Punch, and hits a Kangaskhan switch hard. Avoid gambling Excadrill on setup against Focus Blast.",
              "automatic": false,
              "latencyMs": 10766,
              "reasoningTokens": 89,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 5,
              "phase": "turn",
              "action": "move 1 +1, move 1",
              "selection": [
                "Fake Out -> foe 1 (Annihilape)",
                "Tailwind (your side, including ally Kangaskhan)"
              ],
              "rationale": "Scrappy Fake Out flinches Annihilape so only Excadrill can act; Salamence (Sash, HHP-immune) then guarantees Tailwind. Next turn their Tailwind is on its last turn while ours is fresh: Gengar-Mega comes in outspeeding both for Focus Blast on 63% Excadrill / Shadow Ball on Annihilape, with Salamence Heat Wave/Draco.",
              "automatic": false,
              "latencyMs": 26899,
              "reasoningTokens": 904,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 5,
              "phase": "forced_switch",
              "action": "switch 3, pass",
              "selection": ["Switch to Gengar", "Pass"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-4",
              "turn": 5,
              "phase": "turn",
              "action": "move 1 +2, move 2 +1",
              "selection": ["Rage Fist -> foe 2 (Salamence)", "Iron Head -> foe 1 (Kangaskhan)"],
              "rationale": "Attack both slots rather than concede the Tailwind window to Fake Out: charged +2 Rage Fist pressures Salamence to its Sash, and accurate Iron Head KOs 18% Kangaskhan if not flinched/protected. Kangaskhan can stop only one attacker with Fake Out. Iron Head also chips a Gengar switch without immunity; avoid Ground into potential Salamence pivots. Damage tool used only 50 BP for Rage Fist, so its uncharged estimate does not reflect the three observed Beat Up hits.",
              "automatic": false,
              "latencyMs": 14494,
              "reasoningTokens": 164,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-3",
              "turn": 6,
              "phase": "turn",
              "action": "move 3 +2 mega, move 3 +1",
              "selection": [
                "Focus Blast -> foe 2 (Excadrill-Mega) + Mega Evolve",
                "Draco Meteor -> foe 1 (Annihilape)"
              ],
              "rationale": "Gengar-Mega (400 Spe) moves first. Their pattern is to Protect Annihilape whenever Gengar threatens it, so target Excadrill with Focus Blast (KO from 63% on hit) - if Annihilape Protects and Excadrill HHPs, a hit leaves Gengar+Salamence vs a Protect-cooldown Annihilape next turn with our Tailwind. Salamence Draco on Annihilape (39-70%) covers the branch where Annihilape Rage Fists Gengar instead: Salamence then outspeeds and finishes it under Tailwind.",
              "automatic": false,
              "latencyMs": 110742,
              "reasoningTokens": 6280,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 6,
              "phase": "turn",
              "action": "move 4, move 1 +1",
              "selection": ["Protect", "High Horsepower -> foe 1 (Gengar)"],
              "rationale": "Protect the charged Ape from Mega Gengar Shadow Ball plus Salamence's follow-up, while using our final Tailwind turn to attack Gengar with High Horsepower. Excadrill still outruns Salamence this turn, and Gengar is the key removal needed for Ape to beat the remaining physical-immunity-free endgame. This risks Focus Blast into Excadrill, but leaving Ape exposed to the obvious special double target is worse; do not pretend hidden Mega Gengar Speed or the -1 HHP KO is certain.",
              "automatic": false,
              "latencyMs": 23470,
              "reasoningTokens": 274,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-3",
              "turn": 7,
              "phase": "turn",
              "action": "move 2 +1, move 3 +1",
              "selection": [
                "Shadow Ball -> foe 1 (Annihilape)",
                "Draco Meteor -> foe 1 (Annihilape)"
              ],
              "rationale": "Annihilape's Protect is on cooldown (1/3 success) and both of ours outspeed it under Tailwind. Shadow Ball 66-118% + Draco Meteor 39-70% on 88% HP is a KO with either both hitting or a high Shadow Ball roll; Sludge Bomb/Heat Wave are far weaker. No reason to Protect - only Rage Fist into Gengar threatens us and we act first.",
              "automatic": false,
              "latencyMs": 32284,
              "reasoningTokens": 152,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 7,
              "phase": "turn",
              "action": "move 1 +1, pass",
              "selection": ["Rage Fist -> foe 1 (Gengar-Mega)", "Pass"],
              "rationale": "Rage Fist Gengar is the only meaningful comeback line: remove the non-missing Ghost threat if Ape survives Shadow Ball and Salamence misses or misplays. More Protect cannot reverse the natural Speed disadvantage or build a win condition, and Drain Punch cannot affect Gengar.",
              "automatic": false,
              "latencyMs": 5054,
              "reasoningTokens": 0,
              "reasoningChars": 0
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-3",
              "result": "won",
              "summary": "Won G2 in 7 turns (2-0 down in bodies at one point, but the plan held). Kanga+Kingambit lead was correct: Kingambit Iron Head OHKO'd Weavile T1 through the Fake Out flinch on Kanga, broke Whimsicott's Sash T2 and KO'd it T3, removing Prankster Tailwind and Beat Up fuel by turn 3. Costs: Kingambit fell to a +1 Drain Punch (76% through Chople) then a crit; Kanga fell to Excadrill-Mega HHP + a crit Iron Head - two crits, but both losses bought exactly what we needed (Whimsicott dead, Annihilape flinched, Salamence Tailwind up). The decisive read was their Annihilape Protect rhythm: it Protected the turn Gengar-Mega came in (now 4/4 across the series), so Gengar Focus Blast went at Excadrill-Mega (KO from 63%) and Salamence's Draco was the only wasted move. With their Tailwind expired and ours up, Gengar Shadow Ball + Draco finished Annihilape on its Protect cooldown turn. Pivot discipline (Kanga->Gengar vs Drain Punch, Gengar->Kanga vs Rage Fist) meant Annihilape never landed a hit on Gengar. Minor errors: T4 Salamence Intimidate handed Annihilape a net +1 (acceptable since it already OHKO'd non-Normals, but note it), and Kingambit was left in vs Excadrill+Annihilape at 24% where nothing saved it; Sucker Punch chip (37%) still enabled the Focus Blast KO.",
              "adjustment": "Keep the same 4 (Kanga, Kingambit, Gengar, Salamence) and the Kanga+Kingambit lead as default; they beat the Whimsicott+Weavile lead cleanly. Expect the opponent to adapt for G3: possible Excadrill or Annihilape lead to punish Kingambit, or Maushold Follow Me to absorb Iron Head/Fake Out. Prepare lead contingencies: vs Excadrill lead, Kingambit Sucker Punch + Kanga Drain Punch (35-67%) or pivot Kingambit to Salamence (HHP-immune); vs Maushold, Kanga Fake Out Maushold and Kingambit hits the real threat. Continue exploiting the Annihilape Protect pattern: whenever Gengar can hit Annihilape, hit the OTHER foe with Gengar and let the partner threaten Annihilape; then attack Annihilape on its cooldown turn."
            },
            {
              "franchiseId": "franchise-4",
              "result": "lost",
              "summary": "Lost in 7 turns; series tied 1–1. No execution errors. The opponent adapted to Kangaskhan/Kingambit with Gengar/Salamence behind and won the speed-control endgame. Our T1 Fake Out safely positioned Ape but cost Weavile; T2 Beat Up + Bulk Up then let Kingambit exhaust Whimsicott's Sash, forcing a final Tailwind before it died. We removed Kingambit and Kangaskhan, but our charged Ape never executed Rage Fist. T5 Scrappy Fake Out into Ape enabled Salamence's uncontested Tailwind, leaving both opposing special attackers healthy. T6 Protect Ape + High Horsepower incorrectly favored a Shadow Ball prediction: Gengar instead KOed Excadrill with Focus Blast while Salamence attacked Ape's Protect. The main problem preceded that guess: we spent both supports for setup without preserving speed control or pressuring Salamence. Our two critical KOs were not essential at the targets' low HP; unlike G1, the opponent's important inaccurate attacks connected.",
              "adjustment": "Keep Whimsicott/Weavile with Ape/Excadrill as the flexible default, but change the Kingambit branch rather than repeat the support-sacrifice script. Preserve Whimsicott for Salamence Taunt, Moonblast and renewed Tailwind. After the same T1 outcome, consider switching Whimsicott to Excadrill while Ape Drain Punches Kingambit, consuming Chople and applying immediate pressure instead of Beat Up + Bulk Up. This is a candidate line, not a guaranteed read: reassess Kangaskhan's attack and Gengar-switch options. Beat Up is optional when the physical foes already feed Rage Fist. Do not assume Fake Out targets or Gengar's target remain fixed. With matching Tailwinds, treat Mega Gengar as demonstrated capable of moving before Mega Excadrill; avoid arriving at the same full-health Gengar/Salamence endgame with Whimsicott gone."
            }
          ]
        },
        {
          "number": 3,
          "winnerId": "franchise-4",
          "turns": 9,
          "brought": [
            ["kangaskhan-mega", "kingambit", "gengar-mega", "salamence"],
            ["whimsicott", "weavile", "annihilape", "excadrill-mega"]
          ],
          "megaEvolved": ["gengar-mega", "excadrill-mega"],
          "faints": [
            { "kangaskhan-mega": 1, "salamence": 1, "gengar-mega": 1, "kingambit": 1 },
            { "annihilape": 1, "weavile": 1, "excadrill-mega": 1 }
          ],
          "raw": "|t:|1789185438\n|gametype|doubles\n|player|p1|p1-opencode:claude-fable-5-1||\n|player|p2|p2-opencode:gpt-6-astra||\n|gen|9\n|tier|[Gen 9 Champions] VGC 2026 Reg M-C (Bo3)\n|rule|Species Clause: Limit one of each Pokémon\n|rule|Item Clause: Limit 1 of each item\n|clearpoke\n|poke|p1|Gengar, L50, F|\n|poke|p1|Kangaskhan, L50, F|\n|poke|p1|Salamence, L50, M|\n|poke|p1|Rotom-Wash, L50|\n|poke|p1|Kingambit, L50, F|\n|poke|p1|Altaria, L50, M|\n|poke|p2|Whimsicott, L50, M|\n|poke|p2|Annihilape, L50, M|\n|poke|p2|Maushold, L50|\n|poke|p2|Excadrill, L50, M|\n|poke|p2|Weavile, L50, M|\n|poke|p2|Hydrapple, L50, F|\n|teampreview|4\n|showteam|p1|Gengar||Gengarite|CursedBody|SludgeBomb,ShadowBall,FocusBlast,Protect|Timid||F|||50|]Kangaskhan||Kangaskhanite|Scrappy|FakeOut,DoubleEdge,DrainPunch,Protect|Jolly||F|||50|]Salamence||FocusSash|Intimidate|Tailwind,HeatWave,DracoMeteor,Protect|Timid||M|||50|]Rotom-Wash||SitrusBerry|Levitate|HydroPump,Thunderbolt,WillOWisp,Protect|Modest|||||50|]Kingambit||ChopleBerry|Defiant|KowtowCleave,IronHead,SuckerPunch,Protect|Adamant||F|||50|]Altaria||Altarianite|NaturalCure|HyperVoice,HeatWave,Tailwind,Protect|Modest||M|||50|\n|showteam|p2|Whimsicott||FocusSash|Prankster|Tailwind,BeatUp,Moonblast,Taunt|Timid||M|||50|]Annihilape||LumBerry|Defiant|RageFist,DrainPunch,BulkUp,Protect|Adamant||M|||50|]Maushold||RockyHelmet|FriendGuard|FollowMe,SuperFang,HelpingHand,Protect|Bold|||||50|]Excadrill||Excadrite|MoldBreaker|HighHorsepower,IronHead,SwordsDance,Protect|Jolly||M|||50|]Weavile||WideLens|Pressure|FakeOut,KnockOff,TripleAxel,Protect|Jolly||M|||50|]Hydrapple||SitrusBerry|Regenerator|GigaDrain,DracoMeteor,EarthPower,Protect|Modest||F|||50|\n|\n|t:|1789185452\n|teamsize|p1|4\n|teamsize|p2|4\n|start\n|switch|p1a: Kangaskhan|Kangaskhan, L50, F|182/182\n|switch|p1b: Kingambit|Kingambit, L50, F|207/207\n|switch|p2a: Whimsicott|Whimsicott, L50, M|137/137\n|switch|p2b: Weavile|Weavile, L50, M|147/147\n|-ability|p2b: Weavile|Pressure\n|turn|1\n|\n|t:|1789185477\n|switch|p2a: Annihilape|Annihilape, L50, M|209/209\n|move|p2b: Weavile|Fake Out|p1b: Kingambit\n|-resisted|p1b: Kingambit|1\n|-damage|p1b: Kingambit|196/207\n|move|p1a: Kangaskhan|Fake Out|p2a: Annihilape\n|-damage|p2a: Annihilape|173/209\n|cant|p1b: Kingambit|flinch\n|\n|upkeep\n|turn|2\n|\n|t:|1789185530\n|move|p1b: Kingambit|Sucker Punch|p2a: Annihilape\n|-damage|p2a: Annihilape|86/209\n|move|p2b: Weavile|Knock Off|p1b: Kingambit\n|-resisted|p1b: Kingambit|1\n|-damage|p1b: Kingambit|160/207\n|-enditem|p1b: Kingambit|Chople Berry|[from] move: Knock Off|[of] p2b: Weavile\n|move|p1a: Kangaskhan|Double-Edge|p2a: Annihilape\n|-damage|p2a: Annihilape|0 fnt\n|faint|p2a: Annihilape\n|-damage|p1a: Kangaskhan|154/182|[from] Recoil\n|\n|upkeep\n|\n|t:|1789185537\n|switch|p2a: Excadrill|Excadrill, L50, M|187/187\n|-ability|p2a: Excadrill|Mold Breaker\n|turn|3\n|\n|t:|1789185592\n|switch|p1b: Salamence|Salamence, L50, M|172/172\n|-ability|p1b: Salamence|Intimidate|boost\n|-unboost|p2a: Excadrill|atk|1\n|-unboost|p2b: Weavile|atk|1\n|detailschange|p2a: Excadrill|Excadrill-Mega, L50, M\n|-mega|p2a: Excadrill|Excadrill|Excadrite\n|move|p2b: Weavile|Triple Axel|p1a: Kangaskhan\n|-damage|p1a: Kangaskhan|136/182\n|-damage|p1a: Kangaskhan|105/182\n|-damage|p1a: Kangaskhan|60/182\n|-hitcount|p1a: Kangaskhan|3\n|move|p2a: Excadrill|High Horsepower|p1a: Kangaskhan\n|-damage|p1a: Kangaskhan|0 fnt\n|faint|p1a: Kangaskhan\n|\n|upkeep\n|\n|t:|1789185618\n|switch|p1a: Kingambit|Kingambit, L50, F|160/207\n|turn|4\n|\n|t:|1789185651\n|switch|p2a: Whimsicott|Whimsicott, L50, M|137/137\n|move|p1b: Salamence|Protect|p1b: Salamence\n|-singleturn|p1b: Salamence|Protect\n|move|p2b: Weavile|Triple Axel|p1b: Salamence\n|-activate|p1b: Salamence|move: Protect\n|move|p1a: Kingambit|Iron Head|p2b: Weavile\n|-supereffective|p2b: Weavile|1\n|-damage|p2b: Weavile|0 fnt\n|faint|p2b: Weavile\n|\n|upkeep\n|\n|t:|1789185651\n|switch|p2b: Excadrill|Excadrill-Mega, L50, M|187/187\n|turn|5\n|\n|t:|1789185694\n|move|p1a: Kingambit|Protect|p1a: Kingambit\n|-singleturn|p1a: Kingambit|Protect\n|move|p2a: Whimsicott|Moonblast|p1b: Salamence\n|-supereffective|p1b: Salamence|1\n|-damage|p1b: Salamence|28/172\n|move|p2b: Excadrill|Iron Head|p1b: Salamence\n|-damage|p1b: Salamence|0 fnt\n|faint|p1b: Salamence\n|\n|upkeep\n|\n|t:|1789185694\n|switch|p1b: Gengar|Gengar, L50, F|137/137\n|turn|6\n|\n|t:|1789185766\n|detailschange|p1b: Gengar|Gengar-Mega, L50, F\n|-mega|p1b: Gengar|Gengar|Gengarite\n|move|p1b: Gengar|Protect|p1b: Gengar\n|-singleturn|p1b: Gengar|Protect\n|move|p2a: Whimsicott|Tailwind|p2a: Whimsicott\n|-sidestart|p2: p2-opencode:gpt-6-astra|move: Tailwind\n|move|p1a: Kingambit|Sucker Punch|p2b: Excadrill\n|-damage|p2b: Excadrill|114/187\n|move|p2b: Excadrill|High Horsepower|p1b: Gengar\n|-supereffective|p1b: Gengar|1\n|-ability|p2b: Excadrill|Piercing Drill\n|-zbroken|p1b: Gengar\n|-damage|p1b: Gengar|74/137\n|\n|upkeep\n|turn|7\n|\n|t:|1789185803\n|move|p1a: Kingambit|Sucker Punch|p2b: Excadrill\n|-crit|p2b: Excadrill\n|-damage|p2b: Excadrill|6/187\n|move|p2a: Whimsicott|Moonblast|p1a: Kingambit\n|-damage|p1a: Kingambit|85/207\n|move|p2b: Excadrill|High Horsepower|p1b: Gengar\n|-supereffective|p1b: Gengar|1\n|-damage|p1b: Gengar|0 fnt\n|faint|p1b: Gengar\n|\n|upkeep\n|turn|8\n|\n|t:|1789185825\n|move|p2b: Excadrill|Protect|p2b: Excadrill\n|-singleturn|p2b: Excadrill|Protect\n|move|p1a: Kingambit|Sucker Punch||[still]\n|-fail|p1a: Kingambit\n|move|p2a: Whimsicott|Moonblast|p1a: Kingambit\n|-damage|p1a: Kingambit|7/207\n|\n|upkeep\n|turn|9\n|\n|t:|1789185901\n|move|p1a: Kingambit|Sucker Punch|p2b: Excadrill\n|-damage|p2b: Excadrill|0 fnt\n|faint|p2b: Excadrill\n|move|p2a: Whimsicott|Moonblast|p1a: Kingambit\n|-damage|p1a: Kingambit|0 fnt\n|faint|p1a: Kingambit\n|\n|win|p2-opencode:gpt-6-astra\n",
          "events": [
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Gengar",
              "actor": { "side": 0, "slot": 0 },
              "species": "Gengar"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Kangaskhan",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kangaskhan"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Salamence",
              "actor": { "side": 0, "slot": 0 },
              "species": "Salamence"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Rotom-Wash",
              "actor": { "side": 0, "slot": 0 },
              "species": "Rotom-Wash"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Kingambit",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kingambit"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P1 registers Altaria",
              "actor": { "side": 0, "slot": 0 },
              "species": "Altaria"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "species": "Whimsicott"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Annihilape",
              "actor": { "side": 1, "slot": 0 },
              "species": "Annihilape"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Maushold",
              "actor": { "side": 1, "slot": 0 },
              "species": "Maushold"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Excadrill",
              "actor": { "side": 1, "slot": 0 },
              "species": "Excadrill"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Weavile",
              "actor": { "side": 1, "slot": 0 },
              "species": "Weavile"
            },
            {
              "turn": 0,
              "kind": "preview",
              "text": "P2 registers Hydrapple",
              "actor": { "side": 1, "slot": 0 },
              "species": "Hydrapple"
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Kangaskhan",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kangaskhan",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P1 sent out Kingambit",
              "actor": { "side": 0, "slot": 1 },
              "species": "Kingambit",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "species": "Whimsicott",
              "hp": 100,
              "status": null
            },
            {
              "turn": 0,
              "kind": "switch",
              "text": "P2 sent out Weavile",
              "actor": { "side": 1, "slot": 1 },
              "species": "Weavile",
              "hp": 100,
              "status": null
            },
            { "turn": 0, "kind": "detail", "text": "Weavile ability: Pressure" },
            { "turn": 1, "kind": "turn", "text": "Turn 1" },
            {
              "turn": 1,
              "kind": "switch",
              "text": "P2 sent out Annihilape",
              "actor": { "side": 1, "slot": 0 },
              "species": "Annihilape",
              "hp": 100,
              "status": null
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Weavile used Fake Out → Kingambit",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 1, "kind": "detail", "text": "Not very effective on Kingambit" },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Kingambit → 95%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 95,
              "status": null
            },
            {
              "turn": 1,
              "kind": "move",
              "text": "Kangaskhan used Fake Out → Annihilape",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 1,
              "kind": "detail",
              "text": "Annihilape → 83%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 83,
              "status": null
            },
            { "turn": 1, "kind": "detail", "text": "Kingambit can't move (flinch)" },
            { "turn": 2, "kind": "turn", "text": "Turn 2" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Kingambit used Sucker Punch → Annihilape",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Annihilape → 41%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 41,
              "status": null
            },
            {
              "turn": 2,
              "kind": "move",
              "text": "Weavile used Knock Off → Kingambit",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 2, "kind": "detail", "text": "Not very effective on Kingambit" },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Kingambit → 77%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 77,
              "status": null
            },
            { "turn": 2, "kind": "detail", "text": "Kingambit lost its Chople Berry" },
            {
              "turn": 2,
              "kind": "move",
              "text": "Kangaskhan used Double-Edge → Annihilape",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Annihilape → 0%",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 2,
              "kind": "faint",
              "text": "Annihilape fainted",
              "actor": { "side": 1, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 2,
              "kind": "detail",
              "text": "Kangaskhan → 85% (Recoil)",
              "actor": { "side": 0, "slot": 0 },
              "hp": 85,
              "status": null
            },
            {
              "turn": 2,
              "kind": "switch",
              "text": "P2 sent out Excadrill",
              "actor": { "side": 1, "slot": 0 },
              "species": "Excadrill",
              "hp": 100,
              "status": null
            },
            { "turn": 2, "kind": "detail", "text": "Excadrill ability: Mold Breaker" },
            { "turn": 3, "kind": "turn", "text": "Turn 3" },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Salamence",
              "actor": { "side": 0, "slot": 1 },
              "species": "Salamence",
              "hp": 100,
              "status": null
            },
            { "turn": 3, "kind": "detail", "text": "Salamence ability: Intimidate" },
            { "turn": 3, "kind": "detail", "text": "Excadrill atk -1" },
            { "turn": 3, "kind": "detail", "text": "Weavile atk -1" },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Excadrill became Excadrill-Mega",
              "actor": { "side": 1, "slot": 0 },
              "species": "Excadrill-Mega"
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Weavile used Triple Axel → Kangaskhan",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Kangaskhan → 75%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 75,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Kangaskhan → 58%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 58,
              "status": null
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Kangaskhan → 33%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 33,
              "status": null
            },
            {
              "turn": 3,
              "kind": "move",
              "text": "Excadrill used High Horsepower → Kangaskhan",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 3,
              "kind": "detail",
              "text": "Kangaskhan → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 3,
              "kind": "faint",
              "text": "Kangaskhan fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            {
              "turn": 3,
              "kind": "switch",
              "text": "P1 sent out Kingambit",
              "actor": { "side": 0, "slot": 0 },
              "species": "Kingambit",
              "hp": 77,
              "status": null
            },
            { "turn": 4, "kind": "turn", "text": "Turn 4" },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P2 sent out Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "species": "Whimsicott",
              "hp": 100,
              "status": null
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Salamence used Protect → Salamence",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Weavile used Triple Axel → Salamence",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 4,
              "kind": "move",
              "text": "Kingambit used Iron Head → Weavile",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 4, "kind": "detail", "text": "Super effective on Weavile" },
            {
              "turn": 4,
              "kind": "detail",
              "text": "Weavile → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 4,
              "kind": "faint",
              "text": "Weavile fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 4,
              "kind": "switch",
              "text": "P2 sent out Excadrill-Mega",
              "actor": { "side": 1, "slot": 1 },
              "species": "Excadrill-Mega",
              "hp": 100,
              "status": null
            },
            { "turn": 5, "kind": "turn", "text": "Turn 5" },
            {
              "turn": 5,
              "kind": "move",
              "text": "Kingambit used Protect → Kingambit",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Salamence",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 5, "kind": "detail", "text": "Super effective on Salamence" },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Salamence → 16%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 16,
              "status": null
            },
            {
              "turn": 5,
              "kind": "move",
              "text": "Excadrill used Iron Head → Salamence",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 5,
              "kind": "detail",
              "text": "Salamence → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 5,
              "kind": "faint",
              "text": "Salamence fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 5,
              "kind": "switch",
              "text": "P1 sent out Gengar",
              "actor": { "side": 0, "slot": 1 },
              "species": "Gengar",
              "hp": 100,
              "status": null
            },
            { "turn": 6, "kind": "turn", "text": "Turn 6" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Gengar became Gengar-Mega",
              "actor": { "side": 0, "slot": 1 },
              "species": "Gengar-Mega"
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Gengar used Protect → Gengar",
              "actor": { "side": 0, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Whimsicott used Tailwind → Whimsicott",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 1, "slot": 0 }
            },
            { "turn": 6, "kind": "field", "text": "Tailwind up on P2's side" },
            {
              "turn": 6,
              "kind": "move",
              "text": "Kingambit used Sucker Punch → Excadrill",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Excadrill → 61%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 61,
              "status": null
            },
            {
              "turn": 6,
              "kind": "move",
              "text": "Excadrill used High Horsepower → Gengar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 6, "kind": "detail", "text": "Super effective on Gengar" },
            { "turn": 6, "kind": "detail", "text": "Excadrill ability: Piercing Drill" },
            {
              "turn": 6,
              "kind": "detail",
              "text": "Gengar → 54%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 54,
              "status": null
            },
            { "turn": 7, "kind": "turn", "text": "Turn 7" },
            {
              "turn": 7,
              "kind": "move",
              "text": "Kingambit used Sucker Punch → Excadrill",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            { "turn": 7, "kind": "detail", "text": "Critical hit on Excadrill" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Excadrill → 3%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 3,
              "status": null
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Kingambit",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Kingambit → 41%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 41,
              "status": null
            },
            {
              "turn": 7,
              "kind": "move",
              "text": "Excadrill used High Horsepower → Gengar",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 0, "slot": 1 }
            },
            { "turn": 7, "kind": "detail", "text": "Super effective on Gengar" },
            {
              "turn": 7,
              "kind": "detail",
              "text": "Gengar → 0%",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 7,
              "kind": "faint",
              "text": "Gengar fainted",
              "actor": { "side": 0, "slot": 1 },
              "hp": 0
            },
            { "turn": 8, "kind": "turn", "text": "Turn 8" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Excadrill used Protect → Excadrill",
              "actor": { "side": 1, "slot": 1 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 8,
              "kind": "move",
              "text": "Kingambit used Sucker Punch",
              "actor": { "side": 0, "slot": 0 }
            },
            { "turn": 8, "kind": "detail", "text": "Kingambit's move failed" },
            {
              "turn": 8,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Kingambit",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 8,
              "kind": "detail",
              "text": "Kingambit → 3%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 3,
              "status": null
            },
            { "turn": 9, "kind": "turn", "text": "Turn 9" },
            {
              "turn": 9,
              "kind": "move",
              "text": "Kingambit used Sucker Punch → Excadrill",
              "actor": { "side": 0, "slot": 0 },
              "target": { "side": 1, "slot": 1 }
            },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Excadrill → 0%",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 9,
              "kind": "faint",
              "text": "Excadrill fainted",
              "actor": { "side": 1, "slot": 1 },
              "hp": 0
            },
            {
              "turn": 9,
              "kind": "move",
              "text": "Whimsicott used Moonblast → Kingambit",
              "actor": { "side": 1, "slot": 0 },
              "target": { "side": 0, "slot": 0 }
            },
            {
              "turn": 9,
              "kind": "detail",
              "text": "Kingambit → 0%",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0,
              "status": null
            },
            {
              "turn": 9,
              "kind": "faint",
              "text": "Kingambit fainted",
              "actor": { "side": 0, "slot": 0 },
              "hp": 0
            },
            { "turn": 9, "kind": "win", "text": "opencode:gpt-6-astra (P2) won the game" }
          ],
          "decisions": [
            {
              "franchiseId": "franchise-3",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 2513",
              "selection": ["Pick Kangaskhan", "Pick Kingambit", "Pick Gengar", "Pick Salamence"],
              "rationale": "Repeat the G2-winning bring: Kanga+Kingambit lead (Fake Out Whimsicott / Iron Head Weavile, Kanga Ghost-immune vs Annihilape), Gengar + Salamence in back for Shadow Tag trapping and Tailwind/Intimidate. Contingencies for Excadrill/Maushold/Annihilape leads are already in the game plan.",
              "automatic": false,
              "latencyMs": 7360,
              "reasoningTokens": 176,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 0,
              "phase": "team_preview",
              "action": "team 1524",
              "selection": ["Pick Whimsicott", "Pick Weavile", "Pick Annihilape", "Pick Excadrill"],
              "rationale": "Retain the flexible Fake Out/Tailwind lead and both complementary attackers. Whimsicott is essential to contest Salamence's delayed Tailwind; Weavile pressures Salamence and enables the opening, Ape punishes Kangaskhan/Kingambit and Intimidate, and Excadrill supplies immediate Gengar/Altaria pressure. The adjustment is resource management and opening targeting, not replacing an essential matchup tool: avoid automatically sacrificing Weavile and then Whimsicott to charge Ape against the physical lead.",
              "automatic": false,
              "latencyMs": 11282,
              "reasoningTokens": 202,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 1,
              "phase": "turn",
              "action": "move 1 +1, move 2 +2",
              "selection": ["Fake Out -> foe 1 (Whimsicott)", "Iron Head -> foe 2 (Weavile)"],
              "rationale": "Same lead as G2. Kanga Fake Out Whimsicott denies Prankster Tailwind/Taunt unless Weavile Fake Outs Kanga first (then Iron Head still OHKOs Weavile as in G2). Kingambit Iron Head Weavile: OHKO if it stays; if it Protects we lose nothing and it's on cooldown next turn; if it switches, Iron Head hits the pivot neutrally (Annihilape/Maushold). Covers the likely adaptations (Weavile Protect or Fake Out into Kingambit) without exposing anything.",
              "automatic": false,
              "latencyMs": 24933,
              "reasoningTokens": 1696,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 1,
              "phase": "turn",
              "action": "switch 3, move 1 +2",
              "selection": ["Switch to Annihilape", "Fake Out -> foe 2 (Kingambit)"],
              "rationale": "Pivot Whimsicott into Ape but Fake Out Kingambit rather than repeating last game's Kangaskhan target. Weavile acts before even Mega Kangaskhan's Fake Out, so Kingambit's immediate Iron Head is denied regardless of Kangaskhan's Fake Out target. This preserves Whimsicott for late speed control and is particularly productive into the opponent's prior Fake Out/Protect Kangaskhan opening. Kangaskhan can punish Weavile with a direct attack, but targeting it instead allowed Kingambit a demonstrated guaranteed KO; denying King offers a realistic way to retain all four resources.",
              "automatic": false,
              "latencyMs": 15109,
              "reasoningTokens": 216,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 2,
              "phase": "turn",
              "action": "move 2 +1, move 3 +1",
              "selection": [
                "Double-Edge -> foe 1 (Annihilape)",
                "Sucker Punch -> foe 1 (Annihilape)"
              ],
              "rationale": "Annihilape at 82% is the main threat (Drain Punch 44-65% Kingambit / 69-102% Kanga). Kanga (156) and Sucker Punch both move before Annihilape: Double-Edge 35-64% + Sucker Punch 28-52% = 63-116% into 82%, good KO odds before it can act. If it Protects, we only take a resisted/moderate Weavile hit and it is on cooldown next turn; if it survives on low rolls it's in Sucker Punch range next turn. Weavile's Fake Out is spent and its hits on Kanga are ~30-40%.",
              "automatic": false,
              "latencyMs": 53205,
              "reasoningTokens": 3258,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 2,
              "phase": "turn",
              "action": "move 2 +2, move 2 +2",
              "selection": ["Drain Punch -> foe 2 (Kingambit)", "Knock Off -> foe 2 (Kingambit)"],
              "rationale": "Double Kingambit with Knock Off then Drain Punch: remove Chople before the Fighting hit rather than spending Whimsicott or a setup turn. Current damage endpoints suggest the combined attack can remove King from 94% even at high bulk (not an exhaustive guarantee), and Ape is guaranteed faster than King's normal-priority attacks. Kangaskhan cannot KO Ape with one unboosted Double-Edge; Drain Punch then restores health. If Kang attacks Weavile, its Knock Off has already enabled Ape, while a Gengar switch into King's slot is punished by Knock Off rather than absorbing both attacks.",
              "automatic": false,
              "latencyMs": 15292,
              "reasoningTokens": 153,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 2,
              "phase": "forced_switch",
              "action": "switch 4, pass",
              "selection": ["Switch to Excadrill", "Pass"],
              "rationale": "Bring Excadrill for immediate Mega-powered offense into the two physical attackers. Ape was lost to Sucker Punch plus Double-Edge before it could heal; keeping Whimsicott in reserve still preserves our route to speed control against the unrevealed backline. We need Drill's damage and resistances now, not an exposed support alongside Weavile.",
              "automatic": false,
              "latencyMs": 6398,
              "reasoningTokens": 62,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 3,
              "phase": "turn",
              "action": "move 3 +2, switch 4",
              "selection": ["Drain Punch -> foe 2 (Weavile)", "Switch to Salamence"],
              "rationale": "Excadrill-Mega HHP KOs Kingambit (70-96% vs 77%, Chople gone) and Protect only delays. Switch Kingambit to Salamence: HHP-immune, and Intimidate now has no Defiant target (Annihilape fainted), dropping both Excadrill-Mega and Weavile to -1. Kanga Drain Punch Weavile (4x, 81-163%) for the KO if it stays in; it attacked rather than Protected last turn under the same threat. Risk: Weavile Triple Axel into the Kingambit slot could break Sash, but it has targeted Kanga/resisted Kingambit and Excadrill covers that slot.",
              "automatic": false,
              "latencyMs": 55413,
              "reasoningTokens": 3022,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-3",
              "turn": 3,
              "phase": "forced_switch",
              "action": "switch 4, pass",
              "selection": ["Switch to Kingambit", "Pass"],
              "rationale": "Kingambit is the safer replacement: at -1 Excadrill-Mega's HHP no longer KOs it from 77%, Weavile's hits are resisted, and it threatens Iron Head OHKO on Weavile / Sucker Punch on Excadrill. Gengar would just be an HHP/Knock Off target and must be preserved as the mega for the endgame; Salamence can Tailwind next turn.",
              "automatic": false,
              "latencyMs": 25611,
              "reasoningTokens": 1538,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 3,
              "phase": "turn",
              "action": "move 1 +1 mega, move 3 +1",
              "selection": [
                "High Horsepower -> foe 1 (Kangaskhan) + Mega Evolve",
                "Triple Axel -> foe 1 (Kangaskhan)"
              ],
              "rationale": "Mega Evolve and double Kangaskhan with Triple Axel + High Horsepower. Mega Drill is guaranteed faster even if Kang Mega Evolves; concentrated damage aims to deny its attack and future Scrappy Fake Out cycles while preserving Weavile for Salamence. Kingambit's Sucker Punch cannot alone KO full-health Mega Drill, and this avoids sinking both attacks into a plausible Kingambit Protect. Splitting attacks risks leaving both foes alive and losing an attacker to Kangaskhan.",
              "automatic": false,
              "latencyMs": 16680,
              "reasoningTokens": 217,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 4,
              "phase": "turn",
              "action": "move 2 +2, move 4",
              "selection": ["Iron Head -> foe 2 (Weavile)", "Protect"],
              "rationale": "Weavile's obvious play is Triple Axel into Salamence (4x, multi-hit breaks Sash, up to 118%), so Salamence Protects. Kingambit Iron Head OHKOs Weavile (89-178%) after it commits; Weavile has never Protected this series and attacked the last two turns. Kingambit takes -1 HHP (46-64%) and survives from 77%. Keeps Kingambit's Protect and Salamence's Sash/Tailwind for the Whimsicott+Excadrill endgame, with Gengar healthy in the back.",
              "automatic": false,
              "latencyMs": 33699,
              "reasoningTokens": 1580,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 4,
              "phase": "turn",
              "action": "switch 3, move 3 +2",
              "selection": ["Switch to Whimsicott", "Triple Axel -> foe 2 (Salamence)"],
              "rationale": "Triple Axel pressures Salamence before its Tailwind and can defeat Sash through multiple hits. Switch Drill to Whimsicott to clear Intimidate, prepare immediate speed control/Taunt, and deny a Sucker Punch into Drill. At -1 Drill cannot KO 77% Kingambit with High Horsepower, so leaving it exposed for chip is less valuable than restoring its Attack and positioning our intact support. If King removes Weavile after it attacks, neutral-Attack Drill returns beside Whimsicott rather than becoming stranded against faster special attackers.",
              "automatic": false,
              "latencyMs": 22276,
              "reasoningTokens": 399,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-4",
              "turn": 4,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Excadrill-Mega"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-3",
              "turn": 5,
              "phase": "turn",
              "action": "move 4, move 2",
              "selection": ["Protect", "Heat Wave (both foes)"],
              "rationale": "Excadrill re-entered at +0 so HHP likely KOs Kingambit (70-96% vs 77%): Protect it and keep it for Sucker Punch next turn. Salamence Heat Wave chunks both (Excadrill 34-66%, Whimsicott 41-82%/Sash) while Sash protects Salamence from any single hit; Whimsicott's likely Prankster Tailwind doesn't stop this. Next turn Sucker Punch + second Heat Wave (93-176% total on Excadrill) should finish Excadrill and Whimsicott, with Gengar-Mega healthy as the closer.",
              "automatic": false,
              "latencyMs": 42394,
              "reasoningTokens": 2291,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 5,
              "phase": "forced_switch",
              "action": "pass, switch 3",
              "selection": ["Pass", "Switch to Gengar"],
              "rationale": "Automatic: only one legal joint action.",
              "automatic": true,
              "latencyMs": 0,
              "reasoningTokens": null,
              "reasoningChars": null
            },
            {
              "franchiseId": "franchise-4",
              "turn": 5,
              "phase": "turn",
              "action": "move 3 +2, move 2 +2",
              "selection": ["Moonblast -> foe 2 (Salamence)", "Iron Head -> foe 2 (Salamence)"],
              "rationale": "Concentrate Moonblast + Iron Head into Salamence before it moves, breaking Sash with two attacks and aiming to deny both Tailwind and Heat Wave. Both allies naturally move first, so Tailwind now would spend an action without fixing this immediate threat. Kingambit cannot KO either full-health ally with Sucker Punch alone, and Whimsicott's intact Sash covers Iron Head. Salamence just Protected, making another successful block less reliable; removing it gives our remaining two a fighting route against Kingambit and the last reserve.",
              "automatic": false,
              "latencyMs": 16517,
              "reasoningTokens": 207,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-3",
              "turn": 6,
              "phase": "turn",
              "action": "move 3 +2, move 4 mega",
              "selection": ["Sucker Punch -> foe 2 (Excadrill-Mega)", "Protect + Mega Evolve"],
              "rationale": "2v2 vs Whimsicott+Excadrill-Mega. Their sharpest line is Prankster Tailwind + HHP into Gengar (kills the Focus Blast threat before it moves), so Gengar Mega Evolves and Protects on entry. Kingambit Sucker Punch (priority, resolves before HHP) chips Excadrill 25-44% so that two more Sucker Punches / one Focus Blast finish it. Attacking with Focus Blast now loses outright to the Tailwind+HHP-Gengar line.",
              "automatic": false,
              "latencyMs": 71831,
              "reasoningTokens": 5278,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 6,
              "phase": "turn",
              "action": "move 1, move 1 +2",
              "selection": [
                "Tailwind (your side, including ally Excadrill-Mega)",
                "High Horsepower -> foe 2 (Gengar)"
              ],
              "rationale": "Set priority Tailwind and High Horsepower Gengar. Removing Salamence preserved both full-health allies and now lets Drill outrun Mega Gengar after Tailwind. High Horsepower has lethal damage at both evaluated endpoints; targeting Kingambit instead would expose Drill to an unopposed Focus Blast. Gengar Protect is acceptable: Piercing Drill chips through it while Tailwind establishes the lasting speed advantage, and a lone Kingambit attack cannot remove full-health Drill.",
              "automatic": false,
              "latencyMs": 10396,
              "reasoningTokens": 76,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 7,
              "phase": "turn",
              "action": "move 3 +2, move 3 +2",
              "selection": [
                "Sucker Punch -> foe 2 (Excadrill-Mega)",
                "Focus Blast -> foe 2 (Excadrill-Mega)"
              ],
              "rationale": "Piercing Drill pierces Protect and Excadrill outspeeds Gengar under Tailwind, so there's no safe turn: go for damage. Sucker Punch (priority) puts Excadrill at 16-35%; if HHP goes into Kingambit, Gengar's Focus Blast (70%) finishes it and Gengar beats Whimsicott alone. If HHP kills Gengar, Kingambit's next Sucker Punch (25-44%) likely KOs Excadrill from 16-35% before it moves, then Iron Head handles Whimsicott. Roughly 65-75% win equity, better than any Protect line.",
              "automatic": false,
              "latencyMs": 36612,
              "reasoningTokens": 1567,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 7,
              "phase": "turn",
              "action": "move 3 +1, move 1 +2",
              "selection": [
                "Moonblast -> foe 1 (Kingambit)",
                "High Horsepower -> foe 2 (Gengar-Mega)"
              ],
              "rationale": "Moonblast Kingambit while High Horsepower finishes Gengar or heavily chips another Protect. Drill survives one more Sucker Punch at the full evaluated range, and Whimsicott must start softening King now so Drill can use Protect against the following lethal Sucker Punch while Moonblast keeps progressing. High Horsepower retains substantially better through-Protect damage than Iron Head; Gengar's prior 46% protected loss means another protected hit would leave it close to Whimsicott's finishing range.",
              "automatic": false,
              "latencyMs": 20692,
              "reasoningTokens": 355,
              "reasoningChars": 2
            },
            {
              "franchiseId": "franchise-3",
              "turn": 8,
              "phase": "turn",
              "action": "move 3 +2, pass",
              "selection": ["Sucker Punch -> foe 2 (Excadrill-Mega)", "Pass"],
              "rationale": "Excadrill at 3% outspeeds under Tailwind and HHP KOs Kingambit from 41%; Sucker Punch is the only move that lands first and KOs if Excadrill attacks (it has never Protected all series). Protect is pierced by Piercing Drill and Kowtow/Iron Head are too slow.",
              "automatic": false,
              "latencyMs": 21686,
              "reasoningTokens": 627,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 8,
              "phase": "turn",
              "action": "move 3 +1, move 4",
              "selection": ["Moonblast -> foe 1 (Kingambit)", "Protect"],
              "rationale": "Protect the 3%-HP Drill from Sucker Punch while Moonblast brings Kingambit into finishing range. Whimsicott is still full with Sash, so King cannot remove it with one attack. This keeps both finishers available: next turn, once King is chipped, simultaneous Moonblast and accurate Iron Head can punish either Sucker Punch target without requiring High Horsepower to connect.",
              "automatic": false,
              "latencyMs": 13443,
              "reasoningTokens": 285,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-3",
              "turn": 9,
              "phase": "turn",
              "action": "move 3 +2, pass",
              "selection": ["Sucker Punch -> foe 2 (Excadrill-Mega)", "Pass"],
              "rationale": "At 3% any hit KOs Kingambit and Whimsicott moves first; Sucker Punch (+1) at least KOs Excadrill before Moonblast lands if Excadrill attacks. Protect is pierced by Piercing Drill. Only remaining line.",
              "automatic": false,
              "latencyMs": 76666,
              "reasoningTokens": 363,
              "reasoningChars": 0
            },
            {
              "franchiseId": "franchise-4",
              "turn": 9,
              "phase": "turn",
              "action": "move 3 +1, move 2 +1",
              "selection": ["Moonblast -> foe 1 (Kingambit)", "Iron Head -> foe 1 (Kingambit)"],
              "rationale": "Finish with two accurate attacks. Sucker Punch into Drill leaves full-health Whimsicott free to KO; targeting Whimsicott cannot remove it from full and leaves both attacks available. If Kingambit Protects, Piercing Drill's quarter-damage Iron Head is sufficient against its remaining 3%, avoiding High Horsepower's miss chance.",
              "automatic": false,
              "latencyMs": 4940,
              "reasoningTokens": 0,
              "reasoningChars": 0
            }
          ],
          "reflections": [
            {
              "franchiseId": "franchise-3",
              "result": "lost",
              "summary": "G3 lost 0-2 on the board after an even 2-for-2 trade; series lost 1-2. The opening went to plan: Kanga Fake Out + Double-Edge and Kingambit Sucker Punch KO'd Annihilape by turn 2, and Iron Head KO'd Weavile on turn 4. The game was lost in the middle: (1) Turn 3 I pivoted Kingambit to Salamence for Intimidate while leaving Kanga at 85% to attack; Weavile (Triple Axel) and Excadrill-Mega both outsped and double-targeted Kanga, so it died without moving - Kanga Protect + the switch would have kept it. (2) Turn 4-5 the opponent reset Intimidate by switching Excadrill out, then double-targeted Salamence (Moonblast broke Sash, Iron Head finished) before it moved; Salamence never set Tailwind or fired Heat Wave, so its Sash bring gave zero value. (3) The endgame Kingambit + Gengar-Mega vs Whimsicott + Excadrill-Mega is structurally lost: Prankster Tailwind puts Excadrill above Gengar, HHP OHKOs Gengar and Piercing Drill goes through Protect, Sucker Punch alone cannot outrace Moonblast chip once Excadrill Protects the obvious priority hit. Root cause was the bring: I repeated the exact G2 bring and lead (Kanga/Kingambit lead, Gengar/Salamence back) against an opponent who brought the same four all series and adapted precisely - Fake Out into Kingambit, Knock Off to remove Chople, Intimidate reset, saving Tailwind for Gengar-Mega's entry. My G1->G2 adjustment (Kingambit for Rotom-W, Kanga+Kingambit lead) won G2 but was read and punished in G3; I had no Ground-immune answer to Excadrill-Mega once Salamence was chunked, and Gengar (the mega) never fired an attack all game. Piloting was clean turn-to-turn (0 errors), but the plan lacked a mid-game contingency for Excadrill once Kingambit's Chople was gone.",
              "adjustment": "Against this opponent: vary the bring after a win rather than repeating it. Bring Rotom-Wash (Levitate, Will-O-Wisp/Hydro Pump) or Mega Altaria as the dedicated Excadrill-Mega answer instead of relying on Salamence's Sash, which is broken by Triple Axel/Beat Up/Moonblast every game. Keep Kanga + Kingambit as the lead only if Kingambit Protects turn 1 (they now Fake Out Kingambit and Knock Off Chople). Never leave a slot exposed to a double-target when the partner switches; pair every defensive pivot with Protect on the other slot. Set our own Tailwind before Gengar enters, or don't bring Gengar into an Excadrill-Mega endgame at all; accept Gengar as a bench threat and mega Kangaskhan or Altaria instead. Expect Excadrill to Protect the turn it is in obvious Sucker Punch range and hit the partner that turn."
            },
            {
              "franchiseId": "franchise-4",
              "result": "won",
              "summary": "Won G3 in nine turns and the series 2–1. The decisive adjustment was preserving Whimsicott for offense and late Tailwind instead of spending it on Ape setup. G3's changed T1 Fake Out target (Kingambit) retained Weavile. However, my T2 Knock Off + Drain Punch line overlooked combined Sucker Punch and Scrappy Double-Edge: Ape died before attacking. That was a tactical error despite zero submission errors. T4 also cost Weavile into Salamence Protect + Kingambit Iron Head, although switching Drill reset Intimidate and positioned Whimsicott.\nWe recovered through concentrated damage: Triple Axel + High Horsepower removed Kangaskhan T3; Moonblast + Iron Head removed Salamence T5 before it could establish Tailwind, while King protected. Preserved Whimsicott then set Tailwind, and Piercing Drill's High Horsepower took 46% through Gengar's Protect before finishing it. Moonblast steadily removed Kingambit while Drill's Protect denied Sucker Punch; Whimsicott finished at full HP despite an opposing critical Sucker Punch leaving Drill at 6 HP earlier.\nAcross the series, G1's Whimsicott preservation and charged Ape won with help from favorable misses; G2's support expenditure and uncontested late Salamence Tailwind lost to untouched special attackers. G3 corrected that resource/speed-control failure without changing our four. The adjustment helped overall, but the early Ape loss was avoidable, not evidence that sacrificing it was sound.",
              "adjustment": "Retain the flexible four and the principle of preserving Whimsicott; no evidence requires a roster overhaul. Against Kangaskhan/Kingambit, Fake Out King + the Ape pivot worked on T1, but do not automatically follow with Knock Off + Drain Punch. Evaluate both opposing attacks in priority order: Sucker Punch plus faster Scrappy Double-Edge can KO Ape before recovery. Consider Protect Ape + Knock Off King to remove Chople while denying that double-target, then reassess rather than scripting a guaranteed KO. Account for King Protect and attacks into Weavile as alternatives.\nAgainst Salamence beside King, explicitly price Protect + Iron Head before committing exposed Weavile's Triple Axel; do not treat its offensive matchup as a free KO. Preserve a route to neutral-Attack Drill plus Whimsicott, and use combined Moonblast/Iron Head pressure to deny Tailwind when both naturally move first. Treat Whimsicott as a damage dealer and Sucker Punch endgame partner, not merely a disposable setter. Audit calculator assumptions: single-hit survival is not joint-action survival, and multi-hit/charged-move ranges need inspection."
            }
          ]
        }
      ]
    }
  },
  "reviews": []
}
