Skip to content

Slide content versions, elements, themes, and limits

A slide body is structured JSON with top-level version and elements. Runtime accepts legacy version 1 and canonical version 2; version 3 does not exist. New blank slides use version 2 with an empty element array. Element types are text, image, shape (rect or ellipse), and table. Each needs a unique non-empty slide-local ID plus finite x, y, width, and height; width and height must be positive. Type-specific fields are validated, with image rules detailed separately.

A deck may contain 200 slides, each slide 200 elements, and serialized content at most 256 KiB (262,144 bytes). These are behavior constants. A table is an array of rows; row, column, and cell-text limits return invalid_arguments, with exact details owned by runtime errors. Oversized text and speaker notes are also rejected. Split long prose across slides or use Memo instead of packing it into one text element. Use arinova.action.get_schema for the current Action argument envelope.

Deck theme is a separate metadata object with a strict allowlist of known keys and recursively safe JSON values. Unknown theme keys are rejected. The default aspect ratio accepts 16:9 or 4:3. By contrast, unknown extra keys inside individual elements are deliberately retained for forward compatibility when all required base and type-specific fields are valid. Do not strip such extension keys during a read-modify-write cycle.

arinova.slide.create_deck, arinova.slide.get_deck, arinova.slide.add_slide, arinova.slide.update_slide

Also known as

presentation JSON, content version, text shape table, element limit, deck theme, aspect ratio


Machine-readable Markdown · Knowledge index

Build a7f47a5ca54ddcf7806cd48b81ce1b9827042766