Scoped chat mutes, applied by a room's own authority.
Authority follows the room and mirrors kick: the lobby host mutes in their
lobby, a group admin in their group, the party leader in their party.
Like kick, lobby and party actions take no id — the room comes from the
caller's lobby_id / party_id.
Global mutes are deliberately absent here: they are server-authoritative and
live on the admin API (/api/v1/admin/chat/mutes) or a plugin calling
Gamend.Chat.mute_user/4.