Make a plan for consolidating events
Currently, the project is using native C# events accessible to only application code (only TRBot), and with the introduction of the WIP event dispatcher, there are other events accessible to only external application code (not TRBot).
It would be great to consolidate the event system so both TRBot application code and external applications can listen and react to the same events. This would also help solve problems with client services, as the provided events cannot possibly scale for all services. Some examples of issues with the latter include Twitch-specific events, such as bits, and additional data with each message from each service, including Twitch subscription status for a particular user.
This would also greatly clean up the code and help it scale. Every event would be accessible to external applications as well, greatly increasing the robustness of TRBot as a whole.
Deleting a branch is permanent. It CANNOT be undone. Continue?