Multiplayer
Roster, chat, private scores.
An empty members list is incomplete, not everyone left. Leaderboards are project-scoped, not a public ranking.
Presence
- Replace the roster only when
membersCompleteis true, or when that flag is omitted andmembersis non-empty. membershipisreadyonly when the local player is on a complete roster.membershipRevisionincreases for a real join or leave, not a recovered interruption.
Chat
await client.sendChat("ready", "lobby"); // or "match"
Bind the overlay’s loki-chat-send event to this. Do not log chat bodies.
Private scores
await client.submitScore("season-1", 1200, 0);
Not an anti-cheat boundary.