Block object where exactly one typed field is populated — the rest are undefined.
explanation field is an optional string that can appear on any block — it holds supplementary text displayed alongside the block content.
Text and code blocks
explainer — rich text content block
explainer — rich text content block
Use Fields:
Example:
explainer for prose content: summaries, descriptions, bullet points, or any free-form text. The content field accepts Markdown.| Field | Required | Description |
|---|---|---|
content | Yes | Markdown text rendered on the slide. |
lastUpdated | No | ISO date string indicating when the content was last revised. |
metadata | No | Arbitrary string key-value pairs for custom annotations. |
source | No | URL or citation for the content’s source. |
codeBlock — syntax-highlighted code snippet
codeBlock — syntax-highlighted code snippet
Use Fields:
Example:
codeBlock to display code from a file with optional line highlighting. Line numbers anchor the snippet to a specific range in the source file.| Field | Required | Description |
|---|---|---|
file | Yes | File path shown in the code block header. |
startLine | Yes | First line number (1-indexed). |
endLine | Yes | Last line number (1-indexed). |
code | Yes | The code string to render. |
language | No | Language identifier for syntax highlighting (e.g. typescript, python, bash). |
highlight | No | Array of line numbers to visually highlight. |
Data visualization blocks
diagram — Mermaid diagram
diagram — Mermaid diagram
Use Example:
diagram for any flowchart, sequence diagram, class diagram, or other visualization supported by Mermaid. The content field must be valid Mermaid syntax.gantt — Mermaid Gantt chart
gantt — Mermaid Gantt chart
Use Example:
gantt for project timelines and schedules. Rendered as a Mermaid Gantt chart — the content must use Mermaid’s Gantt syntax.table — tabular data
table — tabular data
Use Example:
table for structured data in rows. Each row is a pipe-delimited (|) string. The first row is treated as the header.chart — line, bar, area, or scatter chart
chart — line, bar, area, or scatter chart
Use Fields:
Example:
chart for quantitative data visualizations. Data is provided as CSV rows; the first row is the header. Supports four chart types.| Field | Required | Description |
|---|---|---|
type | No | Chart type: line, bar, area, or scatter. Defaults to bar. |
csv.rows | Yes | Array of CSV strings. First row is the column header (min 2 rows total). |
config.title | No | Chart title displayed above the visualization. |
config.xLabel | No | Label for the X axis. |
config.yLabel | No | Label for the Y axis. |
caption | No | Caption displayed below the chart. |
kpi — single key performance indicator
kpi — single key performance indicator
Use Example:
kpi to highlight a single metric with optional change indicator and status styling.kpiGrid — grid of KPI metrics
kpiGrid — grid of KPI metrics
Use Layout options:
Example:
kpiGrid to show multiple KPIs in a structured layout. Items share the same fields as a single kpi (without comparison).| Layout | Description |
|---|---|
uniform | Equal-width cards in a single row. |
grid | Responsive multi-column grid. |
hero | First item is larger and visually emphasized. |
spotlight | One item is highlighted prominently; others are secondary. |
radialMetric — circular progress metric
radialMetric — circular progress metric
Use Example:
radialMetric to show a value as a fraction of a total in a radial/donut chart style.Layout and structure blocks
layers — pyramid or stack diagram
layers — pyramid or stack diagram
Use Layout options:
Example:
layers to show hierarchical or sequential relationships between 3–5 items. Supports optional sub-segments within each layer.layers requires between 3 and 5 layer items. Fewer than 3 or more than 5 will fail schema validation.| Layout | Description |
|---|---|
pyramid | Tapered shape, widest at the base. Good for hierarchies where the base layer is the foundation. |
stack | Equal-width bands stacked vertically. Good for sequential stages or ordered steps. |
metricsGrid — ranked metrics with descriptions
metricsGrid — ranked metrics with descriptions
Use Example:
metricsGrid to display 3–5 ranked metrics, each with a title, description, and 1–2 values.objectivesDisplay — OKR-style objectives
objectivesDisplay — OKR-style objectives
Use Key result categories:
Example:
objectivesDisplay to present 1–5 objectives, each with a title, description, and 1–3 key results.| Category | Meaning |
|---|---|
increase | A metric or outcome to grow. |
decrease | A metric or cost to reduce. |
add | A capability or feature to introduce. |
remove | A dependency, step, or burden to eliminate. |
Media blocks
image — embedded image
image — embedded image
Use Fit options:
Example:
image to embed an image with optional sizing and fit controls.| Value | Behavior |
|---|---|
cover | Scales image to fill the container, cropping if needed. |
contain | Scales image to fit within the container without cropping. |
fill | Stretches image to fill the container exactly. |
none | Renders at natural size, no scaling. |
Block type summary
| Block type | Category | Key constraint |
|---|---|---|
explainer | Text | content required, Markdown supported |
codeBlock | Code | file, startLine, endLine, code all required |
diagram | Data viz | content must be valid Mermaid syntax |
gantt | Data viz | content must be valid Mermaid Gantt syntax |
table | Data viz | rows array, min 1 row |
chart | Data viz | csv.rows min 2 rows; type defaults to bar |
kpi | Data viz | label and value required |
kpiGrid | Data viz | layout required; items min 1 |
radialMetric | Data viz | value min 0; total min 1 |
layers | Layout | 3–5 layers required |
metricsGrid | Layout | 3–5 items; each item has 1–2 values |
objectivesDisplay | Layout | 1–5 objectives; each has 1–3 key results |
image | Media | src and alt required |