...quote (max 20 words), line (L0123).
- If nothing fits: "codes": [].
- Output MUST be exactly ONE JSON object and nothing else.

JSON schema:
{{"block_id":"{block_id}","codes":[{{"code":"...","quote":"...","line":"L0123"}}]}}

TEXT BLOCK:
{numbered}
""".strip()

    resp, _ = call_ollama_generate(
        args.ollama_url, args.model, block_prompt, args.timeout,
        context=ctx, num_ctx=args.num_ct...