The Slide Schema: A JSON Standard for AI-Generated Presentations
A specification-oriented post for reusable JSON slide schemas and agent-friendly structured output.
If a presentation workflow depends on AI, the weakest part of the system is usually not the model. It is the handoff between the model and the output layer.
Most teams still rely on a vague intermediate format: markdown, ad hoc JSON, or a prompt that says “make this into slides.” That works once. It does not scale into a stable system.
Why does a slide schema matter?
A schema forces the workflow to answer a useful question: what is the minimum structure needed to turn reasoning into a presentation artifact?
That matters because three different systems often need to agree on the same document:
- the model that drafts it
- the application that validates it
- the rendering engine that turns it into PPTX
If those systems do not share a contract, the integration becomes guesswork.
What should the schema optimize for?
Not flexibility at all costs. It should optimize for:
- predictable rendering
- easy validation
- enough structure for reuse
- enough readability for humans to inspect it
That means the schema should describe intent clearly. A slide is not just a bag of text fields. It is usually a pattern with a known job: title, comparison, dashboard, statement, chart focus, and so on.
Why is semantic structure useful?
Because it reduces ambiguity without requiring the model to become a layout engine.
For example:
{
"version": "2.0",
"title": "Expansion review",
"slides": [
{
"slideType": "title-body",
"title": "Expansion review",
"subtitle": "Q1 update"
},
{
"slideType": "comparison",
"title": "Plan versus actual",
"leftTitle": "Plan",
"rightTitle": "Actual"
}
]
}
The model only has to decide what the document means. The rendering layer decides how that semantic slide type becomes a slide.
What makes a good schema boundary?
A good schema is opinionated enough to make rendering predictable and loose enough to stay reusable.
That usually means:
- typed slide variants instead of free-form blobs
- explicit chart, text, and comparison structures
- a document shape humans can inspect in code review
- validation strict enough to catch broken output before render
If the schema is too loose, the model still has to improvise. If it is too rigid, normal deck variation becomes painful.
Why is this especially important for agents?
Agent workflows are compositional. One tool retrieves data. Another writes a summary. Another renders the file. The more ambiguous the document handoff is, the less reliable the full chain becomes.
A slide schema is valuable because it turns “make slides” into a typed artifact the rest of the system can validate and reuse.
It also makes debugging much more concrete. Instead of asking whether the prompt "felt right," you can inspect whether the model produced a valid document at all.
What does a schema not solve?
It does not make bad reasoning good. If the model invents unsupported conclusions, the schema faithfully carries those bad conclusions forward. The schema solves structure, not judgment.
That is still worth doing. Structural ambiguity is a separate source of failure, and removing it makes the remaining problems easier to debug.
A practical checklist
If you are defining a slide schema for agent workflows, check that it answers these questions clearly:
- what is the document title
- what slide types are allowed
- which fields are required for each slide type
- how charts and comparisons are represented
- how the schema will be validated before render
If those answers are fuzzy, the handoff is still too vague.
The practical rule
If the workflow needs repeatable presentation output, define the document contract first. Do not wait until after the prompting logic gets complicated.
That is usually the line between a reusable AI document system and a collection of prompts that worked once on a good day.
If you want to see how that contract fits into a real pipeline, compare this page with How to Create a PowerPoint File from JSON, PaperJSX + LangChain Integration, and the current V1 to V2 migration guide.
Try PaperJSX
Generate your first editable deck from structured JSON.

