Interface FiniteStateMachine<S extends Enum<S>>