Files
ontime/apps/server/src/models/demoRundowns.ts
T
Claude fc8819cea6 feat(demo): ship the demo project with working automations
The demo had automations empty and switched off, so the feature stayed
invisible to exactly the users most likely to be exploring. It was also
inconsistent with the blank project default, where automations are on.

Three automations, none of which touch the network. Two fire: an aux timer
that runs with the event, on a global trigger, and a wrap-up message on an
event level trigger, which is the only way per-event triggers get found by
browsing rather than by reading the docs. The third is a fully formed OSC
example with no trigger attached at all, so there is something realistic to
read and edit without anything being sent anywhere.

OSC input stays off: never open a listening socket the user did not ask for.

The ids are hand written literals and nothing in the type system checks that
a trigger resolves to an automation, so a test covers that, along with the
promise that nothing bound to a trigger can reach off this machine.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LpbLJVVT26tzWkduck1M9H
2026-08-08 11:10:16 +00:00

1133 lines
28 KiB
TypeScript

import { SupportedEntry, TimeStrategy, EndAction, TimerType, Day, Rundown, TimerLifeCycle } from 'ontime-types';
export const stageRundown: Rundown = {
id: 'default',
title: 'Demo project',
order: ['e2163f', '7eaf99', 'f60403', '6b0edb'],
flatOrder: [
'e2163f',
'7eaf99',
'9bf60f',
'bf71a2',
'c2697f',
'fa593e',
'a8b0b3',
'f60403',
'0aaa7d',
'6b0edb',
'02afca',
'75ce86',
'e10ed9',
'07df89',
],
entries: {
e2163f: {
id: 'e2163f',
type: SupportedEntry.Milestone,
cue: 'Demo',
title: 'Clear all, or Create New Project to start fresh',
note: 'Moderator - Emma Thompson\n\nSpeakers\n- Liam Carter + Sophia Patel\n- Ethan Brooks\n- Lucas Bennett',
colour: '#9d9d9d',
custom: {},
parent: null,
revision: 0,
},
'7eaf99': {
id: '7eaf99',
type: SupportedEntry.Group,
title: 'Morning Sessions',
note: '',
entries: ['9bf60f', 'bf71a2', 'c2697f', 'fa593e', 'a8b0b3'],
targetDuration: null,
colour: '#339E4E',
custom: {},
revision: 0,
timeStart: 36000000,
timeEnd: 43200000,
duration: 7200000,
isFirstLinked: false,
},
'9bf60f': {
id: '9bf60f',
type: SupportedEntry.Event,
flag: false,
title: 'Pre-show Countdown',
timeStart: 36000000,
timeEnd: 39600000,
duration: 3600000,
timeStrategy: TimeStrategy.LockEnd,
linkStart: false,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Music plays, holding slide on screens',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: '1',
parent: '7eaf99',
revision: 0,
timeWarning: 600000,
timeDanger: 300000,
custom: {
PowerPoint_Slide: 'https://www.getontime.no/images/aux/demo-slide1.webp',
Video_Notes: 'Camera + PowerPoint on stream\nPowerPoint on screens',
Audio_Notes: '2x Wireless Hand Helds',
PowerPoint_Name: 'HoldingSlide.pptx',
},
triggers: [],
},
bf71a2: {
id: 'bf71a2',
type: SupportedEntry.Milestone,
cue: 'Standby',
title: '10:45 - Presenters ready side stage',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: '7eaf99',
},
c2697f: {
id: 'c2697f',
type: SupportedEntry.Event,
flag: false,
title: 'Welcome',
timeStart: 39600000,
timeEnd: 40200000,
duration: 600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Emma Thompson',
colour: '#FFCC78',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: '1.1',
parent: '7eaf99',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {
PowerPoint_Slide: 'https://www.getontime.no/images/aux/demo-slide1.webp',
Video_Notes: 'Cameras on stream\nPowerPoint on screens',
Audio_Notes: '1x Wireless Hand Held',
PowerPoint_Name: 'HoldingSlide.pptx',
},
// demonstrates that an automation can be attached to a single event, which is
// otherwise only discoverable by reading the docs. See demoProject.ts
triggers: [
{
id: 'demo-event-trigger',
title: 'Wrap up warning',
trigger: TimerLifeCycle.onDanger,
automationId: 'demo-danger-message',
},
],
},
fa593e: {
id: 'fa593e',
type: SupportedEntry.Event,
flag: true,
title: 'Session 1',
timeStart: 40200000,
timeEnd: 43200000,
duration: 3000000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Liam Carter, Sophia Patel + PowerPoint',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: '1.2',
parent: '7eaf99',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {
PowerPoint_Slide: 'https://www.getontime.no/images/aux/demo-slide2.webp',
Video_Notes: 'Camera + PowerPoint on stream\nPowerPoint on screens',
Audio_Notes: '2x Wireless Hand Helds',
PowerPoint_Name: 'Session1.pptx',
},
triggers: [],
},
a8b0b3: {
id: 'a8b0b3',
type: SupportedEntry.Milestone,
cue: 'House',
title: '11:30 - House staff setup lunch in lobby',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: '7eaf99',
},
f60403: {
id: 'f60403',
type: SupportedEntry.Group,
title: 'Lunch',
note: '',
entries: ['0aaa7d'],
targetDuration: null,
colour: '#3E75E8',
custom: {},
revision: 0,
timeStart: 43200000,
timeEnd: 46800000,
duration: 3600000,
isFirstLinked: true,
},
'0aaa7d': {
id: '0aaa7d',
type: SupportedEntry.Event,
flag: false,
title: 'Lunch / Countdown to next session',
timeStart: 43200000,
timeEnd: 46800000,
duration: 3600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Buffet in lobby',
colour: '#779BE7',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: '2.1',
parent: 'f60403',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {
PowerPoint_Slide: 'https://www.getontime.no/images/aux/demo-slide1.webp',
Video_Notes: 'Holding slide on screens',
Audio_Notes: 'House music',
PowerPoint_Name: 'HoldingSlide.pptx',
},
triggers: [],
},
'6b0edb': {
id: '6b0edb',
type: SupportedEntry.Group,
title: 'Afternoon Sessions',
note: '',
entries: ['02afca', '75ce86', 'e10ed9', '07df89'],
targetDuration: null,
colour: '#339E4E',
custom: {},
revision: 0,
timeStart: 46800000,
timeEnd: 50400000,
duration: 3600000,
isFirstLinked: true,
},
'02afca': {
id: '02afca',
type: SupportedEntry.Milestone,
cue: 'Standby',
title: '12:45 - Presenters ready side stage',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: '6b0edb',
},
'75ce86': {
id: '75ce86',
type: SupportedEntry.Event,
flag: false,
title: 'Session 2',
timeStart: 46800000,
timeEnd: 49800000,
duration: 3000000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Ethan Brooks + PowerPoint + Video playback',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: '3.1',
parent: '6b0edb',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {
PowerPoint_Slide: 'https://www.getontime.no/images/aux/demo-slide3.webp',
Video_Notes: 'Camera + PPT + Video on stream\nPowerPoint + Video on screens\n\nVideo file: Session2.mp4',
Audio_Notes: '1x Wireless Hand Held\n1x Video with audio',
PowerPoint_Name: 'Session2.pptx',
},
triggers: [],
},
e10ed9: {
id: 'e10ed9',
type: SupportedEntry.Event,
flag: false,
title: 'Wrap up',
timeStart: 49800000,
timeEnd: 50400000,
duration: 600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: false,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Lucas Bennett',
colour: '#FFCC78',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: '3.2',
parent: '6b0edb',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {
PowerPoint_Slide: 'https://www.getontime.no/images/aux/demo-slide1.webp',
Video_Notes: 'Holding slide on screens',
Audio_Notes: '1x Wireless Hand Held',
PowerPoint_Name: 'HoldingSlide.pptx',
},
triggers: [],
},
'07df89': {
id: '07df89',
type: SupportedEntry.Milestone,
cue: 'Strike',
title: '14:00 - AV & Room strike',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: '6b0edb',
},
},
revision: 0,
};
export const backstageRundown: Rundown = {
id: 'backstage',
title: 'Backstage Track',
order: ['bs0100', 'bs0001', 'bs0002', 'bs0003', 'bs0004'],
flatOrder: [
'bs0100',
'bs0001',
'bs0101',
'bs0102',
'bs0103',
'bs0104',
'bs0002',
'bs0201',
'bs0202',
'bs0203',
'bs0204',
'bs0003',
'bs0301',
'bs0004',
'bs0401',
'bs0402',
'bs0403',
'bs0404',
],
entries: {
bs0100: {
id: 'bs0100',
type: SupportedEntry.Milestone,
cue: 'Info',
title: 'Backstage operational track for crew, talent, and support teams',
note: 'Use this rundown to coordinate arrivals, readiness, catering, and backstage support tasks.',
colour: '#9d9d9d',
custom: {},
parent: null,
revision: 0,
},
bs0001: {
id: 'bs0001',
type: SupportedEntry.Group,
title: 'Pre-show Setup',
note: '',
entries: ['bs0101', 'bs0102', 'bs0103', 'bs0104'],
targetDuration: null,
colour: '#A790F5',
custom: {},
revision: 0,
timeStart: 32400000,
timeEnd: 38400000,
duration: 6000000,
isFirstLinked: false,
},
bs0101: {
id: 'bs0101',
type: SupportedEntry.Event,
flag: false,
title: 'Production team arrives / backstage opens',
timeStart: 32400000,
timeEnd: 34200000,
duration: 1800000,
timeStrategy: TimeStrategy.LockEnd,
linkStart: false,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Stage management, AV leads, and floor team check in',
colour: '#779BE7',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B1',
parent: 'bs0001',
revision: 0,
timeWarning: 300000,
timeDanger: 120000,
custom: {
Video_Notes: 'Backstage comms check\nConfirm monitor feeds',
Audio_Notes: 'Check comms headsets',
},
triggers: [],
},
bs0102: {
id: 'bs0102',
type: SupportedEntry.Event,
flag: false,
title: 'Green room setup complete',
timeStart: 34200000,
timeEnd: 36000000,
duration: 1800000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Water, signage, seating, and presenter packs ready',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B1.1',
parent: 'bs0001',
revision: 0,
timeWarning: 300000,
timeDanger: 120000,
custom: {
Video_Notes: 'Confidence monitor on in green room',
Audio_Notes: 'Background music off unless requested',
},
triggers: [],
},
bs0103: {
id: 'bs0103',
type: SupportedEntry.Event,
flag: false,
title: 'Talent arrivals / check-in',
timeStart: 36000000,
timeEnd: 38400000,
duration: 2400000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Liam Carter, Sophia Patel, Ethan Brooks, Lucas Bennett',
colour: '#FFCC78',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B1.2',
parent: 'bs0001',
revision: 0,
timeWarning: 300000,
timeDanger: 120000,
custom: {
Audio_Notes: 'Mic fitting schedule coordinated with audio',
},
triggers: [],
},
bs0104: {
id: 'bs0104',
type: SupportedEntry.Milestone,
cue: 'Standby',
title: '10:45 - Session 1 presenters ready backstage',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: 'bs0001',
},
bs0002: {
id: 'bs0002',
type: SupportedEntry.Group,
title: 'Morning Support',
note: '',
entries: ['bs0201', 'bs0202', 'bs0203', 'bs0204'],
targetDuration: null,
colour: '#339E4E',
custom: {},
revision: 0,
timeStart: 39600000,
timeEnd: 43200000,
duration: 3600000,
isFirstLinked: true,
},
bs0201: {
id: 'bs0201',
type: SupportedEntry.Event,
flag: false,
title: 'Speaker handoff / mic support',
timeStart: 39600000,
timeEnd: 40800000,
duration: 1200000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Backstage team rotates speakers in and out for Session 1',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B2.1',
parent: 'bs0002',
revision: 0,
timeWarning: 180000,
timeDanger: 60000,
custom: {
Audio_Notes: 'Mic handoff and battery check',
},
triggers: [],
},
bs0202: {
id: 'bs0202',
type: SupportedEntry.Event,
flag: false,
title: 'Catering ready in lobby',
timeStart: 40800000,
timeEnd: 41400000,
duration: 600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Lunch stations confirmed and service team briefed',
colour: '#3E75E8',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B2.2',
parent: 'bs0002',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {},
triggers: [],
},
bs0203: {
id: 'bs0203',
type: SupportedEntry.Milestone,
cue: 'House',
title: '11:30 - Backstage reset for lunch transition',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: 'bs0002',
},
bs0204: {
id: 'bs0204',
type: SupportedEntry.Event,
flag: false,
title: 'Session 2 speaker briefing',
timeStart: 42000000,
timeEnd: 43200000,
duration: 1200000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: false,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Ethan Brooks briefed on walk-on, confidence monitor, and video playback',
colour: '#FFCC78',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B2.3',
parent: 'bs0002',
revision: 0,
timeWarning: 180000,
timeDanger: 60000,
custom: {
Video_Notes: 'Confirm video playback timing with stage manager',
},
triggers: [],
},
bs0003: {
id: 'bs0003',
type: SupportedEntry.Group,
title: 'Lunch Turnaround',
note: '',
entries: ['bs0301'],
targetDuration: null,
colour: '#3E75E8',
custom: {},
revision: 0,
timeStart: 43200000,
timeEnd: 46800000,
duration: 3600000,
isFirstLinked: true,
},
bs0301: {
id: 'bs0301',
type: SupportedEntry.Event,
flag: false,
title: 'Crew lunch / talent hold / afternoon prep',
timeStart: 43200000,
timeEnd: 46800000,
duration: 3600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Stagger crew breaks, maintain backstage coverage, prep Session 2 assets',
colour: '#779BE7',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B3.1',
parent: 'bs0003',
revision: 0,
timeWarning: 300000,
timeDanger: 120000,
custom: {
Video_Notes: 'Reload Session2.mp4 and verify routing',
Audio_Notes: 'Reset handhelds for afternoon session',
},
triggers: [],
},
bs0004: {
id: 'bs0004',
type: SupportedEntry.Group,
title: 'Afternoon Support',
note: '',
entries: ['bs0401', 'bs0402', 'bs0403', 'bs0404'],
targetDuration: null,
colour: '#339E4E',
custom: {},
revision: 0,
timeStart: 46800000,
timeEnd: 50400000,
duration: 3600000,
isFirstLinked: true,
},
bs0401: {
id: 'bs0401',
type: SupportedEntry.Milestone,
cue: 'Standby',
title: '12:45 - Session 2 presenter ready backstage',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: 'bs0004',
},
bs0402: {
id: 'bs0402',
type: SupportedEntry.Event,
flag: false,
title: 'Backstage support for Session 2',
timeStart: 46800000,
timeEnd: 49800000,
duration: 3000000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Speaker support, video cue checks, and presenter rotation',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B4.1',
parent: 'bs0004',
revision: 0,
timeWarning: 180000,
timeDanger: 60000,
custom: {
Video_Notes: 'Monitor playback progress and standby next asset',
Audio_Notes: 'Support speaker mic swap if needed',
},
triggers: [],
},
bs0403: {
id: 'bs0403',
type: SupportedEntry.Event,
flag: false,
title: 'Wrap-up talent support',
timeStart: 49800000,
timeEnd: 50400000,
duration: 600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Lucas Bennett to standby, transport and post-show support confirmed',
colour: '#FFCC78',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'B4.2',
parent: 'bs0004',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {},
triggers: [],
},
bs0404: {
id: 'bs0404',
type: SupportedEntry.Milestone,
cue: 'Strike',
title: '14:00 - Green room clear / catering wrap / talent release',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: 'bs0004',
},
},
revision: 0,
};
export const broadcastRundown: Rundown = {
id: 'broadcast',
title: 'Broadcast',
order: ['br0100', 'br0001', 'br0002', 'br0003', 'br0004'],
flatOrder: [
'br0100',
'br0001',
'br0101',
'br0102',
'br0103',
'br0002',
'br0201',
'br0202',
'br0203',
'br0204',
'br0003',
'br0301',
'br0302',
'br0004',
'br0401',
'br0402',
'br0403',
],
entries: {
br0100: {
id: 'br0100',
type: SupportedEntry.Milestone,
cue: 'Info',
title: 'Broadcast / stream control track',
note: 'Controls program output, graphics, and playback during the show',
colour: '#9d9d9d',
custom: {},
parent: null,
revision: 0,
},
br0001: {
id: 'br0001',
type: SupportedEntry.Group,
title: 'Pre-show',
note: '',
entries: ['br0101', 'br0102', 'br0103'],
targetDuration: null,
colour: '#ED3333',
custom: {},
revision: 0,
timeStart: 36000000,
timeEnd: 39600000,
duration: 3600000,
isFirstLinked: false,
},
br0101: {
id: 'br0101',
type: SupportedEntry.Event,
flag: false,
title: 'Stream standby / test signal',
timeStart: 36000000,
timeEnd: 37200000,
duration: 1200000,
timeStrategy: TimeStrategy.LockEnd,
linkStart: false,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Check encoder, audio levels, and stream health',
colour: '#779BE7',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S1',
parent: 'br0001',
revision: 0,
timeWarning: 300000,
timeDanger: 120000,
custom: {},
triggers: [],
},
br0102: {
id: 'br0102',
type: SupportedEntry.Event,
flag: false,
title: 'Holding slide live',
timeStart: 37200000,
timeEnd: 39600000,
duration: 2400000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Countdown visible on stream',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S1.1',
parent: 'br0001',
revision: 0,
timeWarning: 300000,
timeDanger: 120000,
custom: {
PowerPoint_Name: 'HoldingSlide.pptx',
},
triggers: [],
},
br0103: {
id: 'br0103',
type: SupportedEntry.Milestone,
cue: 'Standby',
title: '10:55 - Ready to go live',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: 'br0001',
},
br0002: {
id: 'br0002',
type: SupportedEntry.Group,
title: 'Morning Sessions',
note: '',
entries: ['br0201', 'br0202', 'br0203', 'br0204'],
targetDuration: null,
colour: '#339E4E',
custom: {},
revision: 0,
timeStart: 39600000,
timeEnd: 43200000,
duration: 3600000,
isFirstLinked: true,
},
br0201: {
id: 'br0201',
type: SupportedEntry.Event,
flag: false,
title: 'Go live / intro slate',
timeStart: 39600000,
timeEnd: 40200000,
duration: 600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Fade from holding slide to program',
colour: '#FFCC78',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S2.1',
parent: 'br0002',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {},
triggers: [],
},
br0202: {
id: 'br0202',
type: SupportedEntry.Event,
flag: false,
title: 'Lower thirds / speaker intro',
timeStart: 40200000,
timeEnd: 40800000,
duration: 600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Emma Thompson lower third',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S2.2',
parent: 'br0002',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {},
triggers: [],
},
br0203: {
id: 'br0203',
type: SupportedEntry.Event,
flag: false,
title: 'Switch to presentation feed',
timeStart: 40800000,
timeEnd: 43200000,
duration: 2400000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Camera + PPT mix',
colour: '#779BE7',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S2.3',
parent: 'br0002',
revision: 0,
timeWarning: 180000,
timeDanger: 60000,
custom: {},
triggers: [],
},
br0204: {
id: 'br0204',
type: SupportedEntry.Milestone,
cue: 'Standby',
title: 'Prepare lunch holding content',
note: '',
colour: '#A790F5',
revision: 0,
custom: {},
parent: 'br0002',
},
br0003: {
id: 'br0003',
type: SupportedEntry.Group,
title: 'Lunch',
note: '',
entries: ['br0301', 'br0302'],
targetDuration: null,
colour: '#3E75E8',
custom: {},
revision: 0,
timeStart: 43200000,
timeEnd: 46800000,
duration: 3600000,
isFirstLinked: true,
},
br0301: {
id: 'br0301',
type: SupportedEntry.Event,
flag: false,
title: 'Holding slide / music',
timeStart: 43200000,
timeEnd: 45000000,
duration: 1800000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Loop holding slide + background music',
colour: '#779BE7',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S3.1',
parent: 'br0003',
revision: 0,
timeWarning: 300000,
timeDanger: 120000,
custom: {},
triggers: [],
},
br0302: {
id: 'br0302',
type: SupportedEntry.Event,
flag: false,
title: 'Sponsor reel playback',
timeStart: 45000000,
timeEnd: 46800000,
duration: 1800000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Loop sponsor content',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S3.2',
parent: 'br0003',
revision: 0,
timeWarning: 300000,
timeDanger: 120000,
custom: {},
triggers: [],
},
br0004: {
id: 'br0004',
type: SupportedEntry.Group,
title: 'Afternoon Sessions',
note: '',
entries: ['br0401', 'br0402', 'br0403'],
targetDuration: null,
colour: '#339E4E',
custom: {},
revision: 0,
timeStart: 46800000,
timeEnd: 50400000,
duration: 3600000,
isFirstLinked: true,
},
br0401: {
id: 'br0401',
type: SupportedEntry.Event,
flag: false,
title: 'Return from lunch / go live',
timeStart: 46800000,
timeEnd: 47400000,
duration: 600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Fade from holding to program',
colour: '#FFCC78',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S4.1',
parent: 'br0004',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {},
triggers: [],
},
br0402: {
id: 'br0402',
type: SupportedEntry.Event,
flag: false,
title: 'Video playback (Session 2)',
timeStart: 47400000,
timeEnd: 49800000,
duration: 2400000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Play Session2.mp4',
colour: '#77C785',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S4.2',
parent: 'br0004',
revision: 0,
timeWarning: 180000,
timeDanger: 60000,
custom: {},
triggers: [],
},
br0403: {
id: 'br0403',
type: SupportedEntry.Event,
flag: false,
title: 'End slate / stream end',
timeStart: 49800000,
timeEnd: 50400000,
duration: 600000,
timeStrategy: TimeStrategy.LockDuration,
linkStart: true,
endAction: EndAction.None,
timerType: TimerType.CountDown,
countToEnd: false,
skip: false,
note: 'Fade out and end stream',
colour: '#779BE7',
delay: 0,
dayOffset: 0 as Day,
gap: 0,
cue: 'S4.3',
parent: 'br0004',
revision: 0,
timeWarning: 120000,
timeDanger: 60000,
custom: {},
triggers: [],
},
},
revision: 0,
};