Diagnose unsupported statecharts

A Sismic statechart can be perfectly valid while still being outside the subset State Mate can translate faithfully to python-statemachine.

Read the reported feature

For example, a nested compound state produces a State Mate validation error rather than being flattened silently.

The same principle applies to guards, actions, internal transitions, priorities, contracts, and other constructs listed in the supported subset reference.

Reduce the model to the supported subset

When practical:

  1. keep only one compound root state;
  2. place all runtime states directly below it;
  3. use basic or final child states;
  4. use explicit event-driven external transitions;
  5. move guards, actions, contracts, and hierarchy out of the generated state-machine definition if their semantics are not required there.

Do not work around validation by editing generated output

The validator exists to prevent semantic loss. If an unsupported Sismic feature matters to the application, either extend State Mate with an explicit mapping for that feature or use Sismic directly as the runtime state-machine engine.