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

    Interface ScheduleTransitionPayload

    Payload of a data.scheduleTransition field on a tick message.

    Emitted server-side only on boundary crossings (block start / end / gap-to-block) so consumers can treat each arrival as a genuine transition event without diffing steady-state.

    • campaignID — the campaign whose current block changed. For team-linked overlays the ID is the team-campaign ID when the overlay subscribed via teamCampaignIDs; the schedule table is keyed by whichever ID Tiltify returned, so no client-side translation is needed.
    • previousScheduleID — the block that was airing on the previous observation, or null when the connection was previously between blocks. First-ever observations for a (connection, campaign) pair are never emitted (future-only rule), so previousScheduleID: null unambiguously means "resumed from a gap", not "first tick".
    • current — the block currently airing, or null if the campaign is now between blocks.
    • next — the block starting after current, or null when nothing is scheduled beyond it.
    • at — server-side ISO timestamp captured immediately before the DB lookup. Useful for cross-referencing REST baselines.
    interface ScheduleTransitionPayload {
        at: string;
        campaignID: string;
        current: ScheduleTransitionBlock | null;
        next: ScheduleTransitionBlock | null;
        previousScheduleID: string | null;
    }
    Index
    at: string
    campaignID: string
    current: ScheduleTransitionBlock | null
    previousScheduleID: string | null