are Monobehaviors or scriptable objects Manager classes that do too much Singletons for every system dependency Gameplay mixed with presentation code But people ask on the community for better ways to do it.
not a discussion point Is there some intrinsic constraint enforced by Unity? Nope Lack of examples of how to decuple your game logic from unity API Fear of producing more complex code for little gain
level for sure if you are well decoupled Also Unity has recently provided a way to do integration testing What for? So that the team don’t fear the refactor Do it well or don’t do it.
Can be implemented as a command pattern, but it’s not a requirement They orchestrate the interaction with the application agnostic rules The input and output data must be plain DTOs
the other layers. The classes that cross the boundary are also part of the of their definition In a static object oriented language they’re defined as interfaces Interactors implement some boundaries Interactiors implementations may depend on other boundaries
and the core logic Add it to the script execution order before any other script present there Wire the time dependant call to the presentation and the core ( if any ) Your Unity scripts should now only handle representation logic Provide the views access to their viewmodel so they can represent it