I'm proposing a Petri-net based standard for smart contract state machines.
I think UX is greatly improved when event-based designs are implemented ast state machines. This approach seeks to apply formal Petri-net designs to smart contract development.
Please review a sample contract here:
https://github.com/pflow-xyz/pflow-eth/blob/main/hardhat/contracts/MyStateMachine.sol#L50-L56
Models can be shared as SVG images via this markdown.