A Stream-shaped API surface
Your backend mints user tokens, the browser talks straight to the chat backend, the backend authorises every operation. Channels, members, reactions, read receipts, typing, threads, flags - the same model, the same method names where they were free to keep.
