We should possibly encourage components to be annotated with a list of possible events they can cast whenever possible (dynamic events may not be possible to list, but are pretty rare, I haven't come across the need for one yet).
This + an event registry gives us two nice tooling features out of the box:
- Tooling can look up the signature of an event (in the registry) and use that for e.g. test.check generating an event from a component
- Upon changing a component/event signature, it should be easy to query (at run time) for which dependencies are now dirty and need to be fixed. Particularly handy for upgrading, as we iterate through design decisions.