One element of a screenplay: a scene heading, a paragraph of action, a character cue, a parenthetical, a run of dialogue or lyric, a transition, or centered text. A script is a flat sequence of these blocks, the paragraph-type model of Fountain and Final Draft; a speech is a character block followed by the parenthetical, dialogue and lyric blocks that belong to it. Renderers set each element by screenplay convention (a monospaced face, dialogue and cues indented, transitions flush right, headings, cues and transitions in capitals) and keep a cue with the speech that follows it. Mirrors the shape of pub.leaflet.blocks.text so the same rich-text tooling applies. Designed to sit inside pub.leaflet.pages.* open block unions; renderers that don't recognize it skip it, so the document's textContent should still carry the script plaintext.
Properties
dual
boolean
Optional
On a character block: this speech runs beside the previous one (dual dialogue). Renderers that can't set speeches side by side may stack them.
element
string
Required
Which screenplay element this block is. A renderer that meets an unknown value should set it as action.
maxLength: 100 bytessceneHeading, action, character, parenthetical, dialogue, lyric, transition, centeredfacets
array
of refpub.leaflet.richtext.facet
Optional
Byte-range annotations over plaintext (emphasis, underline), same facet system as Leaflet blocks.
plaintext
string
Required
The element's text as the author wrote it; a newline is a hard line break. Capitalization conventions (headings, cues, transitions) are the renderer's to apply, so the stored case is the author's.
maxLength: 100000 bytessceneNumber
string
Optional
The scene's number as printed in the margins ("12", "12A"). Meaningful on sceneHeading only.
maxLength: 100 bytesmaxGraphemes: 10 graphemesView raw schema
{
"description": "One element of a screenplay: a scene heading, a paragraph of action, a character cue, a parenthetical, a run of dialogue or lyric, a transition, or centered text. A script is a flat sequence of these blocks, the paragraph-type model of Fountain and Final Draft; a speech is a character block followed by the parenthetical, dialogue and lyric blocks that belong to it. Renderers set each element by screenplay convention (a monospaced face, dialogue and cues indented, transitions flush right, headings, cues and transitions in capitals) and keep a cue with the speech that follows it. Mirrors the shape of pub.leaflet.blocks.text so the same rich-text tooling applies. Designed to sit inside pub.leaflet.pages.* open block unions; renderers that don't recognize it skip it, so the document's textContent should still carry the script plaintext.",
"properties": {
"dual": {
"description": "On a character block: this speech runs beside the previous one (dual dialogue). Renderers that can't set speeches side by side may stack them.",
"type": "boolean"
},
"element": {
"description": "Which screenplay element this block is. A renderer that meets an unknown value should set it as action.",
"knownValues": [
"sceneHeading",
"action",
"character",
"parenthetical",
"dialogue",
"lyric",
"transition",
"centered"
],
"maxLength": 100,
"type": "string"
},
"facets": {
"description": "Byte-range annotations over plaintext (emphasis, underline), same facet system as Leaflet blocks.",
"items": {
"ref": "pub.leaflet.richtext.facet",
"type": "ref"
},
"type": "array"
},
"plaintext": {
"description": "The element's text as the author wrote it; a newline is a hard line break. Capitalization conventions (headings, cues, transitions) are the renderer's to apply, so the stored case is the author's.",
"maxLength": 100000,
"type": "string"
},
"sceneNumber": {
"description": "The scene's number as printed in the margins (\"12\", \"12A\"). Meaningful on sceneHeading only.",
"maxGraphemes": 10,
"maxLength": 100,
"type": "string"
}
},
"required": [
"element",
"plaintext"
],
"type": "object"
}