I refactored an event system recently.
Old approach:
New approach: 👉 action + entity
Same data.
Much better abstraction.
Easier to maintain and extend.