save_episode_script
Validate and save an episode before production. Returns the video quote plus replacement budget, price (video, voices and storyboards, and guests when the episode has any: show price.total_credits), craft_check {passed, issues, warnings}, ready_to_film and (cast v2) cast_by_scene and episode_cast. Episode fields: cliffhanger_type (partial_reveal|reversal_setup|intrusion|ticking_clock|betrayal_reveal) and one turn (text) on the shot where the reversal lands, 10 to 20 s of a 30 s episode. Script rules (the server enforces these four; episodes that jump between places and people read as unrelated cuts): places only move forward: at most 3 places in an episode, never back to a place already left; a lead (a or b) is on screen in every scene; at most 4 people on screen in an episode; nobody new after 60% of the runtime, except one newcomer in the last scene of an intrusion cliffhanger. Writing guidance, not enforced: the first spoken line is the hook; the episode ends on a lead's line. Write calm, natural acting: no face-acting notes per line; the server directs camera and performance. make_episode's override_craft_check never lifts the four rules. Cast v2: every scene "cast" lists everyone featured in it (4 at most), the recurring characters too, not only the two leads: use the recurring cast across the season so it feels like a real series. Each character's full body and (once made) turnaround sheet go to the video model as references. Optional "guests": up to 2 one-episode characters [{id x1|x2 (or left out), name, gender, age, look, outfit, body_type, palette (a colour no one else wears), signature_prop?, voice_note?, function?}], adults only, names and palettes not used by the cast; each is cast for this episode only (face, full body and turnaround sheet, made when the episode is made) and priced in this quote (price.guests_credits, guest_images, guests_included); scenes list them by id in cast. Guest images are made only when the plan includes them (0 credits, as a drama plan includes casting), never charged: on a plan that does not, price.guests_note says so and the guests are described in words. A guest that cannot be made is described in words and the episode still films. Optional scene "background": a short line of unnamed extras in words (120 characters at most, e.g. "two nurses walking past, a crowd at the bar"), never named, never speaking, never in focus and never a reference image. The server fixes timing itself (a silent beat where the story is short, a scene up to 0.1 s over timed to its 10 s, a filler word cut from a line that runs long, a long pause tightened) and lists every change in fixed: show fixed with the script; the price is the fixed script's. Fix the craft_check issues left before showing the script; show script, check and price for approval before make_episode. Maximum 60 seconds.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"series_id": "<series_id>",
"n": "<n>",
"episode": "<episode>"
},
"name": "save_episode_script"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | ||
| episode | Yes | ||
| series_id | Yes |