Skip to main content

CardInstance

Type Alias CardInstance 

Source
pub type CardInstance = Card;
Expand description

Transitional alias for downstream code still importing CardInstance.

Aliased Type§

pub struct CardInstance {
Show 183 fields pub id: CardId, pub card_name: String, pub full_name: String, pub owner: PlayerId, pub controller: PlayerId, pub zone: ZoneType, pub type_line: CardTypeLine, pub mana_cost: ManaCost, pub color: ColorSet, pub color_identity: ColorSet, pub base_power: Option<i32>, pub base_toughness: Option<i32>, pub initial_loyalty: Option<String>, pub power_modifier: i32, pub toughness_modifier: i32, pub perpetual_power_modifier: i32, pub perpetual_toughness_modifier: i32, pub perpetual: Vec<PerpetualRecord>, pub static_set_power: Option<i32>, pub static_set_toughness: Option<i32>, pub static_power_modifier: i32, pub static_toughness_modifier: i32, pub tapped: bool, pub last_mana_produced: Option<Vec<u16>>, pub flipped: bool, pub face_down: bool, pub has_morph: bool, pub discarded: bool, pub unearthed: bool, pub class_level: i32, pub paired_with: Option<CardId>, pub manifested: bool, pub cloaked: bool, pub foretold: bool, pub melded_with: Vec<CardId>, pub foretold_cost_by_effect: bool, pub is_bestowed: bool, pub summoning_sick: bool, pub came_under_control_since_last_upkeep: bool, pub exerted: bool, pub damage: i32, pub cast_from: Option<ZoneType>, pub counters: BTreeMap<CounterType, i32>, pub keywords: KeywordCollection, pub granted_keywords: KeywordCollection, pub granted_svars: BTreeMap<String, String>, pub static_added_subtypes: Vec<String>, pub static_type_line_base: Option<CardTypeLine>, pub changed_type_line_base: Option<CardTypeLine>, pub changed_base_power: Option<Option<i32>>, pub changed_base_toughness: Option<Option<i32>>, pub pump_keywords: KeywordCollection, pub pump_trigger_count: usize, pub abilities: Vec<String>, pub action_spell_specs: Vec<CardActionSpellSpec>, pub action_spell_cost: Option<Cost>, pub ai_phyrexian_payment: Option<String>, pub spree_min_mode_cost: Option<i32>, pub activated_abilities: Vec<ActivatedAbility>, pub base_ability_count: usize, pub base_trigger_count: usize, pub changed_card_traits: BTreeMap<(i64, i64), CardTraitChanges>, pub changed_card_traits_by_text: BTreeMap<(i64, i64), CardTraitChanges>, pub static_abilities: Vec<StaticAbility>, pub has_deathtouch_damage: bool, pub cant_attack_static: bool, pub cant_block_static: bool, pub turn_in_zone: u32, pub entered_battlefield_this_turn: bool, pub attacked_this_turn: bool, pub started_turn_tapped: bool, pub triggers: Vec<Trigger>, pub svars: BTreeMap<String, String>, pub parsed_svar_cache: ParsedSVarCache, pub is_commander: bool, pub move_to_command_zone: bool, pub commander_cast_count: u32, pub is_token: bool, pub cast_with_flashback: bool, pub cast_with_harmonize: bool, pub replacement_effects: Vec<ReplacementEffect>, pub attached_to: Option<CardId>, pub attached_to_player: Option<PlayerId>, pub attached_this_turn: bool, pub attachments: Vec<CardId>, pub remembered_cards: Vec<CardId>, pub remembered_players: Vec<PlayerId>, pub imprinted_cards: Vec<CardId>, pub gain_control_targets: Vec<CardId>, pub until_leaves_battlefield: Vec<CardId>, pub exiled_cards: Vec<CardId>, pub paid_cost_exiled_cards: Vec<CardId>, pub haunted_by: Vec<CardId>, pub haunting: Option<CardId>, pub chosen_map: HashMap<PlayerId, Vec<CardId>>, pub remembered_cmc: Vec<i32>, pub effect_source: Option<CardId>, pub clone_origin: Option<CardId>, pub copied_permanent: Option<CardId>, pub cast_sa: Option<Box<SpellAbility>>, pub chosen_charm_modes: HashMap<String, i32>, pub remembered_lki_cards: Vec<Card>, pub lose_control_condition: Option<LoseControlCondition>, pub temp_effect_until_eot: bool, pub temp_effect_host: Option<CardId>, pub forget_on_moved_origin: Option<ZoneType>, pub exile_when_no_remembered: bool, pub exiled_by: Option<CardId>, pub original_controller_eot: Option<PlayerId>, pub is_transformed: bool, pub other_part: Option<CardOtherPart>, pub set_code: Option<String>, pub card_number: Option<String>, pub paper_foil: bool, pub phased_out: bool, pub regeneration_shields: i32, pub kicked: bool, pub monstrous: bool, pub chosen_colors: Vec<String>, pub chosen_cards: Vec<CardId>, pub animate_state: Option<AnimateState>, pub clone_state: Option<CloneState>, pub chosen_type: Option<String>, pub chosen_type2: Option<String>, pub noted_types: Vec<String>, pub named_cards: Vec<String>, pub chosen_number: Option<i32>, pub chosen_player: Option<PlayerId>, pub chosen_player_controller: Option<PlayerId>, pub chosen_type_controller: Option<PlayerId>, pub chosen_player_revealed: bool, pub chosen_type_revealed: bool, pub promised_gift: Option<PlayerId>, pub attraction_lights: Vec<u32>, pub sector: Option<String>, pub chosen_sector: Option<String>, pub sprocket: i32, pub chosen_even_odd: Option<String>, pub detained: bool, pub attacking_player: Option<PlayerId>, pub goaded_by: Option<PlayerId>, pub damage_prevention: i32, pub assigned_damage: i32, pub must_block: bool, pub encoded_cards: Vec<CardId>, pub damage_sources_this_turn: Vec<CardId>, pub total_damage_done_this_turn: i32, pub lki_power: Option<i32>, pub lki_toughness: Option<i32>, pub lki_counters: Option<BTreeMap<CounterType, i32>>, pub damage_history: CardDamageHistory, pub must_block_cards: Vec<CardId>, pub etb_counters_p1p1: i32, pub colors_spent_to_cast: u16, pub paying_mana_to_cast: Vec<u16>, pub chosen_modes: Option<Vec<usize>>, pub strive_extra_targets: u32, pub became_target_this_turn: bool, pub temp_controllers: Vec<PlayerId>, pub may_look_at: Vec<PlayerId>, pub may_play: Vec<PlayerId>, pub can_block_additional: i32, pub can_block_any: bool, pub cant_have_keywords: HashSet<String>, pub intensity: i32, pub surveilled: bool, pub milled: bool, pub visited_this_turn: bool, pub times_crewed_this_turn: u32, pub is_crewed: bool, pub ignore_legend_rule_flag: bool, pub ability_activated_this_turn: u32, pub ability_resolved_this_turn: u32, pub number_turn_activations: ActivationTable, pub number_game_activations: ActivationTable, pub number_ability_resolved: ActivationTable, pub planeswalker_abilities_activated: u32, pub planeswalker_activation_limit_used: bool, pub chosen_modes_turn: Option<u32>, pub enlisted_this_combat: bool, pub activations_this_game: BTreeMap<usize, u32>, pub is_renowned: bool, pub zone_timestamp: u64, /* private fields */
}

