Skip to content

feat(parser): "Lands you control are the chosen type in addition to their other types" (Realmwright) - #5136

Merged
matthewevans merged 1 commit into
phase-rs:mainfrom
minion1227:minion_realmwright
Jul 5, 2026
Merged

feat(parser): "Lands you control are the chosen type in addition to their other types" (Realmwright)#5136
matthewevans merged 1 commit into
phase-rs:mainfrom
minion1227:minion_realmwright

Conversation

@minion1227

Copy link
Copy Markdown
Contributor

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 (Creatures / Vehicle you control).

This adds the basic-land-type axis sibling parse_chosen_land_type_static in oracle_static/type_change.rs, emitting the existing AddChosenSubtype { kind: 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. 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_type test (asserts AddChosenSubtype{BasicLandType} on lands-you-control, and that the creature form still routes to the creature handler); full chosen_type suite 35/35 green; parser-combinator gate + fmt clean.

🤖 Generated with Claude Code

…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>
@minion1227
minion1227 requested a review from matthewevans as a code owner July 5, 2026 10:31

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown

Parse changes introduced by this PR · 1 card(s), 2 signature(s) (baseline: main d7fefa5b5c83)

1 card(s) · static/Continuous · added: Continuous (affects=you control land, mods=add chosen subtype)

Examples: Realmwright

1 card(s) · ability/static_structure · removed: static_structure

Examples: Realmwright

2 card(s) had Oracle-text changes (errata/reprint) — excluded as non-parser.

@matthewevans matthewevans self-assigned this Jul 5, 2026

@matthewevans matthewevans left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@matthewevans matthewevans added the enhancement New feature or request label Jul 5, 2026
@matthewevans
matthewevans added this pull request to the merge queue Jul 5, 2026
@matthewevans matthewevans removed their assignment Jul 5, 2026
Merged via the queue into phase-rs:main with commit e6de357 Jul 5, 2026
11 checks passed
@minion1227
minion1227 deleted the minion_realmwright branch July 18, 2026 06:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants