# Functions

NewStateMachine returns a Machine, it must be set up with calls to "AddTransition(s1, s2, predicate)" before Reconcile is called.

# Variables

No description provided by the author

# Structs

Machine allows for several States to be registered via "AddTransition" When calling Reconcile, the corresponding State will be used based on the values stored/loaded from the SaveLoader.
State should provide a unique name, and a Reconcile function.

# Interfaces

Loader should return the value saved by Saver.
SaveLoader can both load and save the name of a state.
Saver saves the next state name that should be reconciled.

# Type aliases

TransitionPredicate is used to indicate if two States should be connected.