Skip to main content
ScreenJSON reuses a small set of types everywhere. Understanding them once makes the rest of the schema read itself.

uuid

RFC 4122 UUID string. Pattern 8-4-4-4-12, hex.

slug

Lowercase, kebab-cased identifier. | Pattern | ^[a-z0-9]+(?:-[a-z0-9]+)*$ | | Length | 3–50 characters | | Example | production-draft, revolver, mara |

lang

BCP 47 language tag. | Pattern | ^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$ | | Default | en | | Examples | en, en-GB, fr-CA, ja, zh-Hant, sr-Latn-RS |

dir

| Values | ltr, rtl | | Default | ltr |

charset

IANA character set label. | Pattern | ^[A-Za-z0-9][A-Za-z0-9._:-]{1,31}$ | | Default | utf-8 |

datetime

ISO 8601 date-time. Format date-time.

text

A map keyed by lang with text values. | Pattern for keys | lang regex | | Value length | 1–10,000 characters | | Default | {} | | Used on | action, dialogue, parenthetical, shot, transition, general text; note text; slugline desc; character desc; source title; logline; cover extra; ribbon text; passage text; summary text. |

name

Short-form variant of text. | Value length | 1–255 characters | | Used on | root title, character name (wait: name is a single string, see below), cover title, source title when short. |

meta

Free-form string key/value extension map. | Key pattern | ^[A-Za-z0-9_.:-]{1,64}$ | | Value length | 0–2,048 characters | | Default | {} | | Present on | every object. The only place extension data is permitted. |

tags and roles

Arrays of unique slug values. Order is not semantic.

format

Reference to an external screenplay presentation standard, informational only.

color

Reusable named colour.

registration

license