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