The core and UI should communicate using an event dispatcher rather than calling each others' methods directly. The event dispatcher should allow enqueueing Event objects that carry any properties related to the event. The event dispatcher should allow subscribing to these events so that any component can react to them.
The core and UI should communicate using an event dispatcher rather than calling each others' methods directly. The event dispatcher should allow enqueueing Event objects that carry any properties related to the event. The event dispatcher should allow subscribing to these events so that any component can react to them.