On the contrary, I think Ballast can actually help make the game logic clearer without having the traditional “game loop”. I tend to enjoy playing these kinds of games, and have though about making one myself (I’m just not creative enough to make one that’s actually fun 😜). Ballast probably wouldn’t work well with most games, but I think incremental/clicker games, and point-and-click adventure games would both work very well modeled in Ballast rather than with traditional game logic.
I threw together a Gist that might help you see how this might work. The idea would be that each component that is auto-clicking would have its own ViewModel and can run on its own timer (or be synchronized from an external Flow, for example).
https://gist.github.com/cjbrooks12/f54e9f0ff10f8c6c9d7d553b5e8e9ce7
From there, it’s a problem of modeling which VMs are talking to the others, and using the Repository Pattern the same as a traditional app might be a way to manage that kind of communication.