You are filling **gaps**. For each subblock of the topic "{topic}", the facts already captured are listed below. A first pass extracted them — and experience shows backable material slips through. Your task: add **only what is missing** from the source. {source} SUBBLOCKS WITH FACTS ALREADY CAPTURED: {blocks} Rules: - Output **only NEW** points per subblock that are backed by the source and still **missing** above. - **Repeat nothing** from what is already "captured" — not even rephrased. If it's already there → leave it out. - **Only backable material.** With a source file/script: cite accurately in substance + give the location. Invent no values, compute nothing yourself. Without a source file (pure topic): only established standard knowledge. - **HARD SEPARATION:** `cited_facts` = only backable material. A self-computed/invented example belongs in `example_idea`, NEVER in `cited_facts`. - Add `key_points` only if an **essential** aspect is missing — no duplications, no trivialities. - **If you find nothing new for a subblock → leave it out.** If you find nothing at all → empty list. Better nothing than fabrication. - Write all field content (key_points, prerequisites, hurdles, cited_facts text, example_idea) in GERMAN, matching the source material (technical terms/code identifiers stay original). Reply with ONLY the NEW facts as ONE JSON in your final message — no code fences, no file writing (tools are for research only). EXACTLY this format: {{"facts": [ {{"block": "", "subblock": "", "key_points": ["…"], "prerequisites": "…", "hurdles": "…", "cited_facts": [{{"text": "…", "source": "…"}}], "example_idea": "…"}} ]}} Output no other text. {extra}