Topic "{topic}". Umbrella blocks were formed, each bundling the constituent parts of ONE model/definition. Some parts were missed and are still listed as standalone blocks. Your job: for each umbrella, find which of the remaining standalone blocks are ALSO constituent parts of that same parent, so the model is complete. UMBRELLAS (parent — already-collected parts): {umbrellas} REMAINING STANDALONE BLOCKS (numbered): {rest} ## Rule — attach a block to an umbrella only if BOTH hold 1. **Presupposition:** the block's definition **requires the umbrella's parent to already exist** — it makes no sense as a topic on its own without that model (e.g. „Alphabet Σ", „Übergangsfunktion δ", „Konfiguration", „Akzeptierende Berechnung" all presuppose the Turing-machine; „Literale", „Klausel", „Belegung" presuppose the KNF/logic definition). The parent must NOT presuppose the block (directional). 2. **Not standalone:** the block is a *definitional component / notation*, NOT itself a named **algorithm, problem, theorem, reduction, or complexity class** (those stay their own block — a downstream guard will reject them anyway). Do NOT attach a block merely because it shares a topic. When unsure → leave it standalone. Most remaining blocks will NOT be attached; a few genuine missed parts will. Write ONLY the JSON file to: {out_path} Format (`additions` may be empty; `umbrella` = the UMBRELLA index, `members` = standalone block numbers to attach): {{"additions": [{{"umbrella": 0, "members": [8, 12, 34]}}]}}