shared interface SwitchTurnChoice { TurnChoiceKind Kind { get const; } Pokemon@ User { get const; } Pokemon@ NewPokemon { get const; } MoveTurnChoice@ opCast(); BaseTurnChoice@ opImplCast(); }