Introduce a new live chat interface based on PubSub
Having written one and a half client libraries for IRC now, I wish Twitch Chat was exposed over a more consistent protocol.
- Allow read-only access to chat messages (and other related live data and events) via PubSub, with clean re-designed JSON Chat message payloads
- No longer identify channels and users by their login name, use user IDs for all purposes
- Send messages via an API call
Most importantly, I would expect a redesigned API to think of edge-cases in a better way than IRC currently does. For example, what happens on IRC if a channel gets suspended, or a channel you are joined to changes name? What happens if the user you are logged in as changes their name? What happens to the connection if the oauth token you logged in with is revoked or expires? Those are just examples of edge-cases that occur in real applications, and that are not documented yet crucial to providing a stable consistent connection to chat. You would expect a client library to handle these things.
It would of course also be nice to fully observe chat states such as your own moderator state, your own badges, your own login and display name, your own color, your emotes, etc. in a clean way.