The eventual goals are:
- to decouple the UI-updating-logic from the engine-events by placing a reactive-state-store between the two.
- to show-case time-travelling inspection/debugging in the UI.
This will probably necessitate implementing CQS via CQRS which will in turn necessitate integrating MediatR (or something similar) in one way or another.
In the same vein of thought it would make sense to introduce an option to "lockstep-sync" the underlying engines with the UI (like it used to be) to facilitate debugging.
Candidates for state-management: