Keep it Simple
By design, TinyFSM implements only the very basics needed for designing state machines. For many people, it is important to know what a library is doing when making a decision for a specific library.
States are derived classes from a base FSM state, providing react() methods for every event, as well as entry() and exit() methods.
TinyFSM does not hold state/event function tables like most other state machine processors do. Instead, it keeps a pointer to the current state (having the type of the state machine base class). Dispatching an event simply calls the react() method of the current state, with the event class as argument. This results in a single vtable lookup and a function call, which is very efficient!
Event dispatching on an FsmList<> are simply dispatch() calls to all state machines in the list.
The TinyFSM library consist entirely of header files containing templates, and requires no separately-compiled library binaries or special treatment when linking.