shared interface ExecutingMove { HitData@ GetHitData(Pokemon@ target, uint8 hit) const; bool IsPokemonTarget(Pokemon@ pkmn) const; Pokemon@ User { get const; } LearnedMove@ Move { get const; } MoveData@ UseMove { get const; } }