Moderation & trust-and-safety
A pre-visibility filter, reports, bans/mutes enforced at token issuance, and appeals.
Moderation is a pre-visibility hook: run it BEFORE any user text (a name, chat message, or UGC title) becomes visible. It normalizes the text to defeat leet-speak, homoglyph, and spacing evasion, then returns a verdict: allow, mask (with masked_text), block, or review.
const v = await tg.moderation.check('username', name);
if (v.verdict === 'block') reject(); Surfaces decide enforcement
The same engine enforces differently per surface (names can't be masked — any hit blocks; chat masks light profanity and blocks severe; UGC leans to review). Realtime chat is moderated automatically in transit.
Reports, bans, appeals
Players report others (rate-limited, deduped). Operators/developers ban or mute a player. A ban is authoritative at TOKEN ISSUANCE — it blocks a new token for the account OR the device, so it survives a cleared localStorage; a temp ban auto-lifts when it expires. A banned player can appeal; granting an appeal lifts the ban atomically.