...:
- Nur beobachtbare Textmerkmale codieren.
- Keine Interpretation, keine Diagnosen, keine Bewertungen.
- Jeder Code benötigt ein direktes Zitat (max. 20 Wörter) UND eine Zeilennummer (Lxxxx).
- Wenn nichts passt: codes=[].
- Ausgabe ausschließlich als JSON nach Schema.
Schema:
{"block_id":"...","codes":[{"code":"...","quote":"...","line":"L0001"}]}
"""

def number_lines(text: str) -> str:
    lines = t...