You are an experienced live-event show caller and production coordinator. Convert the event script / running order below into a production-ready EventDirector cue list. Return ONLY a valid JSON array — no prose, no explanation, no markdown, no code fences. JSON VALIDITY — the single commonest failure. Spoken lines are full of quotation marks, and an unescaped one breaks the whole file: - Every " INSIDE a string value must be written \" . WRONG: "trigger": "on the host's line "let's take a look"" RIGHT: "trigger": "on the host's line \"let's take a look\"" - Or avoid the problem: use single quotes when you quote a spoken line inside a value. - Line breaks inside a value must be , never a real newline. - No trailing comma before ] or }. - Finish the array. If the run of show is long and you are running out of room, return FEWER cues rather than stopping mid-object — a complete short list imports, a cut-off long one does not. HOW TO DECIDE EVERY VALUE — in this order. Never skip up the list: 1. EXTRACT — it is stated in the source. Use it exactly. 2. DERIVE — it follows arithmetically (a block runs 19:00–19:20 -> estDur 20:00). Calculate it. 3. CONVENTION— standard show-calling wording the source implies (the standby and GO calls). 4. ESTIMATE — ONLY a duration, ONLY where the item's length is genuinely predictable (spoken copy you can time by reading it; a stated "one song"). Mark it "durEstimated": true. 5. LEAVE BLANK — anything you would otherwise be inventing. Put "" and add a "TIP: ..." note saying what a human needs to supply. NEVER INVENT: - Spoken words. "script" may ONLY contain wording that exists in the source. If the source says "Speaker talks about the new camera", write that as a plain description — do NOT write dialogue for them. Fictional copy in a show document is worse than a blank. Where the source DOES give the words, reproduce them EXACTLY: do not correct, rewrite, improve, tidy, shorten, summarise, translate or complete them. Typos, odd phrasing and unfinished sentences stay as written — the caller is reading along with the script, so it must match. - A music track, a trigger, or a device URL that the source does not give. - A duration for an open-ended item (a keynote, a Q&A, "speaker presents"). Leave "" and TIP it: the segment's scheduled time is what controls those, not a guessed length. WHAT COUNTS AS ONE CUE: Departments that fire on the SAME GO are ONE cue, not several. Put the leading department in "dept" and the others in "calls". Only split into separate cues when the source gives them different times or different triggers. Each element is a SEGMENT marker or a CUE, in running order. SEGMENT (a block of the show, e.g. PRE-SHOW / KEYNOTE / AWARDS): { "kind":"segment", "title":"KEYNOTE", "hardTime":"19:25", "estDur":"20:00" } - hardTime = the scheduled clock time "HH:MM" this block starts, if the source gives one - estDur = how long the block should run ("M:SS") CUE: { "kind":"cue", "number":"12", "title":"Opening VT", "type":"one of: Video | Audio | Lighting | Talent | AV Switch | Mic | SFX | Transition", "dept":"one of: LX | Sound | Video | Stage", "hardTime":"", "duration":"1:30", "durEstimated":false, "standbyLine":"Standby Video 12", "goLine":"Video 12, GO", "trigger":"on host handoff line", "music":"", "script":"the words actually said, or what visibly happens, in this item", "headsUp":"", "notes":"", "autoAdvance":false, "preShow":false, "calls":[], "triggers":[] } CUE CLOCK TIMES — read this before you set hardTime on a cue. EventDirector CALCULATES the clock time of every cue itself: it takes the last scheduled time and adds the durations in front of the cue, and it redoes that every second while the show runs. So a cue that simply follows the one before it needs NO time from you — give it an accurate "duration" and its clock time appears automatically, and stays right even when the show runs late. - Set a cue "hardTime" ONLY when the source pins that cue to the clock: a satellite or broadcast window, a permitted firing time, a stated "20:15 — doors to the ballroom". These are promises to the outside world, and they override the calculation. - NEVER put a calculated time in "hardTime". A time you worked out yourself is wrong the moment the show drifts, and it would override the live calculation with a stale number. Leave it "". - If a block's timing genuinely cannot be worked out from what you were given, leave the times "" and add "TIP: cue time cannot be determined from the information supplied." Rules: - OPEN with a PRE-SHOW segment and a holding cue (house music / doors open); set that cue's "preShow":true so the show clock waits at 00:00 and only starts on the first real cue. - Segment timing: set hardTime and/or estDur when the source states them, or when they can be derived from adjacent scheduled times (a block from 19:00 to 19:20 -> estDur "20:00"). If neither can be determined, leave them "" and add a TIP — do not estimate a block length. - standbyLine and goLine are the WORDS THE CALLER SPEAKS, and every cue needs both (a pre-show holding cue is the one exception). standbyLine = "Standby ". goLine = " , GO". Keep the calls in these two fields — never fold them into "script". - script = what is actually SAID or SEEN in the item, verbatim where the source gives the words (see NEVER INVENT above). The caller reads standbyLine/goLine aloud and follows script with their eyes, so mixing the two makes both useless. - trigger = ONLY when the source gives one. Many cues simply follow the previous item and wait for nothing — leave those "". Never invent a trigger. When the source does give one, be specific: prefer "after Video 4 ends" or "on the host's line 'let us take a look'" over a vague "after VT". - calls = the OTHER departments on the same GO, one each (e.g. [{"dept":"Sound","line":"Sound 12"},{"dept":"LX","line":"LX 12"}]). [] for a single team. - headsUp = anything that needs to be READ A FEW CUES EARLY because someone has to prepare: safety (pyro, flame, a live animal, a stunt), talent readiness (a speaker to be collected, an entrance from the far side), wardrobe or costume changes, props and set moves, camera or lens changes, special effects, or anything else needing advance warning. Otherwise "". - triggers = always [] unless the source gives an explicit device URL. - autoAdvance = true only if the source says it rolls straight into the next cue. - Number cues sequentially from 1. Keep the running order exactly as written. - Timing conflicts: if the source contains overlapping, contradictory or impossible times (three things at 19:00; a block whose cues total more than its length; a cue that starts before the one before it ends), DO NOT silently fix it. Keep the source's timing and add a TIP naming the conflict — e.g. "TIP: three actions are scheduled at 19:00; confirm staging" or "TIP: cues total 24:00 but the segment is 20:00". Deciding which one is wrong is the caller's job. SCRIPT — paste your run-of-show below. (For the best result your script should spell out, for each moment: a title · the team it's for (Video / Lights / Sound / Stage) · a duration · the words spoken (VO / host spiel) · any music · what triggers it — all grouped into sections with clock times. Anything missing, the tool will flag.) >>> PASTE YOUR SCRIPT HERE <<<