# Tuesday Template — Word Parts & Meaning Phase

**Theme:** Practice It
**Pages:** ~3 (continuous flow with 2 forced breaks)
**Generator:** `tuesday_wp.py` → `generate_tuesday()`

---

## Page Layout

### PAGE 1 — Word Parts Introduction
| Section | Data Key | Description |
|---|---|---|
| Header | auto | "Week N, Tuesday -- TOPIC" |
| **Here's What We're Learning** | `learning_text` | HTML explanation of the concept |
| **Word Part Examples** | `word_part_examples` | 2-column list of examples (e.g., "un- at start = NOT") |
| **Remember This!** (box #1) | `remember_boxes[0]` | Reminder/tip box (green background) |
| **Word Scramble Challenge** | auto (all 12 words) | 2-column table. Letters scrambled, write line underneath |

→ **[PAGE BREAK]** ←

### PAGE 2 — Reading + Word Part Hunt
| Section | Data Key | Description |
|---|---|---|
| Divider | auto | Dashed line |
| **Reading Comprehension** | `reading_text` | Story with bolded spelling words in story-box |
| Divider | auto | Dashed line |
| **Comprehension Questions** | `comp_questions` | 4 questions, each with write line |
| Divider | auto | Dashed line |
| **Word Part Hunt** (custom title) | `word_part_hunt` | Checkboxes: match words + decoy words, shuffled |

→ **[PAGE BREAK]** ←

### PAGE 3 — Application
| Section | Data Key | Description |
|---|---|---|
| **Remember This!** (box #2) | `remember_boxes[1]` | Second reminder/tip box |
| **Identify the Word Part** | `identify_data` | 4 items: word + question + write line |
| **Word Swap Challenge** | `swap_data` | Original sentence highlighted → rewrite with new words |
| **Sentence Builder** | `builder_prompts` | 3 prompts with keyword hints, write lines |

→ End of document

---

## Required Data (for `generate_tuesday()`)

```python
words = [                          # 12 items
    ("unhappy", "un + happy", "not happy, sad"),
    ...
]
learning_text = "...HTML..."       # Concept explanation
word_part_examples = [             # 4 items
    "un- at the start = NOT (unhappy = not happy)",
    "re- at the start = AGAIN (return = turn again)",
    ...
]
remember_boxes = [                 # 2 items
    ("Remember!", "A prefix goes at the BEGINNING of a word."),
    ("Tip!", "Look for un-, re-, and dis- at the start of words."),
]
reading_text = "...HTML..."        # Story with <strong>bolded words</strong>
comp_questions = [                 # 4 items
    "What did Leo discover behind the bookshelves?",
    ...
]
word_part_hunt = {                 # dict
    "match": ["unhappy", "unpack", ...],   # words WITH the target word part
    "decoy": ["happy", "pack", ...],       # words WITHOUT it
}
word_part_hunt_instruction = "Check each word that contains a prefix..."
word_part_hunt_title = "Prefix Hunt"
swap_data = [                      # 1+ items
    ("The door was closed.", ("closed", "unknown"), ("unknown", "unopened")),
]
builder_prompts = [                # 3 items
    ("Write about finding something new.", "discover"),
    ("Write about going back somewhere.", "return"),
    ...
]
identify_data = [                  # 4 items
    ("unhappy", "What is the prefix? What does it mean?"),
    ("return", "What is the prefix? What does it mean?"),
    ...
]
```

---

## Design Notes
- Word Scramble auto-shuffles ALL 12 word names (seeded by `hash(word)`)
- Word Part Hunt shuffles match+decoy words together (seed 77)
- Remember boxes use `remember_box()` helper: green background, title + content
- Word Swap: original sentence in orange box with highlighted words
- Sentence Builder: orange box with italic prompt + bold keyword
- Page breaks: after Word Scramble (page 1), after Word Part Hunt (page 2)