Schemas / Story (semantic copy)

rig.story.paragraph_style

v0.31.0 · draft 4 fields 0 required

Fields

FieldTypeMeaning
basedOn entity optional Optional. Parent paragraph style; absent / null = none
listKind enumbullet · numbered optional Optional. bullet or numbered. Absent = not a list style
keepWithNext bool optional Optional. Never leave a paragraph of this style last on a page - break before it so it travels with the block that follows (headings). Absent = false
keepWithPrevious bool optional Optional. Never start a page with a paragraph of this style - it travels with the block before it (captions). Absent = false

Named paragraph style. Format when present.

The display name is rig.meta.named - do not re-declare name here. Identity only: no font, size, colour, or leading. A host maps the name (Heading 1, Normal, Unordered List) at emit time.

Headings are styles whose name the host already knows (Header 1, Heading 1) - no headingLevel field. List membership is this listKind on the style, not a separate list object.

Keeps are style facts, not per-paragraph switches: a heading style holds its section (keepWithNext), a caption style holds its figure (keepWithPrevious). Either side of a pair declaring the bond is enough. Keeping a paragraph's own lines together is host compose policy, not a schema field.

Based-on chains stay acyclic. A cycle is a document error.

JSON Schema

Resolves at https://rig.works/schemas/rig.story.paragraph_style.schema.jsonraw file.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.story.paragraph_style.schema.json",
  "title": "rig.story.paragraph_style",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "basedOn": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    },
    "listKind": {
      "type": "string",
      "enum": [
        "bullet",
        "numbered"
      ]
    },
    "keepWithNext": {
      "$ref": "./_defs.schema.json#/$defs/bool"
    },
    "keepWithPrevious": {
      "$ref": "./_defs.schema.json#/$defs/bool"
    }
  }
}

Seen in

story-flow.json · story-frames.json