export type TeachingLesson = { kind?: 'practical' | 'theory'; id: string; group: string; title: string; summary: string; intro: { scenario: string; startingPoint: string[]; outcome: string; }; objectives: string[]; concepts: { title: string; body: string }[]; steps: { title: string; body: string; expected: string; explanation: string; code?: string; lang?: string; filename?: string; }[]; checks: string[]; pitfalls: { symptom: string; cause: string; fix: string }[]; exercise: { task: string; hint: string; answer: string }; refs: { label: string; url: string }[]; demo?: 'http' | 'async' | 'protocol'; interview?: { question: string; answer: string; followUps: string[]; }; production?: { scenario: string; decisions: string[]; failureDrill: string; acceptance: string[]; }; }; export type ReviewItem = { id: string; title: string; prompt: string; checkpoints: string[]; misconception: string; revisit: { lessonId: string; label: string }[]; }; export type ReviewLesson = { kind: 'review'; id: string; group: string; title: string; summary: string; sourceModule: string; intro: { scenario: string; startingPoint: string[]; outcome: string; }; questions: ReviewItem[]; challenges: ReviewItem[]; mastery: { id: string; text: string; evidence: string }[]; }; export type Lesson = TeachingLesson | ReviewLesson; export type Video = { type: 'file' | 'link'; url: string; title?: string; captions?: string; };