Ability – helper functions for in-play abilities.
Mirrors Java’s Ability.java (base class for abilities on permanents).
In Rust the subclass is flattened into SpellAbility.
AbilityActivated – helper functions for activated abilities.
Mirrors Java’s AbilityActivated.java.
In Rust the subclass is flattened: SpellAbility.is_activated == true.
AbilityStatic – helper functions for static abilities (e.g. morph face-up).
Mirrors Java’s AbilityStatic.java.
Static abilities are special actions that don’t use the stack (like turning
a morph face-up).
AbilitySub – helper functions for sub-abilities in the chain.
Mirrors Java’s AbilitySub.java.
Sub-abilities are chained via SpellAbility.sub_ability and resolve
sequentially after their parent.
LandAbility – helper functions for land play abilities.
Mirrors Java’s LandAbility.java.
Playing a land is a special action, not a spell – it doesn’t use the stack.
Spell – helper functions for cast spells.
Mirrors Java’s Spell.java (subclass of SpellAbility for spells cast from hand/zone).
In Rust the subclass is flattened: SpellAbility.is_spell == true marks a spell.
SpellAbilityStackInstance – stack entry for spells/abilities.
Mirrors Java’s SpellAbilityStackInstance.java.
The core struct is StackEntry in crate::zone::magic_stack.
This module re-exports it and provides additional query methods
that mirror the Java API.
SpellPermanent – factory for permanent spells.
Mirrors Java’s SpellPermanent.java.
Creates SpellAbility instances configured as permanent spells (creatures
and non-creatures) that resolve by moving to the battlefield.
A spell or ability with its own targeting, costs, and sub-ability chain.
Mirrors Java’s SpellAbility class — each node in the chain has its own
target_restrictions, target_chosen, sub_ability, api, etc.
Check whether any spell on the stack has split second.
Split second prevents players from casting spells or activating abilities
(except mana abilities) while it’s on the stack.
Single source of truth — used by spell, ability, and ability_activated modules.