Stream<dynamic> forEvent(String eventName) { if (!_eventListeners.containsKey(eventName)) { _eventListeners[eventName] = StreamController.broadcast(); } return _eventListeners[eventName]!.stream; }