I, and from what I gather many others, switched to a kind of Event-Driven system in development. Esp of larger systems. I use a custom-made Callback-Manager in combination with Extensions to move arround events in the project. But this approach is still somewhat limited as you cannot fetch events from children and so on.
What I would like to see is an event-system compareable to that of JavaScript where every Dom-Element is able to emit events and I can subscribe to them from anywhere. It is possible to build a system like this using extensions and subscribe/unsubscribe methods. The problem here in lais with the order of initiialisation of extensions and the just in time nature of them. This would also not enable bubbling of events to parent-components.
What I see is a general EmitEvent("Event name", *args, bubble = False, **kwargs)
method implemented into the core OP-Class.
Secondary to that it would need a EventDAT, which either has a onEvent-callback, or makes it possible to compose callbacks out of the methodname (basicly taking the Event Name as the method name).
Another approach (semantics) would be to pass a dictionary as data alá JS and have a general onEvent-Callback in the eventDAT and be able to filter for events like in the errorDAT or chopExecuteDAT.