class_name EventBusSubscription extends Subscription var key: Array var callback: Callable var bus: DefaultEventBus func _init(_key: Array, _callback: Callable, _bus: DefaultEventBus): key = _key callback = _callback bus = _bus func dispose() -> void: var subscriber_set: Array[EventBusSubscription] = bus.subscribers.get(key, []) subscriber_set.erase(self) if subscriber_set.is_empty(): bus.subscribers.erase(key) else: bus.subscribers[key] = subscriber_set