// ================================================================
// JNM Home Education Program — Spelling Curriculum Seed
// ================================================================
// Run (safe default — Grade 6 only):  node seed-spelling-curriculum.js
// Optional all-grade mode:               node seed-spelling-curriculum.js --all-grades
//
// BACKUP FIRST:  pg_dump jnm_homeschool_db > backup_before_spelling.sql
// RUN MIGRATION FIRST:  psql ... -f migration-phase1.sql   (adds word_list column)
//
// Creates real Spelling courses for Grades 1–8 using the existing
// structure: courses -> units (weeks) -> lessons -> assignments.
// V20: Grade 6 contains the full 36-week year. Each week seeds the REQUIRED
// five-assignment structure with no weekday wording in student-facing titles:
// Word List Study; Word Pattern and Meaning Study; Sentence and Context Practice;
// Audio Spelling Practice; Weekly Spelling Test. Every week contains 20 words.
//
// Each seeded week:
//   - 20 grade-appropriate spelling words (stored on lesson.word_list)
//   - Assignment 1: Word List Study (auto-graded)
//   - Assignment 2: Word Pattern and Meaning Study (auto-graded)
//   - Assignment 3: Sentence and Context Practice (submitted for parent/teacher review)
//   - Assignment 4: Audio Spelling Practice (auto-graded)
//   - Assignment 5: Weekly Spelling Test (auto-graded)
//   - Questions generated into assignment.questions JSONB, auto-graded by the
//     existing /api/assignments/:id/submit endpoint.
//
// Question types implemented:
//   1. type-the-word         -> short_answer (exact, auto-graded)
//   2. which-spelled-correctly -> multiple_choice (auto-graded)
//   3. fill-missing-letters  -> short_answer (auto-graded)
//   4. match-word-to-meaning -> multiple_choice (auto-graded)
//   5. use-in-sentence       -> written_response (manual parent/teacher review)
//   6. word-sorting          -> multiple_choice (auto-graded)
//
// SCOPE NOTE (read this):
//   Grade 6 is complete at 36 curated weeks. The safe default seeds Grade 6 only.
//   Grades 1–5 and 7–8 retain their existing curated partial blocks and are touched
//   only when --all-grades is explicitly supplied. No placeholder weeks are created.
// ================================================================

const { Pool } = require('pg');
const dotenv = require('dotenv');
dotenv.config();

const pool = new Pool({
  user: process.env.DB_USER || 'homeschool_user',
  password: process.env.DB_PASSWORD,
  host: process.env.DB_HOST || 'localhost',
  port: process.env.DB_PORT || 5432,
  database: process.env.DB_NAME || 'jnm_homeschool_db'
});

// ----------------------------------------------------------------
// HELPERS
// ----------------------------------------------------------------
function shuffle(a) { const b = [...a]; for (let i = b.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [b[i], b[j]] = [b[j], b[i]]; } return b; }

// Create a believable misspelling of a word (deterministic-ish variations)
function misspell(word, variant) {
  const w = word.toLowerCase();
  const vowels = 'aeiou';
  switch (variant % 5) {
    case 0: // double a middle consonant
      for (let i = 1; i < w.length - 1; i++) { if (!vowels.includes(w[i])) return w.slice(0, i + 1) + w[i] + w.slice(i + 1); }
      return w + w[w.length - 1];
    case 1: // swap two adjacent letters in the middle
      if (w.length > 3) { const i = Math.floor(w.length / 2); return w.slice(0, i - 1) + w[i] + w[i - 1] + w.slice(i + 1); }
      return w + 'e';
    case 2: // drop a vowel
      for (let i = 1; i < w.length; i++) { if (vowels.includes(w[i])) return w.slice(0, i) + w.slice(i + 1); }
      return w.slice(0, -1);
    case 3: // replace a vowel with another vowel
      for (let i = 0; i < w.length; i++) { if (vowels.includes(w[i])) { const alt = vowels.replace(w[i], '')[0]; return w.slice(0, i) + alt + w.slice(i + 1); } }
      return w + 'a';
    default: // double a vowel
      for (let i = 0; i < w.length; i++) { if (vowels.includes(w[i])) return w.slice(0, i + 1) + w[i] + w.slice(i + 1); }
      return w + 'e';
  }
}

// Build "fill in the missing letters" pattern, e.g. because -> b_c_use
function fillPattern(word) {
  const chars = word.split('');
  const vowels = 'aeiou';
  let blanks = 0;
  const maxBlanks = Math.max(1, Math.floor(word.length / 3));
  return chars.map((ch, i) => {
    if (i > 0 && i < word.length - 1 && vowels.includes(ch.toLowerCase()) && blanks < maxBlanks) {
      blanks++;
      return '_';
    }
    return ch;
  }).join('');
}

function missingLettersForPattern(word) {
  const pattern = fillPattern(word);
  const letters = [];
  for (let i = 0; i < pattern.length; i++) {
    if (pattern[i] === '_') letters.push(word[i].toLowerCase());
  }
  return letters;
}

function missingLetterAcceptableAnswers(word) {
  const letters = missingLettersForPattern(word);
  const joined = letters.join('');
  return Array.from(new Set([
    joined,
    letters.join(','),
    letters.join(', '),
    letters.join(' ')
  ].filter(Boolean)));
}

function uid(prefix, n) { return prefix + '_' + n; }

// ----------------------------------------------------------------
// QUESTION GENERATORS (per word / per week)
// ----------------------------------------------------------------
function buildPracticeQuestions(words) {
  // "Spelling Practice" homework: type-the-word + fill-missing-letters mix
  const qs = [];
  let id = 1;
  words.slice(0, 10).forEach(w => {
    qs.push({
      id: id++, type: 'short_answer', question: `Spell the word that means: ${w.meaning}. Write it on paper first if needed, then type the word.`,
      correct_answer: w.word, explanation: `The correct spelling is "${w.word}".`,
      skill: 'spelling', difficulty: 'easy', needs_review: false
    });
  });
  words.slice(10, 20).forEach(w => {
    qs.push({
      id: id++, type: 'short_answer', question: `Fill in the missing letters: ${fillPattern(w.word)}`,
      correct_answer: missingLettersForPattern(w.word).join(','), acceptable_answers: missingLetterAcceptableAnswers(w.word), completed_word: w.word, explanation: `Missing letters: ${missingLettersForPattern(w.word).join(',')}. The complete word is "${w.word}".`,
      skill: 'spelling', difficulty: 'medium', needs_review: false
    });
  });
  return qs;
}

// Word List Study — visible-word typing practice. Students read the word, look away or cover it, write it on paper if needed, and type it from memory. Paste is blocked in the frontend.
function buildListStudyQuestions(words) {
  const qs = [];
  let id = 1;
  words.forEach(w => {
    qs.push({
      id: id++, type: 'short_answer',
      question: `Practice typing the spelling word: ${w.word}. Read it, cover it or look away, write it on paper if needed, then type it from memory. Meaning: ${w.meaning}. Pattern: ${w.pattern}.`,
      correct_answer: w.word, explanation: `The correct spelling is "${w.word}".`,
      skill: 'word list study', difficulty: 'easy', needs_review: false
    });
  });
  return qs;
}

// V17: Tuesday "Word Pattern and Meaning Study" — match words to meanings and patterns.
function buildPatternMeaningQuestions(words) {
  const qs = [];
  let id = 1;
  words.slice(0, 10).forEach(w => {
    qs.push({
      id: id++, type: 'short_answer',
      question: `Which spelling word from this week means: ${w.meaning}? (Hint: pattern — ${w.pattern})`,
      correct_answer: w.word, explanation: `"${w.word}" means ${w.meaning} and follows the pattern: ${w.pattern}.`,
      skill: 'word meaning and pattern', difficulty: 'medium', needs_review: false
    });
  });
  words.slice(10, 20).forEach(w => {
    qs.push({
      id: id++, type: 'short_answer',
      question: `Fill in the missing letters, using this week's pattern (${w.pattern}): ${fillPattern(w.word)}`,
      correct_answer: missingLettersForPattern(w.word).join(','), acceptable_answers: missingLetterAcceptableAnswers(w.word), completed_word: w.word, explanation: `Missing letters: ${missingLettersForPattern(w.word).join(',')}. The complete word is "${w.word}".`,
      skill: 'spelling patterns', difficulty: 'medium', needs_review: false
    });
  });
  return qs;
}

function buildSentenceQuestions(words) {
  // "Use Words in Sentences": written_response, submitted for parent/teacher review.
  // V18: use all 20 weekly words so Wednesday matches the approved frontend flow.
  const qs = [];
  let id = 1;
  words.slice(0, 20).forEach(w => {
    qs.push({
      id: id++, type: 'written_response',
      question: `Use the word "${w.word}" correctly in a sentence of your own.`,
      correct_answer: null, explanation: '', skill: 'vocabulary in context',
      difficulty: 'medium', needs_review: true
    });
  });
  return qs;
}

// V18C: build a clean weekly focus/pattern label for student-facing spelling
// titles, so backend titles match the corrected frontend (no day-of-week wording).
// Uses the shared word pattern when all words agree; otherwise returns ''.
function spellingWeekFocus(words) {
  if (!Array.isArray(words) || !words.length) return '';
  const first = String(words[0]?.word || '').toLowerCase();
  if (first === 'autograph') return 'Roots: graph, phone, scope, meter, port, dict, spect, struct, vis (writing, sound, seeing, measuring, carrying, saying, looking, building)';
  if (first === 'abundant') return 'Academic Vocabulary (school and learning words)';
  if (first === 'acknowledge') return 'Commonly Misspelled Words (tricky spellings)';
  const patterns = [...new Set(words.map(w => (w && typeof w.pattern === 'string' ? w.pattern.trim() : '')).filter(Boolean))];
  if (patterns.length === 1) return patterns[0];
  return '';
}

function buildFillQuestions(words) {
  // "Fill in Missing Letters": short_answer auto-graded
  const qs = [];
  let id = 1;
  words.forEach(w => {
    qs.push({
      id: id++, type: 'short_answer',
      question: `Fill in the missing letters: ${fillPattern(w.word)}`,
      correct_answer: missingLettersForPattern(w.word).join(','), acceptable_answers: missingLetterAcceptableAnswers(w.word), completed_word: w.word, explanation: `Missing letters: ${missingLettersForPattern(w.word).join(',')}. The complete word is "${w.word}".`,
      skill: 'spelling patterns', difficulty: 'medium', needs_review: false
    });
  });
  return qs;
}

function buildTestQuestions(words) {
  // "Weekly Spelling Test": mix of all auto-gradeable types + sorting + meaning
  const qs = [];
  let id = 1;

  // Type-the-word for first 8
  words.slice(0, 8).forEach(w => {
    qs.push({
      id: id++, type: 'short_answer', question: `Spell the word that means: ${w.meaning}`,
      correct_answer: w.word, explanation: `The correct spelling is "${w.word}".`,
      skill: 'spelling', difficulty: 'medium', needs_review: false
    });
  });

  // Which-word-is-spelled-correctly for next 7
  words.slice(8, 15).forEach((w, i) => {
    const options = shuffle([
      w.word,
      misspell(w.word, i),
      misspell(w.word, i + 1),
      misspell(w.word, i + 2)
    ]);
    qs.push({
      id: id++, type: 'multiple_choice', question: 'Which word is spelled correctly?',
      options, correct_answer: w.word,
      explanation: `"${w.word}" is the correct spelling.`,
      skill: 'spelling recognition', difficulty: 'medium', needs_review: false
    });
  });

  // Match-word-to-meaning for next 3 (multiple choice on meaning)
  const meaningPool = words.map(x => x.meaning);
  words.slice(15, 18).forEach((w) => {
    const distractors = shuffle(meaningPool.filter(m => m !== w.meaning)).slice(0, 3);
    const options = shuffle([w.meaning, ...distractors]);
    qs.push({
      id: id++, type: 'multiple_choice', question: `What does the word "${w.word}" mean?`,
      options, correct_answer: w.meaning,
      explanation: `"${w.word}" means: ${w.meaning}`,
      skill: 'vocabulary', difficulty: 'medium', needs_review: false
    });
  });

  // Word-sorting for last 2 (by pattern)
  words.slice(18, 20).forEach((w) => {
    const pattern = w.pattern || 'spelling pattern';
    const patternPool = [...new Set(words.map(x => x.pattern).filter(Boolean))];
    const distractors = shuffle(patternPool.filter(p => p !== pattern)).slice(0, 3);
    const options = shuffle([pattern, ...distractors.length ? distractors : ['short vowel', 'long vowel', 'blend']]);
    qs.push({
      id: id++, type: 'multiple_choice',
      question: `Which spelling pattern does "${w.word}" belong to?`,
      options: options.slice(0, 4), correct_answer: pattern,
      explanation: `"${w.word}" follows the ${pattern} pattern.`,
      skill: 'word sorting', difficulty: 'hard', needs_review: false
    });
  });

  return qs;
}

