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