"State machines are everywhere in interactive systems, but they're rarely defined clearly and explicitly. Given some big blob of code including implicit state machines, which transitions are possible and under what conditions? What effects take place on what transitions?" - Andy Matuschak
This project is based on the work of Andy Matuschak. For a comprehensive review of his state machine, see his States-v3 gist.
The Kotlin implementation is based on the work of Jean-Michel Fayard.