You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Card Bug] Sauron, Dino Devotee — modal "It's a green Dinosaur with base power and toughness 5/5" clause regressed to Unimplemented between v0.35.2 and v0.45.0 #7031
Sauron, Dino Devotee (LTC/REX crossover printing; oracle_id a419fe1e-family) — the "Turn People into Dinosaurs" mode.
Build/version
v0.45.0 release card-data.json (regression window: v0.36.0–v0.45.0; last known-good parse observed in the v0.35.2 release card-data).
Actual behavior
The mode's animate clause — "It's a green Dinosaur with base power and toughness 5/5 for as long as it has a saurian counter on it." — parses to an opaque residue at v0.45.0. The mode's sub_ability.effect is:
{
"type": "Unimplemented",
"name": "it's",
"description": "It's a green Dinosaur with base power and toughness 5/5"
}
The ForAsLongAs { RecipientHasCounters } duration on the wrapper survives, but the entire continuous-modification payload is gone.
Expected behavior
The v0.35.2 release card-data parsed this mode fully — the same sub_ability carried a GenericEffect with a complete static-modification suite:
and inspect the second mode's sub_ability.effect — Unimplemented(name: "it's") on current main, vs the structured GenericEffect in the v0.35.2 release asset.
Additional context
Likely mechanism: the modal-blocks-as-native-IR rework (refactor(parser): emit modal blocks as native ir #6811, shipped v0.42.0) — the drop is specific to a mode's trailing sentence ("Put a saurian counter on another target creature. It's a …"), which suggests the mode-body sentence chain no longer reaches the parse_enchanted_is_type-style continuous-modification path.
Four other cards carry the same Unimplemented(name: "it's") residue at v0.45.0 (Magar of the Magic Strings, Pirk, Heroic Captain, Otherworldly Escort, Join the Group), but those were already unparsed at v0.35.2 — only Sauron, Dino Devotee is a regression proper. A fix for the "It's a …" sentence shape would likely clear several of them as the same class.
Found via a downstream consumer's structural cross-check (the mtg-skills Card IR crosswalk diffs its detector output against phase's parse at every pin bump; this surfaced as a previously-structural card dropping to residue at the v0.35.2 → v0.45.0 bump).
Card(s)
Sauron, Dino Devotee (LTC/REX crossover printing; oracle_id
a419fe1e-family) — the "Turn People into Dinosaurs" mode.Build/version
v0.45.0 release
card-data.json(regression window: v0.36.0–v0.45.0; last known-good parse observed in the v0.35.2 release card-data).Actual behavior
The mode's animate clause — "It's a green Dinosaur with base power and toughness 5/5 for as long as it has a saurian counter on it." — parses to an opaque residue at v0.45.0. The mode's
sub_ability.effectis:{ "type": "Unimplemented", "name": "it's", "description": "It's a green Dinosaur with base power and toughness 5/5" }The
ForAsLongAs { RecipientHasCounters }duration on the wrapper survives, but the entire continuous-modification payload is gone.Expected behavior
The v0.35.2 release card-data parsed this mode fully — the same
sub_abilitycarried aGenericEffectwith a complete static-modification suite:{ "type": "GenericEffect", "static_abilities": [{ "mode": "Continuous", "affected": { "type": "ParentTarget" }, "modifications": [ { "type": "SetPower", "value": 5 }, { "type": "SetToughness", "value": 5 }, { "type": "SetColor", "colors": ["Green"] }, { "type": "AddType", "core_type": "Creature" }, { "type": "RemoveAllSubtypes", "set": "Creature" }, { "type": "AddSubtype", "subtype": "Dinosaur" } ], "description": "become a green Dinosaur with base power and toughness 5/5" }], "duration": { "ForAsLongAs": { "condition": { "type": "RecipientHasCounters", "counters": { "type": "OfType", "data": "saurian" }, "minimum": 1 } } }, "target": { "type": "ParentTarget" } }That earlier parse is the expected shape (CR 613.4b type/color/P-T setting; CR 700.2 modal target declaration).
Steps to reproduce
jq '.["sauron, dino devotee"].abilities' client/public/card-data.jsonand inspect the second mode's
sub_ability.effect—Unimplemented(name: "it's")on current main, vs the structuredGenericEffectin the v0.35.2 release asset.Additional context
parse_enchanted_is_type-style continuous-modification path.Unimplemented(name: "it's")residue at v0.45.0 (Magar of the Magic Strings, Pirk, Heroic Captain, Otherworldly Escort, Join the Group), but those were already unparsed at v0.35.2 — only Sauron, Dino Devotee is a regression proper. A fix for the "It's a …" sentence shape would likely clear several of them as the same class.Found via a downstream consumer's structural cross-check (the mtg-skills Card IR crosswalk diffs its detector output against phase's parse at every pin bump; this surfaced as a previously-structural card dropping to residue at the v0.35.2 → v0.45.0 bump).