Read docs/work-queue.md and do the next unchecked batch. For each batch:
mtg-engine/src/abilities.rs, mtg-engine/src/game.rs) to understand current Effect/StaticEffect variantsgame.rs mod tests)cargo check -p mtg-cards && cargo test --libdocs/{fdn,tla,tdm,ecl}-remediation.md, update ROADMAP.mddocs/work-queue.md with today's dateIf a batch turns out to be wrong or more complex than described, update the queue with what you learned and move on to the next one.
I'll start by reading the work queue to find the next unchecked batch.
The next batch is Batch 4: Simple token creation. Let me start by reading the engine files and investigating the specific cards.
Let me read the full grep output and the CreateToken implementation in game.rs.
Let me check the parse_token_stats function and identify the card names for each line.
Let me read the remaining cards I need to identify.
Good. I have a clear picture now. Let me check for existing token creation tests.
No token creation tests exist yet. Let me look at the test patterns in the framework and game.rs test module.
Now I have a complete picture. Let me execute the batch:
Fixable cards (simple Custom(...) → create_token(...)):
Skipping:
Let me make all the edits and add a test.
Now the ECL fixes:
Good. Now let me add a test for CreateToken in the framework and verify the changes compile.
Now let me check if there's a has_keyword method on Permanent, and compile.
mtg-cards compiles. Now let me run the tests.
All 19 tests pass including the 2 new token creation tests. Let me also verify the full test suite passes.
All 249 tests pass (52+18+160+0+19). Now let me update the docs. Let me read the remediation docs to mark the fixed cards.
Only Clachan Festival is listed in the remediation docs. The other FDN cards weren't individually listed (they're probably lumped in a category). Let me update the Clachan Festival entry and add notes for the FDN cards.
Now let me check if the FDN cards are somewhere in the "broken" section. Let me look at the overall structure of the FDN remediation doc.
Now let me update the ROADMAP.md.
Now let me update the work queue — check off batch 4 and update it with findings.
Now let me update the batch 4 section.
Let me verify everything is clean with a final test run.
All 249 tests pass, compilation clean. Let me verify the actual edits look correct by spot-checking a couple.
All edits look correct. Let me do a quick summary of what was done:
Batch 4 complete. Here's what was done:
Cards fixed (8 cards, 10 Custom(...) → create_token(...) swaps):
| Card | Set | Change |
|---|---|---|
| Guarded Heir | FDN | ETB → create_token("3/3 Knight", 2) |
| Prideful Parent | FDN | ETB → create_token("1/1 Cat", 1) |
| Resolute Reinforcements | FDN | ETB → create_token("1/1 Soldier", 1) |
| Release the Dogs | FDN | Spell → create_token("1/1 Dog", 4) |
| Dwynen's Elite | FDN | ETB → create_token("1/1 Elf Warrior", 1) |
| Dragonmaster Outcast | FDN | Upkeep → create_token("5/5 Dragon with flying", 1) |
| Searslicer Goblin | FDN | End step → create_token("1/1 Goblin", 1) |
| Clachan Festival | ECL | ETB → create_token("1/1 Kithkin", 2) + activated Cost::pay_mana("{4}{W}") + create_token("1/1 Kithkin", 1) |
Tests added: framework_create_token_effect, framework_create_token_with_keyword
249 tests passing (52 + 18 + 160 + 0 + 19).
Deferred: Food tokens (artifact, not creature — needs engine change), Faebloom Trick (compound effect), all token copies, variable-count tokens. These findings are documented in the work queue.