{
  "version": 1,
  "teacher": "Sample Teacher",
  "schoolYear": "2031-32 (example)",
  "classes": [
    { "key": "P1", "name": "Period 1 — Example Class", "meets": [1, 3, 5], "doublePeriodOn": 3, "rosterSize": 24 },
    { "key": "P4", "name": "Period 4 — Example Class", "meets": [2, 4], "doublePeriodOn": null, "rosterSize": 21 }
  ],
  "linkGroups": [
    {
      "label": "Communication",
      "links": [
        { "label": "Class Stream", "href": "https://example.com/stream" },
        { "label": "Gradebook", "href": "" }
      ]
    },
    {
      "label": "Records",
      "links": [
        { "label": "Attendance", "href": "https://example.com/attendance" }
      ]
    }
  ],
  "units": [
    {
      "id": "unit-1",
      "title": "Example Unit — Opening Stories",
      "sections": [
        {
          "code": "1.1",
          "title": "Getting Started",
          "lessonCount": 6,
          "studentEditionPages": "pp. 1-30",
          "lessons": [
            {
              "n": 1,
              "title": "Launch and Goal Setting",
              "durationMinutes": 45,
              "studentEditionPages": "pp. 1-4",
              "generalNote": "First day of the unit — most of this period is norms and expectations, not content.",
              "links": [
                { "label": "Today's Slide Deck", "href": "https://example.com/slides-1" }
              ],
              "objectives": [
                "Students will state one personal goal for the unit.",
                "Students will locate the unit's key vocabulary list."
              ],
              "beforeClass": {
                "checklist": ["Print goal-setting handout", "Queue slide deck"],
                "onTheBoard": "Warm-up: What story from your own life would you tell a stranger?"
              },
              "timeline": [
                { "time": "0:00", "beat": "Warm-up", "links": [] },
                { "time": "0:10", "beat": "Unit overview", "links": [] },
                { "time": "0:25", "beat": "Goal setting", "links": [] }
              ],
              "beats": [
                {
                  "startTime": "0:00",
                  "endTime": "0:10",
                  "title": "Warm-up",
                  "sectionTitle": "Opening",
                  "body": ["Students respond to the board prompt in their notebooks."],
                  "say": ["You don't need a dramatic story — an ordinary one told well is still a story."],
                  "notes": ["Circulate but don't call on anyone yet."],
                  "links": []
                },
                {
                  "startTime": "0:10",
                  "endTime": "0:25",
                  "title": "Unit overview",
                  "sectionTitle": "Opening",
                  "body": ["Walk through the unit's essential question and the texts it covers."],
                  "say": [],
                  "notes": [],
                  "links": []
                },
                {
                  "startTime": "0:25",
                  "endTime": "0:45",
                  "title": "Goal setting",
                  "body": ["Each student writes one goal for the unit on an index card."],
                  "say": ["This card is just for you — I'm collecting them, but I'm not grading the goal itself."],
                  "notes": [],
                  "links": []
                }
              ],
              "print": {
                "studentCount": 24,
                "items": [
                  { "copies": 24, "item": "Goal-setting index cards", "note": "pre-cut if possible" }
                ],
                "context": "Extra cards live in the front tray for latecomers."
              },
              "teacherEditionGuidance": [
                "The Teacher's Edition suggests modeling one goal aloud before students write their own."
              ],
              "assessment": [
                { "type": "Formative", "evidence": "Completed goal card" }
              ],
              "ifYouRunShort": [
                "Skip the unit overview walkthrough and post it as a handout instead."
              ],
              "doNotCut": [
                "Goal setting — later lessons reference these cards directly."
              ],
              "reference": {
                "nextLesson": "Lesson 2 introduces the first text with a close-reading protocol."
              }
            },
            {
              "n": 2,
              "title": "First Close Reading",
              "durationMinutes": 45,
              "studentEditionPages": "pp. 5-9",
              "links": [],
              "objectives": [
                "Students will annotate a short passage for tone.",
                "Students will identify one example of figurative language."
              ],
              "beforeClass": {
                "checklist": ["Print annotation guide"],
                "onTheBoard": "Warm-up: circle one word in today's passage that feels 'loud.'"
              },
              "timeline": [
                { "time": "0:00", "beat": "Warm-up", "links": [] },
                { "time": "0:10", "beat": "Modeled annotation", "links": [] },
                { "time": "0:25", "beat": "Independent annotation", "links": [] }
              ],
              "beats": [
                {
                  "startTime": "0:00",
                  "endTime": "0:10",
                  "title": "Warm-up",
                  "body": ["Students mark one 'loud' word in the passage and jot why."],
                  "say": [],
                  "notes": [],
                  "links": []
                },
                {
                  "startTime": "0:10",
                  "endTime": "0:25",
                  "title": "Modeled annotation",
                  "body": ["Model annotating the first paragraph on the projector."],
                  "say": ["Watch what I mark and, more importantly, watch what I don't bother marking."],
                  "notes": [],
                  "links": []
                },
                {
                  "startTime": "0:25",
                  "endTime": "0:45",
                  "title": "Independent annotation",
                  "body": ["Students annotate the remaining two paragraphs on their own."],
                  "say": [],
                  "notes": ["Pull a small group for extra support if needed."],
                  "links": []
                }
              ],
              "print": {
                "studentCount": 24,
                "items": [
                  { "copies": 24, "item": "Annotation guide", "note": "double-sided" }
                ]
              },
              "assessment": [
                { "type": "Formative", "evidence": "Annotated passage" }
              ],
              "ifYouRunShort": [
                "Assign the independent annotation as homework instead."
              ],
              "doNotCut": [
                "Modeled annotation — students need to see the process once before doing it alone."
              ],
              "reference": {
                "carriesForward": "The annotation habit from today carries through the rest of the unit.",
                "nextLesson": "Lesson 3 moves from annotation to a short written response."
              }
            }
          ]
        },
        {
          "code": "1.2",
          "title": "Building the Argument",
          "lessonCount": 4,
          "studentEditionPages": "pp. 31-52"
        }
      ]
    },
    {
      "id": "unit-2",
      "title": "Example Unit — Structure and Craft",
      "sections": [
        {
          "code": "2.1",
          "title": "Not Yet Planned",
          "lessonCount": 8,
          "studentEditionPages": "pp. 53-90"
        }
      ]
    }
  ],
  "calendar": {
    "weeks": [
      { "mondayDate": "2031-08-04", "quarter": 1 },
      { "mondayDate": "2031-08-11", "quarter": 1 },
      { "mondayDate": "2031-08-18", "quarter": 1 }
    ],
    "holidays": [
      { "date": "2031-08-19", "label": "Labor Day (example)" }
    ],
    "flexDays": [
      { "date": "2031-08-15", "label": "Assembly", "description": "Shortened periods for a schoolwide assembly." }
    ],
    "breaks": []
  }
}
