Skip to main content
Every scene body is an ordered array of typed elements. Each element extends a common base and narrows with its own type field.

Common element base

Every element carries these fields:
FieldTypeRequiredDescription
iduuidElement identifier.
authorsuuid[]At least one author.
sceneuuidBack-reference to the parent scene.
contributorsuuid[]Contributors to this element.
accessrolesRBAC roles that may read this element.
notesnote[]Anchored annotations.
charsetstringOverride root charset.
direnumOverride direction (ltr / rtl).
classslugCustom class for renderer styling.
domstring (≤100)Optional DOM hint for renderers.
encryptencryptPer-element encryption override.
lockedbooleanfalseRenderer should not allow edits.
omitbooleanfalseMarked for scheduled deletion.
revisionsrevision[]Element-scoped revision markers.
stylesslug[] uniqueStyle ids to apply.
metametaExtension.

action

Narrative description.
{ "type": "action", "text": { "en": "MARA lifts the lid." } }
FieldRequired
type✓ — "action"
text✓ — language map

character (cue)

Character cue — the line above dialogue.
{
  "type":      "character",
  "character": "<uuid>",
  "display":   "MARA (CONT'D)"
}
FieldRequiredDescription
type✓ — "character"
characterUUID from the character index.
displayOverride the rendered cue string (e.g. MARA (V.O.)). Length 1–120.

parenthetical

Bracketed actor direction.
{ "type": "parenthetical", "text": { "en": "(whispering)" } }
FieldRequired
type✓ — "parenthetical"
text✓ — language map

dialogue

A spoken line.
{
  "type":      "dialogue",
  "character": "<uuid>",
  "origin":    "V.O.",
  "dual":      false,
  "text":      { "en": "We have ninety seconds." }
}
FieldRequiredDescription
type✓ — "dialogue"
characterUUID from the character index.
textLanguage map.
originV.O, V.O., O.S, O.S., O.C, O.C., FILTER.
dualDual-dialogue marker. Default false.

shot

Camera direction.
{
  "type":        "shot",
  "text":        { "en": "CLOSE ON MARA'S HANDS" },
  "fov":         40,
  "perspective": "2D"
}
FieldRequiredDescription
type✓ — "shot"
textLanguage map.
fovField-of-view in degrees. 0–360. Default 40.
perspective2D or 3D. Default 2D.

transition

Scene transitions — CUT TO:, FADE TO BLACK., SMASH CUT TO:.
{ "type": "transition", "text": { "en": "CUT TO:" } }

general

A typed catch-all for scene-body text that does not fit the other element kinds.
{ "type": "general", "text": { "en": "— END OF ACT ONE —" } }

Element order

The body array preserves source order. Renderers use that order; there is no implicit sort.