A ListenerObject represents the configuration/state for a single listener.
UDA that can be used on a Plugin, informing it that the function will handle all events of type T.
The Listenable template is a virtual implementation which handles the listener UDAs, storing them within a local "listeners" mapping.
Utility struct returned by the UDA.
Utilties for handling/listening to events through the dcord bot interface.