The thing I keep finding problematic about declarative approaches is that nobody knows them. That means if you&#x27;re not a lone wolf on a project, the people editing your declarative state machine are going to be unfamiliar with it. Aside from the complaints that gives (and the &quot;look I rewrote it&quot; issues), that means they make mistakes and don&#x27;t understand what happens.<p>So they don&#x27;t last. They&#x27;re not all that maintainable in real teams. My experiences are mostly with ANTLR code (which has a debugger and lots of tooling and isn&#x27;t that hard at all).<p>I&#x27;m at a loss for how to overcome this.