Generic state machine interface
Readonly
Current state
Transition to new state
Check if transition is valid
Get available transitions
Generic state machine interface