Pushed by the leaderboard exclusions REST API immediately after a
successful POST / DELETE on /leaderboard-exclusions/{campaignID}.
The full current list is replayed on every push — clients replace the
slot under leaderboardExclusions[campaignID] wholesale rather than
diffing, so operators can add / remove rows in any order without the
client falling out of sync.
Closes the same operator-write latency gap the updateLeaderboard
message closes for donation-driven leaderboard shifts: without it,
a connected overlay wouldn't see a freshly-added exclusion until its
next React Query refetch cycle (default 5 min).
Older clients that don't recognize "updateLeaderboardExclusions"
silently drop the message (default: break; in processMessage) —
safe to roll out.
Pushed by the leaderboard exclusions REST API immediately after a successful
POST/DELETEon/leaderboard-exclusions/{campaignID}. The full current list is replayed on every push — clients replace the slot underleaderboardExclusions[campaignID]wholesale rather than diffing, so operators can add / remove rows in any order without the client falling out of sync.Closes the same operator-write latency gap the
updateLeaderboardmessage closes for donation-driven leaderboard shifts: without it, a connected overlay wouldn't see a freshly-added exclusion until its next React Query refetch cycle (default 5 min).Older clients that don't recognize
"updateLeaderboardExclusions"silently drop the message (default: break;inprocessMessage) — safe to roll out.