Interfaces for state machines.
This package aims to provide a standard set of interfaces for working with state machines. For clarity and completion, some terminology must first the defined:
Status
A status is a key or code that identifies a state. State machines will often have a status key for every possible state as well as a current status.
State
A state is a conceptual "frame" in time for a given object. Unlike a status which is simply a key or code, a state typically holds all information about a machine or object at a given status or point in time.
Transition
A transition is a key or code that represents an operation that can be performed on a machine or object. This operation can influence that subject's status and state.