This crate provides an implementation of the UML State Machine
UML State Machine - https://www.uml-diagrams.org/state-machine-diagrams.html Difference between shallow and deep history - https://sparxsystems.com/enterprise_architect_user_guide/14.0/model_simulation/example__history_pseudostate_example.html. C++ State Machine library HSM - https://github.com/erikzenker/hsm. Junction pseudostate - https://sparxsystems.com/enterprise_architect_user_guide/14.0/model_domains/junction.html.