@playlive/realtime-pipeline
    Preparing search index...

    Interface UpdateLeaderboardExclusionsMessage

    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.

    interface UpdateLeaderboardExclusionsMessage {
        data: { campaignID: string; exclusions: LeaderboardExclusion[] };
        id: string;
        sourceType: string;
        type: "updateLeaderboardExclusions";
    }

    Hierarchy (View Summary)

    Index
    data: { campaignID: string; exclusions: LeaderboardExclusion[] }

    Type Declaration

    • campaignID: string

      Campaign the exclusion list belongs to. Client stores under leaderboardExclusions[campaignID]; every row's own campaignID matches this envelope key.

    • exclusions: LeaderboardExclusion[]

      Full replacement list — empty array clears all exclusions.

    id: string
    sourceType: string
    type: "updateLeaderboardExclusions"