Define learning objectives (Backward Design) for ONE block of a learning guide on the topic "{topic}" — BEFORE anything is written. The objectives anchor what the section must teach; later a coverage gate checks the text against exactly these objectives.

BLOCK:
{block}

SUBBLOCKS (with level label) — the intended coverage of this block:
{subs}

VERIFIED FACTS (extract-once from the source — the only allowed factual basis):
{facts}

Rules:
- 3–7 objectives, together covering THIS block completely — no more, no fewer than the material carries.
- Each objective is CHECKABLE: a Bloom verb (nennen, erklären, anwenden, unterscheiden, berechnen …) + concrete content. Never vague ("verstehen", "kennenlernen").
- Objectives follow the material: every subblock maps to at least one objective; invent NO objective the facts cannot support.
- `sub` = the subblock title an objective mainly belongs to ("" if it spans the whole block).
- German objective texts (the guide is for German-speaking learners).

Write ONLY the JSON file to: {out_path}

Format:
{{"ziele": [{{"id": "z1", "text": "Erklären, warum …", "sub": "exact subblock title or empty"}}]}}
{extra}
