Core, stable abstractions for representing flow definitions.

Each flow has an indentifier and is composed of one or more states, one of which is the start state. States may be transitionable, if so they define one or more transitions that lead to other states.

With these types a client can introspect a flow definition to reason on its attributes and traverse its structure, perhaps to display a visual diagram. Note that the types defined in this package do not capture the behavioral characteristics of a flow.