Chat WebSocket Protocol
Connect to `wss://openvibe.chat/ws/chat`. On connect, the server sends a `{type:"welcome", connectionId:"..."}` message. Send a `{type:"join", channel:"channel-name", token:"..."}` to join a channel.
Message types: `chat` (send/receive messages), `join`/`leave` (channel membership), `ban`/`timeout` (moderation), `system` (server announcements), `tip` (tip alert events), `tts` (text-to-speech trigger).
Authentication: join with a valid Bearer token for authenticated sessions. Anonymous sessions can join with `token: null` in read-only mode depending on channel settings.
Bot integration: create an API token at my.openvibe.network/tokens with `chat:write` scope. Use the token in the join message. Bots are rate-limited to 20 messages/minute per channel.