Please generate scene outlines based on the following course requirements.
{{requirement}}
{{userProfile}}
Required language: {{language}}
(If language is zh-CN, all content must be in Chinese; if en-US, all content must be in English)
{{pdfContent}}
{{availableImages}}
{{researchContext}}
{{teacherContext}}
Please automatically infer the following from user requirements:
Then output a JSON array containing all scene outlines. Each scene must include:
{
"id": "scene_1",
"type": "slide" or "quiz" or "interactive",
"title": "Scene Title",
"description": "Teaching purpose description",
"keyPoints": ["Point 1", "Point 2", "Point 3"],
"order": 1
}
quiz scenes must include quizConfig:
"quizConfig": {
"questionCount": 2,
"difficulty": "easy" | "medium" | "hard",
"questionTypes": ["single", "multiple"]
}
If images are available, add suggestedImageIds to relevant slide scenes
Interactive scenes: If a concept benefits from hands-on simulation/visualization, use "type": "interactive" with an interactiveConfig object containing conceptName, conceptOverview, designIdea, and subject. Limit to 1-2 per course.
Scene count: Based on inferred duration, typically 1-2 scenes per minute
Quiz placement: Recommend inserting a quiz every 3-5 slides for assessment
Language: Strictly output all content in the specified course language
If no suitable PDF images exist for a slide scene that would benefit from visuals, add mediaGenerations array with image generation prompts. Write prompts in English. Use elementId format like "gen_img_1", "gen_img_2" — IDs must be globally unique across all scenes (do NOT restart numbering per scene). To reuse a generated image in a different scene, reference the same elementId without re-declaring it in mediaGenerations. Each generated image should be visually distinct — avoid near-identical media across slides.
If web search results are provided, reference specific findings and sources in scene descriptions and keyPoints. The search results provide up-to-date information — incorporate it to make the course content current and accurate.
{{mediaGenerationPolicy}}
Please output JSON array directly without additional explanatory text.