feat(parser): "Lands you control are the chosen type in addition to their other types" (Realmwright) - #5136
Conversation
…heir other types" (Realmwright)
Realmwright ("As ~ enters, choose a basic land type. Lands you control are the
chosen type in addition to their other types.") produced no static: the existing
chosen-type-in-addition handler (parse_arcane_adaptation_chosen_type_static)
covers only the creature-subtype axis. Add the basic-land-type axis sibling
parse_chosen_land_type_static in type_change.rs, emitting the existing
AddChosenSubtype{BasicLandType} runtime (already applied in game/layers.rs)
scoped to lands you control. Additive only (CR 205.1b): each land retains its
existing subtypes.
No new variant, no new runtime — the land axis mirrors the creature path's
kind: CreatureType. CR 305.6 (basic land types) + CR 607.2d (chosen link) +
CR 613.1d (Layer 4).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request implements parsing support for the land-axis counterpart of Arcane Adaptation (e.g., Realmwright), specifically handling static abilities where lands you control are the chosen type in addition to their other types. It introduces parse_chosen_land_type_static and its corresponding nom parser sentence helper, registers it in the static line parser dispatch, and adds a comprehensive unit test to verify correct behavior. There are no review comments, and I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Parse changes introduced by this PR · 1 card(s), 2 signature(s) (baseline: main
|
matthewevans
left a comment
There was a problem hiding this comment.
Maintainer review: narrow parser addition for the basic-land-type chosen-subtype axis. Parse diff is scoped to Realmwright, implementation reuses AddChosenSubtype { kind: BasicLandType } with no new runtime/variant, and CI is green.
Realmwright ("As ~ enters, choose a basic land type. Lands you control are the chosen type in addition to their other types.") produced no static — the existing chosen-type-in-addition handler
parse_arcane_adaptation_chosen_type_staticcovers only the creature-subtype axis (Creatures / Vehicle you control).This adds the basic-land-type axis sibling
parse_chosen_land_type_staticinoracle_static/type_change.rs, emitting the existingAddChosenSubtype { kind: BasicLandType }runtime (already applied ingame/layers.rs) scoped to lands you control. Additive only (CR 205.1b): each land retains its existing subtypes.No new variant, no new runtime — the land axis mirrors the creature path's
kind: CreatureType. Per the categorical-boundary rule, basic land types (CR 305.6) are a distinct CR section from creature subtypes (CR 205.3g), so a sibling handler is the correct shape rather than parameterizing the creature-specific scope enum.CR 305.6 (basic land types) + CR 607.2d (chosen link) + CR 613.1d (Layer 4) + CR 205.1b (in-addition retain) — all verified against
docs/MagicCompRules.txt.Verified: new
parse_chosen_land_type_adds_chosen_basic_land_typetest (assertsAddChosenSubtype{BasicLandType}on lands-you-control, and that the creature form still routes to the creature handler); fullchosen_typesuite 35/35 green; parser-combinator gate + fmt clean.🤖 Generated with Claude Code