State Event Handler
Interface for handling state events and producing new states.
Event handlers are responsible for processing events and determining what the new state should be based on the current state and the event.
Parameters
T
The type of state being handled
E
The type of event being handled