- `EventHandlerCollection` now has `__slots__`. - Removed `final` from `Event` to allow subclasses. `events` decorator will not detect subclasses to generate fields as before.
- `events` decorator - Argument `prefix` is removed. - The generated `__init__` method will always call the original or the super `__init__` method before assigning event fields. - Accepts both `Event` and `event` annotations simultaneously and generates necessary fields/properties if any is found.
Added:
- `event_key()` can be used to use a different key when using the `events` decorator for event properties.
Changed:
- `EventHandlerCollection` is now `runtime_checkable`. - `events` will look for an annotation of type `EventHandlerCollection` if collection attribute name is not specified. - `event()` constructor also accepts a direct accessor tuple instead of a function returning an accessor tuple.