Content Data Schema
JSON schema for assignment template content including items, explanations, and print hints.
Overview
Each public.assignment_templates row contains content_data (JSON) as the single source of truth used to render both the digital interactive experience and printable PDFs.
Top-level fields
- base: general metadata used by both formats
- items: ordered list of item definitions
- explanations: named variants for teaching/explanations
- rubric: optional rubric for short-answer or constructed response
- accommodations: optional supports (ELL, SpEd, Speech)
- print: optional print-layout hints
Example
{
"base": {
"metadata": { "unit": "Unit 2", "strand": "B2", "quarter": "Q2" },
"time_minutes": 30,
"materials": ["pencil", "ruler"],
"teacher_notes": "Watch for common misconceptions about place value"
},
"items": [
{
"id": "it1",
"type": "mcq",
"prompt": "What is 3/4 as a decimal?",
"choices": ["0.25", "0.50", "0.75", "0.8"],
"answer": 2,
"tags": ["diagnostic"]
},
{
"id": "it2",
"type": "numeric",
"prompt": "Round 3.1415 to two decimal places",
"answer": { "value": 3.14, "tolerance": 0.01 }
}
],
"explanations": {
"default": "exp_a",
"variants": {
"exp_a": { "id": "exp_a", "approach": "step_by_step", "body": "Break it down..." },
"exp_b": { "id": "exp_b", "approach": "analogy", "body": "Imagine a pizza..." }
}
},
"rubric": { "short_answer": { "levels": ["emerging", "proficient", "advanced"] } },
"accommodations": { "ell": ["glossary"], "sped": ["reduced set"], "speech": [] },
"print": { "layout": { "columns": 1, "line_spacing": "normal" } }
}
Item types (starter set)
- mcq: one-correct multiple choice (
answer: index) - multiselect: many-correct (
answer: array of indices) - numeric: numeric answer with tolerance/units
- expression: algebraic expression equality
- cloze: text with blanks and acceptable answers
- matching: pairs of prompts/answers
- reorder: sequence ordering
- short_answer: free text scored via rubric
Explanations and variants
- explanations.default: id of the variant used by default
- explanations.variants: dictionary keyed by variant id
- Each variant may include
approachandbody(teacher/student-friendly text)
Print hints
- print.layout: columns, line spacing, optional page breaks for long items
- Always ensure high-contrast and fit to A4/Letter