Skip to content

Content Types

The content field on every ContentItem is a discriminated union keyed on type. There are 18 types, grouped below by category. Each section shows the shape of the content object you receive.

A numeric computation with operands and an operator.

{
"type": "arithmetic",
"operand1": 14,
"operand2": 8,
"operator": "+",
"displayFormat": "horizontal",
"missingOperand": null
}
  • operand1, operand2 — Numbers or fraction objects ({ numerator, denominator, wholeNumber?, display }).
  • operand3 — Optional third operand for multi-step problems.
  • operator — One of "+", "-", "×" (U+00D7), or "÷" (U+00F7).
  • displayFormat"horizontal" or "vertical" layout suggestion.
  • missingOperand — When set to "operand1", "operand2", or "result", indicates a fill-in-the-missing-number problem.

A stem question with labeled choices and distractor metadata.

{
"type": "multiple-choice",
"stem": "Which word is a synonym for 'happy'?",
"choices": [
{ "text": "Sad", "isDistractor": true, "distractorReason": "Antonym" },
{ "text": "Joyful", "isDistractor": false },
{ "text": "Angry", "isDistractor": true, "distractorReason": "Unrelated emotion" },
{ "text": "Quiet", "isDistractor": true, "distractorReason": "Unrelated adjective" }
],
"correctIndex": 1,
"explanation": "'Joyful' means feeling great happiness."
}

A sentence template with one or more blanks to fill.

{
"type": "fill-blank",
"template": "The cat ___ on the mat.",
"answer": "sat",
"acceptableAnswers": ["sat", "sits"],
"caseSensitive": false
}

A statement the student evaluates as true or false.

{
"type": "true-false",
"statement": "The Earth revolves around the Sun.",
"isTrue": true,
"explanation": "The Earth orbits the Sun once approximately every 365.25 days."
}

An open-ended question with optional sample answer and scoring keywords.

{
"type": "short-answer",
"question": "What is the main idea of the second paragraph?",
"sampleAnswer": "The paragraph explains how plants use sunlight to make food.",
"keywords": ["plants", "sunlight", "food", "photosynthesis"]
}

A reading passage with associated comprehension questions.

{
"type": "passage-based",
"passage": {
"text": "Once upon a time, a small fox lived near a wide river...",
"title": "The Fox and the River",
"genre": "fiction",
"wordCount": 210,
"readingLevel": "Lexile 480L",
"paragraphs": [
"Once upon a time, a small fox lived near a wide river.",
"Every morning, the fox watched the fish leap out of the water."
]
},
"questionCount": 4
}

Pairs of related items with a pre-shuffled right column.

{
"type": "matching",
"instructions": "Match each word to its definition.",
"pairs": [
{ "left": "Habitat", "right": "The natural home of an organism" },
{ "left": "Predator", "right": "An animal that hunts other animals" },
{ "left": "Ecosystem", "right": "A community of living things and their environment" }
],
"shuffledRight": [
"An animal that hunts other animals",
"A community of living things and their environment",
"The natural home of an organism"
]
}

A sequence of items the student must arrange in the correct order.

{
"type": "ordering",
"instructions": "Put these fractions in order from least to greatest.",
"items": ["1/4", "1/2", "3/4"],
"shuffledItems": ["3/4", "1/4", "1/2"]
}

A grid-based word puzzle (word search or crossword).

{
"type": "word-puzzle",
"puzzleType": "word-search",
"grid": [
["C", "A", "T", "R"],
["D", "O", "G", "S"],
["F", "I", "S", "H"],
["B", "A", "T", "X"]
],
"words": [
{ "word": "CAT", "clue": "A small furry pet" },
{ "word": "DOG", "clue": "A loyal companion" },
{ "word": "FISH", "clue": "Lives in water" },
{ "word": "BAT", "clue": "Flies at night" }
],
"gridSize": { "rows": 4, "cols": 4 }
}

A visual element (number line, shape, clock, etc.) with an associated question.

{
"type": "diagram",
"diagramKind": "number-line",
"diagramData": {
"min": 0,
"max": 20,
"marks": [5, 10, 15],
"arrow": 12
},
"question": "What number does the arrow point to?",
"answer": 12
}

Supported diagramKind values: number-line, shape, coordinate-plane, bar-model, clock, ruler.

An object to count, designed for K-2 students.

{
"type": "picture-counting",
"count": 7,
"objectDescription": "red apples"
}

A data table with a question that requires reading or interpreting the data.

{
"type": "data-table",
"tableTitle": "Favorite Fruits Survey",
"headers": ["Fruit", "Votes"],
"rows": [
["Apple", "12"],
["Banana", "8"],
["Orange", "15"],
["Grape", "5"]
],
"question": "Which fruit received the most votes?",
"answer": "Orange"
}

While any type can theoretically appear for any subject, in practice certain types cluster by subject area:

SubjectCommon Types
Matharithmetic, picture-arithmetic, diagram, data-table, multiple-choice
Readingpassage-based, multiple-choice, short-answer, true-false, phonics-word-list
Vocabularymultiple-choice, fill-blank, matching, word-bank, category-sorting
Spellingspelling-activity, fill-blank, word-puzzle, ordering, tracing-activity
Sciencemultiple-choice, true-false, diagram, short-answer, category-sorting

A visual arithmetic problem for K-2 students using countable objects.

{
"type": "picture-arithmetic",
"operand1": 3,
"operand2": 2,
"operator": "+",
"objectDescription": "stars",
"svgContent": "<svg>...</svg>"
}

A spelling exercise with a target word, clue, and activity type.

{
"type": "spelling-activity",
"word": "because",
"clue": "I stayed home ___ it was raining.",
"activityType": "fill-in",
"scrambledLetters": ["a", "b", "c", "e", "e", "s", "u"]
}

A categorized word bank for vocabulary and spelling practice.

{
"type": "word-bank",
"words": ["happy", "joyful", "sad", "angry"],
"categories": ["Positive", "Negative"],
"instructions": "Sort the words into the correct category."
}

Items to sort into labeled categories.

{
"type": "category-sorting",
"categories": ["Living", "Non-Living"],
"items": [
{ "text": "Dog", "category": "Living" },
{ "text": "Rock", "category": "Non-Living" }
]
}

A list of words for phonics practice, grouped by sound pattern.

{
"type": "phonics-word-list",
"pattern": "short-a",
"words": ["cat", "bat", "hat", "mat"],
"instructions": "Read each word aloud. Circle the words with the short a sound."
}

A tracing exercise for early learners (K-1) with SVG trace data.

{
"type": "tracing-activity",
"word": "apple",
"traceSvg": "<svg>...</svg>",
"letterCount": 5
}
  • Content Items — How these types fit into the full ContentItem model.
  • Skills & Standards — Browse the curriculum to find skills that produce each type.