I have some input as far as joins go. https://tools.ietf.org/html/rfc1459#section-4.2.1 Using this as a base we don’t have multiple channels delimited by commas and we don’t have if invited at all.
What if there was a new scope in auth for bots in chats "ban could be useful https://github.com/justintv/Twitch-API/issues/149 ". So a bot would get bot_login instead of chat_login then when a user auths the bot they will get the chat_read.
In the end if the token has bot_login the bot can use a multiple channel join msg to the authorized channels that way we can have our own side of “important channels” and a less important list of just the users using bots via commands that don’t connect it to the api.
“nightbot and moobot etc” in this case could have their bots connections have like 80% of that connection have “important” channels fill up as fast as the server is willing to go. then they could have their current rate limited join fill that last %20 up with the regular users as they go. Crazy ideas of a man who has had little sleep. I currently have absolutely no need to join thousands of channels so this really wouldn’t do me well. White-listing seems like a good idea with the bigger bots to me.
Last thing before I go, an even crazier idea! bot_login will now produce a button in the respective bots twitch channel page. That could pop up a context menu with checkboxes over the auth scopes names and could have a button to do join and auth. This would send a CAP msg to the bots channel with “join” and the bot would join. in the browser at the same time it would auth and point back to a page redirect uri and log them into the bots webpage. Genius I know!