Rethinking do_action(): Events as objects, hooks as class names How to use typed event objects to improve the payload you send to plugin and theme extenders.