// ----------------------------------------------------------------
// GRADE-APPROPRIATE WORD LISTS
// Each entry: { word, meaning, pattern }
// Delivered as completed weeks per grade (no fake placeholders).
// ----------------------------------------------------------------
const SPELLING_DATA = {
  1: [ // Grade 1 — sight words, short vowels, basic families (6 weeks)
    [ // Week 1 — short a / sight words
      {word:'cat',meaning:'a small furry pet that says meow',pattern:'short vowel'},
      {word:'hat',meaning:'something you wear on your head',pattern:'short vowel'},
      {word:'map',meaning:'a drawing that shows places',pattern:'short vowel'},
      {word:'bat',meaning:'a flying animal, or used in baseball',pattern:'short vowel'},
      {word:'can',meaning:'to be able to do something',pattern:'short vowel'},
      {word:'man',meaning:'a grown-up boy',pattern:'short vowel'},
      {word:'ran',meaning:'moved fast on your feet (past tense)',pattern:'short vowel'},
      {word:'pan',meaning:'a dish used for cooking',pattern:'short vowel'},
      {word:'bag',meaning:'something you carry things in',pattern:'short vowel'},
      {word:'tag',meaning:'a label, or a chasing game',pattern:'short vowel'},
      {word:'the',meaning:'a word used before a noun',pattern:'sight word'},
      {word:'and',meaning:'a word that joins things together',pattern:'sight word'},
      {word:'is',meaning:'a form of the word be',pattern:'sight word'},
      {word:'it',meaning:'a word for a thing',pattern:'sight word'},
      {word:'in',meaning:'inside something',pattern:'sight word'},
      {word:'at',meaning:'shows where something is',pattern:'sight word'},
      {word:'on',meaning:'on top of something',pattern:'sight word'},
      {word:'we',meaning:'you and me together',pattern:'sight word'},
      {word:'go',meaning:'to move somewhere',pattern:'sight word'},
      {word:'to',meaning:'toward something',pattern:'sight word'}
    ],
    [ // Week 2 — short e
      {word:'bed',meaning:'where you sleep',pattern:'short vowel'},
      {word:'red',meaning:'the color of an apple',pattern:'short vowel'},
      {word:'pen',meaning:'something you write with',pattern:'short vowel'},
      {word:'hen',meaning:'a female chicken',pattern:'short vowel'},
      {word:'ten',meaning:'the number after nine',pattern:'short vowel'},
      {word:'net',meaning:'used to catch fish or in sports',pattern:'short vowel'},
      {word:'wet',meaning:'covered with water',pattern:'short vowel'},
      {word:'get',meaning:'to receive something',pattern:'short vowel'},
      {word:'leg',meaning:'a body part you walk on',pattern:'short vowel'},
      {word:'egg',meaning:'a hen lays this',pattern:'short vowel'},
      {word:'he',meaning:'a word for a boy or man',pattern:'sight word'},
      {word:'she',meaning:'a word for a girl or woman',pattern:'sight word'},
      {word:'see',meaning:'to look at with your eyes',pattern:'sight word'},
      {word:'me',meaning:'the person speaking',pattern:'sight word'},
      {word:'be',meaning:'to exist',pattern:'sight word'},
      {word:'up',meaning:'toward the sky',pattern:'sight word'},
      {word:'my',meaning:'belonging to me',pattern:'sight word'},
      {word:'by',meaning:'next to something',pattern:'sight word'},
      {word:'do',meaning:'to take action',pattern:'sight word'},
      {word:'no',meaning:'the opposite of yes',pattern:'sight word'}
    ],
    [ // Week 3 — short i
      {word:'pig',meaning:'a farm animal that says oink',pattern:'short vowel'},
      {word:'dig',meaning:'to make a hole in the ground',pattern:'short vowel'},
      {word:'big',meaning:'large in size',pattern:'short vowel'},
      {word:'fig',meaning:'a sweet fruit',pattern:'short vowel'},
      {word:'sit',meaning:'to rest on a chair',pattern:'short vowel'},
      {word:'hit',meaning:'to strike something',pattern:'short vowel'},
      {word:'fit',meaning:'the right size',pattern:'short vowel'},
      {word:'pin',meaning:'a small sharp object',pattern:'short vowel'},
      {word:'win',meaning:'to come in first',pattern:'short vowel'},
      {word:'lip',meaning:'part of your mouth',pattern:'short vowel'},
      {word:'this',meaning:'the thing here',pattern:'sight word'},
      {word:'that',meaning:'the thing there',pattern:'sight word'},
      {word:'with',meaning:'together; alongside',pattern:'sight word'},
      {word:'his',meaning:'belonging to him',pattern:'sight word'},
      {word:'has',meaning:'owns or holds',pattern:'sight word'},
      {word:'had',meaning:'owned in the past',pattern:'sight word'},
      {word:'you',meaning:'the person being spoken to',pattern:'sight word'},
      {word:'are',meaning:'a form of be',pattern:'sight word'},
      {word:'for',meaning:'shows purpose',pattern:'sight word'},
      {word:'was',meaning:'a past form of is',pattern:'sight word'}
    ],
    [ // Week 4 — short o
      {word:'dog',meaning:'a pet that barks',pattern:'short vowel'},
      {word:'log',meaning:'a piece of a tree trunk',pattern:'short vowel'},
      {word:'hop',meaning:'to jump on one foot',pattern:'short vowel'},
      {word:'top',meaning:'the highest part',pattern:'short vowel'},
      {word:'pop',meaning:'a sudden bursting sound',pattern:'short vowel'},
      {word:'mop',meaning:'used to clean floors',pattern:'short vowel'},
      {word:'box',meaning:'a container with sides',pattern:'short vowel'},
      {word:'fox',meaning:'a wild animal with a bushy tail',pattern:'short vowel'},
      {word:'pot',meaning:'used for cooking',pattern:'short vowel'},
      {word:'hot',meaning:'very warm',pattern:'short vowel'},
      {word:'not',meaning:'a word that means no',pattern:'sight word'},
      {word:'got',meaning:'received (past tense)',pattern:'sight word'},
      {word:'but',meaning:'however',pattern:'sight word'},
      {word:'put',meaning:'to place somewhere',pattern:'sight word'},
      {word:'cut',meaning:'to slice with something sharp',pattern:'sight word'},
      {word:'run',meaning:'to move fast on foot',pattern:'sight word'},
      {word:'sun',meaning:'the star that lights our day',pattern:'sight word'},
      {word:'fun',meaning:'something enjoyable',pattern:'sight word'},
      {word:'all',meaning:'every one',pattern:'sight word'},
      {word:'are',meaning:'a form of be',pattern:'sight word'}
    ],
    [ // Week 5 — short u and blends
      {word:'bug',meaning:'a small insect',pattern:'short vowel'},
      {word:'rug',meaning:'a small carpet',pattern:'short vowel'},
      {word:'mug',meaning:'a cup with a handle',pattern:'short vowel'},
      {word:'cup',meaning:'used for drinking',pattern:'short vowel'},
      {word:'bus',meaning:'a large vehicle for many people',pattern:'short vowel'},
      {word:'nut',meaning:'a hard-shelled seed',pattern:'short vowel'},
      {word:'stop',meaning:'to quit moving',pattern:'blend'},
      {word:'step',meaning:'one stair, or to walk',pattern:'blend'},
      {word:'spin',meaning:'to turn around fast',pattern:'blend'},
      {word:'spot',meaning:'a small mark',pattern:'blend'},
      {word:'flag',meaning:'a cloth symbol of a country',pattern:'blend'},
      {word:'flip',meaning:'to turn over',pattern:'blend'},
      {word:'clap',meaning:'to hit hands together',pattern:'blend'},
      {word:'clip',meaning:'to fasten or cut',pattern:'blend'},
      {word:'grab',meaning:'to take quickly',pattern:'blend'},
      {word:'grin',meaning:'a big smile',pattern:'blend'},
      {word:'they',meaning:'those people',pattern:'sight word'},
      {word:'said',meaning:'spoke (past tense)',pattern:'sight word'},
      {word:'have',meaning:'to own',pattern:'sight word'},
      {word:'like',meaning:'to enjoy',pattern:'sight word'}
    ],
    [ // Week 6 — digraphs sh, ch, th
      {word:'ship',meaning:'a large boat',pattern:'digraph'},
      {word:'shop',meaning:'a place to buy things',pattern:'digraph'},
      {word:'fish',meaning:'an animal that swims',pattern:'digraph'},
      {word:'dish',meaning:'a plate for food',pattern:'digraph'},
      {word:'wish',meaning:'to hope for something',pattern:'digraph'},
      {word:'chip',meaning:'a small piece',pattern:'digraph'},
      {word:'chin',meaning:'part of your face',pattern:'digraph'},
      {word:'chop',meaning:'to cut into pieces',pattern:'digraph'},
      {word:'rich',meaning:'having a lot of money',pattern:'digraph'},
      {word:'much',meaning:'a large amount',pattern:'digraph'},
      {word:'this',meaning:'the thing here',pattern:'digraph'},
      {word:'that',meaning:'the thing there',pattern:'digraph'},
      {word:'them',meaning:'those people',pattern:'digraph'},
      {word:'then',meaning:'at that time',pattern:'digraph'},
      {word:'with',meaning:'alongside',pattern:'digraph'},
      {word:'bath',meaning:'washing in a tub',pattern:'digraph'},
      {word:'path',meaning:'a trail to walk on',pattern:'digraph'},
      {word:'what',meaning:'a question word',pattern:'sight word'},
      {word:'when',meaning:'asks about time',pattern:'sight word'},
      {word:'come',meaning:'to move toward',pattern:'sight word'}
    ]
  ],
  2: [ // Grade 2 — long vowels, blends, common words (5 weeks)
    [ // Week 1 — long a (silent e)
      {word:'cake',meaning:'a sweet dessert',pattern:'long vowel (silent e)'},
      {word:'lake',meaning:'a large body of water',pattern:'long vowel (silent e)'},
      {word:'make',meaning:'to create something',pattern:'long vowel (silent e)'},
      {word:'name',meaning:'what you are called',pattern:'long vowel (silent e)'},
      {word:'game',meaning:'something you play',pattern:'long vowel (silent e)'},
      {word:'gate',meaning:'a door in a fence',pattern:'long vowel (silent e)'},
      {word:'late',meaning:'not on time',pattern:'long vowel (silent e)'},
      {word:'plate',meaning:'a dish for food',pattern:'long vowel (silent e)'},
      {word:'grape',meaning:'a small round fruit',pattern:'long vowel (silent e)'},
      {word:'snake',meaning:'a long animal with no legs',pattern:'long vowel (silent e)'},
      {word:'rain',meaning:'water falling from clouds',pattern:'vowel team'},
      {word:'wait',meaning:'to stay until something happens',pattern:'vowel team'},
      {word:'tail',meaning:'the back end of an animal',pattern:'vowel team'},
      {word:'mail',meaning:'letters that are sent',pattern:'vowel team'},
      {word:'play',meaning:'to have fun',pattern:'vowel team'},
      {word:'day',meaning:'24 hours',pattern:'vowel team'},
      {word:'say',meaning:'to speak words',pattern:'vowel team'},
      {word:'way',meaning:'a path or method',pattern:'vowel team'},
      {word:'they',meaning:'those people',pattern:'sight word'},
      {word:'because',meaning:'for the reason that',pattern:'sight word'}
    ],
    [ // Week 2 — long e
      {word:'tree',meaning:'a tall plant with a trunk',pattern:'vowel team'},
      {word:'free',meaning:'costing nothing',pattern:'vowel team'},
      {word:'green',meaning:'the color of grass',pattern:'vowel team'},
      {word:'sleep',meaning:'to rest with eyes closed',pattern:'vowel team'},
      {word:'sweet',meaning:'tasting like sugar',pattern:'vowel team'},
      {word:'feet',meaning:'what you stand on',pattern:'vowel team'},
      {word:'meet',meaning:'to come together',pattern:'vowel team'},
      {word:'seed',meaning:'what a plant grows from',pattern:'vowel team'},
      {word:'need',meaning:'to require something',pattern:'vowel team'},
      {word:'read',meaning:'to look at words',pattern:'vowel team'},
      {word:'each',meaning:'every one',pattern:'vowel team'},
      {word:'team',meaning:'a group that works together',pattern:'vowel team'},
      {word:'dream',meaning:'images while you sleep',pattern:'vowel team'},
      {word:'clean',meaning:'not dirty',pattern:'vowel team'},
      {word:'eat',meaning:'to chew and swallow food',pattern:'vowel team'},
      {word:'sea',meaning:'a large body of salt water',pattern:'vowel team'},
      {word:'please',meaning:'a polite word',pattern:'sight word'},
      {word:'people',meaning:'human beings',pattern:'sight word'},
      {word:'could',meaning:'was able to',pattern:'sight word'},
      {word:'would',meaning:'might do something',pattern:'sight word'}
    ],
    [ // Week 3 — long i
      {word:'bike',meaning:'a two-wheeled ride',pattern:'long vowel (silent e)'},
      {word:'kite',meaning:'flies in the wind',pattern:'long vowel (silent e)'},
      {word:'time',meaning:'hours and minutes',pattern:'long vowel (silent e)'},
      {word:'line',meaning:'a long straight mark',pattern:'long vowel (silent e)'},
      {word:'nine',meaning:'the number after eight',pattern:'long vowel (silent e)'},
      {word:'ride',meaning:'to sit on something moving',pattern:'long vowel (silent e)'},
      {word:'side',meaning:'the edge of something',pattern:'long vowel (silent e)'},
      {word:'smile',meaning:'a happy face',pattern:'long vowel (silent e)'},
      {word:'white',meaning:'the color of snow',pattern:'long vowel (silent e)'},
      {word:'write',meaning:'to make letters',pattern:'long vowel (silent e)'},
      {word:'night',meaning:'when the sky is dark',pattern:'igh pattern'},
      {word:'light',meaning:'brightness',pattern:'igh pattern'},
      {word:'right',meaning:'correct, or a direction',pattern:'igh pattern'},
      {word:'high',meaning:'far up',pattern:'igh pattern'},
      {word:'sky',meaning:'where clouds are',pattern:'y as long i'},
      {word:'fly',meaning:'to move through air',pattern:'y as long i'},
      {word:'try',meaning:'to attempt',pattern:'y as long i'},
      {word:'cry',meaning:'to shed tears',pattern:'y as long i'},
      {word:'their',meaning:'belonging to them',pattern:'sight word'},
      {word:'there',meaning:'in that place',pattern:'sight word'}
    ],
    [ // Week 4 — long o
      {word:'bone',meaning:'part of a skeleton',pattern:'long vowel (silent e)'},
      {word:'home',meaning:'where you live',pattern:'long vowel (silent e)'},
      {word:'nose',meaning:'used for smelling',pattern:'long vowel (silent e)'},
      {word:'rose',meaning:'a flower with thorns',pattern:'long vowel (silent e)'},
      {word:'hope',meaning:'to wish for something',pattern:'long vowel (silent e)'},
      {word:'note',meaning:'a short message',pattern:'long vowel (silent e)'},
      {word:'rope',meaning:'a thick cord',pattern:'long vowel (silent e)'},
      {word:'stone',meaning:'a small rock',pattern:'long vowel (silent e)'},
      {word:'boat',meaning:'floats on water',pattern:'vowel team'},
      {word:'coat',meaning:'a warm piece of clothing',pattern:'vowel team'},
      {word:'road',meaning:'where cars drive',pattern:'vowel team'},
      {word:'soap',meaning:'used for washing',pattern:'vowel team'},
      {word:'snow',meaning:'frozen white flakes',pattern:'vowel team'},
      {word:'grow',meaning:'to get bigger',pattern:'vowel team'},
      {word:'show',meaning:'to let someone see',pattern:'vowel team'},
      {word:'slow',meaning:'not fast',pattern:'vowel team'},
      {word:'goat',meaning:'a farm animal with horns',pattern:'vowel team'},
      {word:'float',meaning:'to stay on top of water',pattern:'vowel team'},
      {word:'around',meaning:'on all sides',pattern:'sight word'},
      {word:'about',meaning:'concerning something',pattern:'sight word'}
    ],
    [ // Week 5 — common 2nd grade words
      {word:'about',meaning:'concerning something',pattern:'common word'},
      {word:'after',meaning:'following in time',pattern:'common word'},
      {word:'again',meaning:'one more time',pattern:'common word'},
      {word:'animal',meaning:'a living creature',pattern:'common word'},
      {word:'before',meaning:'earlier than',pattern:'common word'},
      {word:'every',meaning:'each one',pattern:'common word'},
      {word:'father',meaning:'a male parent',pattern:'common word'},
      {word:'mother',meaning:'a female parent',pattern:'common word'},
      {word:'friend',meaning:'someone you like',pattern:'common word'},
      {word:'little',meaning:'small',pattern:'common word'},
      {word:'many',meaning:'a large number',pattern:'common word'},
      {word:'never',meaning:'not ever',pattern:'common word'},
      {word:'other',meaning:'a different one',pattern:'common word'},
      {word:'people',meaning:'human beings',pattern:'common word'},
      {word:'pretty',meaning:'nice to look at',pattern:'common word'},
      {word:'school',meaning:'a place to learn',pattern:'common word'},
      {word:'today',meaning:'this day',pattern:'common word'},
      {word:'water',meaning:'a clear liquid we drink',pattern:'common word'},
      {word:'where',meaning:'asks about a place',pattern:'common word'},
      {word:'because',meaning:'for the reason that',pattern:'common word'}
    ]
  ],
  3: [ // Grade 3 — patterns, multisyllabic, commonly misspelled (4 weeks)
    [
      {word:'because',meaning:'for the reason that',pattern:'commonly misspelled'},
      {word:'before',meaning:'earlier than',pattern:'multisyllabic'},
      {word:'present',meaning:'a gift, or right now',pattern:'multisyllabic'},
      {word:'morning',meaning:'the early part of the day',pattern:'multisyllabic'},
      {word:'garden',meaning:'where plants grow',pattern:'multisyllabic'},
      {word:'pencil',meaning:'used for writing',pattern:'multisyllabic'},
      {word:'basket',meaning:'a container for carrying',pattern:'multisyllabic'},
      {word:'rabbit',meaning:'a hopping animal with long ears',pattern:'double consonant'},
      {word:'happen',meaning:'to take place',pattern:'double consonant'},
      {word:'dinner',meaning:'the evening meal',pattern:'double consonant'},
      {word:'summer',meaning:'the warm season',pattern:'double consonant'},
      {word:'letter',meaning:'a written message, or A-Z',pattern:'double consonant'},
      {word:'better',meaning:'more good',pattern:'double consonant'},
      {word:'kitten',meaning:'a baby cat',pattern:'double consonant'},
      {word:'button',meaning:'fastens clothes',pattern:'double consonant'},
      {word:'between',meaning:'in the middle of two',pattern:'multisyllabic'},
      {word:'children',meaning:'young people',pattern:'commonly misspelled'},
      {word:'thought',meaning:'an idea in your mind',pattern:'commonly misspelled'},
      {word:'through',meaning:'from one side to the other',pattern:'commonly misspelled'},
      {word:'enough',meaning:'as much as needed',pattern:'commonly misspelled'}
    ],
    [
      {word:'people',meaning:'human beings',pattern:'commonly misspelled'},
      {word:'pretty',meaning:'nice to look at',pattern:'commonly misspelled'},
      {word:'really',meaning:'truly',pattern:'commonly misspelled'},
      {word:'friend',meaning:'someone you like',pattern:'commonly misspelled'},
      {word:'family',meaning:'people related to you',pattern:'multisyllabic'},
      {word:'second',meaning:'after first',pattern:'multisyllabic'},
      {word:'school',meaning:'a place to learn',pattern:'commonly misspelled'},
      {word:'beautiful',meaning:'very pretty',pattern:'commonly misspelled'},
      {word:'remember',meaning:'to keep in mind',pattern:'multisyllabic'},
      {word:'together',meaning:'with each other',pattern:'multisyllabic'},
      {word:'important',meaning:'mattering a lot',pattern:'multisyllabic'},
      {word:'different',meaning:'not the same',pattern:'multisyllabic'},
      {word:'favorite',meaning:'liked best',pattern:'multisyllabic'},
      {word:'probably',meaning:'most likely',pattern:'multisyllabic'},
      {word:'something',meaning:'a thing',pattern:'compound'},
      {word:'everyone',meaning:'all people',pattern:'compound'},
      {word:'anything',meaning:'any single thing',pattern:'compound'},
      {word:'birthday',meaning:'the day you were born',pattern:'compound'},
      {word:'sometimes',meaning:'now and then',pattern:'compound'},
      {word:'outside',meaning:'not indoors',pattern:'compound'}
    ],
    [
      {word:'careful',meaning:'paying attention to safety',pattern:'suffix -ful'},
      {word:'helpful',meaning:'giving help',pattern:'suffix -ful'},
      {word:'wonderful',meaning:'very good',pattern:'suffix -ful'},
      {word:'thankful',meaning:'feeling grateful',pattern:'suffix -ful'},
      {word:'playful',meaning:'full of fun',pattern:'suffix -ful'},
      {word:'quickly',meaning:'in a fast way',pattern:'suffix -ly'},
      {word:'slowly',meaning:'in a slow way',pattern:'suffix -ly'},
      {word:'safely',meaning:'in a safe way',pattern:'suffix -ly'},
      {word:'loudly',meaning:'in a loud way',pattern:'suffix -ly'},
      {word:'finally',meaning:'at last',pattern:'suffix -ly'},
      {word:'jumping',meaning:'leaping up',pattern:'suffix -ing'},
      {word:'running',meaning:'moving fast on foot',pattern:'suffix -ing'},
      {word:'swimming',meaning:'moving through water',pattern:'suffix -ing'},
      {word:'sitting',meaning:'resting on a seat',pattern:'suffix -ing'},
      {word:'stopped',meaning:'quit moving',pattern:'suffix -ed'},
      {word:'planned',meaning:'thought out ahead',pattern:'suffix -ed'},
      {word:'hopped',meaning:'jumped on one foot',pattern:'suffix -ed'},
      {word:'smiled',meaning:'made a happy face',pattern:'suffix -ed'},
      {word:'replied',meaning:'answered',pattern:'suffix -ed'},
      {word:'carried',meaning:'held and moved',pattern:'suffix -ed'}
    ],
    [
      {word:'address',meaning:'where someone lives',pattern:'commonly misspelled'},
      {word:'answer',meaning:'a reply',pattern:'commonly misspelled'},
      {word:'aunt',meaning:'your parent\u2019s sister',pattern:'commonly misspelled'},
      {word:'breakfast',meaning:'the morning meal',pattern:'commonly misspelled'},
      {word:'caught',meaning:'grabbed something moving',pattern:'commonly misspelled'},
      {word:'cousin',meaning:'your aunt\u2019s child',pattern:'commonly misspelled'},
      {word:'doctor',meaning:'a person who treats illness',pattern:'commonly misspelled'},
      {word:'early',meaning:'before the usual time',pattern:'commonly misspelled'},
      {word:'February',meaning:'the second month',pattern:'commonly misspelled'},
      {word:'finally',meaning:'at last',pattern:'commonly misspelled'},
      {word:'half',meaning:'one of two equal parts',pattern:'commonly misspelled'},
      {word:'heard',meaning:'listened to (past tense)',pattern:'commonly misspelled'},
      {word:'minute',meaning:'sixty seconds',pattern:'commonly misspelled'},
      {word:'often',meaning:'many times',pattern:'commonly misspelled'},
      {word:'once',meaning:'one time',pattern:'commonly misspelled'},
      {word:'piece',meaning:'a part of something',pattern:'commonly misspelled'},
      {word:'science',meaning:'the study of the world',pattern:'commonly misspelled'},
      {word:'special',meaning:'better than usual',pattern:'commonly misspelled'},
      {word:'usually',meaning:'most of the time',pattern:'commonly misspelled'},
      {word:'Wednesday',meaning:'the day after Tuesday',pattern:'commonly misspelled'}
    ]
  ],
  4: [ // Grade 4 — prefixes, suffixes, vocabulary (4 weeks)
    [
      {word:'unhappy',meaning:'not happy',pattern:'prefix un-'},
      {word:'unknown',meaning:'not known',pattern:'prefix un-'},
      {word:'unable',meaning:'not able',pattern:'prefix un-'},
      {word:'unfair',meaning:'not fair',pattern:'prefix un-'},
      {word:'rewrite',meaning:'to write again',pattern:'prefix re-'},
      {word:'return',meaning:'to come back',pattern:'prefix re-'},
      {word:'replay',meaning:'to play again',pattern:'prefix re-'},
      {word:'rebuild',meaning:'to build again',pattern:'prefix re-'},
      {word:'preview',meaning:'to see beforehand',pattern:'prefix pre-'},
      {word:'prepay',meaning:'to pay in advance',pattern:'prefix pre-'},
      {word:'disagree',meaning:'to not agree',pattern:'prefix dis-'},
      {word:'dislike',meaning:'to not like',pattern:'prefix dis-'},
      {word:'disappear',meaning:'to go out of sight',pattern:'prefix dis-'},
      {word:'mistake',meaning:'an error',pattern:'prefix mis-'},
      {word:'misplace',meaning:'to put in the wrong spot',pattern:'prefix mis-'},
      {word:'overflow',meaning:'to spill over',pattern:'prefix over-'},
      {word:'overlook',meaning:'to miss or fail to notice',pattern:'prefix over-'},
      {word:'underline',meaning:'to draw a line under',pattern:'prefix under-'},
      {word:'underground',meaning:'below the surface',pattern:'prefix under-'},
      {word:'international',meaning:'between nations',pattern:'prefix inter-'}
    ],
    [
      {word:'happiness',meaning:'the feeling of being happy',pattern:'suffix -ness'},
      {word:'darkness',meaning:'the state of being dark',pattern:'suffix -ness'},
      {word:'kindness',meaning:'being kind',pattern:'suffix -ness'},
      {word:'illness',meaning:'being sick',pattern:'suffix -ness'},
      {word:'movement',meaning:'the act of moving',pattern:'suffix -ment'},
      {word:'payment',meaning:'money given',pattern:'suffix -ment'},
      {word:'agreement',meaning:'a shared decision',pattern:'suffix -ment'},
      {word:'enjoyment',meaning:'pleasure',pattern:'suffix -ment'},
      {word:'careless',meaning:'without care',pattern:'suffix -less'},
      {word:'hopeless',meaning:'without hope',pattern:'suffix -less'},
      {word:'fearless',meaning:'without fear',pattern:'suffix -less'},
      {word:'useless',meaning:'having no use',pattern:'suffix -less'},
      {word:'action',meaning:'something done',pattern:'suffix -tion'},
      {word:'station',meaning:'a stopping place',pattern:'suffix -tion'},
      {word:'creation',meaning:'something made',pattern:'suffix -tion'},
      {word:'education',meaning:'the act of learning',pattern:'suffix -tion'},
      {word:'musician',meaning:'a person who makes music',pattern:'suffix -ian'},
      {word:'comfortable',meaning:'feeling at ease',pattern:'suffix -able'},
      {word:'valuable',meaning:'worth a lot',pattern:'suffix -able'},
      {word:'reasonable',meaning:'fair and sensible',pattern:'suffix -able'}
    ],
    [
      {word:'ancient',meaning:'very old',pattern:'vocabulary'},
      {word:'curious',meaning:'wanting to know',pattern:'vocabulary'},
      {word:'delicate',meaning:'easily broken',pattern:'vocabulary'},
      {word:'enormous',meaning:'very large',pattern:'vocabulary'},
      {word:'fortunate',meaning:'lucky',pattern:'vocabulary'},
      {word:'generous',meaning:'willing to give',pattern:'vocabulary'},
      {word:'hesitate',meaning:'to pause before acting',pattern:'vocabulary'},
      {word:'imitate',meaning:'to copy',pattern:'vocabulary'},
      {word:'jealous',meaning:'wanting what others have',pattern:'vocabulary'},
      {word:'knowledge',meaning:'things you know',pattern:'vocabulary'},
      {word:'language',meaning:'words people use to talk',pattern:'vocabulary'},
      {word:'mysterious',meaning:'hard to explain',pattern:'vocabulary'},
      {word:'necessary',meaning:'needed',pattern:'vocabulary'},
      {word:'obvious',meaning:'easy to see',pattern:'vocabulary'},
      {word:'peculiar',meaning:'strange or odd',pattern:'vocabulary'},
      {word:'reluctant',meaning:'unwilling',pattern:'vocabulary'},
      {word:'sincere',meaning:'honest and true',pattern:'vocabulary'},
      {word:'tremendous',meaning:'huge',pattern:'vocabulary'},
      {word:'urgent',meaning:'needing quick action',pattern:'vocabulary'},
      {word:'vacant',meaning:'empty',pattern:'vocabulary'}
    ],
    [
      {word:'beginning',meaning:'the start',pattern:'commonly misspelled'},
      {word:'believe',meaning:'to think something is true',pattern:'commonly misspelled'},
      {word:'business',meaning:'a company or trade',pattern:'commonly misspelled'},
      {word:'calendar',meaning:'shows days and months',pattern:'commonly misspelled'},
      {word:'character',meaning:'a person in a story',pattern:'commonly misspelled'},
      {word:'decision',meaning:'a choice made',pattern:'commonly misspelled'},
      {word:'different',meaning:'not the same',pattern:'commonly misspelled'},
      {word:'environment',meaning:'the world around us',pattern:'commonly misspelled'},
      {word:'exercise',meaning:'physical activity',pattern:'commonly misspelled'},
      {word:'familiar',meaning:'well known',pattern:'commonly misspelled'},
      {word:'government',meaning:'those who run a country',pattern:'commonly misspelled'},
      {word:'history',meaning:'events of the past',pattern:'commonly misspelled'},
      {word:'imagine',meaning:'to picture in your mind',pattern:'commonly misspelled'},
      {word:'jewelry',meaning:'rings and necklaces',pattern:'commonly misspelled'},
      {word:'library',meaning:'a place with books',pattern:'commonly misspelled'},
      {word:'measure',meaning:'to find the size',pattern:'commonly misspelled'},
      {word:'natural',meaning:'made by nature',pattern:'commonly misspelled'},
      {word:'opposite',meaning:'completely different',pattern:'commonly misspelled'},
      {word:'question',meaning:'something you ask',pattern:'commonly misspelled'},
      {word:'special',meaning:'better than usual',pattern:'commonly misspelled'}
    ]
  ],
  5: [ // Grade 5 — academic vocabulary, advanced patterns (3 weeks)
    [
      {word:'accomplish',meaning:'to finish successfully',pattern:'academic'},
      {word:'analyze',meaning:'to study carefully',pattern:'academic'},
      {word:'benefit',meaning:'a helpful result',pattern:'academic'},
      {word:'conclude',meaning:'to decide at the end',pattern:'academic'},
      {word:'consequence',meaning:'a result of an action',pattern:'academic'},
      {word:'demonstrate',meaning:'to show clearly',pattern:'academic'},
      {word:'distribute',meaning:'to give out',pattern:'academic'},
      {word:'estimate',meaning:'to make a careful guess',pattern:'academic'},
      {word:'evidence',meaning:'facts that prove something',pattern:'academic'},
      {word:'frequent',meaning:'happening often',pattern:'academic'},
      {word:'identify',meaning:'to recognize',pattern:'academic'},
      {word:'illustrate',meaning:'to show with pictures',pattern:'academic'},
      {word:'investigate',meaning:'to look into carefully',pattern:'academic'},
      {word:'observe',meaning:'to watch closely',pattern:'academic'},
      {word:'predict',meaning:'to say what will happen',pattern:'academic'},
      {word:'represent',meaning:'to stand for',pattern:'academic'},
      {word:'significant',meaning:'important',pattern:'academic'},
      {word:'summarize',meaning:'to tell the main points',pattern:'academic'},
      {word:'technique',meaning:'a way of doing something',pattern:'academic'},
      {word:'variety',meaning:'many different kinds',pattern:'academic'}
    ],
    [
      {word:'achievement',meaning:'something accomplished',pattern:'suffix -ment'},
      {word:'arrangement',meaning:'the way things are placed',pattern:'suffix -ment'},
      {word:'celebration',meaning:'a happy event',pattern:'suffix -tion'},
      {word:'cooperation',meaning:'working together',pattern:'suffix -tion'},
      {word:'definition',meaning:'the meaning of a word',pattern:'suffix -tion'},
      {word:'description',meaning:'words that tell about something',pattern:'suffix -tion'},
      {word:'imagination',meaning:'forming pictures in the mind',pattern:'suffix -tion'},
      {word:'information',meaning:'facts and knowledge',pattern:'suffix -tion'},
      {word:'organization',meaning:'an ordered group',pattern:'suffix -tion'},
      {word:'permission',meaning:'being allowed',pattern:'suffix -sion'},
      {word:'profession',meaning:'a type of job',pattern:'suffix -sion'},
      {word:'curiosity',meaning:'the wish to know',pattern:'suffix -ity'},
      {word:'electricity',meaning:'energy that powers things',pattern:'suffix -ity'},
      {word:'community',meaning:'a group living together',pattern:'suffix -ity'},
      {word:'responsibility',meaning:'a duty',pattern:'suffix -ity'},
      {word:'comparison',meaning:'looking at differences',pattern:'suffix -ison'},
      {word:'dangerous',meaning:'not safe',pattern:'suffix -ous'},
      {word:'enormous',meaning:'very large',pattern:'suffix -ous'},
      {word:'famous',meaning:'well known',pattern:'suffix -ous'},
      {word:'numerous',meaning:'many',pattern:'suffix -ous'}
    ],
    [
      {word:'accidentally',meaning:'by mistake',pattern:'commonly misspelled'},
      {word:'apparent',meaning:'clearly seen',pattern:'commonly misspelled'},
      {word:'appearance',meaning:'how something looks',pattern:'commonly misspelled'},
      {word:'committee',meaning:'a group that decides',pattern:'commonly misspelled'},
      {word:'definitely',meaning:'for sure',pattern:'commonly misspelled'},
      {word:'embarrass',meaning:'to make someone feel shy',pattern:'commonly misspelled'},
      {word:'experience',meaning:'something you have done',pattern:'commonly misspelled'},
      {word:'foreign',meaning:'from another country',pattern:'commonly misspelled'},
      {word:'guarantee',meaning:'a promise',pattern:'commonly misspelled'},
      {word:'immediately',meaning:'right away',pattern:'commonly misspelled'},
      {word:'independent',meaning:'not needing help',pattern:'commonly misspelled'},
      {word:'knowledge',meaning:'things you know',pattern:'commonly misspelled'},
      {word:'maintenance',meaning:'keeping in good shape',pattern:'commonly misspelled'},
      {word:'occasionally',meaning:'once in a while',pattern:'commonly misspelled'},
      {word:'parallel',meaning:'lines the same distance apart',pattern:'commonly misspelled'},
      {word:'privilege',meaning:'a special right',pattern:'commonly misspelled'},
      {word:'recommend',meaning:'to suggest',pattern:'commonly misspelled'},
      {word:'rhythm',meaning:'a regular beat',pattern:'commonly misspelled'},
      {word:'separate',meaning:'to keep apart',pattern:'commonly misspelled'},
      {word:'vacuum',meaning:'a space with no air; a cleaner',pattern:'commonly misspelled'}
    ]
  ],
  6: [ // Grade 6 — FULL YEAR: 36 weeks (roots, prefixes, suffixes, patterns, vocabulary, reviews)
    [
      {word:'autograph',meaning:'a signature',pattern:'root: auto/graph'},
      {word:'biography',meaning:'a life story',pattern:'root: bio/graph'},
      {word:'photograph',meaning:'a picture made with light',pattern:'root: photo/graph'},
      {word:'paragraph',meaning:'a group of sentences',pattern:'root: graph'},
      {word:'telephone',meaning:'a device to talk far away',pattern:'root: tele/phone'},
      {word:'telescope',meaning:'used to see far away',pattern:'root: tele/scope'},
      {word:'microscope',meaning:'used to see tiny things',pattern:'root: micro/scope'},
      {word:'thermometer',meaning:'measures temperature',pattern:'root: thermo/meter'},
      {word:'kilometer',meaning:'1000 meters',pattern:'root: meter'},
      {word:'transport',meaning:'to carry across',pattern:'root: trans/port'},
      {word:'export',meaning:'to send goods out',pattern:'root: port'},
      {word:'import',meaning:'to bring goods in',pattern:'root: port'},
      {word:'predict',meaning:'to say beforehand',pattern:'root: dict'},
      {word:'dictate',meaning:'to say words to write',pattern:'root: dict'},
      {word:'spectator',meaning:'one who watches',pattern:'root: spect'},
      {word:'inspect',meaning:'to look closely',pattern:'root: spect'},
      {word:'construct',meaning:'to build',pattern:'root: struct'},
      {word:'structure',meaning:'something built',pattern:'root: struct'},
      {word:'visible',meaning:'able to be seen',pattern:'root: vis'},
      {word:'television',meaning:'see from far away',pattern:'root: tele/vis'}
    ],
    [
      {word:'abundant',meaning:'plentiful',pattern:'academic'},
      {word:'adequate',meaning:'enough',pattern:'academic'},
      {word:'beneficial',meaning:'helpful',pattern:'academic'},
      {word:'comprehend',meaning:'to understand',pattern:'academic'},
      {word:'consistent',meaning:'staying the same',pattern:'academic'},
      {word:'contribute',meaning:'to give or add',pattern:'academic'},
      {word:'efficient',meaning:'working without waste',pattern:'academic'},
      {word:'emphasize',meaning:'to stress importance',pattern:'academic'},
      {word:'essential',meaning:'absolutely needed',pattern:'academic'},
      {word:'evaluate',meaning:'to judge the value',pattern:'academic'},
      {word:'expand',meaning:'to make larger',pattern:'academic'},
      {word:'flexible',meaning:'able to bend or change',pattern:'academic'},
      {word:'fundamental',meaning:'basic and important',pattern:'academic'},
      {word:'generate',meaning:'to produce',pattern:'academic'},
      {word:'hypothesis',meaning:'an educated guess',pattern:'academic'},
      {word:'influence',meaning:'the power to affect',pattern:'academic'},
      {word:'maximum',meaning:'the greatest amount',pattern:'academic'},
      {word:'minimum',meaning:'the least amount',pattern:'academic'},
      {word:'priority',meaning:'something most important',pattern:'academic'},
      {word:'sufficient',meaning:'enough',pattern:'academic'}
    ],
    [
      {word:'acknowledge',meaning:'to admit or recognize',pattern:'commonly misspelled'},
      {word:'argument',meaning:'a disagreement',pattern:'commonly misspelled'},
      {word:'bicycle',meaning:'a two-wheeled vehicle',pattern:'commonly misspelled'},
      {word:'ceiling',meaning:'the top of a room',pattern:'commonly misspelled'},
      {word:'colleague',meaning:'a coworker',pattern:'commonly misspelled'},
      {word:'conscience',meaning:'sense of right and wrong',pattern:'commonly misspelled'},
      {word:'criticize',meaning:'to point out faults',pattern:'commonly misspelled'},
      {word:'discipline',meaning:'self-control',pattern:'commonly misspelled'},
      {word:'exaggerate',meaning:'to overstate',pattern:'commonly misspelled'},
      {word:'fascinate',meaning:'to greatly interest',pattern:'commonly misspelled'},
      {word:'government',meaning:'those who run a country',pattern:'commonly misspelled'},
      {word:'guarantee',meaning:'a promise',pattern:'commonly misspelled'},
      {word:'interrupt',meaning:'to break into',pattern:'commonly misspelled'},
      {word:'lightning',meaning:'a flash in a storm',pattern:'commonly misspelled'},
      {word:'necessary',meaning:'needed',pattern:'commonly misspelled'},
      {word:'occurrence',meaning:'something that happens',pattern:'commonly misspelled'},
      {word:'persuade',meaning:'to convince',pattern:'commonly misspelled'},
      {word:'questionnaire',meaning:'a set of questions',pattern:'commonly misspelled'},
      {word:'sincerely',meaning:'in an honest way',pattern:'commonly misspelled'},
      {word:'thorough',meaning:'complete and careful',pattern:'commonly misspelled'}
    ],
    // ---- Live-review Issue 3: Grade 6 expanded to a FULL 36-WEEK YEAR (weeks 4-36 below).
    // Each week: 20 real words with meanings and a pattern/word-study focus. The seed
    // builder creates unit + lesson (word_list) + practice/sentence/spelling/quiz
    // assignments per week, idempotently.
    [ // roots: bio, geo (life and earth)
      {word:'biology',meaning:'the study of living things',pattern:'roots: bio, geo (life and earth)'},
      {word:'biosphere',meaning:'the zone of Earth where life exists',pattern:'roots: bio, geo (life and earth)'},
      {word:'biodegradable',meaning:'able to break down naturally',pattern:'roots: bio, geo (life and earth)'},
      {word:'antibiotic',meaning:'a medicine that fights bacteria',pattern:'roots: bio, geo (life and earth)'},
      {word:'biopsy',meaning:'removal of tissue to examine',pattern:'roots: bio, geo (life and earth)'},
      {word:'symbiosis',meaning:'two organisms living closely together',pattern:'roots: bio, geo (life and earth)'},
      {word:'biome',meaning:'a large natural community like a desert',pattern:'roots: bio, geo (life and earth)'},
      {word:'geology',meaning:'the study of Earth and rocks',pattern:'roots: bio, geo (life and earth)'},
      {word:'geography',meaning:'the study of Earth’s surface and places',pattern:'roots: bio, geo (life and earth)'},
      {word:'geometry',meaning:'math of shapes and space',pattern:'roots: bio, geo (life and earth)'},
      {word:'geothermal',meaning:'relating to heat inside the Earth',pattern:'roots: bio, geo (life and earth)'},
      {word:'geode',meaning:'a rock with crystals inside',pattern:'roots: bio, geo (life and earth)'},
      {word:'geologist',meaning:'a scientist who studies Earth',pattern:'roots: bio, geo (life and earth)'},
      {word:'biographer',meaning:'a person who writes a life story',pattern:'roots: bio, geo (life and earth)'},
      {word:'autobiography',meaning:'a life story written by its subject',pattern:'roots: bio, geo (life and earth)'},
      {word:'amphibian',meaning:'an animal living in water and on land',pattern:'roots: bio, geo (life and earth)'},
      {word:'habitat',meaning:'the natural home of a living thing',pattern:'roots: bio, geo (life and earth)'},
      {word:'organism',meaning:'any living thing',pattern:'roots: bio, geo (life and earth)'},
      {word:'terrain',meaning:'the physical features of land',pattern:'roots: bio, geo (life and earth)'},
      {word:'continent',meaning:'one of Earth’s seven large landmasses',pattern:'roots: bio, geo (life and earth)'}
    ],
    [ // roots: aud, phon, vis (hearing, sound, seeing)
      {word:'audible',meaning:'loud enough to hear',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'audience',meaning:'people who listen or watch',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'audition',meaning:'a tryout performance',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'auditorium',meaning:'a large room for listening events',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'audio',meaning:'recorded or transmitted sound',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'inaudible',meaning:'too quiet to hear',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'symphony',meaning:'a long piece for full orchestra',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'microphone',meaning:'a device that picks up sound',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'saxophone',meaning:'a reed instrument of brass',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'phonics',meaning:'the sounds letters make',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'megaphone',meaning:'a device that makes the voice louder',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'homophone',meaning:'a word that sounds like another',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'visible',meaning:'able to be seen',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'invisible',meaning:'not able to be seen',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'vision',meaning:'the sense of sight',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'visual',meaning:'relating to seeing',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'supervise',meaning:'to watch over work',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'revise',meaning:'to look at again and improve',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'television',meaning:'a device for viewing broadcasts',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'},
      {word:'evidence',meaning:'facts that show something is true',pattern:'roots: aud, phon, vis (hearing, sound, seeing)'}
    ],
    [ // roots: ject, tract (throw and pull)
      {word:'reject',meaning:'to refuse or throw back',pattern:'roots: ject, tract (throw and pull)'},
      {word:'eject',meaning:'to push or throw out',pattern:'roots: ject, tract (throw and pull)'},
      {word:'inject',meaning:'to force liquid in',pattern:'roots: ject, tract (throw and pull)'},
      {word:'object',meaning:'to speak against; a thing',pattern:'roots: ject, tract (throw and pull)'},
      {word:'objection',meaning:'a statement of disagreement',pattern:'roots: ject, tract (throw and pull)'},
      {word:'projector',meaning:'a machine that throws an image',pattern:'roots: ject, tract (throw and pull)'},
      {word:'projectile',meaning:'an object thrown or launched',pattern:'roots: ject, tract (throw and pull)'},
      {word:'subject',meaning:'a topic; under authority',pattern:'roots: ject, tract (throw and pull)'},
      {word:'interject',meaning:'to insert a remark suddenly',pattern:'roots: ject, tract (throw and pull)'},
      {word:'dejected',meaning:'sad and low in spirits',pattern:'roots: ject, tract (throw and pull)'},
      {word:'tractor',meaning:'a pulling farm machine',pattern:'roots: ject, tract (throw and pull)'},
      {word:'traction',meaning:'the grip that pulls without slipping',pattern:'roots: ject, tract (throw and pull)'},
      {word:'attract',meaning:'to pull toward',pattern:'roots: ject, tract (throw and pull)'},
      {word:'attraction',meaning:'something that draws interest',pattern:'roots: ject, tract (throw and pull)'},
      {word:'distract',meaning:'to pull attention away',pattern:'roots: ject, tract (throw and pull)'},
      {word:'distraction',meaning:'something that pulls attention away',pattern:'roots: ject, tract (throw and pull)'},
      {word:'extract',meaning:'to pull out',pattern:'roots: ject, tract (throw and pull)'},
      {word:'subtract',meaning:'to take away',pattern:'roots: ject, tract (throw and pull)'},
      {word:'contract',meaning:'an agreement; to shrink',pattern:'roots: ject, tract (throw and pull)'},
      {word:'retract',meaning:'to pull back or take back',pattern:'roots: ject, tract (throw and pull)'}
    ],
    [ // roots: form, mot, mov (shape and motion)
      {word:'formation',meaning:'the way something is arranged',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'reform',meaning:'to improve by change',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'transform',meaning:'to change completely',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'uniform',meaning:'the same throughout; identical clothing',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'formula',meaning:'a set method or expression',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'conform',meaning:'to follow rules or patterns',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'deform',meaning:'to change the shape badly',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'platform',meaning:'a raised level surface',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'information',meaning:'facts and knowledge shared',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'formal',meaning:'following official rules',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'motion',meaning:'the act of moving',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'motor',meaning:'a machine that creates movement',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'promote',meaning:'to move up or support',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'demote',meaning:'to move down in rank',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'emotion',meaning:'a strong feeling',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'remote',meaning:'far away',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'motivate',meaning:'to give a reason to act',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'movement',meaning:'a change of position',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'removable',meaning:'able to be taken away',pattern:'roots: form, mot, mov (shape and motion)'},
      {word:'immovable',meaning:'impossible to move',pattern:'roots: form, mot, mov (shape and motion)'}
    ],
    [ // prefixes: un-, re-, dis- (not, again, apart)
      {word:'unfamiliar',meaning:'not known before',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'unfortunate',meaning:'having bad luck',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'unnecessary',meaning:'not needed',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'unbelievable',meaning:'hard to accept as true',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'uncomfortable',meaning:'causing unease',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'unavailable',meaning:'not able to be used',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'rearrange',meaning:'to organize again',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'reconsider',meaning:'to think about again',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'reconstruct',meaning:'to build again',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'rehearse',meaning:'to practice for performance',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'renewable',meaning:'able to be replaced naturally',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'reunion',meaning:'a meeting again after time apart',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'disagree',meaning:'to have a different opinion',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'disappear',meaning:'to go out of sight',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'disappoint',meaning:'to fail someone’s hopes',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'discourage',meaning:'to take away confidence',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'dishonest',meaning:'not truthful',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'dismiss',meaning:'to send away',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'disconnect',meaning:'to break a connection',pattern:'prefixes: un-, re-, dis- (not, again, apart)'},
      {word:'disaster',meaning:'a sudden terrible event',pattern:'prefixes: un-, re-, dis- (not, again, apart)'}
    ],
    [ // prefixes: mis-, non-, over- (wrong, not, too much)
      {word:'misbehave',meaning:'to act badly',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'miscalculate',meaning:'to figure incorrectly',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'mischief',meaning:'playful troublemaking',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'miscommunication',meaning:'a failure to share meaning',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'misfortune',meaning:'bad luck',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'misinterpret',meaning:'to understand wrongly',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'mislead',meaning:'to guide in the wrong direction',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'misplace',meaning:'to put somewhere and lose',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'mispronounce',meaning:'to say a word wrongly',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'misspell',meaning:'to spell incorrectly',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'nonfiction',meaning:'writing about real facts',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'nonsense',meaning:'words without meaning',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'nonstop',meaning:'without pausing',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'nonprofit',meaning:'not run to make money',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'nonverbal',meaning:'without spoken words',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'overreact',meaning:'to respond too strongly',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'overwhelm',meaning:'to overpower completely',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'overdue',meaning:'past the expected time',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'overlook',meaning:'to fail to notice',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'},
      {word:'overcome',meaning:'to succeed against difficulty',pattern:'prefixes: mis-, non-, over- (wrong, not, too much)'}
    ],
    [ // prefixes: inter-, trans-, sub- (between, across, under)
      {word:'interact',meaning:'to act with each other',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'interfere',meaning:'to get in the way',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'international',meaning:'between nations',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'internet',meaning:'the worldwide network',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'interrupt',meaning:'to break in while another speaks',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'intersection',meaning:'where roads cross',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'interview',meaning:'a formal question meeting',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'intermediate',meaning:'in the middle level',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'transatlantic',meaning:'across the Atlantic',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'transfer',meaning:'to move from one place to another',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'translate',meaning:'to change into another language',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'transparent',meaning:'clear enough to see through',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'transportation',meaning:'ways of moving people or goods',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'transaction',meaning:'a business exchange',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'submarine',meaning:'a ship that travels underwater',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'submerge',meaning:'to put under water',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'subterranean',meaning:'below the ground',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'suburban',meaning:'relating to areas near a city',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'substitute',meaning:'a replacement',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'},
      {word:'subheading',meaning:'a smaller title under a main one',pattern:'prefixes: inter-, trans-, sub- (between, across, under)'}
    ],
    [ // suffixes: -tion, -sion (act or state of)
      {word:'celebration',meaning:'a joyful event',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'concentration',meaning:'focused attention',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'conservation',meaning:'careful protection of resources',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'cooperation',meaning:'working together',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'description',meaning:'words that tell what something is like',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'destination',meaning:'the place you are going',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'education',meaning:'the process of learning',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'explanation',meaning:'words that make something clear',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'imagination',meaning:'the ability to picture ideas',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'invitation',meaning:'a request to attend',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'observation',meaning:'careful watching',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'population',meaning:'the people living in a place',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'pollution',meaning:'harmful substances in the environment',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'solution',meaning:'the answer to a problem',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'tradition',meaning:'a custom passed down',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'collision',meaning:'a crash between objects',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'conclusion',meaning:'the ending or final judgment',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'decision',meaning:'a choice that is made',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'discussion',meaning:'talk about a topic',pattern:'suffixes: -tion, -sion (act or state of)'},
      {word:'permission',meaning:'approval to do something',pattern:'suffixes: -tion, -sion (act or state of)'}
    ],
    [ // suffixes: -able, -ible (can be done)
      {word:'acceptable',meaning:'good enough to be allowed',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'adorable',meaning:'very lovable',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'avoidable',meaning:'able to be prevented',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'breakable',meaning:'easily damaged',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'comfortable',meaning:'giving ease',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'dependable',meaning:'able to be trusted',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'enjoyable',meaning:'giving pleasure',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'honorable',meaning:'deserving respect',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'miserable',meaning:'very unhappy',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'noticeable',meaning:'easy to see',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'predictable',meaning:'easy to know in advance',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'reasonable',meaning:'fair and sensible',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'valuable',meaning:'worth a great deal',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'convertible',meaning:'able to be changed',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'flexible',meaning:'able to bend',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'horrible',meaning:'causing horror',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'incredible',meaning:'hard to believe',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'invisible',meaning:'not able to be seen',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'responsible',meaning:'expected to take care of duties',pattern:'suffixes: -able, -ible (can be done)'},
      {word:'sensible',meaning:'showing good judgment',pattern:'suffixes: -able, -ible (can be done)'}
    ],
    [ // suffixes: -ous, -eous, -ious (full of)
      {word:'adventurous',meaning:'eager for new experiences',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'courageous',meaning:'full of bravery',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'courteous',meaning:'polite and respectful',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'curious',meaning:'eager to learn',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'dangerous',meaning:'likely to cause harm',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'delicious',meaning:'very pleasing to taste',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'enormous',meaning:'very large',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'furious',meaning:'extremely angry',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'generous',meaning:'freely giving',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'gorgeous',meaning:'very beautiful',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'gracious',meaning:'kind and polite',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'humorous',meaning:'funny',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'jealous',meaning:'envious of another',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'mountainous',meaning:'full of mountains',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'mysterious',meaning:'hard to explain',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'nervous',meaning:'easily worried',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'numerous',meaning:'many in number',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'obvious',meaning:'easy to see or understand',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'serious',meaning:'not joking; important',pattern:'suffixes: -ous, -eous, -ious (full of)'},
      {word:'victorious',meaning:'having won',pattern:'suffixes: -ous, -eous, -ious (full of)'}
    ],
    [ // suffixes: -ment, -ness, -ity (state or quality)
      {word:'accomplishment',meaning:'something done successfully',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'achievement',meaning:'a thing achieved',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'announcement',meaning:'a public statement',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'argument',meaning:'a disagreement; reasons given',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'assignment',meaning:'a task given to do',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'development',meaning:'growth or progress',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'environment',meaning:'the surroundings of living things',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'equipment',meaning:'tools and supplies',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'government',meaning:'the system that rules',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'measurement',meaning:'the size found by measuring',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'awareness',meaning:'knowledge that something exists',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'happiness',meaning:'the state of being happy',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'kindness',meaning:'the quality of being kind',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'weakness',meaning:'lack of strength',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'willingness',meaning:'readiness to do something',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'activity',meaning:'something done for a purpose',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'electricity',meaning:'energy from charged particles',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'opportunity',meaning:'a favorable chance',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'community',meaning:'people living in one area',pattern:'suffixes: -ment, -ness, -ity (state or quality)'},
      {word:'curiosity',meaning:'the desire to learn',pattern:'suffixes: -ment, -ness, -ity (state or quality)'}
    ],
    [ // word study: ie and ei patterns
      {word:'achieve',meaning:'to succeed in doing',pattern:'word study: ie and ei patterns'},
      {word:'believe',meaning:'to accept as true',pattern:'word study: ie and ei patterns'},
      {word:'brief',meaning:'short in time',pattern:'word study: ie and ei patterns'},
      {word:'chief',meaning:'a leader; most important',pattern:'word study: ie and ei patterns'},
      {word:'field',meaning:'open land; an area of study',pattern:'word study: ie and ei patterns'},
      {word:'friend',meaning:'a person you like and trust',pattern:'word study: ie and ei patterns'},
      {word:'niece',meaning:'a sibling’s daughter',pattern:'word study: ie and ei patterns'},
      {word:'piece',meaning:'a part of something',pattern:'word study: ie and ei patterns'},
      {word:'relieve',meaning:'to ease or lessen',pattern:'word study: ie and ei patterns'},
      {word:'shield',meaning:'a protective barrier',pattern:'word study: ie and ei patterns'},
      {word:'thief',meaning:'one who steals',pattern:'word study: ie and ei patterns'},
      {word:'yield',meaning:'to give way or produce',pattern:'word study: ie and ei patterns'},
      {word:'ceiling',meaning:'the top surface of a room',pattern:'word study: ie and ei patterns'},
      {word:'conceive',meaning:'to form an idea',pattern:'word study: ie and ei patterns'},
      {word:'deceive',meaning:'to make someone believe a lie',pattern:'word study: ie and ei patterns'},
      {word:'receive',meaning:'to get something given',pattern:'word study: ie and ei patterns'},
      {word:'receipt',meaning:'proof of payment',pattern:'word study: ie and ei patterns'},
      {word:'eight',meaning:'the number after seven',pattern:'word study: ie and ei patterns'},
      {word:'neighbor',meaning:'a person living nearby',pattern:'word study: ie and ei patterns'},
      {word:'weigh',meaning:'to measure heaviness',pattern:'word study: ie and ei patterns'}
    ],
    [ // word study: silent letters
      {word:'answer',meaning:'a reply',pattern:'word study: silent letters'},
      {word:'autumn',meaning:'the fall season',pattern:'word study: silent letters'},
      {word:'column',meaning:'a vertical section',pattern:'word study: silent letters'},
      {word:'condemn',meaning:'to declare wrong',pattern:'word study: silent letters'},
      {word:'debt',meaning:'money owed',pattern:'word study: silent letters'},
      {word:'doubt',meaning:'a feeling of uncertainty',pattern:'word study: silent letters'},
      {word:'subtle',meaning:'delicate; not obvious',pattern:'word study: silent letters'},
      {word:'gnaw',meaning:'to chew steadily',pattern:'word study: silent letters'},
      {word:'gnome',meaning:'a small legendary being',pattern:'word study: silent letters'},
      {word:'design',meaning:'a plan or pattern',pattern:'word study: silent letters'},
      {word:'foreign',meaning:'from another country',pattern:'word study: silent letters'},
      {word:'honest',meaning:'truthful',pattern:'word study: silent letters'},
      {word:'hour',meaning:'sixty minutes',pattern:'word study: silent letters'},
      {word:'island',meaning:'land surrounded by water',pattern:'word study: silent letters'},
      {word:'knead',meaning:'to press dough',pattern:'word study: silent letters'},
      {word:'knowledge',meaning:'information and understanding',pattern:'word study: silent letters'},
      {word:'knuckle',meaning:'a finger joint',pattern:'word study: silent letters'},
      {word:'rhythm',meaning:'a repeated pattern of beats',pattern:'word study: silent letters'},
      {word:'solemn',meaning:'serious and formal',pattern:'word study: silent letters'},
      {word:'wrestle',meaning:'to grapple in a contest',pattern:'word study: silent letters'}
    ],
    [ // word study: double consonants when adding endings
      {word:'beginning',meaning:'the start',pattern:'word study: double consonants when adding endings'},
      {word:'committed',meaning:'dedicated; pledged',pattern:'word study: double consonants when adding endings'},
      {word:'controlled',meaning:'kept in check',pattern:'word study: double consonants when adding endings'},
      {word:'equipped',meaning:'supplied with tools',pattern:'word study: double consonants when adding endings'},
      {word:'forgetting',meaning:'failing to remember',pattern:'word study: double consonants when adding endings'},
      {word:'forbidden',meaning:'not allowed',pattern:'word study: double consonants when adding endings'},
      {word:'occurred',meaning:'happened',pattern:'word study: double consonants when adding endings'},
      {word:'occurrence',meaning:'something that happens',pattern:'word study: double consonants when adding endings'},
      {word:'permitted',meaning:'allowed',pattern:'word study: double consonants when adding endings'},
      {word:'preferred',meaning:'liked better',pattern:'word study: double consonants when adding endings'},
      {word:'referred',meaning:'directed to',pattern:'word study: double consonants when adding endings'},
      {word:'regretted',meaning:'felt sorry about',pattern:'word study: double consonants when adding endings'},
      {word:'submitted',meaning:'handed in',pattern:'word study: double consonants when adding endings'},
      {word:'transmitted',meaning:'sent from one place to another',pattern:'word study: double consonants when adding endings'},
      {word:'admitted',meaning:'confessed; let in',pattern:'word study: double consonants when adding endings'},
      {word:'gripping',meaning:'holding firmly; exciting',pattern:'word study: double consonants when adding endings'},
      {word:'planning',meaning:'deciding steps ahead',pattern:'word study: double consonants when adding endings'},
      {word:'scanning',meaning:'looking over quickly',pattern:'word study: double consonants when adding endings'},
      {word:'stopping',meaning:'coming to a halt',pattern:'word study: double consonants when adding endings'},
      {word:'swimming',meaning:'moving through water',pattern:'word study: double consonants when adding endings'}
    ],
    [ // endings: -ance and -ence
      {word:'acceptance',meaning:'approval or agreement',pattern:'endings: -ance and -ence'},
      {word:'allowance',meaning:'money given regularly',pattern:'endings: -ance and -ence'},
      {word:'appearance',meaning:'the way something looks',pattern:'endings: -ance and -ence'},
      {word:'assistance',meaning:'help given',pattern:'endings: -ance and -ence'},
      {word:'attendance',meaning:'being present',pattern:'endings: -ance and -ence'},
      {word:'balance',meaning:'steady even distribution',pattern:'endings: -ance and -ence'},
      {word:'distance',meaning:'the space between',pattern:'endings: -ance and -ence'},
      {word:'entrance',meaning:'the way in',pattern:'endings: -ance and -ence'},
      {word:'guidance',meaning:'helpful direction',pattern:'endings: -ance and -ence'},
      {word:'importance',meaning:'the state of mattering',pattern:'endings: -ance and -ence'},
      {word:'performance',meaning:'a public presentation',pattern:'endings: -ance and -ence'},
      {word:'absence',meaning:'being away',pattern:'endings: -ance and -ence'},
      {word:'audience',meaning:'people watching or listening',pattern:'endings: -ance and -ence'},
      {word:'confidence',meaning:'belief in ability',pattern:'endings: -ance and -ence'},
      {word:'consequence',meaning:'a result of an action',pattern:'endings: -ance and -ence'},
      {word:'difference',meaning:'the way things are not alike',pattern:'endings: -ance and -ence'},
      {word:'excellence',meaning:'outstanding quality',pattern:'endings: -ance and -ence'},
      {word:'experience',meaning:'something lived through',pattern:'endings: -ance and -ence'},
      {word:'independence',meaning:'freedom from control',pattern:'endings: -ance and -ence'},
      {word:'influence',meaning:'the power to affect others',pattern:'endings: -ance and -ence'}
    ],
    [ // endings: -ary, -ery, -ory
      {word:'anniversary',meaning:'a yearly remembrance date',pattern:'endings: -ary, -ery, -ory'},
      {word:'boundary',meaning:'a dividing line',pattern:'endings: -ary, -ery, -ory'},
      {word:'dictionary',meaning:'a book of word meanings',pattern:'endings: -ary, -ery, -ory'},
      {word:'imaginary',meaning:'existing only in the mind',pattern:'endings: -ary, -ery, -ory'},
      {word:'library',meaning:'a place of books',pattern:'endings: -ary, -ery, -ory'},
      {word:'necessary',meaning:'required',pattern:'endings: -ary, -ery, -ory'},
      {word:'ordinary',meaning:'normal; usual',pattern:'endings: -ary, -ery, -ory'},
      {word:'secretary',meaning:'an office assistant',pattern:'endings: -ary, -ery, -ory'},
      {word:'temporary',meaning:'lasting a short time',pattern:'endings: -ary, -ery, -ory'},
      {word:'vocabulary',meaning:'the words a person knows',pattern:'endings: -ary, -ery, -ory'},
      {word:'bakery',meaning:'a place where bread is made',pattern:'endings: -ary, -ery, -ory'},
      {word:'bravery',meaning:'courageous behavior',pattern:'endings: -ary, -ery, -ory'},
      {word:'delivery',meaning:'bringing goods to someone',pattern:'endings: -ary, -ery, -ory'},
      {word:'discovery',meaning:'finding something new',pattern:'endings: -ary, -ery, -ory'},
      {word:'machinery',meaning:'machines as a group',pattern:'endings: -ary, -ery, -ory'},
      {word:'mystery',meaning:'something unexplained',pattern:'endings: -ary, -ery, -ory'},
      {word:'category',meaning:'a group or class',pattern:'endings: -ary, -ery, -ory'},
      {word:'history',meaning:'the study of the past',pattern:'endings: -ary, -ery, -ory'},
      {word:'laboratory',meaning:'a place for experiments',pattern:'endings: -ary, -ery, -ory'},
      {word:'territory',meaning:'an area of land',pattern:'endings: -ary, -ery, -ory'}
    ],
    [ // homophones set 1
      {word:'their',meaning:'belonging to them',pattern:'homophones set 1'},
      {word:'there',meaning:'in that place',pattern:'homophones set 1'},
      {word:'they’re',meaning:'contraction of they are',pattern:'homophones set 1'},
      {word:'your',meaning:'belonging to you',pattern:'homophones set 1'},
      {word:'you’re',meaning:'contraction of you are',pattern:'homophones set 1'},
      {word:'its',meaning:'belonging to it',pattern:'homophones set 1'},
      {word:'it’s',meaning:'contraction of it is',pattern:'homophones set 1'},
      {word:'whose',meaning:'belonging to whom',pattern:'homophones set 1'},
      {word:'who’s',meaning:'contraction of who is',pattern:'homophones set 1'},
      {word:'to',meaning:'toward',pattern:'homophones set 1'},
      {word:'too',meaning:'also; more than enough',pattern:'homophones set 1'},
      {word:'two',meaning:'the number 2',pattern:'homophones set 1'},
      {word:'hear',meaning:'to sense sound',pattern:'homophones set 1'},
      {word:'here',meaning:'in this place',pattern:'homophones set 1'},
      {word:'write',meaning:'to form words',pattern:'homophones set 1'},
      {word:'right',meaning:'correct; a direction',pattern:'homophones set 1'},
      {word:'knew',meaning:'understood in the past',pattern:'homophones set 1'},
      {word:'new',meaning:'not old',pattern:'homophones set 1'},
      {word:'threw',meaning:'tossed',pattern:'homophones set 1'},
      {word:'through',meaning:'from end to end',pattern:'homophones set 1'}
    ],
    [ // homophones set 2
      {word:'principal',meaning:'the head of a school; main',pattern:'homophones set 2'},
      {word:'principle',meaning:'a basic rule or truth',pattern:'homophones set 2'},
      {word:'stationary',meaning:'not moving',pattern:'homophones set 2'},
      {word:'stationery',meaning:'writing paper',pattern:'homophones set 2'},
      {word:'capital',meaning:'a seat of government; uppercase',pattern:'homophones set 2'},
      {word:'capitol',meaning:'a government building',pattern:'homophones set 2'},
      {word:'desert',meaning:'dry land; to abandon',pattern:'homophones set 2'},
      {word:'dessert',meaning:'a sweet course',pattern:'homophones set 2'},
      {word:'weather',meaning:'the state of the atmosphere',pattern:'homophones set 2'},
      {word:'whether',meaning:'if it is the case',pattern:'homophones set 2'},
      {word:'passed',meaning:'went by',pattern:'homophones set 2'},
      {word:'past',meaning:'time gone by',pattern:'homophones set 2'},
      {word:'peace',meaning:'freedom from conflict',pattern:'homophones set 2'},
      {word:'piece',meaning:'a portion',pattern:'homophones set 2'},
      {word:'plain',meaning:'simple; flat land',pattern:'homophones set 2'},
      {word:'plane',meaning:'a flat surface; aircraft',pattern:'homophones set 2'},
      {word:'waist',meaning:'the middle of the body',pattern:'homophones set 2'},
      {word:'waste',meaning:'to use carelessly',pattern:'homophones set 2'},
      {word:'aloud',meaning:'out loud',pattern:'homophones set 2'},
      {word:'allowed',meaning:'permitted',pattern:'homophones set 2'}
    ],
    [ // plural patterns: -s, -es, -ies, irregular
      {word:'countries',meaning:'more than one country',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'libraries',meaning:'more than one library',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'families',meaning:'more than one family',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'activities',meaning:'more than one activity',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'communities',meaning:'more than one community',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'opportunities',meaning:'more than one opportunity',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'categories',meaning:'more than one category',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'batteries',meaning:'more than one battery',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'heroes',meaning:'more than one hero',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'potatoes',meaning:'more than one potato',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'tomatoes',meaning:'more than one tomato',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'volcanoes',meaning:'more than one volcano',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'echoes',meaning:'more than one echo',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'knives',meaning:'more than one knife',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'leaves',meaning:'more than one leaf',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'shelves',meaning:'more than one shelf',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'wolves',meaning:'more than one wolf',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'children',meaning:'more than one child',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'mice',meaning:'more than one mouse',pattern:'plural patterns: -s, -es, -ies, irregular'},
      {word:'geese',meaning:'more than one goose',pattern:'plural patterns: -s, -es, -ies, irregular'}
    ],
    [ // compound words
      {word:'afternoon',meaning:'the time after midday',pattern:'compound words'},
      {word:'background',meaning:'the setting behind',pattern:'compound words'},
      {word:'basketball',meaning:'a court game with hoops',pattern:'compound words'},
      {word:'classroom',meaning:'a room for teaching',pattern:'compound words'},
      {word:'earthquake',meaning:'a shaking of the ground',pattern:'compound words'},
      {word:'everything',meaning:'all things',pattern:'compound words'},
      {word:'eyewitness',meaning:'one who saw an event',pattern:'compound words'},
      {word:'grandparent',meaning:'a parent’s parent',pattern:'compound words'},
      {word:'headquarters',meaning:'a main office',pattern:'compound words'},
      {word:'homework',meaning:'schoolwork done at home',pattern:'compound words'},
      {word:'household',meaning:'the people of one home',pattern:'compound words'},
      {word:'keyboard',meaning:'a set of typing keys',pattern:'compound words'},
      {word:'lighthouse',meaning:'a tower with a warning light',pattern:'compound words'},
      {word:'newspaper',meaning:'a printed news sheet',pattern:'compound words'},
      {word:'nightmare',meaning:'a frightening dream',pattern:'compound words'},
      {word:'outstanding',meaning:'excellent; remarkable',pattern:'compound words'},
      {word:'skyscraper',meaning:'a very tall building',pattern:'compound words'},
      {word:'thunderstorm',meaning:'a storm with thunder',pattern:'compound words'},
      {word:'underground',meaning:'below the surface',pattern:'compound words'},
      {word:'waterproof',meaning:'keeping water out',pattern:'compound words'}
    ],
    [ // contractions and possessives
      {word:'can’t',meaning:'contraction of cannot',pattern:'contractions and possessives'},
      {word:'couldn’t',meaning:'contraction of could not',pattern:'contractions and possessives'},
      {word:'didn’t',meaning:'contraction of did not',pattern:'contractions and possessives'},
      {word:'doesn’t',meaning:'contraction of does not',pattern:'contractions and possessives'},
      {word:'hasn’t',meaning:'contraction of has not',pattern:'contractions and possessives'},
      {word:'haven’t',meaning:'contraction of have not',pattern:'contractions and possessives'},
      {word:'isn’t',meaning:'contraction of is not',pattern:'contractions and possessives'},
      {word:'shouldn’t',meaning:'contraction of should not',pattern:'contractions and possessives'},
      {word:'wasn’t',meaning:'contraction of was not',pattern:'contractions and possessives'},
      {word:'weren’t',meaning:'contraction of were not',pattern:'contractions and possessives'},
      {word:'won’t',meaning:'contraction of will not',pattern:'contractions and possessives'},
      {word:'wouldn’t',meaning:'contraction of would not',pattern:'contractions and possessives'},
      {word:'I’ve',meaning:'contraction of I have',pattern:'contractions and possessives'},
      {word:'we’re',meaning:'contraction of we are',pattern:'contractions and possessives'},
      {word:'student’s',meaning:'belonging to one student',pattern:'contractions and possessives'},
      {word:'students’',meaning:'belonging to many students',pattern:'contractions and possessives'},
      {word:'teacher’s',meaning:'belonging to one teacher',pattern:'contractions and possessives'},
      {word:'women’s',meaning:'belonging to women',pattern:'contractions and possessives'},
      {word:'children’s',meaning:'belonging to children',pattern:'contractions and possessives'},
      {word:'family’s',meaning:'belonging to one family',pattern:'contractions and possessives'}
    ],
    [ // Greek combining forms: tele, micro, mega, meter
      {word:'telegraph',meaning:'a device sending coded messages far',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'telepathy',meaning:'communication by thought',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'television',meaning:'a device for viewing broadcasts',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'telecommute',meaning:'to work from far away',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'microbe',meaning:'a tiny living thing',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'microchip',meaning:'a tiny electronic circuit',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'microphone',meaning:'a device that picks up sound',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'microwave',meaning:'a short energy wave; an oven',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'megaphone',meaning:'a voice-amplifying cone',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'megabyte',meaning:'a unit of digital storage',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'perimeter',meaning:'the distance around a shape',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'diameter',meaning:'the distance across a circle',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'barometer',meaning:'an air-pressure instrument',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'centimeter',meaning:'one hundredth of a meter',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'millimeter',meaning:'one thousandth of a meter',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'speedometer',meaning:'a speed gauge',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'symmetry',meaning:'matching balance of parts',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'technology',meaning:'the use of science in tools',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'telescope',meaning:'used to see far away',pattern:'Greek combining forms: tele, micro, mega, meter'},
      {word:'thermostat',meaning:'a device controlling temperature',pattern:'Greek combining forms: tele, micro, mega, meter'}
    ],
    [ // Latin roots: port, dict, scrib/script
      {word:'portable',meaning:'easy to carry',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'porter',meaning:'one who carries loads',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'support',meaning:'to hold up',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'reporter',meaning:'one who gathers news',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'deport',meaning:'to send out of a country',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'important',meaning:'mattering greatly',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'dictionary',meaning:'a book of word meanings',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'contradict',meaning:'to say the opposite',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'verdict',meaning:'a jury’s decision',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'dictator',meaning:'a ruler with total power',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'prediction',meaning:'a statement about the future',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'scribble',meaning:'to write carelessly',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'scribe',meaning:'a person who copies writing',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'describe',meaning:'to tell in words',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'inscription',meaning:'words carved or written on',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'manuscript',meaning:'a handwritten document',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'prescription',meaning:'a doctor’s written order',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'subscription',meaning:'a paid regular order',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'script',meaning:'the written text of a show',pattern:'Latin roots: port, dict, scrib/script'},
      {word:'transcript',meaning:'an official written record',pattern:'Latin roots: port, dict, scrib/script'}
    ],
    [ // Latin roots: cred, mem, ped, man
      {word:'credit',meaning:'trust; recognition',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'credible',meaning:'believable',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'incredible',meaning:'hard to believe',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'credentials',meaning:'proof of qualifications',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'creed',meaning:'a statement of beliefs',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'memory',meaning:'stored experience in the mind',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'memorial',meaning:'something honoring the remembered',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'memorize',meaning:'to learn by heart',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'remember',meaning:'to bring back to mind',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'memorandum',meaning:'a short written reminder',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'pedal',meaning:'a foot lever',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'pedestrian',meaning:'a person walking',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'pedestal',meaning:'a base something stands on',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'expedition',meaning:'a purposeful journey',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'centipede',meaning:'a many-legged creature',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'manual',meaning:'done by hand; a handbook',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'manufacture',meaning:'to make by hand or machine',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'manuscript',meaning:'a handwritten document',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'manage',meaning:'to handle or direct',pattern:'Latin roots: cred, mem, ped, man'},
      {word:'manicure',meaning:'care of the hands',pattern:'Latin roots: cred, mem, ped, man'}
    ],
    [ // science vocabulary words
      {word:'hypothesis',meaning:'a testable explanation',pattern:'science vocabulary words'},
      {word:'experiment',meaning:'a test to gain knowledge',pattern:'science vocabulary words'},
      {word:'variable',meaning:'a factor that can change',pattern:'science vocabulary words'},
      {word:'analysis',meaning:'a careful examination',pattern:'science vocabulary words'},
      {word:'molecule',meaning:'a group of bonded atoms',pattern:'science vocabulary words'},
      {word:'photosynthesis',meaning:'how plants make food from light',pattern:'science vocabulary words'},
      {word:'ecosystem',meaning:'a community of living things',pattern:'science vocabulary words'},
      {word:'atmosphere',meaning:'the layer of air around Earth',pattern:'science vocabulary words'},
      {word:'temperature',meaning:'the measure of heat',pattern:'science vocabulary words'},
      {word:'evaporation',meaning:'liquid changing to gas',pattern:'science vocabulary words'},
      {word:'condensation',meaning:'gas changing to liquid',pattern:'science vocabulary words'},
      {word:'precipitation',meaning:'rain, snow, sleet, or hail',pattern:'science vocabulary words'},
      {word:'gravity',meaning:'the force pulling objects together',pattern:'science vocabulary words'},
      {word:'friction',meaning:'the force resisting motion',pattern:'science vocabulary words'},
      {word:'energy',meaning:'the ability to do work',pattern:'science vocabulary words'},
      {word:'nucleus',meaning:'the center of a cell or atom',pattern:'science vocabulary words'},
      {word:'bacteria',meaning:'microscopic single-celled organisms',pattern:'science vocabulary words'},
      {word:'chlorophyll',meaning:'the green pigment in plants',pattern:'science vocabulary words'},
      {word:'erosion',meaning:'the wearing away of land',pattern:'science vocabulary words'},
      {word:'scientist',meaning:'a person who studies science',pattern:'science vocabulary words'}
    ],
    [ // math and social studies vocabulary
      {word:'denominator',meaning:'the bottom number of a fraction',pattern:'math and social studies vocabulary'},
      {word:'numerator',meaning:'the top number of a fraction',pattern:'math and social studies vocabulary'},
      {word:'equivalent',meaning:'equal in value',pattern:'math and social studies vocabulary'},
      {word:'estimate',meaning:'a careful rough guess',pattern:'math and social studies vocabulary'},
      {word:'quotient',meaning:'the answer in division',pattern:'math and social studies vocabulary'},
      {word:'remainder',meaning:'the amount left over',pattern:'math and social studies vocabulary'},
      {word:'parallel',meaning:'lines that never meet',pattern:'math and social studies vocabulary'},
      {word:'perpendicular',meaning:'meeting at right angles',pattern:'math and social studies vocabulary'},
      {word:'percentage',meaning:'a rate per hundred',pattern:'math and social studies vocabulary'},
      {word:'probability',meaning:'the chance something happens',pattern:'math and social studies vocabulary'},
      {word:'citizen',meaning:'a member of a nation',pattern:'math and social studies vocabulary'},
      {word:'democracy',meaning:'rule by the people',pattern:'math and social studies vocabulary'},
      {word:'economy',meaning:'the system of money and trade',pattern:'math and social studies vocabulary'},
      {word:'geography',meaning:'the study of Earth’s places',pattern:'math and social studies vocabulary'},
      {word:'immigrant',meaning:'a person who moves to a country',pattern:'math and social studies vocabulary'},
      {word:'legislature',meaning:'a law-making body',pattern:'math and social studies vocabulary'},
      {word:'constitution',meaning:'a nation’s basic law',pattern:'math and social studies vocabulary'},
      {word:'civilization',meaning:'an advanced organized society',pattern:'math and social studies vocabulary'},
      {word:'agriculture',meaning:'the practice of farming',pattern:'math and social studies vocabulary'},
      {word:'archaeology',meaning:'the study of ancient remains',pattern:'math and social studies vocabulary'}
    ],
    [ // commonly misspelled words set 1
      {word:'accidentally',meaning:'by chance; not on purpose',pattern:'commonly misspelled words set 1'},
      {word:'accommodate',meaning:'to provide room for',pattern:'commonly misspelled words set 1'},
      {word:'acknowledge',meaning:'to admit or recognize',pattern:'commonly misspelled words set 1'},
      {word:'acquire',meaning:'to gain or obtain',pattern:'commonly misspelled words set 1'},
      {word:'apparent',meaning:'clearly seen or understood',pattern:'commonly misspelled words set 1'},
      {word:'appreciate',meaning:'to value; be grateful for',pattern:'commonly misspelled words set 1'},
      {word:'calendar',meaning:'a chart of days and months',pattern:'commonly misspelled words set 1'},
      {word:'committee',meaning:'a group chosen to act',pattern:'commonly misspelled words set 1'},
      {word:'completely',meaning:'fully; totally',pattern:'commonly misspelled words set 1'},
      {word:'convenient',meaning:'easy to use or reach',pattern:'commonly misspelled words set 1'},
      {word:'definitely',meaning:'without doubt',pattern:'commonly misspelled words set 1'},
      {word:'embarrass',meaning:'to make self-conscious',pattern:'commonly misspelled words set 1'},
      {word:'exaggerate',meaning:'to overstate',pattern:'commonly misspelled words set 1'},
      {word:'familiar',meaning:'well known',pattern:'commonly misspelled words set 1'},
      {word:'finally',meaning:'at last',pattern:'commonly misspelled words set 1'},
      {word:'generally',meaning:'usually',pattern:'commonly misspelled words set 1'},
      {word:'grateful',meaning:'thankful',pattern:'commonly misspelled words set 1'},
      {word:'guarantee',meaning:'a firm promise',pattern:'commonly misspelled words set 1'},
      {word:'immediately',meaning:'right away',pattern:'commonly misspelled words set 1'},
      {word:'judgment',meaning:'a decision or opinion',pattern:'commonly misspelled words set 1'}
    ],
    [ // commonly misspelled words set 2
      {word:'license',meaning:'official permission',pattern:'commonly misspelled words set 2'},
      {word:'maintenance',meaning:'upkeep and care',pattern:'commonly misspelled words set 2'},
      {word:'marriage',meaning:'the union of spouses',pattern:'commonly misspelled words set 2'},
      {word:'mathematics',meaning:'the study of numbers',pattern:'commonly misspelled words set 2'},
      {word:'medicine',meaning:'a substance that treats illness',pattern:'commonly misspelled words set 2'},
      {word:'mischievous',meaning:'playfully troublesome',pattern:'commonly misspelled words set 2'},
      {word:'noticeable',meaning:'easy to see',pattern:'commonly misspelled words set 2'},
      {word:'occasion',meaning:'a special event',pattern:'commonly misspelled words set 2'},
      {word:'occasionally',meaning:'once in a while',pattern:'commonly misspelled words set 2'},
      {word:'parallel',meaning:'side by side, never meeting',pattern:'commonly misspelled words set 2'},
      {word:'particularly',meaning:'especially',pattern:'commonly misspelled words set 2'},
      {word:'pastime',meaning:'an enjoyable activity',pattern:'commonly misspelled words set 2'},
      {word:'persuade',meaning:'to convince',pattern:'commonly misspelled words set 2'},
      {word:'privilege',meaning:'a special right',pattern:'commonly misspelled words set 2'},
      {word:'probably',meaning:'most likely',pattern:'commonly misspelled words set 2'},
      {word:'pronunciation',meaning:'the way a word is said',pattern:'commonly misspelled words set 2'},
      {word:'recommend',meaning:'to suggest approvingly',pattern:'commonly misspelled words set 2'},
      {word:'restaurant',meaning:'a place serving meals',pattern:'commonly misspelled words set 2'},
      {word:'separate',meaning:'apart; to divide',pattern:'commonly misspelled words set 2'},
      {word:'vacuum',meaning:'a space empty of matter',pattern:'commonly misspelled words set 2'}
    ],
    [ // endings: -al, -el, -le
      {word:'animal',meaning:'a living creature',pattern:'endings: -al, -el, -le'},
      {word:'capital',meaning:'a seat of government; uppercase',pattern:'endings: -al, -el, -le'},
      {word:'festival',meaning:'a celebration event',pattern:'endings: -al, -el, -le'},
      {word:'general',meaning:'overall; an army leader',pattern:'endings: -al, -el, -le'},
      {word:'hospital',meaning:'a place treating the sick',pattern:'endings: -al, -el, -le'},
      {word:'identical',meaning:'exactly the same',pattern:'endings: -al, -el, -le'},
      {word:'musical',meaning:'relating to music',pattern:'endings: -al, -el, -le'},
      {word:'natural',meaning:'from nature',pattern:'endings: -al, -el, -le'},
      {word:'original',meaning:'the first of its kind',pattern:'endings: -al, -el, -le'},
      {word:'several',meaning:'more than two but not many',pattern:'endings: -al, -el, -le'},
      {word:'channel',meaning:'a path for water or signals',pattern:'endings: -al, -el, -le'},
      {word:'level',meaning:'flat and even; a stage',pattern:'endings: -al, -el, -le'},
      {word:'nickel',meaning:'a five-cent coin',pattern:'endings: -al, -el, -le'},
      {word:'novel',meaning:'a long fictional story',pattern:'endings: -al, -el, -le'},
      {word:'travel',meaning:'to go on a journey',pattern:'endings: -al, -el, -le'},
      {word:'article',meaning:'a piece of writing; an item',pattern:'endings: -al, -el, -le'},
      {word:'example',meaning:'a sample that shows',pattern:'endings: -al, -el, -le'},
      {word:'muscle',meaning:'tissue that moves the body',pattern:'endings: -al, -el, -le'},
      {word:'obstacle',meaning:'something in the way',pattern:'endings: -al, -el, -le'},
      {word:'vehicle',meaning:'a machine for transport',pattern:'endings: -al, -el, -le'}
    ],
    [ // word study: unstressed vowels (schwa)
      {word:'different',meaning:'not the same',pattern:'word study: unstressed vowels (schwa)'},
      {word:'interesting',meaning:'holding attention',pattern:'word study: unstressed vowels (schwa)'},
      {word:'separate',meaning:'apart; to divide',pattern:'word study: unstressed vowels (schwa)'},
      {word:'chocolate',meaning:'a sweet made from cacao',pattern:'word study: unstressed vowels (schwa)'},
      {word:'camera',meaning:'a device for taking pictures',pattern:'word study: unstressed vowels (schwa)'},
      {word:'favorite',meaning:'liked best',pattern:'word study: unstressed vowels (schwa)'},
      {word:'general',meaning:'overall; widespread',pattern:'word study: unstressed vowels (schwa)'},
      {word:'memory',meaning:'stored experience in the mind',pattern:'word study: unstressed vowels (schwa)'},
      {word:'mineral',meaning:'a natural nonliving substance',pattern:'word study: unstressed vowels (schwa)'},
      {word:'opposite',meaning:'completely different',pattern:'word study: unstressed vowels (schwa)'},
      {word:'temperature',meaning:'the measure of heat',pattern:'word study: unstressed vowels (schwa)'},
      {word:'vegetable',meaning:'a plant grown for food',pattern:'word study: unstressed vowels (schwa)'},
      {word:'boundary',meaning:'a dividing line',pattern:'word study: unstressed vowels (schwa)'},
      {word:'desperate',meaning:'having little hope',pattern:'word study: unstressed vowels (schwa)'},
      {word:'elegant',meaning:'graceful and stylish',pattern:'word study: unstressed vowels (schwa)'},
      {word:'excellent',meaning:'extremely good',pattern:'word study: unstressed vowels (schwa)'},
      {word:'history',meaning:'the study of the past',pattern:'word study: unstressed vowels (schwa)'},
      {word:'important',meaning:'mattering greatly',pattern:'word study: unstressed vowels (schwa)'},
      {word:'literature',meaning:'written works of art',pattern:'word study: unstressed vowels (schwa)'},
      {word:'president',meaning:'the elected head of a nation',pattern:'word study: unstressed vowels (schwa)'}
    ],
    [ // review: roots and prefixes (weeks 1-10)
      {word:'autograph',meaning:'a signature',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'biography',meaning:'a life story',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'microscope',meaning:'used to see tiny things',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'transport',meaning:'to carry across',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'predict',meaning:'to say beforehand',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'inspect',meaning:'to look closely',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'construct',meaning:'to build',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'biology',meaning:'the study of living things',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'geography',meaning:'the study of Earth’s places',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'audible',meaning:'loud enough to hear',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'homophone',meaning:'a word that sounds like another',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'invisible',meaning:'not able to be seen',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'reject',meaning:'to refuse or throw back',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'attract',meaning:'to pull toward',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'transform',meaning:'to change completely',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'emotion',meaning:'a strong feeling',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'unnecessary',meaning:'not needed',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'reconsider',meaning:'to think about again',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'disagree',meaning:'to have a different opinion',pattern:'review: roots and prefixes (weeks 1-10)'},
      {word:'interrupt',meaning:'to break in while another speaks',pattern:'review: roots and prefixes (weeks 1-10)'}
    ],
    [ // review: suffixes and patterns (weeks 11-22)
      {word:'celebration',meaning:'a joyful event',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'decision',meaning:'a choice that is made',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'dependable',meaning:'able to be trusted',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'responsible',meaning:'expected to take care of duties',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'courageous',meaning:'full of bravery',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'mysterious',meaning:'hard to explain',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'achievement',meaning:'a thing achieved',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'happiness',meaning:'the state of being happy',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'opportunity',meaning:'a favorable chance',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'believe',meaning:'to accept as true',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'receive',meaning:'to get something given',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'knowledge',meaning:'information and understanding',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'rhythm',meaning:'a repeated pattern of beats',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'beginning',meaning:'the start',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'occurred',meaning:'happened',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'performance',meaning:'a public presentation',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'independence',meaning:'freedom from control',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'dictionary',meaning:'a book of word meanings',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'discovery',meaning:'finding something new',pattern:'review: suffixes and patterns (weeks 11-22)'},
      {word:'necessary',meaning:'required',pattern:'review: suffixes and patterns (weeks 11-22)'}
    ],
    [ // year-end review: challenge and assessment
      {word:'accommodate',meaning:'to provide room for',pattern:'year-end review: challenge and assessment'},
      {word:'definitely',meaning:'without doubt',pattern:'year-end review: challenge and assessment'},
      {word:'embarrass',meaning:'to make self-conscious',pattern:'year-end review: challenge and assessment'},
      {word:'guarantee',meaning:'a firm promise',pattern:'year-end review: challenge and assessment'},
      {word:'judgment',meaning:'a decision or opinion',pattern:'year-end review: challenge and assessment'},
      {word:'license',meaning:'official permission',pattern:'year-end review: challenge and assessment'},
      {word:'mischievous',meaning:'playfully troublesome',pattern:'year-end review: challenge and assessment'},
      {word:'privilege',meaning:'a special right',pattern:'year-end review: challenge and assessment'},
      {word:'pronunciation',meaning:'the way a word is said',pattern:'year-end review: challenge and assessment'},
      {word:'recommend',meaning:'to suggest approvingly',pattern:'year-end review: challenge and assessment'},
      {word:'separate',meaning:'apart; to divide',pattern:'year-end review: challenge and assessment'},
      {word:'vacuum',meaning:'a space empty of matter',pattern:'year-end review: challenge and assessment'},
      {word:'hypothesis',meaning:'a testable explanation',pattern:'year-end review: challenge and assessment'},
      {word:'photosynthesis',meaning:'how plants make food from light',pattern:'year-end review: challenge and assessment'},
      {word:'constitution',meaning:'a nation’s basic law',pattern:'year-end review: challenge and assessment'},
      {word:'civilization',meaning:'an advanced organized society',pattern:'year-end review: challenge and assessment'},
      {word:'equivalent',meaning:'equal in value',pattern:'year-end review: challenge and assessment'},
      {word:'perpendicular',meaning:'meeting at right angles',pattern:'year-end review: challenge and assessment'},
      {word:'manuscript',meaning:'a handwritten document',pattern:'year-end review: challenge and assessment'},
      {word:'independence',meaning:'freedom from control',pattern:'year-end review: challenge and assessment'}
    ]
  ],
  7: [ // Grade 7 — advanced vocabulary, roots (3 weeks)
    [
      {word:'benevolent',meaning:'kind and generous',pattern:'root: bene'},
      {word:'malevolent',meaning:'wishing harm',pattern:'root: mal'},
      {word:'credible',meaning:'believable',pattern:'root: cred'},
      {word:'incredible',meaning:'hard to believe',pattern:'root: cred'},
      {word:'chronological',meaning:'in time order',pattern:'root: chrono'},
      {word:'synchronize',meaning:'to happen at the same time',pattern:'root: chrono'},
      {word:'democracy',meaning:'rule by the people',pattern:'root: demo/cracy'},
      {word:'monarchy',meaning:'rule by a king or queen',pattern:'root: mono/arch'},
      {word:'biology',meaning:'the study of life',pattern:'root: bio/logy'},
      {word:'geology',meaning:'the study of the earth',pattern:'root: geo/logy'},
      {word:'geography',meaning:'the study of places',pattern:'root: geo/graph'},
      {word:'philosophy',meaning:'the study of wisdom',pattern:'root: phil/soph'},
      {word:'sympathy',meaning:'shared feeling',pattern:'root: sym/path'},
      {word:'empathy',meaning:'understanding others\u2019 feelings',pattern:'root: em/path'},
      {word:'beneficial',meaning:'helpful',pattern:'root: bene'},
      {word:'dictator',meaning:'a ruler with total power',pattern:'root: dict'},
      {word:'manuscript',meaning:'a handwritten document',pattern:'root: manu/script'},
      {word:'inscription',meaning:'words carved into something',pattern:'root: script'},
      {word:'audible',meaning:'able to be heard',pattern:'root: aud'},
      {word:'auditorium',meaning:'a hall for listening',pattern:'root: aud'}
    ],
    [
      {word:'ambiguous',meaning:'having more than one meaning',pattern:'vocabulary'},
      {word:'analyze',meaning:'to examine in detail',pattern:'vocabulary'},
      {word:'arbitrary',meaning:'based on random choice',pattern:'vocabulary'},
      {word:'coherent',meaning:'clear and logical',pattern:'vocabulary'},
      {word:'compromise',meaning:'a middle-ground agreement',pattern:'vocabulary'},
      {word:'controversy',meaning:'a public disagreement',pattern:'vocabulary'},
      {word:'deliberate',meaning:'done on purpose',pattern:'vocabulary'},
      {word:'diminish',meaning:'to make smaller',pattern:'vocabulary'},
      {word:'elaborate',meaning:'detailed and complex',pattern:'vocabulary'},
      {word:'fluctuate',meaning:'to change often',pattern:'vocabulary'},
      {word:'inevitable',meaning:'sure to happen',pattern:'vocabulary'},
      {word:'inference',meaning:'a conclusion from clues',pattern:'vocabulary'},
      {word:'legitimate',meaning:'allowed by rules; valid',pattern:'vocabulary'},
      {word:'notorious',meaning:'famous for bad reasons',pattern:'vocabulary'},
      {word:'perspective',meaning:'a point of view',pattern:'vocabulary'},
      {word:'prominent',meaning:'important and well-known',pattern:'vocabulary'},
      {word:'reluctant',meaning:'unwilling',pattern:'vocabulary'},
      {word:'subtle',meaning:'not obvious',pattern:'vocabulary'},
      {word:'tedious',meaning:'long and boring',pattern:'vocabulary'},
      {word:'versatile',meaning:'able to do many things',pattern:'vocabulary'}
    ],
    [
      {word:'accommodate',meaning:'to make room for',pattern:'commonly misspelled'},
      {word:'bureaucracy',meaning:'a system of officials',pattern:'commonly misspelled'},
      {word:'conscientious',meaning:'careful and thorough',pattern:'commonly misspelled'},
      {word:'definitely',meaning:'without doubt',pattern:'commonly misspelled'},
      {word:'embarrassment',meaning:'a feeling of shame',pattern:'commonly misspelled'},
      {word:'exaggeration',meaning:'an overstatement',pattern:'commonly misspelled'},
      {word:'existence',meaning:'the state of being',pattern:'commonly misspelled'},
      {word:'harassment',meaning:'repeated bothering',pattern:'commonly misspelled'},
      {word:'independence',meaning:'freedom from control',pattern:'commonly misspelled'},
      {word:'maintenance',meaning:'upkeep',pattern:'commonly misspelled'},
      {word:'millennium',meaning:'a thousand years',pattern:'commonly misspelled'},
      {word:'noticeable',meaning:'easily seen',pattern:'commonly misspelled'},
      {word:'occasionally',meaning:'once in a while',pattern:'commonly misspelled'},
      {word:'perseverance',meaning:'not giving up',pattern:'commonly misspelled'},
      {word:'possession',meaning:'something owned',pattern:'commonly misspelled'},
      {word:'privilege',meaning:'a special right',pattern:'commonly misspelled'},
      {word:'recommendation',meaning:'a suggestion',pattern:'commonly misspelled'},
      {word:'relevant',meaning:'related to the topic',pattern:'commonly misspelled'},
      {word:'restaurant',meaning:'a place to eat out',pattern:'commonly misspelled'},
      {word:'tournament',meaning:'a series of contests',pattern:'commonly misspelled'}
    ]
  ],
  8: [ // Grade 8 — high-level academic, SAT-prep foundations (3 weeks)
    [
      {word:'aesthetic',meaning:'relating to beauty',pattern:'academic'},
      {word:'alleviate',meaning:'to make less severe',pattern:'academic'},
      {word:'articulate',meaning:'to express clearly',pattern:'academic'},
      {word:'cognitive',meaning:'related to thinking',pattern:'academic'},
      {word:'comprehensive',meaning:'covering everything',pattern:'academic'},
      {word:'conducive',meaning:'helping to bring about',pattern:'academic'},
      {word:'context',meaning:'the surrounding situation',pattern:'academic'},
      {word:'discrepancy',meaning:'a difference or gap',pattern:'academic'},
      {word:'empirical',meaning:'based on observation',pattern:'academic'},
      {word:'explicit',meaning:'stated clearly',pattern:'academic'},
      {word:'implicit',meaning:'implied, not stated',pattern:'academic'},
      {word:'incentive',meaning:'a reason to act',pattern:'academic'},
      {word:'integrity',meaning:'honesty and strong values',pattern:'academic'},
      {word:'objective',meaning:'not influenced by feelings',pattern:'academic'},
      {word:'plausible',meaning:'believable',pattern:'academic'},
      {word:'profound',meaning:'very deep or great',pattern:'academic'},
      {word:'subjective',meaning:'based on personal views',pattern:'academic'},
      {word:'substantial',meaning:'large in amount',pattern:'academic'},
      {word:'theoretical',meaning:'based on ideas, not practice',pattern:'academic'},
      {word:'valid',meaning:'well-grounded; sound',pattern:'academic'}
    ],
    [
      {word:'advocate',meaning:'to support publicly',pattern:'vocabulary'},
      {word:'arbitrary',meaning:'based on whim',pattern:'vocabulary'},
      {word:'candid',meaning:'honest and direct',pattern:'vocabulary'},
      {word:'conventional',meaning:'following tradition',pattern:'vocabulary'},
      {word:'cumulative',meaning:'increasing by additions',pattern:'vocabulary'},
      {word:'detrimental',meaning:'causing harm',pattern:'vocabulary'},
      {word:'eloquent',meaning:'fluent and persuasive',pattern:'vocabulary'},
      {word:'feasible',meaning:'possible to do',pattern:'vocabulary'},
      {word:'hierarchy',meaning:'a ranked system',pattern:'vocabulary'},
      {word:'innovative',meaning:'introducing new ideas',pattern:'vocabulary'},
      {word:'intrinsic',meaning:'belonging naturally',pattern:'vocabulary'},
      {word:'meticulous',meaning:'very careful',pattern:'vocabulary'},
      {word:'nostalgia',meaning:'longing for the past',pattern:'vocabulary'},
      {word:'paradox',meaning:'a contradictory truth',pattern:'vocabulary'},
      {word:'pragmatic',meaning:'practical',pattern:'vocabulary'},
      {word:'resilient',meaning:'able to recover quickly',pattern:'vocabulary'},
      {word:'scrutinize',meaning:'to examine closely',pattern:'vocabulary'},
      {word:'spontaneous',meaning:'happening naturally',pattern:'vocabulary'},
      {word:'unprecedented',meaning:'never done before',pattern:'vocabulary'},
      {word:'viable',meaning:'workable',pattern:'vocabulary'}
    ],
    [
      {word:'acquaintance',meaning:'someone you know slightly',pattern:'commonly misspelled'},
      {word:'apparatus',meaning:'equipment for a task',pattern:'commonly misspelled'},
      {word:'connoisseur',meaning:'an expert judge',pattern:'commonly misspelled'},
      {word:'conscientious',meaning:'careful and thorough',pattern:'commonly misspelled'},
      {word:'entrepreneur',meaning:'a business starter',pattern:'commonly misspelled'},
      {word:'fluorescent',meaning:'giving off bright light',pattern:'commonly misspelled'},
      {word:'guarantee',meaning:'a firm promise',pattern:'commonly misspelled'},
      {word:'hierarchy',meaning:'a ranked order',pattern:'commonly misspelled'},
      {word:'inevitable',meaning:'certain to happen',pattern:'commonly misspelled'},
      {word:'liaison',meaning:'a go-between',pattern:'commonly misspelled'},
      {word:'maneuver',meaning:'a skillful move',pattern:'commonly misspelled'},
      {word:'mischievous',meaning:'playfully causing trouble',pattern:'commonly misspelled'},
      {word:'pharaoh',meaning:'an ancient Egyptian ruler',pattern:'commonly misspelled'},
      {word:'phenomenon',meaning:'a remarkable event',pattern:'commonly misspelled'},
      {word:'questionnaire',meaning:'a set of survey questions',pattern:'commonly misspelled'},
      {word:'reminiscent',meaning:'reminding of the past',pattern:'commonly misspelled'},
      {word:'rhetorical',meaning:'asked for effect, not answer',pattern:'commonly misspelled'},
      {word:'silhouette',meaning:'a dark outline',pattern:'commonly misspelled'},
      {word:'surveillance',meaning:'close watching',pattern:'commonly misspelled'},
      {word:'vacuum',meaning:'a space empty of matter',pattern:'commonly misspelled'}
    ]
  ]
};

// ----------------------------------------------------------------
// MAIN
// ----------------------------------------------------------------
async function main() {
  console.log('============================================');
  console.log('JNM Home Education Program');
  const seedAllGrades = process.argv.includes('--all-grades');
  const gradesToSeed = seedAllGrades ? Object.keys(SPELLING_DATA) : ['6'];
  console.log(seedAllGrades ? 'Spelling Curriculum Seed (Grades 1-8)' : 'Spelling Curriculum Seed (Grade 6 only — safe default)');
  console.log('============================================\n');

  const stats = { courses: 0, units: 0, lessons: 0, assignments: 0, weeks: 0 };
  let client = null;

  try {
    client = await pool.connect();
    await client.query('BEGIN');
    // Ensure word_list column exists (idempotent safety; migration also adds it)
    await client.query('ALTER TABLE lessons ADD COLUMN IF NOT EXISTS word_list JSONB');

    for (const gradeStr of gradesToSeed) {
      const grade = parseInt(gradeStr);
      const weeks = SPELLING_DATA[grade];
      const courseName = `Grade ${grade} Spelling`;

      // Create or find the Spelling course for this grade
      let courseRes = await client.query(
        "SELECT id FROM courses WHERE name = $1 AND grade_level = $2 AND subject = 'Spelling'",
        [courseName, grade]
      );
      let courseId;
      if (courseRes.rows.length === 0) {
        const ins = await client.query(
          "INSERT INTO courses (name, grade_level, subject, course_type, description, credit_hours) VALUES ($1, $2, 'Spelling', 'core', $3, 0.5) RETURNING id",
          [courseName, grade, `Weekly spelling words, practice, and tests for Grade ${grade}. Grade-appropriate word lists with auto-graded activities.`]
        );
        courseId = ins.rows[0].id;
        stats.courses++;
        console.log(`Created course: ${courseName}`);
      } else {
        courseId = courseRes.rows[0].id;
        console.log(`Found existing course: ${courseName}`);
      }

      // Create each week as a unit + lesson + assignments
      for (let w = 0; w < weeks.length; w++) {
        const weekNum = w + 1;
        const words = weeks[w];
        if (!words || words.length < 20) {
          console.log(`  ! Skipping Grade ${grade} Week ${weekNum}: needs 20 words (has ${words ? words.length : 0})`);
          continue;
        }

        const weekFocus = spellingWeekFocus(words);
        const unitTitle = weekFocus || `Spelling Week ${weekNum}`;
        const unitDescription = `${unitTitle}: 20 spelling words, pattern study, sentence practice, audio practice, and weekly test.`;

        // Unit (one per week). V19B keeps every spelling unit label consistent:
        // a meaningful topic/focus label instead of generic "Week N Spelling Words".
        let unitRes = await client.query(
          'SELECT id FROM units WHERE course_id = $1 AND unit_number = $2',
          [courseId, weekNum]
        );
        let unitId;
        if (unitRes.rows.length === 0) {
          const ins = await client.query(
            'INSERT INTO units (course_id, title, description, unit_number) VALUES ($1, $2, $3, $4) RETURNING id',
            [courseId, unitTitle, unitDescription, weekNum]
          );
          unitId = ins.rows[0].id;
          stats.units++;
        } else {
          unitId = unitRes.rows[0].id;
          await client.query('UPDATE units SET title = $1, description = $2 WHERE id = $3', [unitTitle, unitDescription, unitId]);
        }

        // Lesson (holds the word list)
        let lessonRes = await client.query(
          'SELECT id FROM lessons WHERE unit_id = $1 AND lesson_number = 1',
          [unitId]
        );
        let lessonId;
        const wordListJson = JSON.stringify(words);
        const instructional = 'This week you will learn 20 spelling words. Study the list, practice with the activities, then take the Weekly Spelling Test. Words: ' + words.map(x => x.word).join(', ') + '.';
        const objectives = [
          `Correctly spell all 20 Week ${weekNum} words.`,
          'Recognize correctly spelled words among similar misspellings.',
          'Use spelling words correctly in sentences.',
          'Identify the spelling pattern of each word.'
        ].join('\n');
        if (lessonRes.rows.length === 0) {
          const ins = await client.query(
            `INSERT INTO lessons (unit_id, title, description, lesson_number, content, instructional_content, learning_objectives, word_list, concept_title)
             VALUES ($1, $2, $3, 1, $4, $4, $5, $6, $7) RETURNING id`,
            [unitId, unitTitle, `Study the 20 spelling words for ${unitTitle}.`, instructional, objectives, wordListJson, unitTitle]
          );
          lessonId = ins.rows[0].id;
          stats.lessons++;
        } else {
          lessonId = lessonRes.rows[0].id;
          await client.query(
            'UPDATE lessons SET title = $1, description = $2, concept_title = $3, word_list = $4, instructional_content = $5, learning_objectives = $6 WHERE id = $7',
            [unitTitle, `Study the 20 spelling words for ${unitTitle}.`, unitTitle, wordListJson, instructional, objectives, lessonId]
          );
        }

        // V17: the required 5-day weekly structure (Mon-Fri), replacing the old
        // 4-assignment shape. Titles keep the keywords the frontend detects
        // ("Word List Study", "Use Words in Sentences", "Audio Spelling Practice",
        // "Spelling Test") so the word-by-word flows engage automatically.
        // V18C: student-facing spelling titles must NOT include the day of the week.
        // Format: "Assignment N: Activity Name (weekly focus/pattern)". Titles keep the
        // keywords the frontend detects ("Word List Study", "Sentence and Context
        // Practice"/"Use Words in Sentences", "Audio Spelling Practice", "Spelling Test")
        // so the word-by-word and writing flows still engage automatically. The 5-step
        // weekly structure is preserved internally.
        const focusSuffix = weekFocus ? ` (${weekFocus})` : '';
        const assignmentDefs = [
          { title: `Assignment 1: Word List Study${focusSuffix}`, type: 'homework', weight: 'homework', questions: buildListStudyQuestions(words), instructions: 'Read each visible word, cover it or look away, write it on paper if needed, then type it from memory. Copy and paste is disabled in the student app. Auto-graded.' },
          { title: `Assignment 2: Word Pattern and Meaning Study${focusSuffix}`, type: 'homework', weight: 'homework', questions: buildPatternMeaningQuestions(words), instructions: "Match each word to its meaning and complete words using this week's pattern. Auto-graded." },
          { title: `Assignment 3: Sentence and Context Practice${focusSuffix}`, type: 'homework', weight: 'writing', questions: buildSentenceQuestions(words), instructions: 'Write your own sentence for each word to practice context. Submit the writing for parent/teacher review; no automatic percentage or letter grade is assigned.' },
          { title: `Assignment 4: Audio Spelling Practice${focusSuffix}`, type: 'practice', weight: 'homework', questions: buildTestQuestions(words), instructions: 'Word-by-word practice. Listen to each word, type the spelling, and check yourself before the test.' },
          { title: `Assignment 5: Weekly Spelling Test${focusSuffix}`, type: 'test', weight: 'test', questions: buildTestQuestions(words), instructions: 'Weekly spelling test on all 20 words, taken word by word. Most questions are auto-graded immediately.' }
        ];

        // Idempotent migration: remove obsolete legacy rows AND the V17 weekday-titled
        // rows from previously seeded databases so re-running converges on the V18C
        // "Assignment N: ..." titles without creating duplicates.
        await client.query(
          `DELETE FROM assignments WHERE lesson_id = $1 AND (
             title = $2 OR title = $3 OR title = $4
             OR title LIKE $5 OR title LIKE $6 OR title LIKE $7 OR title LIKE $8 OR title LIKE $9
           )`,
          [
            lessonId,
            `Week ${weekNum} Spelling Practice`,
            `Week ${weekNum} Fill in the Missing Letters`,
            `Week ${weekNum} Use Words in Sentences`,
            `Week ${weekNum} Word List Study (%)`,
            `Week ${weekNum} Word Pattern and Meaning Study (%)`,
            `Week ${weekNum} Use Words in Sentences (%)`,
            `Week ${weekNum} Audio Spelling Practice (%)`,
            `Week ${weekNum} Spelling Test (%)`
          ]
        );

        for (const def of assignmentDefs) {
          const exists = await client.query(
            'SELECT id FROM assignments WHERE lesson_id = $1 AND title = $2',
            [lessonId, def.title]
          );
          if (exists.rows.length === 0) {
            await client.query(
              `INSERT INTO assignments (lesson_id, title, description, instructions, assignment_type, point_value, weight_category, passing_grade, questions)
               VALUES ($1, $2, $3, $4, $5, 100, $6, 70, $7)`,
              [lessonId, def.title, def.title, def.instructions, def.type, def.weight, JSON.stringify(def.questions)]
            );
            stats.assignments++;
          } else {
            await client.query('UPDATE assignments SET questions = $1, instructions = $2 WHERE id = $3',
              [JSON.stringify(def.questions), def.instructions, exists.rows[0].id]);
          }
        }

        stats.weeks++;
      }
      console.log(`  Grade ${grade}: ${weeks.length} weeks seeded.`);
    }

    console.log('\n============================================');
    console.log('SPELLING SEED COMPLETE');
    console.log('============================================');
    console.log(`Courses created: ${stats.courses}`);
    console.log(`Units (weeks) created: ${stats.units}`);
    console.log(`Lessons created: ${stats.lessons}`);
    console.log(`Assignments created: ${stats.assignments}`);
    console.log(`Total weeks seeded: ${stats.weeks}`);
    console.log('\nWeeks completed per grade:');
    for (const g of gradesToSeed) {
      console.log(`  Grade ${g}: ${SPELLING_DATA[g].length} weeks`);
    }
    if (seedAllGrades) {
      console.log('\nOTHER-GRADE EXPANSION NOTE:');
      console.log('  Grades 1–5 and 7–8 intentionally retain curated partial blocks.');
      console.log('  Add only genuine 20-word weeks before expanding those grades.');
    } else {
      console.log('\nGrade 6 full-year scope: 36 of 36 weeks seeded.');
    }
    console.log('============================================');

    await client.query('COMMIT');
  } catch (err) {
    if (client) {
      try { await client.query('ROLLBACK'); } catch (rollbackErr) { console.error('Rollback error:', rollbackErr); }
    }
    process.exitCode = 1;
    console.error('Fatal error:', err);
  } finally {
    if (client) client.release();
    await pool.end();
  }
}

main();
