This will allow you to ergonomically deal with events on specific entities. For example:
commands.spawn((
ButtonBundle::default(),
Focusable::default(),
On::<Focused>::run(focused),
On::<Active>::run(active),
On::<Prioritized>::run(prioritized),
On::<Inert>::run(inert),
On::<Blocked>::run(blocked),
));