Fields§

§id: CardId§card_name: String

The card’s active face name (front face for single/split cards, active face for DFC). On the battlefield, this is the name that’s displayed.

§full_name: String

The full combined name for split/room cards (e.g. “Walk-In Closet // Forgotten Cellar”). For non-split cards, this equals card_name. Used for hand/graveyard display and database lookups.

§owner: PlayerId§controller: PlayerId§zone: ZoneType§type_line: CardTypeLine§mana_cost: ManaCost§color: ColorSet§color_identity: ColorSet

Immutable color identity from the card’s rules (CR 903.4): mana cost colors plus any mana symbols found in the oracle text (outside reminder text). Used for commander color-identity checks and Combo ColorIdentity mana productions. Mirrors Java CardRules.getColorIdentity().

§base_power: Option<i32>§base_toughness: Option<i32>§initial_loyalty: Option<String>

Printed starting loyalty for planeswalkers.

§power_modifier: i32

Temporary P/T modifications from spells/abilities resolving this turn (e.g. Giant Growth). Reset when leaving the battlefield.

§toughness_modifier: i32§perpetual_power_modifier: i32

Perpetual P/T modifications — persist across zone changes (never reset). Applied by PumpAll / Pump effects with Duration$ Perpetual.

§perpetual_toughness_modifier: i32§perpetual: Vec<PerpetualRecord>

Java-parity storage of all perpetual effect records applied to this card.

§static_set_power: Option<i32>

Layer 7b override: set by SetPower$ / SetToughness$ continuous effects. None means use base_power / base_toughness as normal. Reset to None each time [layer::apply_continuous_effects] runs.

§static_set_toughness: Option<i32>§static_power_modifier: i32

Layer 7c bonus: accumulated from AddPower$ / AddToughness$ anthems. Reset to 0 each time [layer::apply_continuous_effects] runs.

§static_toughness_modifier: i32§tapped: bool§last_mana_produced: Option<Vec<u16>>

Mana atoms produced the last time this land was tapped for mana. Used for mana rollback — when untapping, remove exactly this mana from pool. Covers base production + aura triggers + static doublers + any other source.

§flipped: bool§face_down: bool§has_morph: bool

True if this card has Morph or Megamorph and can be cast face-down for {3}.

§discarded: bool

True if this card was discarded (CR 400.7k, for TrackDiscarded$ effects).

§unearthed: bool

True if this card was unearthed (should be exiled at EOT or if leaving battlefield).

§class_level: i32

Class enchantment level (1 = base, 2+ = leveled up).

§paired_with: Option<CardId>

Soulbond: paired creature (if any).

§manifested: bool

True if this card was manifested (face-down as 2/2 creature).

§cloaked: bool

True if this card was cloaked (face-down with ward {2}).

§foretold: bool

True if this card was foretold (exiled face-down via Foretell).

§melded_with: Vec<CardId>

Other card(s) melded/merged with this one. When this card changes zones, all melded parts move together (CR 712.4).

§foretold_cost_by_effect: bool

True if foretold cost was set by an effect (not the card’s own Foretell ability).

§is_bestowed: bool

True if this card is currently bestowed (attached as an Aura via Bestow).

§summoning_sick: bool§came_under_control_since_last_upkeep: bool§exerted: bool§damage: i32§cast_from: Option<ZoneType>

Zone the card was cast from (mirrors Java Card.castFrom). Some only while the card represents a spell that was actually cast — set during cast resolution, cleared on every zone change so the next “object” the card becomes (CR 400.7) starts with no cast history. Used by wasCast/wasCastByYou valid filters (e.g. Sunderflock’s ETB).

§counters: BTreeMap<CounterType, i32>§keywords: KeywordCollection§granted_keywords: KeywordCollection

Keywords granted by continuous static effects (Layer 6). Reset and recomputed each time [layer::apply_continuous_effects] runs.

§granted_svars: BTreeMap<String, String>

SVars supplied by granted text (e.g. AddTrigger$/AddAbility$). Reset and recomputed each time [layer::apply_continuous_effects] runs.

§static_added_subtypes: Vec<String>

Type tokens added by continuous static effects (Layer 4, AddType$). Reset and recomputed each time [layer::apply_continuous_effects] runs. The listed strings may be supertypes, core card types, or subtypes; keeping a separate list lets us revert on reset without losing the card’s intrinsic type line.

§static_type_line_base: Option<CardTypeLine>§changed_type_line_base: Option<CardTypeLine>§changed_base_power: Option<Option<i32>>§changed_base_toughness: Option<Option<i32>>§pump_keywords: KeywordCollection

Keywords granted temporarily by pump effects (KW$ parameter) until end of turn. Cleared during step_cleanup alongside power_modifier / toughness_modifier.

§pump_trigger_count: usize

Number of triggers added temporarily by DB$ Animate | Triggers$ effects. At cleanup, this many triggers are popped from the end of the triggers vec.

§abilities: Vec<String>§action_spell_specs: Vec<CardActionSpellSpec>

Prebound SP$ ability metadata used by action-space filters.

§action_spell_cost: Option<Cost>

Prebound first SP$ Cost used by action-space non-mana cost checks.

§ai_phyrexian_payment: Option<String>

Prebound AIPhyrexianPayment$ policy from printed ability text.

§spree_min_mode_cost: Option<i32>

Prebound minimum Spree mode cost from Choices$ -> SVar ModeCost$.

§activated_abilities: Vec<ActivatedAbility>§base_ability_count: usize

Number of base activated abilities (before continuous effects add more via AddAbility$). Used by apply_continuous_effects to truncate granted abilities on reset.

§base_trigger_count: usize

Number of base triggers (before continuous effects add more via AddTrigger$). Used by apply_continuous_effects to truncate granted triggers on reset.

§changed_card_traits: BTreeMap<(i64, i64), CardTraitChanges>

Applied card-trait mutation layers keyed by (timestamp, static_id). Mirrors Java changedCardTraits table.

§changed_card_traits_by_text: BTreeMap<(i64, i64), CardTraitChanges>

Text-layer trait changes keyed by (timestamp, static_id). Mirrors Java changedCardTraitsByText table.

§static_abilities: Vec<StaticAbility>

Parsed static abilities (from S$ lines in abilities). Mirrors Java Forge Card.getStaticAbilities().

§has_deathtouch_damage: bool§cant_attack_static: bool

Set by Mode$ CantAttack static effects. Reset each time [layer::apply_continuous_effects] runs.

§cant_block_static: bool

Set by Mode$ CantBlock static effects. Reset each time [layer::apply_continuous_effects] runs.

§turn_in_zone: u32§entered_battlefield_this_turn: bool§attacked_this_turn: bool§started_turn_tapped: bool

Snapshot of whether this permanent was tapped at the start of its controller’s current turn (before untap step).

§triggers: Vec<Trigger>§svars: BTreeMap<String, String>§parsed_svar_cache: ParsedSVarCache§is_commander: bool

True if this card is designated as a commander.

§move_to_command_zone: bool

True if this commander entered graveyard or exile since the last SBA check and may still be moved to the command zone.

§commander_cast_count: u32

How many times this commander has been cast from the command zone (for tax).

§is_token: bool

True if this permanent is a token or a copy-token (ceases to exist on zone change).

§cast_with_flashback: bool

Set when the card is cast from graveyard via Flashback. Used by the flashback replacement effect to exile the card when it leaves the stack.

§cast_with_harmonize: bool

Set when the card is cast from graveyard via Harmonize. Used by the Harmonize replacement effect to exile the card when it leaves the stack.

§replacement_effects: Vec<ReplacementEffect>§attached_to: Option<CardId>

The permanent this card is currently attached to (for Auras/Equipment).

§attached_to_player: Option<PlayerId>§attached_this_turn: bool

Whether this equipment was attached/moved this turn (AI memory to prevent ping-ponging). Cleared at start of each turn. Mirrors Java AiCardMemory.MemorySet.ATTACHED_THIS_TURN.

§attachments: Vec<CardId>

Cards currently attached to this permanent (inverse of attached_to).

§remembered_cards: Vec<CardId>

Cards remembered by this card (for RememberCountered, etc.)

§remembered_players: Vec<PlayerId>

Players remembered by this card (for Player.IsRemembered checks).

§imprinted_cards: Vec<CardId>

Cards imprinted on this card (for Imprint mechanic, e.g. Chrome Mox).

§gain_control_targets: Vec<CardId>

Cards associated via gain-control effects.

§until_leaves_battlefield: Vec<CardId>

Cards linked by “until leaves battlefield” tracking.

§exiled_cards: Vec<CardId>

Cards exiled by this card/effect.

§paid_cost_exiled_cards: Vec<CardId>

Cards exiled specifically to pay this card’s current activation/cast cost. This is reset at the start of each cost payment attempt.

§haunted_by: Vec<CardId>

Cards haunting this card.

§haunting: Option<CardId>

Card currently haunted by this card.

§chosen_map: HashMap<PlayerId, Vec<CardId>>

Per-player chosen card map.

§remembered_cmc: Vec<i32>

CMC values remembered by this card

§effect_source: Option<CardId>

Source card that created this effect card (for Card.EffectSource checks).

§clone_origin: Option<CardId>§copied_permanent: Option<CardId>§cast_sa: Option<Box<SpellAbility>>

The spell ability used to cast this card instance onto the stack. Mirrors Java Card.getCastSA(). Populated when the card hits the stack, cleared when it leaves the battlefield.

§chosen_charm_modes: HashMap<String, i32>

For SP$ Charm: last turn each mode (keyed by its SVar name) was chosen on this card instance. Feeds ChoiceRestriction$ filtering. Mirrors the per-card mode history Java keeps on Card.

§remembered_lki_cards: Vec<Card>

LKI (last-known-information) snapshots of cards remembered by this card via RememberLKI$. Each entry is a frozen copy taken at remember time via CardCopyService::get_lki_copy. Callers that care about “what was this creature when it died” query this list instead of remembered_cards (which stores live IDs and drifts).

§lose_control_condition: Option<LoseControlCondition>

When set, the card’s original_controller_eot must be restored on the trigger described here. Mirrors the Java ControlGainEffect set of LoseControl$ variants that register distinct GameCommands.

§temp_effect_until_eot: bool

True if this temporary effect expires at end of turn cleanup.

§temp_effect_host: Option<CardId>

Host card this temporary effect is linked to; when host leaves the battlefield, this effect expires.

§forget_on_moved_origin: Option<ZoneType>

Forget remembered cards when they move from this origin zone.

§exile_when_no_remembered: bool

Exile this effect when remembered cards become empty after forget logic.

§exiled_by: Option<CardId>

When this card is in exile, the card that caused it to be exiled here. Used for Duration$ UntilHostLeavesPlay effects (e.g. Deputy of Detention): when exiled_by leaves the battlefield, this card returns to its owner’s battlefield.

§original_controller_eot: Option<PlayerId>

Original controller to restore at end of turn (for LoseControl$ EOT).

§is_transformed: bool

True if this card is currently showing its back face.

§other_part: Option<CardOtherPart>

Back-face characteristics for DFC cards. None for single-faced cards.

§set_code: Option<String>

Optional set code (e.g., “M21”) for specific printings.

§card_number: Option<String>

Optional collector number within a set (e.g., “1”, “42”). For tokens, this is the token’s collector number in the token set (e.g., collector “1” in set “THOU” for Adorned Pouncer token).

§paper_foil: bool§phased_out: bool§regeneration_shields: i32§kicked: bool

Whether this permanent was kicked when cast. Mirrors Java Card.isKicked(). Stored on the card so triggers with ValidCard$ Card.Self+kicked can check it after resolution.

§monstrous: bool

Whether this permanent has become monstrous. Mirrors Java Card.isMonstrous(). Resets when the permanent changes zones.

§chosen_colors: Vec<String>

Colors chosen by ChooseColorEffect (stored for later reference by other effects).

§chosen_cards: Vec<CardId>

Cards chosen by ChooseCardEffect (stored for later reference by other effects).

§animate_state: Option<AnimateState>

Saved state for AnimateEffect — restored during step_cleanup.

§clone_state: Option<CloneState>

Saved state for temporary Clone effects — restored during step_cleanup.

§chosen_type: Option<String>

Type chosen by ChooseType effect (e.g. “Goblin”, “Artifact”).

§chosen_type2: Option<String>

Secondary chosen type used by a subset of cards (e.g. Illusionary Terrain).

§noted_types: Vec<String>

Noted types tracked by effects that accumulate type names.

§named_cards: Vec<String>

Card names chosen by NameCard effect.

§chosen_number: Option<i32>

Number chosen by ChooseNumber effect.

§chosen_player: Option<PlayerId>

Player chosen by ChoosePlayer effect.

§chosen_player_controller: Option<PlayerId>

Controller who made the chosen-player choice.

§chosen_type_controller: Option<PlayerId>

Controller who made the chosen-type choice.

§chosen_player_revealed: bool

Whether the chosen player has been revealed.

§chosen_type_revealed: bool

Whether the chosen type has been revealed.

§promised_gift: Option<PlayerId>

Opponent chosen for PromiseGift cost.

§attraction_lights: Vec<u32>

Attraction lights printed on the card face.

§sector: Option<String>

Attraction sector assignment.

§chosen_sector: Option<String>

Chosen sector before assignment effects resolve.

§sprocket: i32

Contraption sprocket assignment.

§chosen_even_odd: Option<String>

Chosen even/odd marker.

§detained: bool

True if detained — can’t attack, block, or activate abilities. Clears at controller’s next turn.

§attacking_player: Option<PlayerId>

Set during combat to the player this creature is attacking; None if not attacking.

§goaded_by: Option<PlayerId>

Player who goaded this creature. Goaded creature must attack but can’t attack goader.

§damage_prevention: i32

Damage prevention shields (decremented when damage would be dealt). Resets at EOT.

§assigned_damage: i32

Damage assigned in current combat assignment step.

§must_block: bool

True if this creature must block if able.

§encoded_cards: Vec<CardId>

Spell cards encoded/ciphered onto this creature.

§damage_sources_this_turn: Vec<CardId>

Cards that dealt damage to this creature this turn (for DamagedBy trigger filters). Mirrors Java CardDamageHistory.getDamageReceivedThisTurn().

§total_damage_done_this_turn: i32

Total damage dealt by this card this turn (for Count$TotalDamageDoneByThisTurn). Mirrors Java Card.getTotalDamageDoneBy() via DamageHistory.getDamageDoneThisTurn(). Reset each turn in new_turn().

§lki_power: Option<i32>

Last-known information: power when this card last left the battlefield. Mirrors Java’s LKI system for TriggeredCard$CardPower. None means LKI was never captured; Some(0) means power was 0.

§lki_toughness: Option<i32>

Last-known information: toughness when this card last left the battlefield. None means LKI was never captured; Some(0) means toughness was 0.

§lki_counters: Option<BTreeMap<CounterType, i32>>

Last-known information: counters when this card last left the battlefield. Used by TriggeredCard$CardCounters.TYPE (e.g. Servant of the Scale death trigger).

§damage_history: CardDamageHistory

Damage history tracking (attacks, blocks, damage dealt). Mirrors Java CardDamageHistory.

§must_block_cards: Vec<CardId>

Specific cards this creature must block (set by effects like Lure variants).

§etb_counters_p1p1: i32

+1/+1 counters to add on ETB (from mana that adds counters, e.g. Guildmages’ Forum).

§colors_spent_to_cast: u16

Bitmask of colors of mana spent to cast this spell (for Sunburst/Converge). Uses ManaAtom bit flags (W=1, U=2, B=4, R=8, G=16).

§paying_mana_to_cast: Vec<u16>

Exact mana atoms spent to cast this spell, in payment order. Mirrors Java’s castSA.getPayingMana() use sites such as Adamant.

§chosen_modes: Option<Vec<usize>>

Pre-selected charm/mode indices (for Spree — modes chosen before payment). If Some, charm_effect should use these instead of asking the player again.

§strive_extra_targets: u32

Number of extra targets paid for via Strive (0 = no extra targets).

§became_target_this_turn: bool

Tracks if this card became a target this turn.

§temp_controllers: Vec<PlayerId>

Temporary controllers layered on this card.

§may_look_at: Vec<PlayerId>

Players that may look at this card.

§may_play: Vec<PlayerId>

Players that may play this card.

§can_block_additional: i32

Additional blockers this creature can declare.

§can_block_any: bool

Whether this creature can block any number of creatures.

§cant_have_keywords: HashSet<String>

Keywords this card is prevented from having.

§intensity: i32

Intensity marker value.

§surveilled: bool

Card was surveilled this turn.

§milled: bool

Card was milled this turn.

§visited_this_turn: bool

Attraction visited this turn.

§times_crewed_this_turn: u32

Number of times this permanent has crewed this turn.

§is_crewed: bool

Whether this permanent is currently crewed.

§ignore_legend_rule_flag: bool

Whether this card should ignore legend rule checks.

§ability_activated_this_turn: u32

Ability activation counts this turn.

§ability_resolved_this_turn: u32

Ability resolution counts this turn.

§number_turn_activations: ActivationTable

Java parity: per-ability activation tracking this turn.

§number_game_activations: ActivationTable

Java parity: per-ability activation tracking this game.

§number_ability_resolved: ActivationTable

Java parity: per-ability resolution tracking this turn.

§planeswalker_abilities_activated: u32

Planeswalker activation count this turn.

§planeswalker_activation_limit_used: bool

Whether a static effect’s increased planeswalker activation limit was used this turn.

§chosen_modes_turn: Option<u32>

Chosen mode count tracking turn marker.

§enlisted_this_combat: bool

Set when this creature enlisted another creature in the current combat.

§activations_this_game: BTreeMap<usize, u32>

Per-ability activation count this game (for PowerUp once-per-game restriction).

§is_renowned: bool

True once Renown has triggered (creature dealt combat damage to a player). Mirrors Java Card.isRenowned().

§zone_timestamp: u64

Monotonically increasing timestamp set each time the card enters a zone. Used to order same-player triggers by zone entry order, matching Java’s Zone.cardList insertion order used by forEachCardInGame.