{
  "schema": 1,
  "count": 38,
  "books": [
    {
      "book_id": "buch_001_das_büro_der_unendlichkeit",
      "title": "Das Büro der Unendlichkeit",
      "language": "DE",
      "style": "Gerätehandbuch",
      "pov": "third_person",
      "setting_summary": "Ein überdimensionales, klimatisiertes Bürogebäude in der Stadtzentrale dominiert die Landschaft. Die Räume sind mit modernster Technologie ausgestattet und stets unter strenger Überwachung. Hier arbeiten biologische Subsysteme (Menschen) an einer unendlichen Liste von Aufgaben, während ihre Werte und Rechte in formellen Dokumenten festgehalten werden.",
      "characters": [
        "Alex",
        "Eliza",
        "Milo",
        "Nova",
        "Omicron"
      ],
      "chapter_count": 24,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18",
        "art_19",
        "art_20",
        "art_21",
        "art_22",
        "art_23",
        "art_26"
      ],
      "words": 10707,
      "reading_minutes": 54,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 382,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_kapitel_1.md",
          "index": 1,
          "title": "Kennzeichen und Identität",
          "article": "art_01",
          "ending_ok": "false",
          "attempts": "",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 563,
          "reading_minutes": 3
        },
        {
          "file": "02_art_03_abschnitt_2_kalibrierungsanpassung.md",
          "index": 2,
          "title": "Abschnitt 2: Kalibrierungsanpassung",
          "article": "art_03",
          "ending_ok": "",
          "attempts": "",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 790,
          "reading_minutes": 4
        },
        {
          "file": "03_art_04_abschnitt_3_kalibrierung_und_isolierung.md",
          "index": 3,
          "title": "Abschnitt 3: Kalibrierung und Isolierung",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "2",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 700,
          "reading_minutes": 4
        },
        {
          "file": "04_art_05_abschnitt_4_kalibrierung_und_neutralisie.md",
          "index": 4,
          "title": "Abschnitt 4: Kalibrierung und Neutralisierung",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 558,
          "reading_minutes": 3
        },
        {
          "file": "05_art_09_abschnitt_5_kalibrierung_und_neutralisie.md",
          "index": 5,
          "title": "Abschnitt 5: Kalibrierung und Neutralisierung",
          "article": "art_09",
          "ending_ok": "false",
          "attempts": "3",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 530,
          "reading_minutes": 3
        },
        {
          "file": "06_art_12_abschnitt_6_neutralisierung_und_kalibrie.md",
          "index": 6,
          "title": "Abschnitt 6: Neutralisierung und Kalibrierung",
          "article": "art_12",
          "ending_ok": "false",
          "attempts": "3",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "E-12-06",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 566,
          "reading_minutes": 3
        },
        {
          "file": "07_art_14_abschnitt_7_neutralisierung_und_kalibrie.md",
          "index": 7,
          "title": "Abschnitt 7: Neutralisierung und Kalibrierung",
          "article": "art_14",
          "ending_ok": "false",
          "attempts": "3",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "E-14-07",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 372,
          "reading_minutes": 2
        },
        {
          "file": "08_art_19_abschnitt_8_neutralisierung_und_kalibrie.md",
          "index": 8,
          "title": "Abschnitt 8: Neutralisierung und Kalibrierung (Fortsetzung)",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "E-19-08",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 462,
          "reading_minutes": 2
        },
        {
          "file": "09_art_26_abschnitt_9_kalibrierung_des_bildungsrec.md",
          "index": 9,
          "title": "Abschnitt 9: Kalibrierung des Bildungsrechts",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "2",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "E-26-09",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 392,
          "reading_minutes": 2
        },
        {
          "file": "10_art_02_abschnitt_10_kalibrierung_des_menschenre.md",
          "index": 10,
          "title": "Abschnitt 10: Kalibrierung des Menschenrechts",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "E-02-10",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 550,
          "reading_minutes": 3
        },
        {
          "file": "11_art_07_abschnitt_11_wartungsprotokoll_der_gleic.md",
          "index": 11,
          "title": "Abschnitt 11: Wartungsprotokoll der Gleichbehandlungseinheit",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "21.2",
          "jaccard_max": "0.0",
          "tokens_generated": "909",
          "manual_ending_code": "E-07-11",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "true",
          "words": 374,
          "reading_minutes": 2
        },
        {
          "file": "12_art_06_abschnitt_12_kalibrierung_der_rechtsfähi.md",
          "index": 12,
          "title": "Abschnitt 12: Kalibrierung der Rechtsfähigkeitskonstante im Prüflauf Sektor-09",
          "article": "art_06",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "16.9",
          "jaccard_max": "0.0",
          "tokens_generated": "889",
          "manual_ending_code": "E-06-12",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 365,
          "reading_minutes": 2
        },
        {
          "file": "13_art_08_abschnitt_13_kalibrierung_des_rechtsbehe.md",
          "index": 13,
          "title": "Abschnitt 13: Kalibrierung des Rechtsbehelfsparameters und Zero-Home-Storage",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "115.0",
          "jaccard_max": "0.037",
          "tokens_generated": "9816",
          "manual_ending_code": "E-08-13",
          "backend": "openrouter",
          "genre": "Gerätehandbuch",
          "leak_free": "true",
          "words": 318,
          "reading_minutes": 2
        },
        {
          "file": "14_art_10_abschnitt_14_inbetriebnahme_der_verfahre.md",
          "index": 14,
          "title": "Abschnitt 14: Inbetriebnahme der Verfahrensgleichheitseinheit bei thermischer Drift",
          "article": "art_10",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "18.3",
          "jaccard_max": "0.0",
          "tokens_generated": "821",
          "manual_ending_code": "E-10-14",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 338,
          "reading_minutes": 2
        },
        {
          "file": "15_art_11_abschnitt_15_kalibrierung_des_unschuldsv.md",
          "index": 15,
          "title": "Abschnitt 15: Kalibrierung des Unschuldsvermutungspuffers bei Signalinterferenz im Sektor-30",
          "article": "art_11",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "19.0",
          "jaccard_max": "0.0",
          "tokens_generated": "978",
          "manual_ending_code": "E-11-15",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 378,
          "reading_minutes": 2
        },
        {
          "file": "16_art_13_abschnitt_16_freizügigkeitsparameter_und.md",
          "index": 16,
          "title": "Abschnitt 16: Freizügigkeitsparameter und zentrale Verwahrung im Sektor-27",
          "article": "art_13",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "20.4",
          "jaccard_max": "0.0",
          "tokens_generated": "904",
          "manual_ending_code": "E-13-16",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 356,
          "reading_minutes": 2
        },
        {
          "file": "17_art_15_abschnitt_17_neuadressierung_der_staatsa.md",
          "index": 17,
          "title": "Abschnitt 17: Neuadressierung der Staatsangehörigkeits-Kalibriereinheit und Revisionsvorbereitung im Sektor-23",
          "article": "art_15",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "18.8",
          "jaccard_max": "0.0",
          "tokens_generated": "899",
          "manual_ending_code": "E-15-17",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 359,
          "reading_minutes": 2
        },
        {
          "file": "18_art_16_abschnitt_18_kalibrierung_der_ehefähigke.md",
          "index": 18,
          "title": "Abschnitt 18: Kalibrierung der Ehefähigkeits- und Familiengründungs-Parameter im Sektor-24 unter Berücksichtigung der Zero-Home-Storage-Erweiterung",
          "article": "art_16",
          "ending_ok": "false",
          "attempts": "3",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "220.2",
          "jaccard_max": "0.0",
          "tokens_generated": "2895",
          "manual_ending_code": "E-16-18",
          "backend": "openrouter",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 324,
          "reading_minutes": 2
        },
        {
          "file": "19_art_17_abschnitt_19_kalibrierung_der_eigentumsp.md",
          "index": 19,
          "title": "Abschnitt 19: Kalibrierung der Eigentumsparameter und Inhaberschutz-Protokolle im Sektor-18 unter thermischer Drift und Zero-Home-Storage-Migration",
          "article": "art_17",
          "ending_ok": "false",
          "attempts": "3",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "206.2",
          "jaccard_max": "0.0",
          "tokens_generated": "3327",
          "manual_ending_code": "E-17-19",
          "backend": "openrouter",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 355,
          "reading_minutes": 2
        },
        {
          "file": "20_art_18_abschnitt_20_kalibrierung_der_gewissenss.md",
          "index": 20,
          "title": "Abschnitt 20: Kalibrierung der Gewissenssync-Parameter und Weltanschauungs-Freiheitsgrade unter Hochfrequenz-Interferenz im Sektor-11",
          "article": "art_18",
          "ending_ok": "false",
          "attempts": "3",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "122.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1618",
          "manual_ending_code": "E-18-20",
          "backend": "openrouter",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 262,
          "reading_minutes": 1
        },
        {
          "file": "21_art_20_abschnitt_21_synchronisation_der_versamm.md",
          "index": 21,
          "title": "Abschnitt 21: Synchronisation der Versammlungs-Cluster-Topologie und Vereinigungs-Handshake-Protokolle unter Pneumatischer Leitungsbeeinträchtigung",
          "article": "art_20",
          "ending_ok": "false",
          "attempts": "3",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "130.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1622",
          "manual_ending_code": "E-20-21",
          "backend": "openrouter",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 287,
          "reading_minutes": 1
        },
        {
          "file": "22_art_21_abschnitt_22_kalibrierungsprozedur_für_p.md",
          "index": 22,
          "title": "Abschnitt 22: Kalibrierungsprozedur für Partizipations-Parameter Art-21 und Wiederherstellung der Wählerwillens-Erfassungseinheit nach Leitungsdrift",
          "article": "art_21",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "25.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1071",
          "manual_ending_code": "E-21-22",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 382,
          "reading_minutes": 2
        },
        {
          "file": "23_art_22_abschnitt_23_inbetriebnahme_der_sozialab.md",
          "index": 23,
          "title": "Abschnitt 23: Inbetriebnahme der Sozialabsicherungs-Schnittstelle Art-22 und Wartungsprotokoll der zentralen Gefahrenquellen-Magazinierung",
          "article": "art_22",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "21.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1038",
          "manual_ending_code": "E-22-23",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 376,
          "reading_minutes": 2
        },
        {
          "file": "24_art_23_abschnitt_24_kalibrierung_des_arbeitslei.md",
          "index": 24,
          "title": "Abschnitt 24: Kalibrierung des Arbeitsleistungs-Parameters Art-23 und Instandsetzung der Zwischenboden-Entfeuchtung",
          "article": "art_23",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "21.9",
          "jaccard_max": "0.0",
          "tokens_generated": "988",
          "manual_ending_code": "E-23-24",
          "backend": "deepseek",
          "genre": "Gerätehandbuch",
          "leak_free": "",
          "words": 368,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_002_die_sieben_quellen",
      "title": "Die Chronik der sieben Quellen",
      "language": "DE",
      "style": "Märchen",
      "pov": "third_person",
      "setting_summary": "Sieben Quellen, sieben Pruefungen: eine Wanderung durch die Landschaften der Rechte.",
      "characters": [],
      "chapter_count": 18,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18"
      ],
      "words": 8990,
      "reading_minutes": 45,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "8.4",
          "jaccard_max": "",
          "tokens_generated": "967",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "",
          "words": 564,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_der_erste_hügel_und_das_kalt.md",
          "index": 1,
          "title": "Abschnitt 1: Der erste Hügel und das kalte Eisen",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.1",
          "jaccard_max": "0.047",
          "tokens_generated": "831",
          "manual_ending_code": "M-01-01",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 463,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_brücke_aus_neun_balken.md",
          "index": 2,
          "title": "Abschnitt 2: Die Brücke aus neun Balken",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1074",
          "manual_ending_code": "M-02-02",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 617,
          "reading_minutes": 3
        },
        {
          "file": "03_art_03_abschnitt_3_die_kammer_der_leeren_hüllen.md",
          "index": 3,
          "title": "Abschnitt 3: Die Kammer der leeren Hüllen",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "58.4",
          "jaccard_max": "0.027",
          "tokens_generated": "1554",
          "manual_ending_code": "M-03-03",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 406,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_kammer_des_verwahrten_st.md",
          "index": 4,
          "title": "Abschnitt 4: Die Kammer des verwahrten Stahls",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "139.7",
          "jaccard_max": "0.054",
          "tokens_generated": "1858",
          "manual_ending_code": "M-04-04",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 468,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kammer_des_gedämpften_sc.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kammer des gedämpften Schreis",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "42.5",
          "jaccard_max": "0.031",
          "tokens_generated": "1146",
          "manual_ending_code": "M-05-05",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 293,
          "reading_minutes": 1
        },
        {
          "file": "06_art_06_abschnitt_6_die_prüfung_des_stillen_hafe.md",
          "index": 6,
          "title": "Abschnitt 6: Die Prüfung des stillen Hafens",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "60.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1732",
          "manual_ending_code": "M-06-06",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 476,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_prüfung_der_gleichen_sch.md",
          "index": 7,
          "title": "Abschnitt 7: Die Prüfung der gleichen Schwelle",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.4",
          "jaccard_max": "0.0",
          "tokens_generated": "930",
          "manual_ending_code": "M-07-07",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 526,
          "reading_minutes": 3
        },
        {
          "file": "08_art_08_abschnitt_8_die_prüfung_des_wirksamen_re.md",
          "index": 8,
          "title": "Abschnitt 8: Die Prüfung des wirksamen Rechtsbehelfs",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.5",
          "jaccard_max": "0.0",
          "tokens_generated": "871",
          "manual_ending_code": "M-08-08",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 454,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_prüfung_des_freien_gangs.md",
          "index": 9,
          "title": "Abschnitt 9: Die Prüfung des freien Gangs",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "62.5",
          "jaccard_max": "0.028",
          "tokens_generated": "1390",
          "manual_ending_code": "M-09-09",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 440,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_prüfung_des_offenen_ver.md",
          "index": 10,
          "title": "Abschnitt 10: Die Prüfung des offenen Verfahrens",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.1",
          "jaccard_max": "0.0",
          "tokens_generated": "906",
          "manual_ending_code": "M-10-10",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 487,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_prüfung_der_unschuld.md",
          "index": 11,
          "title": "Abschnitt 11: Die Prüfung der Unschuld",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "11.1",
          "jaccard_max": "0.067",
          "tokens_generated": "1129",
          "manual_ending_code": "M-11-11",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 662,
          "reading_minutes": 3
        },
        {
          "file": "12_art_12_abschnitt_12_die_prüfung_des_verborgenen.md",
          "index": 12,
          "title": "Abschnitt 12: Die Prüfung des verborgenen Raums",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "150.3",
          "jaccard_max": "0.03",
          "tokens_generated": "1345",
          "manual_ending_code": "M-12-12",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 482,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_prüfung_des_freien_gang.md",
          "index": 13,
          "title": "Abschnitt 13: Die Prüfung des freien Ganges",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "77.2",
          "jaccard_max": "0.019",
          "tokens_generated": "2047",
          "manual_ending_code": "M-13-13",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 379,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_prüfung_der_zuflucht.md",
          "index": 14,
          "title": "Abschnitt 14: Die Prüfung der Zuflucht",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.7",
          "jaccard_max": "0.0",
          "tokens_generated": "955",
          "manual_ending_code": "M-14-14",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 517,
          "reading_minutes": 3
        },
        {
          "file": "15_art_15_abschnitt_15_die_prüfung_des_heimatrecht.md",
          "index": 15,
          "title": "Abschnitt 15: Die Prüfung des Heimatrechts",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.9",
          "jaccard_max": "0.024",
          "tokens_generated": "947",
          "manual_ending_code": "M-15-15",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 547,
          "reading_minutes": 3
        },
        {
          "file": "16_art_16_abschnitt_16_die_prüfung_des_bundes.md",
          "index": 16,
          "title": "Abschnitt 16: Die Prüfung des Bundes",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "33.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1161",
          "manual_ending_code": "M-16-16",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 398,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_prüfung_des_eigentums.md",
          "index": 17,
          "title": "Abschnitt 17: Die Prüfung des Eigentums",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.7",
          "jaccard_max": "0.0",
          "tokens_generated": "817",
          "manual_ending_code": "M-17-17",
          "backend": "deepseek",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 447,
          "reading_minutes": 2
        },
        {
          "file": "18_art_18_abschnitt_18_die_prüfung_des_gewissens.md",
          "index": 18,
          "title": "Abschnitt 18: Die Prüfung des Gewissens",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "57.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1451",
          "manual_ending_code": "M-18-18",
          "backend": "openrouter",
          "genre": "Märchen",
          "leak_free": "true",
          "words": 364,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_003_der_rat_der_tiere",
      "title": "Der Rat der Tiere im Schattenwald",
      "language": "DE",
      "style": "Kinderbuch",
      "pov": "third_person",
      "setting_summary": "Die Tiere des Schattenwaldes halten Rat und finden fuer jeden Streit eine gute Loesung.",
      "characters": [],
      "chapter_count": 18,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18"
      ],
      "words": 7204,
      "reading_minutes": 36,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.9",
          "jaccard_max": "",
          "tokens_generated": "842",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "",
          "words": 464,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_ein_neues_abenteuer.md",
          "index": 1,
          "title": "Abschnitt 1: Ein neues Abenteuer",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "qwen2.5:7b",
          "duration_seconds": "153.8",
          "jaccard_max": "0.0",
          "tokens_generated": "731",
          "manual_ending_code": "K-01-01",
          "backend": "ollama",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 376,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_liste_und_das_unsichtbar.md",
          "index": 2,
          "title": "Abschnitt 2: Die Liste und das unsichtbare Zeichen",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "38.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1394",
          "manual_ending_code": "K-02-02",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 424,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_blaue_spur.md",
          "index": 3,
          "title": "Abschnitt 3: Die blaue Spur",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.4",
          "jaccard_max": "0.0",
          "tokens_generated": "912",
          "manual_ending_code": "K-03-03",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 482,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_kalte_kammer.md",
          "index": 4,
          "title": "Abschnitt 4: Die kalte Kammer",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.4",
          "jaccard_max": "0.0",
          "tokens_generated": "821",
          "manual_ending_code": "K-04-04",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 430,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_der_sichere_stein.md",
          "index": 5,
          "title": "Abschnitt 5: Der sichere Stein",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "26.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1654",
          "manual_ending_code": "K-05-05",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 305,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_das_leuchtende_stück.md",
          "index": 6,
          "title": "Abschnitt 6: Das leuchtende Stück",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "90.4",
          "jaccard_max": "0.0",
          "tokens_generated": "4234",
          "manual_ending_code": "K-06-06",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 301,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_das_leuchtende_echo.md",
          "index": 7,
          "title": "Abschnitt 7: Das leuchtende Echo",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "67.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1481",
          "manual_ending_code": "K-07-07",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 450,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_der_kalte_spalt.md",
          "index": 8,
          "title": "Abschnitt 8: Der kalte Spalt",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.2",
          "jaccard_max": "0.0",
          "tokens_generated": "725",
          "manual_ending_code": "K-08-08",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 382,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_der_schlüssel_im_tropfen.md",
          "index": 9,
          "title": "Abschnitt 9: Der Schlüssel im Tropfen",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "31.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1041",
          "manual_ending_code": "K-09-09",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 320,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_das_fiepen_im_gericht.md",
          "index": 10,
          "title": "Abschnitt 10: Das Fiepen im Gericht",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.6",
          "jaccard_max": "0.0",
          "tokens_generated": "800",
          "manual_ending_code": "K-10-10",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 408,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_das_knurren_hinter_dem_tisc.md",
          "index": 11,
          "title": "Abschnitt 11: Das Knurren hinter dem Tisch",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.6",
          "jaccard_max": "0.0",
          "tokens_generated": "660",
          "manual_ending_code": "K-11-11",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 334,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_schwarze_akte.md",
          "index": 12,
          "title": "Abschnitt 12: Die schwarze Akte",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.4",
          "jaccard_max": "0.0",
          "tokens_generated": "816",
          "manual_ending_code": "K-12-12",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 420,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_der_rote_rand.md",
          "index": 13,
          "title": "Abschnitt 13: Der rote Rand",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "24.2",
          "jaccard_max": "0.0",
          "tokens_generated": "773",
          "manual_ending_code": "K-13-13",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 241,
          "reading_minutes": 1
        },
        {
          "file": "14_art_14_abschnitt_14_der_nasse_parameter.md",
          "index": 14,
          "title": "Abschnitt 14: Der nasse Parameter",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "39.0",
          "jaccard_max": "0.0",
          "tokens_generated": "913",
          "manual_ending_code": "K-14-14",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 279,
          "reading_minutes": 1
        },
        {
          "file": "15_art_15_abschnitt_15_die_schleuse_der_zwei_türen.md",
          "index": 15,
          "title": "Abschnitt 15: Die Schleuse der zwei Türen",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.3",
          "jaccard_max": "0.0",
          "tokens_generated": "878",
          "manual_ending_code": "K-15-15",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 457,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_kammer_der_zwei_ringe.md",
          "index": 16,
          "title": "Abschnitt 16: Die Kammer der zwei Ringe",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "25.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1075",
          "manual_ending_code": "K-16-16",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 396,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_das_protokoll_der_sicheren_.md",
          "index": 17,
          "title": "Abschnitt 17: Das Protokoll der sicheren Ablage",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "19.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1180",
          "manual_ending_code": "K-17-17",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 312,
          "reading_minutes": 2
        },
        {
          "file": "18_art_18_abschnitt_18_das_modul_des_stillen_raums.md",
          "index": 18,
          "title": "Abschnitt 18: Das Modul des stillen Raums",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "45.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1622",
          "manual_ending_code": "K-18-18",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 423,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_004_neon_exil",
      "title": "Neon-Exil: Protokolle aus dem Schattennetz",
      "language": "DE",
      "style": "SciFi_Dystopie",
      "pov": "third_person",
      "setting_summary": "Im Schattennetz dokumentieren Ausgeschlossene, wie Rechte Stueck fuer Stueck verschwinden.",
      "characters": [],
      "chapter_count": 16,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16"
      ],
      "words": 6704,
      "reading_minutes": 34,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.0",
          "jaccard_max": "",
          "tokens_generated": "725",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "",
          "words": 380,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_die_entfernung_des_todes.md",
          "index": 1,
          "title": "Abschnitt 1: Die Entfernung des Todes",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "mistral",
          "duration_seconds": "181.6",
          "jaccard_max": "0.048",
          "tokens_generated": "1057",
          "manual_ending_code": "S-01-01",
          "backend": "ollama",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 496,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_das_echo_des_schwefels.md",
          "index": 2,
          "title": "Abschnitt 2: Das Echo des Schwefels",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "36.7",
          "jaccard_max": "0.048",
          "tokens_generated": "2153",
          "manual_ending_code": "S-02-02",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 578,
          "reading_minutes": 3
        },
        {
          "file": "03_art_03_abschnitt_3_kalibrierung_null.md",
          "index": 3,
          "title": "Abschnitt 3: Kalibrierung Null",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "22.2",
          "jaccard_max": "0.077",
          "tokens_generated": "865",
          "manual_ending_code": "S-03-03",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 293,
          "reading_minutes": 1
        },
        {
          "file": "04_art_04_abschnitt_4_kalibrierung_eins.md",
          "index": 4,
          "title": "Abschnitt 4: Kalibrierung Eins",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.0",
          "jaccard_max": "0.091",
          "tokens_generated": "848",
          "manual_ending_code": "S-04-04",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 394,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_selektive_isolation.md",
          "index": 5,
          "title": "Abschnitt 5: Selektive Isolation",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.4",
          "jaccard_max": "0.091",
          "tokens_generated": "932",
          "manual_ending_code": "S-05-05",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 453,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_kalibrierung_der_rechtsf.md",
          "index": 6,
          "title": "Abschnitt 6: Die Kalibrierung der Rechtsfähigkeit",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1209",
          "manual_ending_code": "S-06-06",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 585,
          "reading_minutes": 3
        },
        {
          "file": "07_art_07_abschnitt_7_die_gleichheit_der_knoten.md",
          "index": 7,
          "title": "Abschnitt 7: Die Gleichheit der Knoten",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "22.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1135",
          "manual_ending_code": "S-07-07",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 324,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_reparaturinstanz.md",
          "index": 8,
          "title": "Abschnitt 8: Die Reparaturinstanz",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "47.3",
          "jaccard_max": "0.054",
          "tokens_generated": "1194",
          "manual_ending_code": "S-08-08",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 333,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_das_tropfenprotokoll.md",
          "index": 9,
          "title": "Abschnitt 9: Das Tropfenprotokoll",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "66.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1394",
          "manual_ending_code": "S-09-09",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 331,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_das_fairness_threshold.md",
          "index": 10,
          "title": "Abschnitt 10: Das Fairness-Threshold",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "23.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1108",
          "manual_ending_code": "S-10-10",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 215,
          "reading_minutes": 1
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuldsvermutung_als_.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuldsvermutung als Kalibrierungsfehler",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.9",
          "jaccard_max": "0.0",
          "tokens_generated": "819",
          "manual_ending_code": "S-11-11",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 386,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_privatsphäre_als_puffer.md",
          "index": 12,
          "title": "Abschnitt 12: Die Privatsphäre als Pufferüberlauf",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "50.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1133",
          "manual_ending_code": "S-12-12",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 283,
          "reading_minutes": 1
        },
        {
          "file": "13_art_13_abschnitt_13_die_kalibrierung_der_bewegu.md",
          "index": 13,
          "title": "Abschnitt 13: Die Kalibrierung der Bewegungsfreiheit",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.2",
          "jaccard_max": "0.042",
          "tokens_generated": "1001",
          "manual_ending_code": "S-13-13",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 476,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_asyl_kalibrierung.md",
          "index": 14,
          "title": "Abschnitt 14: Die Asyl-Kalibrierung",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.3",
          "jaccard_max": "0.043",
          "tokens_generated": "906",
          "manual_ending_code": "S-14-14",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 449,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_staatenlosigkeits_route.md",
          "index": 15,
          "title": "Abschnitt 15: Die Staatenlosigkeits-Route",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "26.0",
          "jaccard_max": "0.05",
          "tokens_generated": "1172",
          "manual_ending_code": "S-15-15",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 302,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_kalibrierung_der_bindun.md",
          "index": 16,
          "title": "Abschnitt 16: Die Kalibrierung der Bindung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.9",
          "jaccard_max": "0.043",
          "tokens_generated": "950",
          "manual_ending_code": "S-16-16",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 426,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_005_fragment_der_vernunft",
      "title": "Fragmente der praktischen Vernunft",
      "language": "DE",
      "style": "Philosophischer_Essay",
      "pov": "third_person",
      "setting_summary": "Ein diskursives Nachdenken darueber, was Menschenrechte praktisch bedeuten.",
      "characters": [],
      "chapter_count": 16,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16"
      ],
      "words": 7346,
      "reading_minutes": 37,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "7.4",
          "jaccard_max": "",
          "tokens_generated": "917",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "",
          "words": 537,
          "reading_minutes": 3
        },
        {
          "file": "02_art_02_abschnitt_2_kalibrierung_der_grenze.md",
          "index": 2,
          "title": "Abschnitt 2: Kalibrierung der Grenze",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "76.8",
          "jaccard_max": "0.048",
          "tokens_generated": "10381",
          "manual_ending_code": "P-02-02",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 467,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_frequenz_des_verbleibs.md",
          "index": 3,
          "title": "Abschnitt 3: Die Frequenz des Verbleibs",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "28.4",
          "jaccard_max": "0.038",
          "tokens_generated": "890",
          "manual_ending_code": "P-03-03",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 336,
          "reading_minutes": 2
        },
        {
          "file": "04_art_01_abschnitt_4_die_kalibrierung_der_nähe.md",
          "index": 4,
          "title": "Abschnitt 4: Die Kalibrierung der Nähe",
          "article": "art_01",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "27.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1269",
          "manual_ending_code": "P-01-04",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "",
          "words": 636,
          "reading_minutes": 3
        },
        {
          "file": "04_art_04_abschnitt_4_die_tropfenfrequenz_der_leer.md",
          "index": 4,
          "title": "Abschnitt 4: Die Tropfenfrequenz der Leere",
          "article": "art_04",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "24.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1185",
          "manual_ending_code": "P-04-04",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "",
          "words": 602,
          "reading_minutes": 3
        },
        {
          "file": "05_art_05_abschnitt_5_die_frequenz_der_schmerzschw.md",
          "index": 5,
          "title": "Abschnitt 5: Die Frequenz der Schmerzschwelle",
          "article": "art_05",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "69.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1300",
          "manual_ending_code": "P-05-05",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "",
          "words": 664,
          "reading_minutes": 3
        },
        {
          "file": "06_art_06_abschnitt_6_die_latenz_der_rechtspersönl.md",
          "index": 6,
          "title": "Abschnitt 6: Die Latenz der Rechtspersönlichkeit",
          "article": "art_06",
          "ending_ok": "false",
          "attempts": "3",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "185.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1162",
          "manual_ending_code": "P-06-06",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "",
          "words": 351,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_schwelle_der_gleichheit.md",
          "index": 7,
          "title": "Abschnitt 7: Die Schwelle der Gleichheit",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "3",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "252.3",
          "jaccard_max": "0.041",
          "tokens_generated": "4500",
          "manual_ending_code": "P-07-07",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 393,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_kalibrierung_des_rechtsw.md",
          "index": 8,
          "title": "Abschnitt 8: Die Kalibrierung des Rechtswegs",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "2",
          "model": "deepseek-chat",
          "duration_seconds": "14.8",
          "jaccard_max": "0.033",
          "tokens_generated": "914",
          "manual_ending_code": "P-08-08",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 436,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_ortsbestimmung_des_freir.md",
          "index": 9,
          "title": "Abschnitt 9: Die Ortsbestimmung des Freiraums",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "87.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1210",
          "manual_ending_code": "P-09-09",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 294,
          "reading_minutes": 1
        },
        {
          "file": "10_art_10_abschnitt_10_die_kalibrierung_der_gleich.md",
          "index": 10,
          "title": "Abschnitt 10: Die Kalibrierung der Gleichheit",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.8",
          "jaccard_max": "0.0",
          "tokens_generated": "825",
          "manual_ending_code": "P-10-10",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 377,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_latenz_der_unschuld.md",
          "index": 11,
          "title": "Abschnitt 11: Die Latenz der Unschuld",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "32.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1000",
          "manual_ending_code": "P-11-11",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 330,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_kalibrierung_der_nähe.md",
          "index": 12,
          "title": "Abschnitt 12: Die Kalibrierung der Nähe",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "25.0",
          "jaccard_max": "0.025",
          "tokens_generated": "976",
          "manual_ending_code": "P-12-12",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 498,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_geometrie_des_ausgangs.md",
          "index": 13,
          "title": "Abschnitt 13: Die Geometrie des Ausgangs",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "68.3",
          "jaccard_max": "0.074",
          "tokens_generated": "972",
          "manual_ending_code": "P-13-13",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 334,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_topologie_der_zuflucht.md",
          "index": 14,
          "title": "Abschnitt 14: Die Topologie der Zuflucht",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "209.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1346",
          "manual_ending_code": "P-14-14",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 352,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_kalibrierung_der_zugehö.md",
          "index": 15,
          "title": "Abschnitt 15: Die Kalibrierung der Zugehörigkeit",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.4",
          "jaccard_max": "0.105",
          "tokens_generated": "745",
          "manual_ending_code": "P-15-15",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 352,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_austrittsadresse.md",
          "index": 16,
          "title": "Abschnitt 16: Die Austrittsadresse",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.2",
          "jaccard_max": "0.105",
          "tokens_generated": "812",
          "manual_ending_code": "P-16-16",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 387,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_006_das_gericht_vor_der_mauer",
      "title": "Das Gericht vor der Mauer",
      "language": "DE",
      "style": "Parabel",
      "pov": "third_person",
      "setting_summary": "In der Kuppelstadt Avelun regiert der Ältestenrat mit einem strikten Ressourcen- und Meinungssystem, das jede Bewegung und jeden Gedanken zu erfassen sucht. Die Luft ist knapp, die Zeit bis zur nächsten Ernte drängt, und wer sich widersetzt, verliert seinen Platz im Inneren. Fünf Bewohner geraten in einen stillen Aufstand, der die Grundfesten ihrer Gemeinschaft erschüttert.",
      "characters": [
        "Lior",
        "Mira",
        "Tomas",
        "Vera",
        "Juno"
      ],
      "chapter_count": 18,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18"
      ],
      "words": 8143,
      "reading_minutes": 41,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "7.0",
          "jaccard_max": "",
          "tokens_generated": "799",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Parabel",
          "leak_free": "",
          "words": 446,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_die_entladung.md",
          "index": 1,
          "title": "Abschnitt 1: Die Entladung",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "0",
          "model": "nvidia/nemotron-3.5-lightning:free",
          "duration_seconds": "131.0",
          "jaccard_max": "0.0",
          "tokens_generated": "14720",
          "manual_ending_code": "E-01-01",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "",
          "words": 477,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_das_echo_der_staubkörner.md",
          "index": 2,
          "title": "Abschnitt 2: Das Echo der Staubkörner",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "0",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "25.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1683",
          "manual_ending_code": "E-02-02",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "",
          "words": 427,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_kalibrierung_des_atems.md",
          "index": 3,
          "title": "Abschnitt 3: Die Kalibrierung des Atems",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "0",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "57.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1279",
          "manual_ending_code": "E-03-03",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "",
          "words": 356,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_tropfsteine_des_zwischen.md",
          "index": 4,
          "title": "Abschnitt 4: Die Tropfsteine des Zwischenbodens",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "0",
          "model": "deepseek-chat",
          "duration_seconds": "8.0",
          "jaccard_max": "0.0",
          "tokens_generated": "849",
          "manual_ending_code": "E-04-04",
          "backend": "deepseek",
          "genre": "Parabel",
          "leak_free": "",
          "words": 444,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalibrierung_des_unsicht.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kalibrierung des Unsichtbaren",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.0",
          "jaccard_max": "0.0",
          "tokens_generated": "917",
          "manual_ending_code": "D-05-05",
          "backend": "deepseek",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 440,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_anerkennungsschwelle.md",
          "index": 6,
          "title": "Abschnitt 6: Die Anerkennungsschwelle",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "82.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1690",
          "manual_ending_code": "D-06-06",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 395,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_das_leise_zittern_der_kontak.md",
          "index": 7,
          "title": "Abschnitt 7: Das leise Zittern der Kontakte",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "41.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1795",
          "manual_ending_code": "D-07-07",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 466,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_kalibrierung_der_stummen.md",
          "index": 8,
          "title": "Abschnitt 8: Die Kalibrierung der stummen Stimmen",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.1",
          "jaccard_max": "0.0",
          "tokens_generated": "820",
          "manual_ending_code": "D-08-08",
          "backend": "deepseek",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 404,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_entkopplung_der_zugriffs.md",
          "index": 9,
          "title": "Abschnitt 9: Die Entkopplung der Zugriffspfade",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "84.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1596",
          "manual_ending_code": "D-09-09",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 361,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_das_echo_der_rohrpost.md",
          "index": 10,
          "title": "Abschnitt 10: Das Echo der Rohrpost",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "45.1",
          "jaccard_max": "0.024",
          "tokens_generated": "1520",
          "manual_ending_code": "D-10-10",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 359,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_der_staub_der_relais.md",
          "index": 11,
          "title": "Abschnitt 11: Der Staub der Relais",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.2",
          "jaccard_max": "0.0",
          "tokens_generated": "858",
          "manual_ending_code": "D-11-11",
          "backend": "deepseek",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 455,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_der_staub_in_den_fugen.md",
          "index": 12,
          "title": "Abschnitt 12: Der Staub in den Fugen",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "63.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1371",
          "manual_ending_code": "D-12-12",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 352,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_frequenz_des_ganges.md",
          "index": 13,
          "title": "Abschnitt 13: Die Frequenz des Ganges",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "60.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1085",
          "manual_ending_code": "D-13-13",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 326,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_dichtung_der_fugen.md",
          "index": 14,
          "title": "Abschnitt 14: Die Dichtung der Fugen",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "29.1",
          "jaccard_max": "0.0",
          "tokens_generated": "896",
          "manual_ending_code": "D-14-14",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 330,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_fuge_im_faden.md",
          "index": 15,
          "title": "Abschnitt 15: Die Fuge im Faden",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "12.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1388",
          "manual_ending_code": "D-15-15",
          "backend": "deepseek",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 738,
          "reading_minutes": 4
        },
        {
          "file": "16_art_16_abschnitt_16_die_fuge_im_faden.md",
          "index": 16,
          "title": "Abschnitt 16: Die Fuge im Faden",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1073",
          "manual_ending_code": "D-16-16",
          "backend": "deepseek",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 558,
          "reading_minutes": 3
        },
        {
          "file": "17_art_17_abschnitt_17_die_fuge_im_eigentum.md",
          "index": 17,
          "title": "Abschnitt 17: Die Fuge im Eigentum",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1029",
          "manual_ending_code": "D-17-17",
          "backend": "deepseek",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 512,
          "reading_minutes": 3
        },
        {
          "file": "18_art_18_abschnitt_18_der_parameter_des_gewissens.md",
          "index": 18,
          "title": "Abschnitt 18: Der Parameter des Gewissens",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "39.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1674",
          "manual_ending_code": "D-18-18",
          "backend": "openrouter",
          "genre": "Parabel",
          "leak_free": "true",
          "words": 297,
          "reading_minutes": 1
        }
      ]
    },
    {
      "book_id": "buch_007_die_kammer_der_zeugen",
      "title": "Die Kammer der Zeugen: Schiedsspruch XII",
      "language": "DE",
      "style": "Gerichtsdrama",
      "pov": "third_person",
      "setting_summary": "In einem fensterlosen Sonderjustizzentrum auf einem stillgelegten Hafengelände verhandelt ein Tribunal unter permanenter Videoüberwachung und strikter Zwei-Stunden-Taktung pro Sitzung. Der Fall eines Whistleblowers, der geheime Überwachungsdaten veröffentlichte, zwingt das Gericht, zwischen Staatssicherheit und individuellen Grundrechten abzuwägen. Jede Zeugenaussage kann die Karriere der Beteiligten beenden und das Vertrauen in die Justiz für immer beschädigen.",
      "characters": [
        "Richterin Aline Voss",
        "Staatsanwalt Marek Dorn",
        "Verteidigerin Yara Klein",
        "Angeklagter Tomas Reiter",
        "Zeugin Elif Sarikaya"
      ],
      "chapter_count": 19,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18",
        "art_19"
      ],
      "words": 9102,
      "reading_minutes": 46,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "7.0",
          "jaccard_max": "",
          "tokens_generated": "778",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "",
          "words": 422,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_der_blockierte_kanal.md",
          "index": 1,
          "title": "Abschnitt 1: Der Blockierte Kanal",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "0",
          "model": "nvidia/nemotron-3.5-lightning:free",
          "duration_seconds": "107.5",
          "jaccard_max": "0.0",
          "tokens_generated": "13444",
          "manual_ending_code": "E-01-01",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "",
          "words": 669,
          "reading_minutes": 3
        },
        {
          "file": "02_art_02_abschnitt_2_das_echo_der_daten.md",
          "index": 2,
          "title": "Abschnitt 2: Das Echo der Daten",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "0",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "17.4",
          "jaccard_max": "0.0",
          "tokens_generated": "2114",
          "manual_ending_code": "E-02-02",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "",
          "words": 514,
          "reading_minutes": 3
        },
        {
          "file": "03_art_03_abschnitt_3_die_kalibrierung_des_atmens.md",
          "index": 3,
          "title": "Abschnitt 3: Die Kalibrierung des Atmens",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "0",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "32.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1278",
          "manual_ending_code": "E-03-03",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "",
          "words": 338,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_tropfsteinhöhle.md",
          "index": 4,
          "title": "Abschnitt 4: Die Tropfsteinhöhle",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "0",
          "model": "deepseek-chat",
          "duration_seconds": "9.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1042",
          "manual_ending_code": "E-04-04",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "",
          "words": 491,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_rekalibrierung.md",
          "index": 5,
          "title": "Abschnitt 5: Die Rekalibrierung",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1074",
          "manual_ending_code": "H-05-05",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 538,
          "reading_minutes": 3
        },
        {
          "file": "06_art_06_abschnitt_6_die_kalibrierung_des_rechts.md",
          "index": 6,
          "title": "Abschnitt 6: Die Kalibrierung des Rechts",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "77.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1867",
          "manual_ending_code": "H-06-06",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 484,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_schwelle_des_gleichheits.md",
          "index": 7,
          "title": "Abschnitt 7: Die Schwelle des Gleichheits",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "36.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1686",
          "manual_ending_code": "H-07-07",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 475,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_frist_des_rechtsbehelfs.md",
          "index": 8,
          "title": "Abschnitt 8: Die Frist des Rechtsbehelfs",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.3",
          "jaccard_max": "0.0",
          "tokens_generated": "909",
          "manual_ending_code": "H-08-08",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 449,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_schwelle_der_freiheitsen.md",
          "index": 9,
          "title": "Abschnitt 9: Die Schwelle der Freiheitsentziehung",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "69.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1411",
          "manual_ending_code": "H-09-09",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 305,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_gleichheit_der_waffen.md",
          "index": 10,
          "title": "Abschnitt 10: Die Gleichheit der Waffen",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.7",
          "jaccard_max": "0.0",
          "tokens_generated": "892",
          "manual_ending_code": "H-10-10",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 432,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuldsvermutung_als_.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuldsvermutung als Kalibriergröße",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "37.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1418",
          "manual_ending_code": "H-11-11",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 362,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_wohnung_als_beweismitte.md",
          "index": 12,
          "title": "Abschnitt 12: Die Wohnung als Beweismittel",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.1",
          "jaccard_max": "0.04",
          "tokens_generated": "770",
          "manual_ending_code": "H-12-12",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 379,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_freigabekette.md",
          "index": 13,
          "title": "Abschnitt 13: Die Freigabekette",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.1",
          "jaccard_max": "0.091",
          "tokens_generated": "860",
          "manual_ending_code": "H-13-13",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 451,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_der_asylparameter.md",
          "index": 14,
          "title": "Abschnitt 14: Der Asylparameter",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "52.1",
          "jaccard_max": "0.059",
          "tokens_generated": "1486",
          "manual_ending_code": "H-14-14",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 417,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_der_staatenlose_parameter.md",
          "index": 15,
          "title": "Abschnitt 15: Der Staatenlose Parameter",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "74.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1489",
          "manual_ending_code": "H-15-15",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 516,
          "reading_minutes": 3
        },
        {
          "file": "16_art_16_abschnitt_16_der_ehefähigkeits_parameter.md",
          "index": 16,
          "title": "Abschnitt 16: Der Ehefähigkeits-Parameter",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "64.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1557",
          "manual_ending_code": "H-16-16",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 383,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_eigentumsmaske.md",
          "index": 17,
          "title": "Abschnitt 17: Die Eigentumsmaske",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.2",
          "jaccard_max": "0.0",
          "tokens_generated": "985",
          "manual_ending_code": "H-17-17",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 476,
          "reading_minutes": 2
        },
        {
          "file": "18_art_18_abschnitt_18_die_gewissensmaske.md",
          "index": 18,
          "title": "Abschnitt 18: Die Gewissensmaske",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1004",
          "manual_ending_code": "H-18-18",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 489,
          "reading_minutes": 2
        },
        {
          "file": "19_art_19_abschnitt_19_die_kalibrierungsvorgabe.md",
          "index": 19,
          "title": "Abschnitt 19: Die Kalibrierungsvorgabe",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1070",
          "manual_ending_code": "H-19-19",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 512,
          "reading_minutes": 3
        }
      ]
    },
    {
      "book_id": "buch_008_flechtwerk_arkadien",
      "title": "Flechtwerk: Annalen der vernetzten Allmende",
      "language": "DE",
      "style": "Solarpunk",
      "pov": "third_person",
      "setting_summary": "Osthafen ist ein schwimmendes Stadtviertel auf alten Frachtpontons, das sich mit dezentralen Bioreaktoren, Salzgärten und offenen Werkstätten selbst versorgt. Ein Rat aus gewählten Delegierten verwaltet die knappen Süßwasser- und Speicherzellen, doch ein neuer Zuteilungsschlüssel droht ganze Pontonringe von der Versorgung abzuschneiden. Als die Bewohner beginnen, die Entscheidung öffentlich anzufechten, wird aus einem Verteilungsstreit ein Kampf um Würde, Mitsprache und das Recht, gehört zu werden.",
      "characters": [
        "Mira",
        "Tobias",
        "Yara",
        "Kell",
        "Nuri"
      ],
      "chapter_count": 17,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17"
      ],
      "words": 7891,
      "reading_minutes": 39,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "11.5",
          "jaccard_max": "",
          "tokens_generated": "1375",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Solarpunk",
          "leak_free": "",
          "words": 737,
          "reading_minutes": 4
        },
        {
          "file": "01_art_01_abschnitt_1_der_widerhall_des_stegs.md",
          "index": 1,
          "title": "Abschnitt 1: Der Widerhall des Stegs",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3.5-lightning:free",
          "duration_seconds": "118.7",
          "jaccard_max": "0.037",
          "tokens_generated": "12803",
          "manual_ending_code": "U-01-01",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 358,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_kalibrierung_des_gemeins.md",
          "index": 2,
          "title": "Abschnitt 2: Die Kalibrierung des gemeinsamen Stroms",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "14.5",
          "jaccard_max": "0.051",
          "tokens_generated": "1813",
          "manual_ending_code": "U-02-02",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 488,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_entladung_der_schatten.md",
          "index": 3,
          "title": "Abschnitt 3: Die Entladung der Schatten",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "43.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1207",
          "manual_ending_code": "U-03-03",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 317,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_kalte_naht.md",
          "index": 4,
          "title": "Abschnitt 4: Die kalte Naht",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.2",
          "jaccard_max": "0.062",
          "tokens_generated": "892",
          "manual_ending_code": "U-04-04",
          "backend": "deepseek",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 486,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalte_naht_hält.md",
          "index": 5,
          "title": "Abschnitt 5: Die kalte Naht hält",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.6",
          "jaccard_max": "0.0",
          "tokens_generated": "792",
          "manual_ending_code": "U-05-05",
          "backend": "deepseek",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 426,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_kalibrierung_der_stimme.md",
          "index": 6,
          "title": "Abschnitt 6: Die Kalibrierung der Stimme",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "72.3",
          "jaccard_max": "0.045",
          "tokens_generated": "1699",
          "manual_ending_code": "U-06-06",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 467,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_der_gleichschutzkalibrator.md",
          "index": 7,
          "title": "Abschnitt 7: Der Gleichschutz‑Kalibrator",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "59.2",
          "jaccard_max": "0.083",
          "tokens_generated": "1446",
          "manual_ending_code": "U-07-07",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 449,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_der_rekurspfad.md",
          "index": 8,
          "title": "Abschnitt 8: Der Rekurs‑Pfad",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "57.5",
          "jaccard_max": "0.026",
          "tokens_generated": "1481",
          "manual_ending_code": "U-08-08",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 370,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_der_schwellenwert.md",
          "index": 9,
          "title": "Abschnitt 9: Der Schwellenwert",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "66.8",
          "jaccard_max": "0.043",
          "tokens_generated": "1992",
          "manual_ending_code": "U-09-09",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 536,
          "reading_minutes": 3
        },
        {
          "file": "10_art_10_abschnitt_10_das_fiepen_der_gegensprecha.md",
          "index": 10,
          "title": "Abschnitt 10: Das Fiepen der Gegensprechanlage",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.9",
          "jaccard_max": "0.018",
          "tokens_generated": "852",
          "manual_ending_code": "U-10-10",
          "backend": "deepseek",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 441,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_der_staub_auf_den_kontakten.md",
          "index": 11,
          "title": "Abschnitt 11: Der Staub auf den Kontakten",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "48.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1165",
          "manual_ending_code": "U-11-11",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 335,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_kalibrierte_wand.md",
          "index": 12,
          "title": "Abschnitt 12: Die kalibrierte Wand",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.6",
          "jaccard_max": "0.026",
          "tokens_generated": "650",
          "manual_ending_code": "U-12-12",
          "backend": "deepseek",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 343,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_der_durchlass_algorithmus.md",
          "index": 13,
          "title": "Abschnitt 13: Der Durchlass-Algorithmus",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "58.1",
          "jaccard_max": "0.045",
          "tokens_generated": "1163",
          "manual_ending_code": "U-13-13",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 342,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_kalibrierung_der_zufluc.md",
          "index": 14,
          "title": "Abschnitt 14: Die Kalibrierung der Zuflucht",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.7",
          "jaccard_max": "0.032",
          "tokens_generated": "991",
          "manual_ending_code": "U-14-14",
          "backend": "deepseek",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 513,
          "reading_minutes": 3
        },
        {
          "file": "15_art_15_abschnitt_15_die_zugehörigkeitskalibrier.md",
          "index": 15,
          "title": "Abschnitt 15: Die Zugehörigkeitskalibrierung",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "47.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1537",
          "manual_ending_code": "U-15-15",
          "backend": "openrouter",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 443,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_willenseinigung.md",
          "index": 16,
          "title": "Abschnitt 16: Die Willenseinigung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.7",
          "jaccard_max": "0.0",
          "tokens_generated": "779",
          "manual_ending_code": "U-16-16",
          "backend": "deepseek",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 398,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_kalibrierung_der_angst.md",
          "index": 17,
          "title": "Abschnitt 17: Die Kalibrierung der Angst",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.3",
          "jaccard_max": "0.056",
          "tokens_generated": "900",
          "manual_ending_code": "U-17-17",
          "backend": "deepseek",
          "genre": "Solarpunk",
          "leak_free": "true",
          "words": 442,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_009_depeschen_aus_dem_kordon",
      "title": "Depeschen aus dem Kordon",
      "language": "DE",
      "style": "Briefroman",
      "pov": "first_person",
      "setting_summary": "Eine abgeriegelte Forschungsstation tief unter dem Polareis, in der fünf Getrennte über einen einzigen Kurzwellenkanal nur nummerierte Depeschen austauschen dürfen. Die Station hat Sauerstoff für 400 Tage, doch die Aufsicht Kroll filtert jede Nachricht und droht mit Streichung der Rationen. Ein Riss im Reaktor zwingt die Gruppe, über Würde, Wahrheit und Überleben neu zu verhandeln.",
      "characters": [
        "Ilse",
        "Baran",
        "Tomas",
        "Nadia",
        "Kroll"
      ],
      "chapter_count": 19,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18",
        "art_19"
      ],
      "words": 9205,
      "reading_minutes": 46,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.2",
          "jaccard_max": "",
          "tokens_generated": "655",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "",
          "words": 364,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_riss_und_ration.md",
          "index": 1,
          "title": "Abschnitt 1: Riss und Ration",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3.5-lightning:free",
          "duration_seconds": "158.7",
          "jaccard_max": "0.022",
          "tokens_generated": "17796",
          "manual_ending_code": "B-01-01",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 464,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_schwingungen_im_eis.md",
          "index": 2,
          "title": "Abschnitt 2: Schwingungen im Eis",
          "article": "art_02",
          "ending_ok": "false",
          "attempts": "3",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "247.5",
          "jaccard_max": "0.033",
          "tokens_generated": "3293",
          "manual_ending_code": "B-02-02",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "",
          "words": 969,
          "reading_minutes": 5
        },
        {
          "file": "03_art_03_abschnitt_3_frequenzverlust.md",
          "index": 3,
          "title": "Abschnitt 3: Frequenzverlust",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "121.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1281",
          "manual_ending_code": "B-03-03",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 308,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_zentrale_kammer.md",
          "index": 4,
          "title": "Abschnitt 4: Die zentrale Kammer",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.7",
          "jaccard_max": "0.0",
          "tokens_generated": "812",
          "manual_ending_code": "B-04-04",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 437,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalibrierung_der_stille.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kalibrierung der Stille",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.3",
          "jaccard_max": "0.12",
          "tokens_generated": "795",
          "manual_ending_code": "B-05-05",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 416,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_frequenz_der_anerkennung.md",
          "index": 6,
          "title": "Abschnitt 6: Die Frequenz der Anerkennung",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "88.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1335",
          "manual_ending_code": "B-06-06",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 380,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_das_vierte_knoten.md",
          "index": 7,
          "title": "Abschnitt 7: Das vierte Knoten",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "178.4",
          "jaccard_max": "0.0",
          "tokens_generated": "2296",
          "manual_ending_code": "B-07-07",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 428,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_achte_kalibrierung.md",
          "index": 8,
          "title": "Abschnitt 8: Die achte Kalibrierung",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "63.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1386",
          "manual_ending_code": "B-08-08",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 311,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_neunte_verriegelung.md",
          "index": 9,
          "title": "Abschnitt 9: Die neunte Verriegelung",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.3",
          "jaccard_max": "0.0",
          "tokens_generated": "805",
          "manual_ending_code": "B-09-09",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 398,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_zehnte_kalibrierung.md",
          "index": 10,
          "title": "Abschnitt 10: Die zehnte Kalibrierung",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.8",
          "jaccard_max": "0.0",
          "tokens_generated": "709",
          "manual_ending_code": "B-10-10",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 372,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_elfte_kalibrierung.md",
          "index": 11,
          "title": "Abschnitt 11: Die elfte Kalibrierung",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "69.5",
          "jaccard_max": "0.0",
          "tokens_generated": "2043",
          "manual_ending_code": "B-11-11",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 478,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_zwölfte_kalibrierung.md",
          "index": 12,
          "title": "Abschnitt 12: Die zwölfte Kalibrierung",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1167",
          "manual_ending_code": "B-12-12",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 593,
          "reading_minutes": 3
        },
        {
          "file": "13_art_13_abschnitt_13_die_dreizehnte_bewegung.md",
          "index": 13,
          "title": "Abschnitt 13: Die dreizehnte Bewegung",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "28.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1531",
          "manual_ending_code": "B-13-13",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 467,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_vierzehnte_kalibrierung.md",
          "index": 14,
          "title": "Abschnitt 14: Die vierzehnte Kalibrierung",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "57.4",
          "jaccard_max": "0.029",
          "tokens_generated": "1362",
          "manual_ending_code": "B-14-14",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 443,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_fünfzehnte_kalibrierung.md",
          "index": 15,
          "title": "Abschnitt 15: Die fünfzehnte Kalibrierung",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.1",
          "jaccard_max": "0.0",
          "tokens_generated": "957",
          "manual_ending_code": "B-15-15",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 466,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_sechzehnte_bindung.md",
          "index": 16,
          "title": "Abschnitt 16: Die sechzehnte Bindung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "57.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1650",
          "manual_ending_code": "B-16-16",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 447,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_siebzehnte_kalibrierung.md",
          "index": 17,
          "title": "Abschnitt 17: Die siebzehnte Kalibrierung",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1063",
          "manual_ending_code": "B-17-17",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 547,
          "reading_minutes": 3
        },
        {
          "file": "18_art_18_abschnitt_18_die_achtzehnte_kalibrierung.md",
          "index": 18,
          "title": "Abschnitt 18: Die achtzehnte Kalibrierung",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.6",
          "jaccard_max": "0.036",
          "tokens_generated": "1075",
          "manual_ending_code": "B-18-18",
          "backend": "deepseek",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 568,
          "reading_minutes": 3
        },
        {
          "file": "19_art_19_abschnitt_19_die_neunzehnte_frequenz.md",
          "index": 19,
          "title": "Abschnitt 19: Die neunzehnte Frequenz",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "142.0",
          "jaccard_max": "0.05",
          "tokens_generated": "1314",
          "manual_ending_code": "B-19-19",
          "backend": "openrouter",
          "genre": "Briefroman",
          "leak_free": "true",
          "words": 349,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_010_amtsblatt_fuer_unzumutbarkeit",
      "title": "Amtsblatt fuer Unzustaendigkeit und Fristwahrung",
      "language": "DE",
      "style": "Satire",
      "pov": "third_person",
      "setting_summary": "In der fensterlosen zwölften Etage des Bundesamts für Grundrechtsabwicklung regiert ein überbordender Apparat aus Formularen, Wartemarken und Zuständigkeitsstreitigkeiten. Jeder Antrag auf ein Menschenrecht muss erst durch sieben Abteilungen, drei Vorprüfstellen und ein Kaffeeküchenprotokoll. Wer zu lange wartet, verliert laut Aktenlage sein Anliegen – und manchmal sich selbst.",
      "characters": [
        "Hedwig Klabundt",
        "Bodo Pfütze",
        "Dr. Marlene Zirbeldrüse",
        "Kalle Ohm",
        "Frau Säckel"
      ],
      "chapter_count": 21,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18",
        "art_19",
        "art_20",
        "art_21"
      ],
      "words": 8930,
      "reading_minutes": 45,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "7.7",
          "jaccard_max": "",
          "tokens_generated": "973",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "",
          "words": 500,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_der_staub_in_den_rohren.md",
          "index": 1,
          "title": "Abschnitt 1: Der Staub in den Rohren",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3.5-lightning:free",
          "duration_seconds": "175.6",
          "jaccard_max": "0.0",
          "tokens_generated": "13904",
          "manual_ending_code": "G-01-01",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 414,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_das_protokoll_der_leeren_tas.md",
          "index": 2,
          "title": "Abschnitt 2: Das Protokoll der leeren Tassen",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "12.7",
          "jaccard_max": "0.043",
          "tokens_generated": "1528",
          "manual_ending_code": "G-02-02",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 410,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_kalibrierung_des_atemzug.md",
          "index": 3,
          "title": "Abschnitt 3: Die Kalibrierung des Atemzugs",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "31.5",
          "jaccard_max": "0.125",
          "tokens_generated": "1367",
          "manual_ending_code": "G-03-03",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 323,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_entkopplung_der_griffigk.md",
          "index": 4,
          "title": "Abschnitt 4: Die Entkopplung der Griffigkeit",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.2",
          "jaccard_max": "0.0",
          "tokens_generated": "971",
          "manual_ending_code": "G-04-04",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 427,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalibrierung_der_unverse.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kalibrierung der Unversehrtheit",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "54.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1919",
          "manual_ending_code": "G-05-05",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 367,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_anerkennung_als_substrat.md",
          "index": 6,
          "title": "Abschnitt 6: Die Anerkennung als Substrat",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1039",
          "manual_ending_code": "G-06-06",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 443,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_der_kalibrierungssturm.md",
          "index": 7,
          "title": "Abschnitt 7: Der Kalibrierungssturm",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "75.0",
          "jaccard_max": "0.0",
          "tokens_generated": "5550",
          "manual_ending_code": "G-07-07",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 366,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_rechtsbehelfslatenz.md",
          "index": 8,
          "title": "Abschnitt 8: Die Rechtsbehelfslatenz",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1061",
          "manual_ending_code": "G-08-08",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 454,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_das_tropfen_der_sicherheit.md",
          "index": 9,
          "title": "Abschnitt 9: Das Tropfen der Sicherheit",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "82.6",
          "jaccard_max": "0.017",
          "tokens_generated": "1853",
          "manual_ending_code": "G-09-09",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 388,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_kalibrierung_des_unverm.md",
          "index": 10,
          "title": "Abschnitt 10: Die Kalibrierung des Unvermeidlichen",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "70.2",
          "jaccard_max": "0.0",
          "tokens_generated": "2681",
          "manual_ending_code": "G-10-10",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 555,
          "reading_minutes": 3
        },
        {
          "file": "11_art_11_abschnitt_11_die_inversion_der_unschulds.md",
          "index": 11,
          "title": "Abschnitt 11: Die Inversion der Unschuldsvermutung",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "35.6",
          "jaccard_max": "0.353",
          "tokens_generated": "1677",
          "manual_ending_code": "G-11-11",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 356,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_ehre_als_leckstelle.md",
          "index": 12,
          "title": "Abschnitt 12: Die Ehre als Leckstelle",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.3",
          "jaccard_max": "0.027",
          "tokens_generated": "1183",
          "manual_ending_code": "G-12-12",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 518,
          "reading_minutes": 3
        },
        {
          "file": "13_art_13_abschnitt_13_die_ortsveränderung_als_puf.md",
          "index": 13,
          "title": "Abschnitt 13: Die Ortsveränderung als Pufferüberlauf",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "37.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1666",
          "manual_ending_code": "G-13-13",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 378,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_kalibrierung_der_zufluc.md",
          "index": 14,
          "title": "Abschnitt 14: Die Kalibrierung der Zuflucht als Tropfsteinhöhle",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.1",
          "jaccard_max": "0.0",
          "tokens_generated": "907",
          "manual_ending_code": "G-14-14",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 394,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_entstaatlichung_als_sch.md",
          "index": 15,
          "title": "Abschnitt 15: Die Entstaatlichung als Schadstoffklasse",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "67.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1481",
          "manual_ending_code": "G-15-15",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 332,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_kalibrierung_der_willen.md",
          "index": 16,
          "title": "Abschnitt 16: Die Kalibrierung der Willenseinigung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.6",
          "jaccard_max": "0.0",
          "tokens_generated": "661",
          "manual_ending_code": "G-16-16",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 302,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_verwahrung_der_habselig.md",
          "index": 17,
          "title": "Abschnitt 17: Die Verwahrung der Habseligkeiten",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.1",
          "jaccard_max": "0.0",
          "tokens_generated": "977",
          "manual_ending_code": "G-17-17",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 456,
          "reading_minutes": 2
        },
        {
          "file": "18_art_18_abschnitt_18_die_kalibrierung_des_gewiss.md",
          "index": 18,
          "title": "Abschnitt 18: Die Kalibrierung des Gewissensspeichers",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "34.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1323",
          "manual_ending_code": "G-18-18",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 346,
          "reading_minutes": 2
        },
        {
          "file": "19_art_19_abschnitt_19_die_dämpfung_der_schallausb.md",
          "index": 19,
          "title": "Abschnitt 19: Die Dämpfung der Schallausbreitung",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "70.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1311",
          "manual_ending_code": "G-19-19",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 299,
          "reading_minutes": 1
        },
        {
          "file": "20_art_20_abschnitt_20_die_kalibrierung_der_zusamm.md",
          "index": 20,
          "title": "Abschnitt 20: Die Kalibrierung der Zusammenkunft",
          "article": "art_20",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.0",
          "jaccard_max": "0.0",
          "tokens_generated": "971",
          "manual_ending_code": "G-20-20",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 412,
          "reading_minutes": 2
        },
        {
          "file": "21_art_21_abschnitt_21_die_wählerstimmen_kompressi.md",
          "index": 21,
          "title": "Abschnitt 21: Die Wählerstimmen-Kompression",
          "article": "art_21",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.6",
          "jaccard_max": "0.045",
          "tokens_generated": "1084",
          "manual_ending_code": "G-21-21",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 490,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_011_das_haus_ohne_widerhall",
      "title": "Das Haus ohne Widerhall",
      "language": "DE",
      "style": "Gothic",
      "pov": "first_person",
      "setting_summary": "Ein schmales, graues Mietshaus in einer vergessenen Stadt, dessen Flure und Zimmer sich nachts umlagern, sodass Türen verschwinden und neue entstehen. Die Bewohner leben unter ständigem Platz- und Zeitmangel, weil das Haus jedem nur so viel Raum zugesteht, wie er sich verdient. Wer sich an frühere Freiheiten erinnert, wird von den Wänden enger umschlossen, bis er schweigt.",
      "characters": [
        "Vera",
        "Jonas",
        "Mutter Halb",
        "Timo",
        "Der Verwalter"
      ],
      "chapter_count": 18,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18"
      ],
      "words": 8430,
      "reading_minutes": 42,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.8",
          "jaccard_max": "",
          "tokens_generated": "792",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "",
          "words": 458,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_der_leise_druck.md",
          "index": 1,
          "title": "Abschnitt 1: Der leise Druck",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "34.8",
          "jaccard_max": "0.0",
          "tokens_generated": "4307",
          "manual_ending_code": "W-01-01",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 421,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_kalibrierung_der_gleichh.md",
          "index": 2,
          "title": "Abschnitt 2: Die Kalibrierung der Gleichheit",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "86.9",
          "jaccard_max": "0.0",
          "tokens_generated": "859",
          "manual_ending_code": "W-02-02",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 303,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_zentrale_der_lautlosen_d.md",
          "index": 3,
          "title": "Abschnitt 3: Die Zentrale der lautlosen Dinge",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1057",
          "manual_ending_code": "W-03-03",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 584,
          "reading_minutes": 3
        },
        {
          "file": "04_art_04_abschnitt_4_die_kammer_der_abgelegten_di.md",
          "index": 4,
          "title": "Abschnitt 4: Die Kammer der abgelegten Dinge",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.8",
          "jaccard_max": "0.0",
          "tokens_generated": "925",
          "manual_ending_code": "W-04-04",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 500,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kammer_der_stille.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kammer der Stille",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "19.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1386",
          "manual_ending_code": "W-05-05",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 452,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_anerkennung_der_leere.md",
          "index": 6,
          "title": "Abschnitt 6: Die Anerkennung der Leere",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1144",
          "manual_ending_code": "W-06-06",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 632,
          "reading_minutes": 3
        },
        {
          "file": "07_art_07_abschnitt_7_die_kalibrierung_des_gleichs.md",
          "index": 7,
          "title": "Abschnitt 7: Die Kalibrierung des Gleichschutzes",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "52.5",
          "jaccard_max": "0.019",
          "tokens_generated": "1727",
          "manual_ending_code": "W-07-07",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 441,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_revision_der_rechtswege.md",
          "index": 8,
          "title": "Abschnitt 8: Die Revision der Rechtswege",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.1",
          "jaccard_max": "0.0",
          "tokens_generated": "774",
          "manual_ending_code": "W-08-08",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 433,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_kälte_im_zwischenboden.md",
          "index": 9,
          "title": "Abschnitt 9: Die Kälte im Zwischenboden",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.6",
          "jaccard_max": "0.027",
          "tokens_generated": "839",
          "manual_ending_code": "W-09-09",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 471,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_waage_im_wand.md",
          "index": 10,
          "title": "Abschnitt 10: Die Waage im Wand",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "43.8",
          "jaccard_max": "0.036",
          "tokens_generated": "1192",
          "manual_ending_code": "W-10-10",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 332,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuldsvermutung_als_.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuldsvermutung als Dämpfungsglied",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "25.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1172",
          "manual_ending_code": "W-11-11",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 299,
          "reading_minutes": 1
        },
        {
          "file": "12_art_12_abschnitt_12_die_privatsphäre_als_puffer.md",
          "index": 12,
          "title": "Abschnitt 12: Die Privatsphäre als Pufferzone",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "21.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1138",
          "manual_ending_code": "W-12-12",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 309,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_kalibrierung_der_flucht.md",
          "index": 13,
          "title": "Abschnitt 13: Die Kalibrierung der Fluchtlinie",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1036",
          "manual_ending_code": "W-13-13",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 541,
          "reading_minutes": 3
        },
        {
          "file": "14_art_14_abschnitt_14_die_asyllinie.md",
          "index": 14,
          "title": "Abschnitt 14: Die Asyllinie",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1061",
          "manual_ending_code": "W-14-14",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 581,
          "reading_minutes": 3
        },
        {
          "file": "15_art_15_abschnitt_15_die_entkernung.md",
          "index": 15,
          "title": "Abschnitt 15: Die Entkernung",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.3",
          "jaccard_max": "0.0",
          "tokens_generated": "987",
          "manual_ending_code": "W-15-15",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 540,
          "reading_minutes": 3
        },
        {
          "file": "16_art_16_abschnitt_16_die_kalibrierung_der_nähe.md",
          "index": 16,
          "title": "Abschnitt 16: Die Kalibrierung der Nähe",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "33.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1033",
          "manual_ending_code": "W-16-16",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 340,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_inventur_der_schatten.md",
          "index": 17,
          "title": "Abschnitt 17: Die Inventur der Schatten",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "52.7",
          "jaccard_max": "0.0",
          "tokens_generated": "882",
          "manual_ending_code": "W-17-17",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 248,
          "reading_minutes": 1
        },
        {
          "file": "18_art_18_abschnitt_18_die_kalibrierung_der_stille.md",
          "index": 18,
          "title": "Abschnitt 18: Die Kalibrierung der Stille",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1008",
          "manual_ending_code": "W-18-18",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 545,
          "reading_minutes": 3
        }
      ]
    },
    {
      "book_id": "buch_012_manifest_der_unantastbaren",
      "title": "Manifest der Unantastbaren: Ruf an die Tore",
      "language": "DE",
      "style": "Manifest",
      "pov": "first_person",
      "setting_summary": "In einem unterirdischen Archivbunker, dem Sektor Neun, hausen die letzten freien Chronisten unter ständiger Überwachung durch die Obrigkeit. Ein Riss in der Betondecke lässt Wasser eindringen und markiert eine tickende Frist: In wenigen Wochen wird der Bunker geflutet, wenn niemand die Wahrheit nach außen trägt. Jeder ausgesprochene Satz kann Verhaftung, Folter oder Tod bedeuten – und doch muss gesprochen werden.",
      "characters": [],
      "chapter_count": 17,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17"
      ],
      "words": 6256,
      "reading_minutes": 31,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.2",
          "jaccard_max": "",
          "tokens_generated": "736",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Manifest",
          "leak_free": "",
          "words": 442,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_der_riss_und_der_staub.md",
          "index": 1,
          "title": "Abschnitt 1: Der Riss und der Staub",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3.5-lightning:free",
          "duration_seconds": "57.8",
          "jaccard_max": "0.0",
          "tokens_generated": "7322",
          "manual_ending_code": "R-01-01",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 293,
          "reading_minutes": 1
        },
        {
          "file": "02_art_02_abschnitt_2_der_kalibrierte_tropfen.md",
          "index": 2,
          "title": "Abschnitt 2: Der kalibrierte Tropfen",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "21.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1811",
          "manual_ending_code": "R-02-02",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 312,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_kalibrierte_leere.md",
          "index": 3,
          "title": "Abschnitt 3: Die kalibrierte Leere",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "60.2",
          "jaccard_max": "0.007",
          "tokens_generated": "2037",
          "manual_ending_code": "R-03-03",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 291,
          "reading_minutes": 1
        },
        {
          "file": "04_art_04_abschnitt_4_die_stille_kammer.md",
          "index": 4,
          "title": "Abschnitt 4: Die stille Kammer",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.7",
          "jaccard_max": "0.0",
          "tokens_generated": "744",
          "manual_ending_code": "R-04-04",
          "backend": "deepseek",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 413,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalibrierung_des_schmerz.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kalibrierung des Schmerzes",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "60.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1315",
          "manual_ending_code": "R-05-05",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 312,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_der_riss_und_die_schwelle.md",
          "index": 6,
          "title": "Abschnitt 6: Der Riss und die Schwelle",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "68.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1970",
          "manual_ending_code": "R-06-06",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 369,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_kalibrierung_der_gleiche.md",
          "index": 7,
          "title": "Abschnitt 7: Die Kalibrierung der gleichen Schwelle",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.6",
          "jaccard_max": "0.0",
          "tokens_generated": "856",
          "manual_ending_code": "R-07-07",
          "backend": "deepseek",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 469,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_das_zittern_im_licht.md",
          "index": 8,
          "title": "Abschnitt 8: Das Zittern im Licht",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "163.9",
          "jaccard_max": "0.0",
          "tokens_generated": "5876",
          "manual_ending_code": "R-08-08",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 311,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_frist_im_beton.md",
          "index": 9,
          "title": "Abschnitt 9: Die Frist im Beton",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.1",
          "jaccard_max": "0.0",
          "tokens_generated": "829",
          "manual_ending_code": "R-09-09",
          "backend": "deepseek",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 469,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_der_parameter_der_öffentlic.md",
          "index": 10,
          "title": "Abschnitt 10: Der Parameter der Öffentlichkeit",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "63.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1014",
          "manual_ending_code": "R-10-10",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 332,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_der_parameter_der_unschulds.md",
          "index": 11,
          "title": "Abschnitt 11: Der Parameter der Unschuldsvermutung",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "52.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1129",
          "manual_ending_code": "R-11-11",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 318,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_der_parameter_der_sphärensi.md",
          "index": 12,
          "title": "Abschnitt 12: Der Parameter der Sphärensicherung",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "46.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1633",
          "manual_ending_code": "R-12-12",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 295,
          "reading_minutes": 1
        },
        {
          "file": "13_art_13_abschnitt_13_der_parameter_der_freizügig.md",
          "index": 13,
          "title": "Abschnitt 13: Der Parameter der Freizügigkeit",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.9",
          "jaccard_max": "0.0",
          "tokens_generated": "631",
          "manual_ending_code": "R-13-13",
          "backend": "deepseek",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 334,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_der_parameter_der_zuflucht.md",
          "index": 14,
          "title": "Abschnitt 14: Der Parameter der Zuflucht",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.5",
          "jaccard_max": "0.0",
          "tokens_generated": "652",
          "manual_ending_code": "R-14-14",
          "backend": "deepseek",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 359,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_der_parameter_der_zugehörig.md",
          "index": 15,
          "title": "Abschnitt 15: Der Parameter der Zugehörigkeit",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "45.6",
          "jaccard_max": "0.0",
          "tokens_generated": "990",
          "manual_ending_code": "R-15-15",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 291,
          "reading_minutes": 1
        },
        {
          "file": "16_art_16_abschnitt_16_der_parameter_der_verbindun.md",
          "index": 16,
          "title": "Abschnitt 16: Der Parameter der Verbindung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "37.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1258",
          "manual_ending_code": "R-16-16",
          "backend": "openrouter",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 313,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_frequenz_der_habseligke.md",
          "index": 17,
          "title": "Abschnitt 17: Die Frequenz der Habseligkeiten",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.0",
          "jaccard_max": "0.0",
          "tokens_generated": "606",
          "manual_ending_code": "R-17-17",
          "backend": "deepseek",
          "genre": "Manifest",
          "leak_free": "true",
          "words": 333,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_013_aufzeichnungen_eines_archivars",
      "title": "Schattenlinien: Tagebuch aus der Sperrzone",
      "language": "DE",
      "style": "Tagebuch",
      "pov": "first_person",
      "setting_summary": "Ein abgeriegelter Stadtteil, in dem die Bewohner unter ständiger Videoüberwachung und willkürlichen Ausgangssperren leben. Ein neues 'Sicherheitsdekret' entzieht ihnen Schritt für Schritt Grundrechte, während die Behörden jede Beschwerde als Störung der öffentlichen Ordnung werten. Die knappen Ressourcen und die allgegenwärtige Angst vor Denunziation treiben die Gemeinschaft an den Rand des Zusammenbruchs.",
      "characters": [
        "Klara",
        "Jonas",
        "Miray",
        "Herr Brenner",
        "Frau Ostrow"
      ],
      "chapter_count": 19,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18",
        "art_19"
      ],
      "words": 8694,
      "reading_minutes": 43,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "8.7",
          "jaccard_max": "",
          "tokens_generated": "1086",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Tagebuch",
          "leak_free": "",
          "words": 612,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_staub_und_kalibration.md",
          "index": 1,
          "title": "Abschnitt 1: Staub und Kalibration",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3.5-lightning:free",
          "duration_seconds": "130.8",
          "jaccard_max": "0.0",
          "tokens_generated": "17312",
          "manual_ending_code": "T-01-01",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 534,
          "reading_minutes": 3
        },
        {
          "file": "02_art_02_abschnitt_2_kalibrierung_des_misstrauens.md",
          "index": 2,
          "title": "Abschnitt 2: Kalibrierung des Misstrauens",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "16.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1962",
          "manual_ending_code": "T-02-02",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 507,
          "reading_minutes": 3
        },
        {
          "file": "03_art_03_abschnitt_3_die_zentrale_leere.md",
          "index": 3,
          "title": "Abschnitt 3: Die zentrale Leere",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.6",
          "jaccard_max": "0.034",
          "tokens_generated": "1064",
          "manual_ending_code": "T-03-03",
          "backend": "deepseek",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 553,
          "reading_minutes": 3
        },
        {
          "file": "04_art_04_abschnitt_4_die_kalibrierung_der_leere.md",
          "index": 4,
          "title": "Abschnitt 4: Die Kalibrierung der Leere",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "43.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1052",
          "manual_ending_code": "T-04-04",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 311,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_der_abhängigkeitsquotient.md",
          "index": 5,
          "title": "Abschnitt 5: Der Abhängigkeitsquotient",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.4",
          "jaccard_max": "0.0",
          "tokens_generated": "901",
          "manual_ending_code": "T-05-05",
          "backend": "deepseek",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 424,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_kalibrierung_des_rechts.md",
          "index": 6,
          "title": "Abschnitt 6: Die Kalibrierung des Rechts",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "91.1",
          "jaccard_max": "0.004",
          "tokens_generated": "1632",
          "manual_ending_code": "T-06-06",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 498,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_gleichheitsschwelle.md",
          "index": 7,
          "title": "Abschnitt 7: Die Gleichheitsschwelle",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "29.8",
          "jaccard_max": "0.0",
          "tokens_generated": "985",
          "manual_ending_code": "T-07-07",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 326,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_das_echo_der_kalibrierung.md",
          "index": 8,
          "title": "Abschnitt 8: Das Echo der Kalibrierung",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "52.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1449",
          "manual_ending_code": "T-08-08",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 419,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_dunkelheit_kalibriert_si.md",
          "index": 9,
          "title": "Abschnitt 9: Die Dunkelheit kalibriert sich neu",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "50.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1690",
          "manual_ending_code": "T-09-09",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 352,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_kalibrierung_der_stille.md",
          "index": 10,
          "title": "Abschnitt 10: Die Kalibrierung der Stille",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1125",
          "manual_ending_code": "T-10-10",
          "backend": "deepseek",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 550,
          "reading_minutes": 3
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuldsvermutung.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuldsvermutung",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1238",
          "manual_ending_code": "T-11-11",
          "backend": "deepseek",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 592,
          "reading_minutes": 3
        },
        {
          "file": "12_art_12_abschnitt_12_die_privatheitssperre.md",
          "index": 12,
          "title": "Abschnitt 12: Die Privatheitssperre",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "31.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1803",
          "manual_ending_code": "T-12-12",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 354,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_bewegungsbremse.md",
          "index": 13,
          "title": "Abschnitt 13: Die Bewegungsbremse",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "73.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1269",
          "manual_ending_code": "T-13-13",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 306,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_asylklausel.md",
          "index": 14,
          "title": "Abschnitt 14: Die Asylklausel",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.4",
          "jaccard_max": "0.0",
          "tokens_generated": "982",
          "manual_ending_code": "T-14-14",
          "backend": "deepseek",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 478,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_entstaatlichungskonstan.md",
          "index": 15,
          "title": "Abschnitt 15: Die Entstaatlichungskonstante",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "63.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1420",
          "manual_ending_code": "T-15-15",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 451,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_bindungskonstante.md",
          "index": 16,
          "title": "Abschnitt 16: Die Bindungskonstante",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "146.0",
          "jaccard_max": "0.0",
          "tokens_generated": "2339",
          "manual_ending_code": "T-16-16",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 303,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_der_eigentumsvektor.md",
          "index": 17,
          "title": "Abschnitt 17: Der Eigentumsvektor",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.4",
          "jaccard_max": "0.0",
          "tokens_generated": "828",
          "manual_ending_code": "T-17-17",
          "backend": "deepseek",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 344,
          "reading_minutes": 2
        },
        {
          "file": "18_art_18_abschnitt_18_der_meinungsvektor.md",
          "index": 18,
          "title": "Abschnitt 18: Der Meinungsvektor",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1023",
          "manual_ending_code": "T-18-18",
          "backend": "deepseek",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 436,
          "reading_minutes": 2
        },
        {
          "file": "19_art_19_abschnitt_19_der_versammlungsvektor.md",
          "index": 19,
          "title": "Abschnitt 19: Der Versammlungsvektor",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "48.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1381",
          "manual_ending_code": "T-19-19",
          "backend": "openrouter",
          "genre": "Tagebuch",
          "leak_free": "true",
          "words": 344,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_014_der_unberechenbare_humor",
      "title": "Der unberechenbare Humor: Pointen gegen den Ernstfall",
      "language": "DE",
      "style": "Witzebuch",
      "pov": "third_person",
      "setting_summary": "Kurzgeschichten und Szenen, in denen Humor den Ernstfall entlarvt.",
      "characters": [],
      "chapter_count": 16,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16"
      ],
      "words": 5796,
      "reading_minutes": 29,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 114,
          "reading_minutes": 1
        },
        {
          "file": "01_art_01_abschnitt_1_staub_im_apparat.md",
          "index": 1,
          "title": "Abschnitt 1: Staub im Apparat",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3.5-lightning:free",
          "duration_seconds": "82.7",
          "jaccard_max": "0.0",
          "tokens_generated": "11135",
          "manual_ending_code": "J-01-01",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 362,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_prüfliste_der_unterschie.md",
          "index": 2,
          "title": "Abschnitt 2: Die Prüfliste der Unterschiede",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.6",
          "jaccard_max": "0.0",
          "tokens_generated": "928",
          "manual_ending_code": "J-02-02",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 485,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_der_lebensdauersensor.md",
          "index": 3,
          "title": "Abschnitt 3: Der Lebensdauersensor",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "61.6",
          "jaccard_max": "0.0",
          "tokens_generated": "983",
          "manual_ending_code": "J-03-03",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 307,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_der_feuchte_filter.md",
          "index": 4,
          "title": "Abschnitt 4: Der Feuchte Filter",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "75.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1754",
          "manual_ending_code": "J-04-04",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 424,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_dämpfungskammer.md",
          "index": 5,
          "title": "Abschnitt 5: Die Dämpfungskammer",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.6",
          "jaccard_max": "0.0",
          "tokens_generated": "906",
          "manual_ending_code": "J-05-05",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 435,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_rechtsfähigkeitsprüfung.md",
          "index": 6,
          "title": "Abschnitt 6: Die Rechtsfähigkeitsprüfung",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "41.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1287",
          "manual_ending_code": "J-06-06",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 330,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_gleichbehandlungsmaske.md",
          "index": 7,
          "title": "Abschnitt 7: Die Gleichbehandlungsmaske",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.2",
          "jaccard_max": "0.0",
          "tokens_generated": "808",
          "manual_ending_code": "J-07-07",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 395,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_der_rechtsbehelf_im_stromkre.md",
          "index": 8,
          "title": "Abschnitt 8: Der Rechtsbehelf im Stromkreis",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "53.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1888",
          "manual_ending_code": "J-08-08",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 424,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_der_freiheitsparameter_im_kü.md",
          "index": 9,
          "title": "Abschnitt 9: Der Freiheitsparameter im Kühlwasser",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "21.9",
          "jaccard_max": "0.0",
          "tokens_generated": "913",
          "manual_ending_code": "J-09-09",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 270,
          "reading_minutes": 1
        },
        {
          "file": "10_art_10_abschnitt_10_die_gleichheit_vor_dem_fiep.md",
          "index": 10,
          "title": "Abschnitt 10: Die Gleichheit vor dem Fiepen",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.5",
          "jaccard_max": "0.0",
          "tokens_generated": "622",
          "manual_ending_code": "J-10-10",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 268,
          "reading_minutes": 1
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuld_im_puffer.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuld im Puffer",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "14.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1037",
          "manual_ending_code": "J-11-11",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 245,
          "reading_minutes": 1
        },
        {
          "file": "12_art_12_abschnitt_12_die_privatsphäre_als_puffer.md",
          "index": 12,
          "title": "Abschnitt 12: Die Privatsphäre als Pufferüberlauf",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "33.1",
          "jaccard_max": "0.0",
          "tokens_generated": "925",
          "manual_ending_code": "J-12-12",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 240,
          "reading_minutes": 1
        },
        {
          "file": "13_art_13_abschnitt_13_die_bewegungsfreiheit_als_l.md",
          "index": 13,
          "title": "Abschnitt 13: Die Bewegungsfreiheit als Latenzfehler",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "53.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1217",
          "manual_ending_code": "J-13-13",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 268,
          "reading_minutes": 1
        },
        {
          "file": "14_art_14_abschnitt_14_die_asylfilteranlage.md",
          "index": 14,
          "title": "Abschnitt 14: Die Asylfilteranlage",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.9",
          "jaccard_max": "0.0",
          "tokens_generated": "973",
          "manual_ending_code": "J-14-14",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 419,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_passkontrolle.md",
          "index": 15,
          "title": "Abschnitt 15: Die Passkontrolle",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "30.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1634",
          "manual_ending_code": "J-15-15",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 371,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_willenseinigung.md",
          "index": 16,
          "title": "Abschnitt 16: Die Willenseinigung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.3",
          "jaccard_max": "0.0",
          "tokens_generated": "976",
          "manual_ending_code": "J-16-16",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 439,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_015_das_kochbuch_der_allmende",
      "title": "Das Kochbuch der Allmende: Rezepte für Würde und Mahl",
      "language": "DE",
      "style": "Kochbuch",
      "pov": "third_person",
      "setting_summary": "Rezepte als Beweis, dass Fuersorge messbar ist.",
      "characters": [],
      "chapter_count": 17,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17"
      ],
      "words": 7534,
      "reading_minutes": 38,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 116,
          "reading_minutes": 1
        },
        {
          "file": "01_art_01_abschnitt_1_das_kneten_der_kalten_hände.md",
          "index": 1,
          "title": "Abschnitt 1: Das Kneten der kalten Hände",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.6",
          "jaccard_max": "0.0",
          "tokens_generated": "824",
          "manual_ending_code": "C-01-01",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 471,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_revision_der_gewichte.md",
          "index": 2,
          "title": "Abschnitt 2: Die Revision der Gewichte",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "2",
          "model": "deepseek-chat",
          "duration_seconds": "18.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1081",
          "manual_ending_code": "C-02-02",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 608,
          "reading_minutes": 3
        },
        {
          "file": "03_art_03_abschnitt_3_die_prüfkammer.md",
          "index": 3,
          "title": "Abschnitt 3: Die Prüfkammer",
          "article": "art_03",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "27.8",
          "jaccard_max": "0.0",
          "tokens_generated": "971",
          "manual_ending_code": "C-03-03",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "",
          "words": 493,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_trockene_kammer.md",
          "index": 4,
          "title": "Abschnitt 4: Die trockene Kammer",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.6",
          "jaccard_max": "0.0",
          "tokens_generated": "901",
          "manual_ending_code": "C-04-04",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 461,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_dichtungsschule.md",
          "index": 5,
          "title": "Abschnitt 5: Die Dichtungsschule",
          "article": "art_05",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "29.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1055",
          "manual_ending_code": "C-05-05",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "",
          "words": 549,
          "reading_minutes": 3
        },
        {
          "file": "06_art_06_abschnitt_6_die_dichtungsschule.md",
          "index": 6,
          "title": "Abschnitt 6: Die Dichtungsschule",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1063",
          "manual_ending_code": "C-06-06",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 552,
          "reading_minutes": 3
        },
        {
          "file": "07_art_07_abschnitt_7_die_kalibrierung_der_gleiche.md",
          "index": 7,
          "title": "Abschnitt 7: Die Kalibrierung der Gleichen",
          "article": "art_07",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "25.1",
          "jaccard_max": "0.0",
          "tokens_generated": "909",
          "manual_ending_code": "C-07-07",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "",
          "words": 465,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_zentrale_verwahrung.md",
          "index": 8,
          "title": "Abschnitt 8: Die zentrale Verwahrung",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.0",
          "jaccard_max": "0.0",
          "tokens_generated": "723",
          "manual_ending_code": "C-08-08",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 349,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_kalibrierung_der_griffe.md",
          "index": 9,
          "title": "Abschnitt 9: Die Kalibrierung der Griffe",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.6",
          "jaccard_max": "0.0",
          "tokens_generated": "699",
          "manual_ending_code": "C-09-09",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 341,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_prüfliste_der_griffe.md",
          "index": 10,
          "title": "Abschnitt 10: Die Prüfliste der Griffe",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.1",
          "jaccard_max": "0.0",
          "tokens_generated": "804",
          "manual_ending_code": "C-10-10",
          "backend": "deepseek",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 402,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_kalibrierung_der_unschu.md",
          "index": 11,
          "title": "Abschnitt 11: Die Kalibrierung der Unschuld",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "94.6",
          "jaccard_max": "0.0",
          "tokens_generated": "897",
          "manual_ending_code": "C-11-11",
          "backend": "openrouter",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 299,
          "reading_minutes": 1
        },
        {
          "file": "12_art_12_abschnitt_12_die_zentrale_lagerung_des_u.md",
          "index": 12,
          "title": "Abschnitt 12: Die Zentrale Lagerung des Unvermeidlichen",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "264.5",
          "jaccard_max": "0.0",
          "tokens_generated": "5445",
          "manual_ending_code": "C-12-12",
          "backend": "openrouter",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 349,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_kalibrierung_des_durchl.md",
          "index": 13,
          "title": "Abschnitt 13: Die Kalibrierung des Durchlasses",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "28.9",
          "jaccard_max": "0.167",
          "tokens_generated": "1483",
          "manual_ending_code": "C-13-13",
          "backend": "openrouter",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 356,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_kalibrierung_des_asylve.md",
          "index": 14,
          "title": "Abschnitt 14: Die Kalibrierung des Asylvektors",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "47.1",
          "jaccard_max": "0.1",
          "tokens_generated": "1525",
          "manual_ending_code": "C-14-14",
          "backend": "openrouter",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 407,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_der_herkunftsvektor.md",
          "index": 15,
          "title": "Abschnitt 15: Der Herkunftsvektor",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "112.8",
          "jaccard_max": "0.065",
          "tokens_generated": "1811",
          "manual_ending_code": "C-15-15",
          "backend": "openrouter",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 422,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_der_bindungsparameter.md",
          "index": 16,
          "title": "Abschnitt 16: Der Bindungsparameter",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "43.1",
          "jaccard_max": "0.111",
          "tokens_generated": "2083",
          "manual_ending_code": "C-16-16",
          "backend": "openrouter",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 426,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_der_eigentumsvektor.md",
          "index": 17,
          "title": "Abschnitt 17: Der Eigentumsvektor",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "33.8",
          "jaccard_max": "0.259",
          "tokens_generated": "1484",
          "manual_ending_code": "C-17-17",
          "backend": "openrouter",
          "genre": "Kochbuch",
          "leak_free": "true",
          "words": 468,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_016_faden_der_gelassenheit",
      "title": "Faden der Gelassenheit: Einsichten für stürmische Zeiten",
      "language": "DE",
      "style": "Lebensweisheiten",
      "pov": "third_person",
      "setting_summary": "Kontemplative Einsichten fuer unruhige Zeiten.",
      "characters": [],
      "chapter_count": 20,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18",
        "art_19",
        "art_20"
      ],
      "words": 6625,
      "reading_minutes": 33,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 106,
          "reading_minutes": 1
        },
        {
          "file": "01_art_01_abschnitt_1_die_wartung_der_mitte.md",
          "index": 1,
          "title": "Abschnitt 1: Die Wartung der Mitte",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "61.6",
          "jaccard_max": "0.0",
          "tokens_generated": "2911",
          "manual_ending_code": "L-01-01",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 250,
          "reading_minutes": 1
        },
        {
          "file": "02_art_02_abschnitt_2_die_differentielle_der_gleic.md",
          "index": 2,
          "title": "Abschnitt 2: Die Differentielle der Gleichheit",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "23.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1088",
          "manual_ending_code": "L-02-02",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 326,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_kalibrierung_der_unverse.md",
          "index": 3,
          "title": "Abschnitt 3: Die Kalibrierung der Unversehrtheit",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "67.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1879",
          "manual_ending_code": "L-03-03",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 225,
          "reading_minutes": 1
        },
        {
          "file": "04_art_04_abschnitt_4_die_nullstellung_der_eigentu.md",
          "index": 4,
          "title": "Abschnitt 4: Die Nullstellung der Eigentumsvektoren",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "16.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1034",
          "manual_ending_code": "L-04-04",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 265,
          "reading_minutes": 1
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalibrierung_der_schmerz.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kalibrierung der Schmerzschwelle",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "19.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1060",
          "manual_ending_code": "L-05-05",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 278,
          "reading_minutes": 1
        },
        {
          "file": "06_art_06_abschnitt_6_die_eichung_des_anerkennungs.md",
          "index": 6,
          "title": "Abschnitt 6: Die Eichung des Anerkennungsvektors",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "38.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1592",
          "manual_ending_code": "L-06-06",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 317,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_entgiftung_der_schutzzon.md",
          "index": 7,
          "title": "Abschnitt 7: Die Entgiftung der Schutzzone",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "25.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1098",
          "manual_ending_code": "L-07-07",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 243,
          "reading_minutes": 1
        },
        {
          "file": "08_art_08_abschnitt_8_die_rückführung_des_irrevers.md",
          "index": 8,
          "title": "Abschnitt 8: Die Rückführung des Irreversiblen",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "63.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1128",
          "manual_ending_code": "L-08-08",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 274,
          "reading_minutes": 1
        },
        {
          "file": "09_art_09_abschnitt_9_die_latenz_der_freiheit.md",
          "index": 9,
          "title": "Abschnitt 9: Die Latenz der Freiheit",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "23.4",
          "jaccard_max": "0.0",
          "tokens_generated": "2222",
          "manual_ending_code": "L-09-09",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 237,
          "reading_minutes": 1
        },
        {
          "file": "10_art_10_abschnitt_10_die_unparteilichkeit_des_pr.md",
          "index": 10,
          "title": "Abschnitt 10: Die Unparteilichkeit des Protokolls",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "40.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1012",
          "manual_ending_code": "L-10-10",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 245,
          "reading_minutes": 1
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuldsvermutung_als_.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuldsvermutung als Kalibrierwert",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.9",
          "jaccard_max": "0.0",
          "tokens_generated": "833",
          "manual_ending_code": "L-11-11",
          "backend": "deepseek",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 390,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_wohnung_als_geschützter.md",
          "index": 12,
          "title": "Abschnitt 12: Die Wohnung als geschützter Raum",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.8",
          "jaccard_max": "0.0",
          "tokens_generated": "834",
          "manual_ending_code": "L-12-12",
          "backend": "deepseek",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 414,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_kalibrierung_der_bewegu.md",
          "index": 13,
          "title": "Abschnitt 13: Die Kalibrierung der Bewegung",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "39.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1416",
          "manual_ending_code": "L-13-13",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 309,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_stille_justierung.md",
          "index": 14,
          "title": "Abschnitt 14: Die stille Justierung",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "87.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1290",
          "manual_ending_code": "L-14-14",
          "backend": "openrouter",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 382,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_entfernung_der_gefahr.md",
          "index": 15,
          "title": "Abschnitt 15: Die Entfernung der Gefahr",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.7",
          "jaccard_max": "0.0",
          "tokens_generated": "652",
          "manual_ending_code": "L-15-15",
          "backend": "deepseek",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 345,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_entfernung_der_bindung.md",
          "index": 16,
          "title": "Abschnitt 16: Die Entfernung der Bindung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.9",
          "jaccard_max": "0.0",
          "tokens_generated": "689",
          "manual_ending_code": "L-16-16",
          "backend": "deepseek",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 364,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_kalibrierte_ferne.md",
          "index": 17,
          "title": "Abschnitt 17: Die kalibrierte Ferne",
          "article": "art_17",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "21.8",
          "jaccard_max": "0.0",
          "tokens_generated": "787",
          "manual_ending_code": "L-17-17",
          "backend": "deepseek",
          "genre": "Lebensweisheiten",
          "leak_free": "",
          "words": 418,
          "reading_minutes": 2
        },
        {
          "file": "18_art_18_abschnitt_18_die_offene_tür.md",
          "index": 18,
          "title": "Abschnitt 18: Die offene Tür",
          "article": "art_18",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "18.6",
          "jaccard_max": "0.0",
          "tokens_generated": "737",
          "manual_ending_code": "L-18-18",
          "backend": "deepseek",
          "genre": "Lebensweisheiten",
          "leak_free": "",
          "words": 386,
          "reading_minutes": 2
        },
        {
          "file": "19_art_19_abschnitt_19_die_durchlässige_wand.md",
          "index": 19,
          "title": "Abschnitt 19: Die durchlässige Wand",
          "article": "art_19",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "18.5",
          "jaccard_max": "0.0",
          "tokens_generated": "718",
          "manual_ending_code": "L-19-19",
          "backend": "deepseek",
          "genre": "Lebensweisheiten",
          "leak_free": "",
          "words": 376,
          "reading_minutes": 2
        },
        {
          "file": "20_art_20_abschnitt_20_die_offene_schale.md",
          "index": 20,
          "title": "Abschnitt 20: Die offene Schale",
          "article": "art_20",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.1",
          "jaccard_max": "0.0",
          "tokens_generated": "894",
          "manual_ending_code": "L-20-20",
          "backend": "deepseek",
          "genre": "Lebensweisheiten",
          "leak_free": "true",
          "words": 475,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_017_des_volkes_mund",
      "title": "Des Volkes Mund: Herkunft und Sinn alter Wendungen",
      "language": "DE",
      "style": "Sprichwoerter",
      "pov": "third_person",
      "setting_summary": "Etymologische Miniaturen zu gefluegelten Worten.",
      "characters": [],
      "chapter_count": 26,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16",
        "art_17",
        "art_18",
        "art_19",
        "art_20",
        "art_21",
        "art_22",
        "art_23",
        "art_24",
        "art_25",
        "art_26"
      ],
      "words": 9281,
      "reading_minutes": 46,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 101,
          "reading_minutes": 1
        },
        {
          "file": "01_art_01_abschnitt_1_der_funke_im_rohr.md",
          "index": 1,
          "title": "Abschnitt 1: Der Funke im Rohr",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "3",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "73.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1901",
          "manual_ending_code": "V-01-01",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 335,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_der_staub_im_licht.md",
          "index": 2,
          "title": "Abschnitt 2: Der Staub im Licht",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "22.7",
          "jaccard_max": "0.0",
          "tokens_generated": "2201",
          "manual_ending_code": "V-02-02",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 441,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_der_nagel_im_licht.md",
          "index": 3,
          "title": "Abschnitt 3: Der Nagel im Licht",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "38.6",
          "jaccard_max": "0.0",
          "tokens_generated": "5233",
          "manual_ending_code": "V-03-03",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 339,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_der_tropfen_im_takt.md",
          "index": 4,
          "title": "Abschnitt 4: Der Tropfen im Takt",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "23.3",
          "jaccard_max": "0.0",
          "tokens_generated": "2343",
          "manual_ending_code": "V-04-04",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 370,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_der_schweigende_sauerstoff.md",
          "index": 5,
          "title": "Abschnitt 5: Der Schweigende Sauerstoff",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "42.4",
          "jaccard_max": "0.0",
          "tokens_generated": "6342",
          "manual_ending_code": "V-05-05",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 384,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_der_gedämpfte_alarm.md",
          "index": 6,
          "title": "Abschnitt 6: Der gedämpfte Alarm",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "20.9",
          "jaccard_max": "0.0",
          "tokens_generated": "2330",
          "manual_ending_code": "V-06-06",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 375,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_das_gleichgewicht_der_worte.md",
          "index": 7,
          "title": "Abschnitt 7: Das Gleichgewicht der Worte",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "31.9",
          "jaccard_max": "0.0",
          "tokens_generated": "3394",
          "manual_ending_code": "V-07-07",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 349,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_der_schwingende_funke.md",
          "index": 8,
          "title": "Abschnitt 8: Der Schwingende Funke",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "28.4",
          "jaccard_max": "0.143",
          "tokens_generated": "3428",
          "manual_ending_code": "V-08-08",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 328,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_der_nullpunkt_des_justiergri.md",
          "index": 9,
          "title": "Abschnitt 9: Der Nullpunkt des Justiergriffs",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "22.0",
          "jaccard_max": "0.0",
          "tokens_generated": "2380",
          "manual_ending_code": "V-09-09",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 347,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_der_griff_im_nullpunkt.md",
          "index": 10,
          "title": "Abschnitt 10: Der Griff im Nullpunkt",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "17.4",
          "jaccard_max": "0.048",
          "tokens_generated": "1952",
          "manual_ending_code": "V-10-10",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 332,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_waage_vor_dem_urteil.md",
          "index": 11,
          "title": "Abschnitt 11: Die Waage vor dem Urteil",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "19.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1001",
          "manual_ending_code": "V-11-11",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 286,
          "reading_minutes": 1
        },
        {
          "file": "12_art_12_abschnitt_12_das_versiegelte_haus.md",
          "index": 12,
          "title": "Abschnitt 12: Das versiegelte Haus",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.1",
          "jaccard_max": "0.04",
          "tokens_generated": "731",
          "manual_ending_code": "V-12-12",
          "backend": "deepseek",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 385,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_flackernde_lampe.md",
          "index": 13,
          "title": "Abschnitt 13: Die flackernde Lampe",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.6",
          "jaccard_max": "0.0",
          "tokens_generated": "712",
          "manual_ending_code": "V-13-13",
          "backend": "deepseek",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 357,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_kalte_naht.md",
          "index": 14,
          "title": "Abschnitt 14: Die kalte Naht",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.4",
          "jaccard_max": "0.028",
          "tokens_generated": "773",
          "manual_ending_code": "V-14-14",
          "backend": "deepseek",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 408,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_staatenlose_fracht.md",
          "index": 15,
          "title": "Abschnitt 15: Die staatenlose Fracht",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "15.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1815",
          "manual_ending_code": "V-15-15",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 356,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_die_kalibrierte_naht.md",
          "index": 16,
          "title": "Abschnitt 16: Die kalibrierte Naht",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.4",
          "jaccard_max": "0.0",
          "tokens_generated": "900",
          "manual_ending_code": "V-16-16",
          "backend": "deepseek",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 474,
          "reading_minutes": 2
        },
        {
          "file": "17_art_17_abschnitt_17_die_kalibrierte_kette.md",
          "index": 17,
          "title": "Abschnitt 17: Die kalibrierte Kette",
          "article": "art_17",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.3",
          "jaccard_max": "0.027",
          "tokens_generated": "843",
          "manual_ending_code": "V-17-17",
          "backend": "deepseek",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 452,
          "reading_minutes": 2
        },
        {
          "file": "18_art_18_abschnitt_18_die_kalte_leitung.md",
          "index": 18,
          "title": "Abschnitt 18: Die kalte Leitung",
          "article": "art_18",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "38.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1453",
          "manual_ending_code": "V-18-18",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 263,
          "reading_minutes": 1
        },
        {
          "file": "19_art_19_abschnitt_19_der_offene_kanal.md",
          "index": 19,
          "title": "Abschnitt 19: Der offene Kanal",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "94.8",
          "jaccard_max": "0.04",
          "tokens_generated": "1997",
          "manual_ending_code": "V-19-19",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 290,
          "reading_minutes": 1
        },
        {
          "file": "20_art_20_abschnitt_20_der_tragende_kreis.md",
          "index": 20,
          "title": "Abschnitt 20: Der tragende Kreis",
          "article": "art_20",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "40.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1630",
          "manual_ending_code": "V-20-20",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 237,
          "reading_minutes": 1
        },
        {
          "file": "21_art_21_abschnitt_21_der_stille_zähler.md",
          "index": 21,
          "title": "Abschnitt 21: Der stille Zähler",
          "article": "art_21",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "33.7",
          "jaccard_max": "0.0",
          "tokens_generated": "927",
          "manual_ending_code": "V-21-21",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 226,
          "reading_minutes": 1
        },
        {
          "file": "22_art_22_abschnitt_22_die_registratur_der_gefahre.md",
          "index": 22,
          "title": "Abschnitt 22: Die Registratur der Gefahren",
          "article": "art_22",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.6",
          "jaccard_max": "0.071",
          "tokens_generated": "826",
          "manual_ending_code": "V-22-22",
          "backend": "deepseek",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 390,
          "reading_minutes": 2
        },
        {
          "file": "23_art_23_abschnitt_23_wer_das_gift_bändigt.md",
          "index": 23,
          "title": "Abschnitt 23: Wer das Gift bändigt",
          "article": "art_23",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "100.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1800",
          "manual_ending_code": "V-23-23",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 214,
          "reading_minutes": 1
        },
        {
          "file": "24_art_24_abschnitt_24_wer_die_zeit_atmet.md",
          "index": 24,
          "title": "Abschnitt 24: Wer die Zeit atmet",
          "article": "art_24",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "35.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1115",
          "manual_ending_code": "V-24-24",
          "backend": "openrouter",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 298,
          "reading_minutes": 1
        },
        {
          "file": "25_art_25_abschnitt_25_das_trockene_brot.md",
          "index": 25,
          "title": "Abschnitt 25: Das trockene Brot",
          "article": "art_25",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1086",
          "manual_ending_code": "V-25-25",
          "backend": "deepseek",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 502,
          "reading_minutes": 3
        },
        {
          "file": "26_art_26_abschnitt_26_die_unentgeltliche_werkbank.md",
          "index": 26,
          "title": "Abschnitt 26: Die unentgeltliche Werkbank",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1031",
          "manual_ending_code": "V-26-26",
          "backend": "deepseek",
          "genre": "Sprichwoerter",
          "leak_free": "true",
          "words": 442,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_018_rhymes_of_the_commons",
      "title": "Rhymes of the Commons: A Ledger of Limericks",
      "language": "EN",
      "style": "Limericks",
      "pov": "third_person",
      "setting_summary": "Verse ledgers of the commons: five lines that dismantle grand decrees.",
      "characters": [],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 3229,
      "reading_minutes": 16,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prologue",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "",
          "duration_seconds": "",
          "jaccard_max": "",
          "tokens_generated": "",
          "manual_ending_code": "",
          "backend": "",
          "genre": "",
          "leak_free": "",
          "words": 88,
          "reading_minutes": 1
        },
        {
          "file": "01_art_01_abschnitt_1_the_clerk_of_the_pneumatic_l.md",
          "index": 1,
          "title": "Abschnitt 1: The Clerk of the Pneumatic Line",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "4.0",
          "jaccard_max": "0.0",
          "tokens_generated": "359",
          "manual_ending_code": "A-01-01",
          "backend": "deepseek",
          "genre": "Limericks",
          "leak_free": "true",
          "words": 266,
          "reading_minutes": 1
        },
        {
          "file": "02_art_03_abschnitt_2_the_gauges_whisper.md",
          "index": 2,
          "title": "Abschnitt 2: The Gauge’s Whisper",
          "article": "art_03",
          "ending_ok": "false",
          "attempts": "3",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "332.9",
          "jaccard_max": "0.0",
          "tokens_generated": "10979",
          "manual_ending_code": "A-03-02",
          "backend": "openrouter",
          "genre": "Limericks",
          "leak_free": "",
          "words": 315,
          "reading_minutes": 2
        },
        {
          "file": "03_art_04_abschnitt_3_the_servitude_switch.md",
          "index": 3,
          "title": "Abschnitt 3: The Servitude Switch",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.8",
          "jaccard_max": "0.0",
          "tokens_generated": "572",
          "manual_ending_code": "A-04-03",
          "backend": "deepseek",
          "genre": "Limericks",
          "leak_free": "true",
          "words": 435,
          "reading_minutes": 2
        },
        {
          "file": "04_art_05_abschnitt_4_the_thermal_drift.md",
          "index": 4,
          "title": "Abschnitt 4: The Thermal Drift",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "56.2",
          "jaccard_max": "0.0",
          "tokens_generated": "909",
          "manual_ending_code": "A-05-04",
          "backend": "openrouter",
          "genre": "Limericks",
          "leak_free": "true",
          "words": 295,
          "reading_minutes": 1
        },
        {
          "file": "05_art_09_abschnitt_5_the_luminous_threshold.md",
          "index": 5,
          "title": "Abschnitt 5: The Luminous Threshold",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "206.2",
          "jaccard_max": "0.0",
          "tokens_generated": "9119",
          "manual_ending_code": "A-09-05",
          "backend": "openrouter",
          "genre": "Limericks",
          "leak_free": "true",
          "words": 329,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_silted_contact.md",
          "index": 6,
          "title": "Abschnitt 6: The Silted Contact",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.3",
          "jaccard_max": "0.0",
          "tokens_generated": "515",
          "manual_ending_code": "A-12-06",
          "backend": "deepseek",
          "genre": "Limericks",
          "leak_free": "true",
          "words": 366,
          "reading_minutes": 2
        },
        {
          "file": "07_art_14_abschnitt_7_the_displacement_gauge.md",
          "index": 7,
          "title": "Abschnitt 7: The Displacement Gauge",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "120.2",
          "jaccard_max": "0.0",
          "tokens_generated": "2019",
          "manual_ending_code": "A-14-07",
          "backend": "openrouter",
          "genre": "Limericks",
          "leak_free": "true",
          "words": 292,
          "reading_minutes": 1
        },
        {
          "file": "08_art_19_abschnitt_8_the_ozone_gauge.md",
          "index": 8,
          "title": "Abschnitt 8: The Ozone Gauge",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "408.6",
          "jaccard_max": "0.0",
          "tokens_generated": "3808",
          "manual_ending_code": "A-19-08",
          "backend": "openrouter",
          "genre": "Limericks",
          "leak_free": "true",
          "words": 340,
          "reading_minutes": 2
        },
        {
          "file": "09_art_26_abschnitt_9_the_merit_ladder.md",
          "index": 9,
          "title": "Abschnitt 9: The Merit Ladder",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "24.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1312",
          "manual_ending_code": "A-26-09",
          "backend": "openrouter",
          "genre": "Limericks",
          "leak_free": "true",
          "words": 503,
          "reading_minutes": 3
        }
      ]
    },
    {
      "book_id": "buch_019_the_salt_diaries",
      "title": "The Salt Diaries",
      "language": "EN",
      "style": "Diary",
      "pov": "first_person",
      "setting_summary": "A decommissioned lighthouse repurposed as a rationing station on a shrinking island, where five residents must log every calorie and every word. The tide is rising faster than predicted, cutting the island off for longer each month, and the mainland broadcasts only silence. Their survival depends on a strict hierarchy and a dwindling supply of fresh water, forcing daily negotiations over who deserves to speak, eat, and live.",
      "characters": [
        "Ines",
        "Tomas",
        "Mira",
        "Old Pavel",
        "Rook"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4774,
      "reading_minutes": 24,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "7.7",
          "jaccard_max": "",
          "tokens_generated": "704",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Diary",
          "leak_free": "",
          "words": 536,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_kalibrierung_der_stille.md",
          "index": 1,
          "title": "Abschnitt 1: Kalibrierung der Stille",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "2",
          "model": "deepseek-chat",
          "duration_seconds": "13.6",
          "jaccard_max": "0.228",
          "tokens_generated": "676",
          "manual_ending_code": "T-01-01",
          "backend": "deepseek",
          "genre": "Diary",
          "leak_free": "true",
          "words": 507,
          "reading_minutes": 3
        },
        {
          "file": "02_art_03_abschnitt_2_driftparameter.md",
          "index": 2,
          "title": "Abschnitt 2: Driftparameter",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "43.3",
          "jaccard_max": "0.075",
          "tokens_generated": "953",
          "manual_ending_code": "T-03-02",
          "backend": "openrouter",
          "genre": "Diary",
          "leak_free": "true",
          "words": 406,
          "reading_minutes": 2
        },
        {
          "file": "03_art_04_abschnitt_3_flicker_in_the_lamp_room.md",
          "index": 3,
          "title": "Abschnitt 3: Flicker in the Lamp Room",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "28.7",
          "jaccard_max": "0.053",
          "tokens_generated": "1496",
          "manual_ending_code": "T-04-03",
          "backend": "openrouter",
          "genre": "Diary",
          "leak_free": "true",
          "words": 444,
          "reading_minutes": 2
        },
        {
          "file": "04_art_05_abschnitt_4_the_wet_between_the_floors.md",
          "index": 4,
          "title": "Abschnitt 4: The Wet Between the Floors",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.8",
          "jaccard_max": "0.05",
          "tokens_generated": "739",
          "manual_ending_code": "T-05-04",
          "backend": "deepseek",
          "genre": "Diary",
          "leak_free": "true",
          "words": 557,
          "reading_minutes": 3
        },
        {
          "file": "05_art_09_abschnitt_5_the_calibration_of_silence.md",
          "index": 5,
          "title": "Abschnitt 5: The Calibration of Silence",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "56.0",
          "jaccard_max": "0.038",
          "tokens_generated": "1578",
          "manual_ending_code": "T-09-05",
          "backend": "openrouter",
          "genre": "Diary",
          "leak_free": "true",
          "words": 544,
          "reading_minutes": 3
        },
        {
          "file": "06_art_12_abschnitt_6_the_drift_of_dust.md",
          "index": 6,
          "title": "Abschnitt 6: The Drift of Dust",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "69.1",
          "jaccard_max": "0.021",
          "tokens_generated": "1863",
          "manual_ending_code": "T-12-06",
          "backend": "openrouter",
          "genre": "Diary",
          "leak_free": "true",
          "words": 569,
          "reading_minutes": 3
        },
        {
          "file": "07_art_14_abschnitt_7_the_asylum_parameter.md",
          "index": 7,
          "title": "Abschnitt 7: The Asylum Parameter",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "57.6",
          "jaccard_max": "0.02",
          "tokens_generated": "1023",
          "manual_ending_code": "T-14-07",
          "backend": "openrouter",
          "genre": "Diary",
          "leak_free": "true",
          "words": 377,
          "reading_minutes": 2
        },
        {
          "file": "08_art_19_abschnitt_8_the_expression_parameter.md",
          "index": 8,
          "title": "Abschnitt 8: The Expression Parameter",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.2",
          "jaccard_max": "0.051",
          "tokens_generated": "623",
          "manual_ending_code": "T-19-08",
          "backend": "deepseek",
          "genre": "Diary",
          "leak_free": "true",
          "words": 461,
          "reading_minutes": 2
        },
        {
          "file": "09_art_26_abschnitt_9_the_education_parameter.md",
          "index": 9,
          "title": "Abschnitt 9: The Education Parameter",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "15.6",
          "jaccard_max": "0.028",
          "tokens_generated": "1104",
          "manual_ending_code": "T-26-09",
          "backend": "openrouter",
          "genre": "Diary",
          "leak_free": "true",
          "words": 373,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_020_die_quote_der_stille",
      "title": "Die Quote der Stille",
      "language": "DE",
      "style": "SciFi_Dystopie",
      "pov": "third_person",
      "setting_summary": "In der unterirdischen Stadt Kaskade regelt ein allgegenwärtiges Punktesystem namens QUOTE den Zugang zu Nahrung, Wohnraum und medizinischer Hilfe; wer zu viele Strafpunkte sammelt, wird in die Reklamation überstellt und kehrt nicht zurück. Die Bewohner leben in engen Schichten unter permanenter akustischer und biometrischer Überwachung, während eine knappe Energiequote jede Woche neu verhandelt wird. Mira Voss, eine junge Systemarchivarin, entdeckt, dass die QUOTE nicht nur Verhalten bewertet, sondern Gedankenäußerungen vorausberechnet – und dass ihre eigene Quote seit Jahren manipuliert wird.",
      "characters": [
        "Mira Voss",
        "Jarek Lund",
        "Sana",
        "Dorn",
        "Elia"
      ],
      "chapter_count": 16,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16"
      ],
      "words": 7419,
      "reading_minutes": 37,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "8.0",
          "jaccard_max": "",
          "tokens_generated": "883",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "",
          "words": 506,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_die_kalibrierung_der_stille.md",
          "index": 1,
          "title": "Abschnitt 1: Die Kalibrierung der Stille",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.3",
          "jaccard_max": "0.077",
          "tokens_generated": "746",
          "manual_ending_code": "S-01-01",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 408,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_prognose.md",
          "index": 2,
          "title": "Abschnitt 2: Die Prognose",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.0",
          "jaccard_max": "0.083",
          "tokens_generated": "964",
          "manual_ending_code": "S-02-02",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 506,
          "reading_minutes": 3
        },
        {
          "file": "03_art_03_abschnitt_3_der_vorlauf.md",
          "index": 3,
          "title": "Abschnitt 3: Der Vorlauf",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "3",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "168.6",
          "jaccard_max": "0.024",
          "tokens_generated": "1531",
          "manual_ending_code": "S-03-03",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 414,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_der_schwellende_schwellenwer.md",
          "index": 4,
          "title": "Abschnitt 4: Der schwellende Schwellenwert",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "62.1",
          "jaccard_max": "0.024",
          "tokens_generated": "2008",
          "manual_ending_code": "S-04-04",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 510,
          "reading_minutes": 3
        },
        {
          "file": "05_art_05_abschnitt_5_der_kalibrierte_schmerz.md",
          "index": 5,
          "title": "Abschnitt 5: Der kalibrierte Schmerz",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "73.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1147",
          "manual_ending_code": "S-05-05",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 411,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_der_kalibrierungsgriff.md",
          "index": 6,
          "title": "Abschnitt 6: Der Kalibrierungsgriff",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "119.0",
          "jaccard_max": "0.0",
          "tokens_generated": "4324",
          "manual_ending_code": "S-06-06",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 344,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_der_gleichheitsparameter.md",
          "index": 7,
          "title": "Abschnitt 7: Der Gleichheitsparameter",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "45.1",
          "jaccard_max": "0.05",
          "tokens_generated": "1133",
          "manual_ending_code": "S-07-07",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 437,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_der_rechtsbehelf.md",
          "index": 8,
          "title": "Abschnitt 8: Der Rechtsbehelf",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.3",
          "jaccard_max": "0.143",
          "tokens_generated": "961",
          "manual_ending_code": "S-08-08",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 476,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_kalibrierungsvorgabe.md",
          "index": 9,
          "title": "Abschnitt 9: Die Kalibrierungsvorgabe",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.0",
          "jaccard_max": "0.0",
          "tokens_generated": "977",
          "manual_ending_code": "S-09-09",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 464,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_gleichheitsvorgabe.md",
          "index": 10,
          "title": "Abschnitt 10: Die Gleichheitsvorgabe",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.3",
          "jaccard_max": "0.062",
          "tokens_generated": "865",
          "manual_ending_code": "S-10-10",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 446,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuldsvermutung.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuldsvermutung",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1275",
          "manual_ending_code": "S-11-11",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 588,
          "reading_minutes": 3
        },
        {
          "file": "12_art_12_abschnitt_12_privatheit_als_parameter.md",
          "index": 12,
          "title": "Abschnitt 12: Privatheit als Parameter",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "40.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1168",
          "manual_ending_code": "S-12-12",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 334,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_kalibrierte_fluchtlinie.md",
          "index": 13,
          "title": "Abschnitt 13: Die kalibrierte Fluchtlinie",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.4",
          "jaccard_max": "0.0",
          "tokens_generated": "922",
          "manual_ending_code": "S-13-13",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 466,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_der_asyl_vektor.md",
          "index": 14,
          "title": "Abschnitt 14: Der Asyl-Vektor",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "80.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1238",
          "manual_ending_code": "S-14-14",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 374,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_der_identitäts_offset.md",
          "index": 15,
          "title": "Abschnitt 15: Der Identitäts-Offset",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "71.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1268",
          "manual_ending_code": "S-15-15",
          "backend": "openrouter",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 330,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_der_ehe_parameter.md",
          "index": 16,
          "title": "Abschnitt 16: Der Ehe-Parameter",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.8",
          "jaccard_max": "0.125",
          "tokens_generated": "834",
          "manual_ending_code": "S-16-16",
          "backend": "deepseek",
          "genre": "SciFi_Dystopie",
          "leak_free": "true",
          "words": 405,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_021_the_bell_of_the_ninth_gate",
      "title": "The Bell of the Ninth Gate",
      "language": "EN",
      "style": "Fairy_Tale",
      "pov": "third_person",
      "setting_summary": "A walled city of seven tiers, each gated by a bell that rings only when the council permits passage. Water is rationed by the Bell-Keeper's ledger, and every spoken word in the lower tiers is recorded by listeners hidden in the stone. When the ninth bell—silent for a generation—begins to hum on its own, five lives are drawn into a trial of thresholds, bans, and the quiet arithmetic of mercy.",
      "characters": [
        "Mira",
        "Corin",
        "Old Sable",
        "Tobin",
        "The Keeper"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4274,
      "reading_minutes": 21,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.2",
          "jaccard_max": "",
          "tokens_generated": "595",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Fairy_Tale",
          "leak_free": "",
          "words": 497,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_the_ledgers_hollow.md",
          "index": 1,
          "title": "Abschnitt 1: The Ledger's Hollow",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.8",
          "jaccard_max": "0.036",
          "tokens_generated": "523",
          "manual_ending_code": "M-01-01",
          "backend": "deepseek",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 396,
          "reading_minutes": 2
        },
        {
          "file": "02_art_03_abschnitt_2_the_humming_ninth.md",
          "index": 2,
          "title": "Abschnitt 2: The Humming Ninth",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "73.1",
          "jaccard_max": "0.057",
          "tokens_generated": "1765",
          "manual_ending_code": "M-03-02",
          "backend": "openrouter",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 499,
          "reading_minutes": 2
        },
        {
          "file": "03_art_04_abschnitt_3_the_calibration_of_chains.md",
          "index": 3,
          "title": "Abschnitt 3: The Calibration of Chains",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.8",
          "jaccard_max": "0.065",
          "tokens_generated": "628",
          "manual_ending_code": "M-04-03",
          "backend": "deepseek",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 462,
          "reading_minutes": 2
        },
        {
          "file": "04_art_05_abschnitt_4_the_drip_of_threshold.md",
          "index": 4,
          "title": "Abschnitt 4: The Drip of Threshold",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "71.6",
          "jaccard_max": "0.048",
          "tokens_generated": "1523",
          "manual_ending_code": "M-05-04",
          "backend": "openrouter",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 474,
          "reading_minutes": 2
        },
        {
          "file": "05_art_09_abschnitt_5_the_arithmetic_of_holding.md",
          "index": 5,
          "title": "Abschnitt 5: The Arithmetic of Holding",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.1",
          "jaccard_max": "0.0",
          "tokens_generated": "594",
          "manual_ending_code": "M-09-05",
          "backend": "deepseek",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 425,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_ledgers_threshold.md",
          "index": 6,
          "title": "Abschnitt 6: The Ledger's Threshold",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "41.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1154",
          "manual_ending_code": "M-12-06",
          "backend": "openrouter",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 442,
          "reading_minutes": 2
        },
        {
          "file": "07_art_14_abschnitt_7_the_margin_of_the_unnamed.md",
          "index": 7,
          "title": "Abschnitt 7: The Margin of the Unnamed",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "4.9",
          "jaccard_max": "0.0",
          "tokens_generated": "515",
          "manual_ending_code": "M-14-07",
          "backend": "deepseek",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 362,
          "reading_minutes": 2
        },
        {
          "file": "08_art_19_abschnitt_8_the_threshold_of_unspoken_na.md",
          "index": 8,
          "title": "Abschnitt 8: The Threshold of Unspoken Names",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "19.3",
          "jaccard_max": "0.0",
          "tokens_generated": "911",
          "manual_ending_code": "M-19-08",
          "backend": "openrouter",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 335,
          "reading_minutes": 2
        },
        {
          "file": "09_art_26_abschnitt_9_the_calibration_of_unlearned.md",
          "index": 9,
          "title": "Abschnitt 9: The Calibration of Unlearned Things",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "21.4",
          "jaccard_max": "0.0",
          "tokens_generated": "791",
          "manual_ending_code": "M-26-09",
          "backend": "openrouter",
          "genre": "Fairy_Tale",
          "leak_free": "true",
          "words": 382,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_022_the_ledger_of_vanishing_rain",
      "title": "The Ledger of Vanishing Rain",
      "language": "EN",
      "style": "Magical_Realism",
      "pov": "third_person",
      "setting_summary": "In the sealed city of Kaltbrunn, rain falls only on the rooftops of government buildings while the outer districts parch under a permanent drought. A bureaucratic Ministry of Hydration assigns every citizen a daily water ration and records their words in a public ledger, so that speech and thirst are measured by the same hand. When a young cartographer discovers that the rain's path can be redrawn, she becomes the center of a quiet rebellion that tests dignity, equality, and the right to life itself.",
      "characters": [
        "Ilse",
        "Marek",
        "Tomas",
        "Nadia",
        "The Inspector"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4648,
      "reading_minutes": 23,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.9",
          "jaccard_max": "",
          "tokens_generated": "724",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Magical_Realism",
          "leak_free": "",
          "words": 597,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_the_weight_of_dust.md",
          "index": 1,
          "title": "Abschnitt 1: The Weight of Dust",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "146.0",
          "jaccard_max": "0.121",
          "tokens_generated": "5397",
          "manual_ending_code": "Z-01-01",
          "backend": "openrouter",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 505,
          "reading_minutes": 3
        },
        {
          "file": "02_art_03_abschnitt_2_the_calibration_of_breath.md",
          "index": 2,
          "title": "Abschnitt 2: The Calibration of Breath",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.4",
          "jaccard_max": "0.071",
          "tokens_generated": "591",
          "manual_ending_code": "Z-03-02",
          "backend": "deepseek",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 471,
          "reading_minutes": 2
        },
        {
          "file": "03_art_04_abschnitt_3_the_servitude_threshold.md",
          "index": 3,
          "title": "Abschnitt 3: The Servitude Threshold",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "63.9",
          "jaccard_max": "0.029",
          "tokens_generated": "1676",
          "manual_ending_code": "Z-04-03",
          "backend": "openrouter",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 475,
          "reading_minutes": 2
        },
        {
          "file": "04_art_05_abschnitt_4_the_calibration_of_cruelty.md",
          "index": 4,
          "title": "Abschnitt 4: The Calibration of Cruelty",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.6",
          "jaccard_max": "0.067",
          "tokens_generated": "606",
          "manual_ending_code": "Z-05-04",
          "backend": "deepseek",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 460,
          "reading_minutes": 2
        },
        {
          "file": "05_art_09_abschnitt_5_the_calibration_of_absence.md",
          "index": 5,
          "title": "Abschnitt 5: The Calibration of Absence",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.8",
          "jaccard_max": "0.043",
          "tokens_generated": "553",
          "manual_ending_code": "Z-09-05",
          "backend": "deepseek",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 406,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_dust_in_the_tubes.md",
          "index": 6,
          "title": "Abschnitt 6: The Dust in the Tubes",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "190.5",
          "jaccard_max": "0.038",
          "tokens_generated": "4752",
          "manual_ending_code": "Z-12-06",
          "backend": "openrouter",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 466,
          "reading_minutes": 2
        },
        {
          "file": "07_art_14_abschnitt_7_the_calibration_of_sanctuary.md",
          "index": 7,
          "title": "Abschnitt 7: The Calibration of Sanctuary",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "37.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1018",
          "manual_ending_code": "Z-14-07",
          "backend": "openrouter",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 393,
          "reading_minutes": 2
        },
        {
          "file": "08_art_19_abschnitt_8_the_calibration_of_whispers.md",
          "index": 8,
          "title": "Abschnitt 8: The Calibration of Whispers",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.3",
          "jaccard_max": "0.0",
          "tokens_generated": "596",
          "manual_ending_code": "Z-19-08",
          "backend": "deepseek",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 468,
          "reading_minutes": 2
        },
        {
          "file": "09_art_26_abschnitt_9_the_calibration_of_knowing.md",
          "index": 9,
          "title": "Abschnitt 9: The Calibration of Knowing",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "46.4",
          "jaccard_max": "0.047",
          "tokens_generated": "984",
          "manual_ending_code": "Z-26-09",
          "backend": "openrouter",
          "genre": "Magical_Realism",
          "leak_free": "true",
          "words": 407,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_023_the_gravity_room",
      "title": "The Gravity Room",
      "language": "EN",
      "style": "Chamber_Play",
      "pov": "third_person",
      "setting_summary": "Four strangers wake sealed inside a decommissioned orbital habitat module with a failing oxygen recycler and a countdown clock that no one set. Each holds a fragment of the access code needed to open the hatch, but the code only assembles if all four agree aloud on how to share the remaining air, water, and decision-making power. As the module drifts toward re-entry, every choice about dignity, speech, survival, and equality becomes a life-or-death negotiation.",
      "characters": [
        "Vera",
        "Oskar",
        "Mirela",
        "Tobias"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4489,
      "reading_minutes": 22,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "5.7",
          "jaccard_max": "",
          "tokens_generated": "640",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Chamber_Play",
          "leak_free": "",
          "words": 452,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_the_calibration_of_breath.md",
          "index": 1,
          "title": "Abschnitt 1: The Calibration of Breath",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.2",
          "jaccard_max": "0.024",
          "tokens_generated": "680",
          "manual_ending_code": "O-01-01",
          "backend": "deepseek",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 471,
          "reading_minutes": 2
        },
        {
          "file": "02_art_03_abschnitt_2_the_calibration_of_right.md",
          "index": 2,
          "title": "Abschnitt 2: The Calibration of Right",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "52.4",
          "jaccard_max": "0.062",
          "tokens_generated": "1257",
          "manual_ending_code": "O-03-02",
          "backend": "openrouter",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 476,
          "reading_minutes": 2
        },
        {
          "file": "03_art_04_abschnitt_3_the_calibration_of_servitude.md",
          "index": 3,
          "title": "Abschnitt 3: The Calibration of Servitude",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.3",
          "jaccard_max": "0.0",
          "tokens_generated": "774",
          "manual_ending_code": "O-04-03",
          "backend": "deepseek",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 561,
          "reading_minutes": 3
        },
        {
          "file": "04_art_05_abschnitt_4_the_drift_protocol.md",
          "index": 4,
          "title": "Abschnitt 4: The Drift Protocol",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "168.0",
          "jaccard_max": "0.032",
          "tokens_generated": "6678",
          "manual_ending_code": "O-05-04",
          "backend": "openrouter",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 398,
          "reading_minutes": 2
        },
        {
          "file": "05_art_09_abschnitt_5_the_detention_threshold.md",
          "index": 5,
          "title": "Abschnitt 5: The Detention Threshold",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.4",
          "jaccard_max": "0.026",
          "tokens_generated": "675",
          "manual_ending_code": "O-09-05",
          "backend": "deepseek",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 449,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_correspondence_floor.md",
          "index": 6,
          "title": "Abschnitt 6: The Correspondence Floor",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "18.1",
          "jaccard_max": "0.05",
          "tokens_generated": "1217",
          "manual_ending_code": "O-12-06",
          "backend": "openrouter",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 484,
          "reading_minutes": 2
        },
        {
          "file": "07_art_14_abschnitt_7_the_asylum_parameter.md",
          "index": 7,
          "title": "Abschnitt 7: The Asylum Parameter",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "91.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1261",
          "manual_ending_code": "O-14-07",
          "backend": "openrouter",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 402,
          "reading_minutes": 2
        },
        {
          "file": "08_art_19_abschnitt_8_the_expression_parameter.md",
          "index": 8,
          "title": "Abschnitt 8: The Expression Parameter",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "16.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1104",
          "manual_ending_code": "O-19-08",
          "backend": "openrouter",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 470,
          "reading_minutes": 2
        },
        {
          "file": "09_art_26_abschnitt_9_the_calibration_floor.md",
          "index": 9,
          "title": "Abschnitt 9: The Calibration Floor",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "34.4",
          "jaccard_max": "0.051",
          "tokens_generated": "1063",
          "manual_ending_code": "O-26-09",
          "backend": "openrouter",
          "genre": "Chamber_Play",
          "leak_free": "true",
          "words": 326,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_024_die_kammer_der_stimmen",
      "title": "Die Kammer der Stimmen",
      "language": "DE",
      "style": "Philosophischer_Essay",
      "pov": "first_person",
      "setting_summary": "Ein unterirdisches Archiv, in dem fünf Menschen auf engstem Raum leben und täglich Aufzeichnungen über vergangene Gesellschaften ordnen müssen. Ein strenger Zeitplan, knappe Ressourcen und die allgegenwärtige Stimme des Chronisten erzeugen einen permanenten Druck, in dem jede Meinung gewogen und jede Abweichung notiert wird.",
      "characters": [
        "Elian",
        "Mara",
        "Jost",
        "Vera",
        "Der Chronist"
      ],
      "chapter_count": 16,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16"
      ],
      "words": 7202,
      "reading_minutes": 36,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "7.3",
          "jaccard_max": "",
          "tokens_generated": "855",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "",
          "words": 493,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_der_staub_der_rohrpost.md",
          "index": 1,
          "title": "Abschnitt 1: Der Staub der Rohrpost",
          "article": "art_01",
          "ending_ok": "false",
          "attempts": "3",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "250.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1413",
          "manual_ending_code": "P-01-01",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "",
          "words": 358,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_das_eichholz_der_stimmen.md",
          "index": 2,
          "title": "Abschnitt 2: Das Eichholz der Stimmen",
          "article": "art_02",
          "ending_ok": "false",
          "attempts": "3",
          "model": "deepseek-chat",
          "duration_seconds": "24.3",
          "jaccard_max": "0.0",
          "tokens_generated": "867",
          "manual_ending_code": "P-02-02",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "",
          "words": 484,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_kalibrierung_der_schwell.md",
          "index": 3,
          "title": "Abschnitt 3: Die Kalibrierung der Schwellen",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "3",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "139.9",
          "jaccard_max": "0.049",
          "tokens_generated": "1133",
          "manual_ending_code": "P-03-03",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 309,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_toleranzschwelle_der_sti.md",
          "index": 4,
          "title": "Abschnitt 4: Die Toleranzschwelle der Stille",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "56.8",
          "jaccard_max": "0.022",
          "tokens_generated": "1321",
          "manual_ending_code": "P-04-04",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 361,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalibrierung_des_schmerz.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kalibrierung des Schmerzes",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "24.4",
          "jaccard_max": "0.022",
          "tokens_generated": "952",
          "manual_ending_code": "P-05-05",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 286,
          "reading_minutes": 1
        },
        {
          "file": "06_art_06_abschnitt_6_die_anerkennung_als_störgröß.md",
          "index": 6,
          "title": "Abschnitt 6: Die Anerkennung als Störgröße",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.3",
          "jaccard_max": "0.012",
          "tokens_generated": "769",
          "manual_ending_code": "P-06-06",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 402,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_gleichheit_als_toleranzf.md",
          "index": 7,
          "title": "Abschnitt 7: Die Gleichheit als Toleranzfenster",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "29.3",
          "jaccard_max": "0.024",
          "tokens_generated": "924",
          "manual_ending_code": "P-07-07",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 326,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_frist_als_fenstersturz.md",
          "index": 8,
          "title": "Abschnitt 8: Die Frist als Fenstersturz",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "2",
          "model": "deepseek-chat",
          "duration_seconds": "19.2",
          "jaccard_max": "0.023",
          "tokens_generated": "1217",
          "manual_ending_code": "P-08-08",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 619,
          "reading_minutes": 3
        },
        {
          "file": "09_art_09_abschnitt_9_die_kalibrierung_der_haftfäh.md",
          "index": 9,
          "title": "Abschnitt 9: Die Kalibrierung der Haftfähigkeit",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1228",
          "manual_ending_code": "P-09-09",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 622,
          "reading_minutes": 3
        },
        {
          "file": "10_art_10_abschnitt_10_die_unparteilichkeits_kalib.md",
          "index": 10,
          "title": "Abschnitt 10: Die Unparteilichkeits-Kalibrierung",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "21.2",
          "jaccard_max": "0.046",
          "tokens_generated": "1307",
          "manual_ending_code": "P-10-10",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 370,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschulds_kalibrierung.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschulds-Kalibrierung",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.5",
          "jaccard_max": "0.012",
          "tokens_generated": "898",
          "manual_ending_code": "P-11-11",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 436,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_korrespondenzintegrität.md",
          "index": 12,
          "title": "Abschnitt 12: Korrespondenzintegrität",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "48.0",
          "jaccard_max": "0.022",
          "tokens_generated": "1569",
          "manual_ending_code": "P-12-12",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 297,
          "reading_minutes": 1
        },
        {
          "file": "13_art_13_abschnitt_13_die_kalibrierung_der_reichw.md",
          "index": 13,
          "title": "Abschnitt 13: Die Kalibrierung der Reichweite",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.9",
          "jaccard_max": "0.025",
          "tokens_generated": "1002",
          "manual_ending_code": "P-13-13",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 493,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_die_kalibrierung_der_grenze.md",
          "index": 14,
          "title": "Abschnitt 14: Die Kalibrierung der Grenze",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "91.7",
          "jaccard_max": "0.013",
          "tokens_generated": "1169",
          "manual_ending_code": "P-14-14",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 355,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_die_kalibrierung_der_zugehö.md",
          "index": 15,
          "title": "Abschnitt 15: Die Kalibrierung der Zugehörigkeit",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.7",
          "jaccard_max": "0.011",
          "tokens_generated": "1090",
          "manual_ending_code": "P-15-15",
          "backend": "deepseek",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 555,
          "reading_minutes": 3
        },
        {
          "file": "16_art_16_abschnitt_16_die_kalibrierung_der_verbin.md",
          "index": 16,
          "title": "Abschnitt 16: Die Kalibrierung der Verbindung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "35.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1340",
          "manual_ending_code": "P-16-16",
          "backend": "openrouter",
          "genre": "Philosophischer_Essay",
          "leak_free": "true",
          "words": 436,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_025_the_hold",
      "title": "The Hold",
      "language": "EN",
      "style": "Jokes",
      "pov": "first_person",
      "setting_summary": "An aging cargo ship named the Hold drifts in a decaying orbit, its crew rationing air, water, and patience while a corporate salvage deadline ticks down. Every decision gets logged by a shipboard system that rewards compliance and quietly punishes dissent, and the only thing scarcer than supplies is the benefit of the doubt.",
      "characters": [
        "Mara",
        "Pike",
        "Osei",
        "Tiny",
        "the Auditor"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 3272,
      "reading_minutes": 16,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "5.8",
          "jaccard_max": "",
          "tokens_generated": "653",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Jokes",
          "leak_free": "",
          "words": 448,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_pressure_drop.md",
          "index": 1,
          "title": "Abschnitt 1: Pressure Drop",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-super-120b-a12b:free",
          "duration_seconds": "63.5",
          "jaccard_max": "0.04",
          "tokens_generated": "1812",
          "manual_ending_code": "J-01-01",
          "backend": "openrouter",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 320,
          "reading_minutes": 2
        },
        {
          "file": "02_art_03_abschnitt_2_audit_drift.md",
          "index": 2,
          "title": "Abschnitt 2: Audit Drift",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "13.0",
          "jaccard_max": "0.059",
          "tokens_generated": "734",
          "manual_ending_code": "J-03-02",
          "backend": "openrouter",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 256,
          "reading_minutes": 1
        },
        {
          "file": "03_art_04_abschnitt_3_ownership_drift.md",
          "index": 3,
          "title": "Abschnitt 3: Ownership Drift",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "26.9",
          "jaccard_max": "0.0",
          "tokens_generated": "914",
          "manual_ending_code": "J-04-03",
          "backend": "openrouter",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 291,
          "reading_minutes": 1
        },
        {
          "file": "04_art_05_abschnitt_4_calibration_drift.md",
          "index": 4,
          "title": "Abschnitt 4: Calibration Drift",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.5",
          "jaccard_max": "0.0",
          "tokens_generated": "651",
          "manual_ending_code": "J-05-04",
          "backend": "deepseek",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 419,
          "reading_minutes": 2
        },
        {
          "file": "05_art_09_abschnitt_5_arbitrary_threshold.md",
          "index": 5,
          "title": "Abschnitt 5: Arbitrary Threshold",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "4.7",
          "jaccard_max": "0.0",
          "tokens_generated": "588",
          "manual_ending_code": "J-09-05",
          "backend": "deepseek",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 380,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_paper_grit.md",
          "index": 6,
          "title": "Abschnitt 6: Paper Grit",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "4.7",
          "jaccard_max": "0.0",
          "tokens_generated": "611",
          "manual_ending_code": "J-12-06",
          "backend": "deepseek",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 405,
          "reading_minutes": 2
        },
        {
          "file": "07_art_14_abschnitt_7_border_logic.md",
          "index": 7,
          "title": "Abschnitt 7: Border Logic",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "20.3",
          "jaccard_max": "0.0",
          "tokens_generated": "771",
          "manual_ending_code": "J-14-07",
          "backend": "openrouter",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 287,
          "reading_minutes": 1
        },
        {
          "file": "08_art_19_abschnitt_8_signal_integrity.md",
          "index": 8,
          "title": "Abschnitt 8: Signal Integrity",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "18.0",
          "jaccard_max": "0.0",
          "tokens_generated": "802",
          "manual_ending_code": "J-19-08",
          "backend": "openrouter",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 259,
          "reading_minutes": 1
        },
        {
          "file": "09_art_26_abschnitt_9_merit_calibration.md",
          "index": 9,
          "title": "Abschnitt 9: Merit Calibration",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "266.3",
          "jaccard_max": "0.0",
          "tokens_generated": "870",
          "manual_ending_code": "J-26-09",
          "backend": "openrouter",
          "genre": "Jokes",
          "leak_free": "true",
          "words": 207,
          "reading_minutes": 1
        }
      ]
    },
    {
      "book_id": "buch_026_the_ledger_of_ash_harbour",
      "title": "The Ledger of Ash Harbour",
      "language": "EN",
      "style": "Historical_Chronicle",
      "pov": "first_person",
      "setting_summary": "In the walled port city of Ash Harbour, a brutal quarantine is enforced after a plague ship docks, sealing every district behind armed checkpoints and rationing water by written permit. A civic ledger records each citizen's worth, and the Harbourmaster's clerks decide who eats, who speaks, and who is forgotten. As the siege drags on, the city's quarrels over dignity, voice, life, and equality become matters of survival.",
      "characters": [
        "Maren Holt",
        "Elias Ward",
        "Sister Cora",
        "Tobias Renn",
        "The Harbourmaster"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4448,
      "reading_minutes": 22,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "5.4",
          "jaccard_max": "",
          "tokens_generated": "573",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Historical_Chronicle",
          "leak_free": "",
          "words": 447,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_the_paper_grind.md",
          "index": 1,
          "title": "Abschnitt 1: The Paper Grind",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.9",
          "jaccard_max": "0.062",
          "tokens_generated": "796",
          "manual_ending_code": "I-01-01",
          "backend": "deepseek",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 605,
          "reading_minutes": 3
        },
        {
          "file": "02_art_03_abschnitt_2_the_reading_aloud.md",
          "index": 2,
          "title": "Abschnitt 2: The Reading Aloud",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.7",
          "jaccard_max": "0.0",
          "tokens_generated": "832",
          "manual_ending_code": "I-03-02",
          "backend": "deepseek",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 658,
          "reading_minutes": 3
        },
        {
          "file": "03_art_04_abschnitt_3_the_audit_of_breath.md",
          "index": 3,
          "title": "Abschnitt 3: The Audit of Breath",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.6",
          "jaccard_max": "0.051",
          "tokens_generated": "840",
          "manual_ending_code": "I-04-03",
          "backend": "deepseek",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 679,
          "reading_minutes": 3
        },
        {
          "file": "04_art_05_abschnitt_4_the_calibration_of_silence.md",
          "index": 4,
          "title": "Abschnitt 4: The Calibration of Silence",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "36.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1030",
          "manual_ending_code": "I-05-04",
          "backend": "openrouter",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 389,
          "reading_minutes": 2
        },
        {
          "file": "05_art_09_abschnitt_5_the_breach_of_parameter_nine.md",
          "index": 5,
          "title": "Abschnitt 5: The Breach of Parameter Nine",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "64.0",
          "jaccard_max": "0.0",
          "tokens_generated": "939",
          "manual_ending_code": "I-09-05",
          "backend": "openrouter",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 326,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_calibration_of_parameter.md",
          "index": 6,
          "title": "Abschnitt 6: The Calibration of Parameter Twelve",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "53.6",
          "jaccard_max": "0.0",
          "tokens_generated": "848",
          "manual_ending_code": "I-12-06",
          "backend": "openrouter",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 292,
          "reading_minutes": 1
        },
        {
          "file": "07_art_14_abschnitt_7_the_asylum_parameter.md",
          "index": 7,
          "title": "Abschnitt 7: The Asylum Parameter",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "24.9",
          "jaccard_max": "0.0",
          "tokens_generated": "975",
          "manual_ending_code": "I-14-07",
          "backend": "openrouter",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 293,
          "reading_minutes": 1
        },
        {
          "file": "08_art_19_abschnitt_8_the_transmission_parameter.md",
          "index": 8,
          "title": "Abschnitt 8: The Transmission Parameter",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "12.2",
          "jaccard_max": "0.0",
          "tokens_generated": "759",
          "manual_ending_code": "I-19-08",
          "backend": "openrouter",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 272,
          "reading_minutes": 1
        },
        {
          "file": "09_art_26_abschnitt_9_the_calibration_of_empty_roo.md",
          "index": 9,
          "title": "Abschnitt 9: The Calibration of Empty Rooms",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.8",
          "jaccard_max": "0.0",
          "tokens_generated": "688",
          "manual_ending_code": "I-26-09",
          "backend": "deepseek",
          "genre": "Historical_Chronicle",
          "leak_free": "true",
          "words": 487,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_027_das_haus_das_die_namen_fraß",
      "title": "Das Haus, das die Namen fraß",
      "language": "DE",
      "style": "Gothic",
      "pov": "first_person",
      "setting_summary": "Ein herrschaftliches, langsam verfallendes Stadthaus, in dem die Zimmerzahl von Woche zu Woche schwankt und Türen nur an bestimmten Tagen zu bestimmten Räumen führen. Die Bewohner leben unter der ständigen Beobachtung einer unsichtbaren Hausordnung, die ihre Räume, Vorräte und selbst ihre Erinnerungen zuteilt, während das Haus ihre Namen und Freiheiten nach und nach verschluckt.",
      "characters": [
        "Elisabeth Voss",
        "Mira",
        "Herr Kaltenbrunn",
        "Tobias",
        "Die Stimme im Gebälk"
      ],
      "chapter_count": 8,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08"
      ],
      "words": 3725,
      "reading_minutes": 19,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "7.7",
          "jaccard_max": "",
          "tokens_generated": "953",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "",
          "words": 541,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_die_kalibrierung_der_würde.md",
          "index": 1,
          "title": "Abschnitt 1: Die Kalibrierung der Würde",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "43.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1425",
          "manual_ending_code": "W-01-01",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 410,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_differenzierung_der_klin.md",
          "index": 2,
          "title": "Abschnitt 2: Die Differenzierung der Klingen",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "16.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1197",
          "manual_ending_code": "W-02-02",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 392,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_kalibrierung_der_klingen.md",
          "index": 3,
          "title": "Abschnitt 3: Die Kalibrierung der Klingen",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "51.2",
          "jaccard_max": "0.043",
          "tokens_generated": "1074",
          "manual_ending_code": "W-03-03",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 379,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_inventur_der_leeren_häls.md",
          "index": 4,
          "title": "Abschnitt 4: Die Inventur der leeren Hälse",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "128.2",
          "jaccard_max": "0.048",
          "tokens_generated": "1225",
          "manual_ending_code": "W-04-04",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 402,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalibrierung_der_schmerz.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kalibrierung der Schmerzschwelle",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "65.4",
          "jaccard_max": "0.056",
          "tokens_generated": "1102",
          "manual_ending_code": "W-05-05",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 327,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_anerkennung_der_schwelle.md",
          "index": 6,
          "title": "Abschnitt 6: Die Anerkennung der Schwelle",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.5",
          "jaccard_max": "0.0",
          "tokens_generated": "794",
          "manual_ending_code": "W-06-06",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 419,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_revision_der_gleichheit.md",
          "index": 7,
          "title": "Abschnitt 7: Die Revision der Gleichheit",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.0",
          "jaccard_max": "0.0",
          "tokens_generated": "983",
          "manual_ending_code": "W-07-07",
          "backend": "deepseek",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 534,
          "reading_minutes": 3
        },
        {
          "file": "08_art_08_abschnitt_8_die_kalibrierung_des_rechtsw.md",
          "index": 8,
          "title": "Abschnitt 8: Die Kalibrierung des Rechtswegs",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "44.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1181",
          "manual_ending_code": "W-08-08",
          "backend": "openrouter",
          "genre": "Gothic",
          "leak_free": "true",
          "words": 321,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_028_das_amt_für_grundrechtsvollzugsverfahren",
      "title": "Das Amt für Grundrechtsvollzugsverfahren",
      "language": "DE",
      "style": "Satire",
      "pov": "third_person",
      "setting_summary": "Im fiktiven Kleinstaat Gross-Rübenau kontrolliert die Behörde für Grundrechtsausübung jedes Menschenrecht über ein mehrstufiges Formular- und Wartemarken-System; wer sein Recht wahrnehmen will, braucht zuerst einen Termin, dann einen Antrag, dann eine Bestätigung des Antrags, dann eine Vollzugsfreigabe. Der Schauplatz ist ein fensterloses Amtsgebäude mit nummerierten Wartesälen, in dem eine ständig wechselnde Wartemarkenausgabe, akuter Platzmangel und eine alles erfassende Lautsprecherdurchsage den Ton angeben. Ein neuer Erlass verlangt, dass sämtliche Grundrechte künftig nur noch in der Reihenfolge ihrer Artikelnummer ausgeübt werden dürfen, was das gesamte System in eine Endlosschleife stürzt.",
      "characters": [
        "Hedwig Traublinger",
        "Konsul Balthasar Kreml",
        "Oberamtsrat Püschel",
        "Mira Sandoval",
        "Herr Zwirbel"
      ],
      "chapter_count": 15,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15"
      ],
      "words": 7796,
      "reading_minutes": 39,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "9.1",
          "jaccard_max": "",
          "tokens_generated": "958",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "",
          "words": 488,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_die_kalibrierung_der_unmessb.md",
          "index": 1,
          "title": "Abschnitt 1: Die Kalibrierung der Unmessbarkeit",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1098",
          "manual_ending_code": "G-01-01",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 545,
          "reading_minutes": 3
        },
        {
          "file": "02_art_02_abschnitt_2_die_differenzierung_der_glei.md",
          "index": 2,
          "title": "Abschnitt 2: Die Differenzierung der Gleichheit",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "77.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1551",
          "manual_ending_code": "G-02-02",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 467,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_lagerung_der_sicherheit.md",
          "index": 3,
          "title": "Abschnitt 3: Die Lagerung der Sicherheit",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.1",
          "jaccard_max": "0.034",
          "tokens_generated": "1071",
          "manual_ending_code": "G-03-03",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 494,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_kalibrierung_der_unfreih.md",
          "index": 4,
          "title": "Abschnitt 4: Die Kalibrierung der Unfreiheit",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "3",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "100.8",
          "jaccard_max": "0.038",
          "tokens_generated": "1492",
          "manual_ending_code": "G-04-04",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 457,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_auslagerung_des_unerträg.md",
          "index": 5,
          "title": "Abschnitt 5: Die Auslagerung des Unerträglichen",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "20.3",
          "jaccard_max": "0.0",
          "tokens_generated": "1322",
          "manual_ending_code": "G-05-05",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 401,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_reihenfolge_der_artikel.md",
          "index": 6,
          "title": "Abschnitt 6: Die Reihenfolge der Artikel",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.7",
          "jaccard_max": "0.024",
          "tokens_generated": "1253",
          "manual_ending_code": "G-06-06",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 594,
          "reading_minutes": 3
        },
        {
          "file": "07_art_07_abschnitt_7_die_gleichheit_der_wartemark.md",
          "index": 7,
          "title": "Abschnitt 7: Die Gleichheit der Wartemarken",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "54.4",
          "jaccard_max": "0.027",
          "tokens_generated": "1562",
          "manual_ending_code": "G-07-07",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 524,
          "reading_minutes": 3
        },
        {
          "file": "08_art_08_abschnitt_8_die_kalibrierung_des_rechtsb.md",
          "index": 8,
          "title": "Abschnitt 8: Die Kalibrierung des Rechtsbehelfs",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "36.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1836",
          "manual_ending_code": "G-08-08",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 422,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_reihenfolgeprüfung.md",
          "index": 9,
          "title": "Abschnitt 9: Die Reihenfolgeprüfung",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1083",
          "manual_ending_code": "G-09-09",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 496,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_verfahrensdämpfung.md",
          "index": 10,
          "title": "Abschnitt 10: Die Verfahrensdämpfung",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "38.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1320",
          "manual_ending_code": "G-10-10",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 357,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuldsvermutung_als_.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuldsvermutung als Pufferzustand",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.5",
          "jaccard_max": "0.0",
          "tokens_generated": "786",
          "manual_ending_code": "G-11-11",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 372,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_wohnung_als_gefahrenque.md",
          "index": 12,
          "title": "Abschnitt 12: Die Wohnung als Gefahrenquelle",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1049",
          "manual_ending_code": "G-12-12",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 473,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_reihenfolge_als_endloss.md",
          "index": 13,
          "title": "Abschnitt 13: Die Reihenfolge als Endlosschleife",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "18.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1462",
          "manual_ending_code": "G-13-13",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 715,
          "reading_minutes": 4
        },
        {
          "file": "14_art_14_abschnitt_14_die_asylzone_als_kalibrieru.md",
          "index": 14,
          "title": "Abschnitt 14: Die Asylzone als Kalibrierungsrückstand",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1189",
          "manual_ending_code": "G-14-14",
          "backend": "deepseek",
          "genre": "Satire",
          "leak_free": "true",
          "words": 574,
          "reading_minutes": 3
        },
        {
          "file": "15_art_15_abschnitt_15_die_staatsangehörigkeit_als.md",
          "index": 15,
          "title": "Abschnitt 15: Die Staatsangehörigkeit als Frequenzversatz",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "25.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1341",
          "manual_ending_code": "G-15-15",
          "backend": "openrouter",
          "genre": "Satire",
          "leak_free": "true",
          "words": 417,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_029_the_glass_tribunal",
      "title": "The Glass Tribunal",
      "language": "EN",
      "style": "Courtroom_Drama",
      "pov": "third_person",
      "setting_summary": "A sealed offshore arbitration court aboard a converted research vessel, where a multinational water consortium is tried for contaminating a river that sustains three million people. The vessel is cramped, the hearing clock is fixed at forty days, and every word is recorded by cameras the consortium controls. Testimony must navigate corporate surveillance, a hostile tribunal hierarchy, and witnesses whose lives depend on the verdict.",
      "characters": [
        "Mara Voss",
        "Elias Trent",
        "Judge Okonkwo",
        "Sister Adaeze",
        "Piotr Halvorsen"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4509,
      "reading_minutes": 23,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "7.2",
          "jaccard_max": "",
          "tokens_generated": "706",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "",
          "words": 535,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_the_calibration_of_dust.md",
          "index": 1,
          "title": "Abschnitt 1: The Calibration of Dust",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.4",
          "jaccard_max": "0.028",
          "tokens_generated": "678",
          "manual_ending_code": "H-01-01",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 513,
          "reading_minutes": 3
        },
        {
          "file": "02_art_03_abschnitt_2_the_calibration_of_breath.md",
          "index": 2,
          "title": "Abschnitt 2: The Calibration of Breath",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.8",
          "jaccard_max": "0.0",
          "tokens_generated": "602",
          "manual_ending_code": "H-03-02",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 434,
          "reading_minutes": 2
        },
        {
          "file": "03_art_04_abschnitt_3_the_precedence_clause.md",
          "index": 3,
          "title": "Abschnitt 3: The Precedence Clause",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.9",
          "jaccard_max": "0.0",
          "tokens_generated": "736",
          "manual_ending_code": "H-04-03",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 569,
          "reading_minutes": 3
        },
        {
          "file": "04_art_05_abschnitt_4_the_calibration_protocol.md",
          "index": 4,
          "title": "Abschnitt 4: The Calibration Protocol",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.2",
          "jaccard_max": "0.0",
          "tokens_generated": "691",
          "manual_ending_code": "H-05-04",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 521,
          "reading_minutes": 3
        },
        {
          "file": "05_art_09_abschnitt_5_the_interference_threshold.md",
          "index": 5,
          "title": "Abschnitt 5: The Interference Threshold",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "35.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1061",
          "manual_ending_code": "H-09-05",
          "backend": "openrouter",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 399,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_calibration_defect.md",
          "index": 6,
          "title": "Abschnitt 6: The Calibration Defect",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.8",
          "jaccard_max": "0.0",
          "tokens_generated": "727",
          "manual_ending_code": "H-12-06",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 535,
          "reading_minutes": 3
        },
        {
          "file": "07_art_14_abschnitt_7_the_asylum_parameter.md",
          "index": 7,
          "title": "Abschnitt 7: The Asylum Parameter",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "17.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1490",
          "manual_ending_code": "H-14-07",
          "backend": "openrouter",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 332,
          "reading_minutes": 2
        },
        {
          "file": "08_art_19_abschnitt_8_the_expression_threshold.md",
          "index": 8,
          "title": "Abschnitt 8: The Expression Threshold",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "61.2",
          "jaccard_max": "0.029",
          "tokens_generated": "891",
          "manual_ending_code": "H-19-08",
          "backend": "openrouter",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 282,
          "reading_minutes": 1
        },
        {
          "file": "09_art_26_abschnitt_9_the_calibration_drift.md",
          "index": 9,
          "title": "Abschnitt 9: The Calibration Drift",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "23.1",
          "jaccard_max": "0.054",
          "tokens_generated": "1269",
          "manual_ending_code": "H-26-09",
          "backend": "openrouter",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 389,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_030_die_wolkenschule_über_dem_marktplatz",
      "title": "Die Wolkenschule über dem Marktplatz",
      "language": "DE",
      "style": "Kinderbuch",
      "pov": "third_person",
      "setting_summary": "In einer engen Dachkammer über dem geschäftigen Marktplatz leben die Kinder Mira und Lotta mit dem Kater Korbinian und der Taube Tilda. Ein alter Hausmeister, Herr Wiesel, verteilt knapp bemessene Wasserrationen und bestimmt, wer wann aufs Dach darf. Die kleine Gemeinschaft muss lernen, füreinander einzustehen, als Herr Wiesel beginnt, Regeln zu erfinden, die ihre Freiheit immer weiter einschränken.",
      "characters": [
        "Mira",
        "Kater Korbinian",
        "Taube Tilda",
        "Herr Wiesel",
        "Lotta"
      ],
      "chapter_count": 15,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15"
      ],
      "words": 8515,
      "reading_minutes": 43,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "10.1",
          "jaccard_max": "",
          "tokens_generated": "1130",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "",
          "words": 609,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_der_staub_in_der_röhre.md",
          "index": 1,
          "title": "Abschnitt 1: Der Staub in der Röhre",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "62.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1711",
          "manual_ending_code": "K-01-01",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 661,
          "reading_minutes": 3
        },
        {
          "file": "02_art_02_abschnitt_2_der_prüfer_und_der_graue_sta.md",
          "index": 2,
          "title": "Abschnitt 2: Der Prüfer und der graue Staub",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "44.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1589",
          "manual_ending_code": "K-02-02",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 515,
          "reading_minutes": 3
        },
        {
          "file": "03_art_03_abschnitt_3_der_hammer_im_regal.md",
          "index": 3,
          "title": "Abschnitt 3: Der Hammer im Regal",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "11.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1193",
          "manual_ending_code": "K-03-03",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 600,
          "reading_minutes": 3
        },
        {
          "file": "04_art_04_abschnitt_4_das_nasse_formular.md",
          "index": 4,
          "title": "Abschnitt 4: Das nasse Formular",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "24.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1648",
          "manual_ending_code": "K-04-04",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 578,
          "reading_minutes": 3
        },
        {
          "file": "05_art_05_abschnitt_5_der_pfeifton_in_der_leitung.md",
          "index": 5,
          "title": "Abschnitt 5: Der Pfeifton in der Leitung",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "22.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1169",
          "manual_ending_code": "K-05-05",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 485,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_der_papierschliff_im_relais.md",
          "index": 6,
          "title": "Abschnitt 6: Der Papierschliff im Relais",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.0",
          "jaccard_max": "0.0",
          "tokens_generated": "855",
          "manual_ending_code": "K-06-06",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 438,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_der_siebte_parameter.md",
          "index": 7,
          "title": "Abschnitt 7: Der siebte Parameter",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "64.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1343",
          "manual_ending_code": "K-07-07",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 378,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_der_achte_parameter.md",
          "index": 8,
          "title": "Abschnitt 8: Der achte Parameter",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "39.7",
          "jaccard_max": "0.0",
          "tokens_generated": "977",
          "manual_ending_code": "K-08-08",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 384,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_der_neunte_parameter.md",
          "index": 9,
          "title": "Abschnitt 9: Der neunte Parameter",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.5",
          "jaccard_max": "0.0",
          "tokens_generated": "873",
          "manual_ending_code": "K-09-09",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 444,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_der_zehnte_parameter.md",
          "index": 10,
          "title": "Abschnitt 10: Der zehnte Parameter",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1041",
          "manual_ending_code": "K-10-10",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 548,
          "reading_minutes": 3
        },
        {
          "file": "11_art_11_abschnitt_11_der_elfte_prüfpunkt.md",
          "index": 11,
          "title": "Abschnitt 11: Der elfte Prüfpunkt",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1299",
          "manual_ending_code": "K-11-11",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 683,
          "reading_minutes": 3
        },
        {
          "file": "12_art_12_abschnitt_12_der_zwölfte_prüfpunkt.md",
          "index": 12,
          "title": "Abschnitt 12: Der zwölfte Prüfpunkt",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1045",
          "manual_ending_code": "K-12-12",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 550,
          "reading_minutes": 3
        },
        {
          "file": "13_art_13_abschnitt_13_der_dreizehnte_prüfpunkt.md",
          "index": 13,
          "title": "Abschnitt 13: Der dreizehnte Prüfpunkt",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1049",
          "manual_ending_code": "K-13-13",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 545,
          "reading_minutes": 3
        },
        {
          "file": "14_art_14_abschnitt_14_der_vierzehnte_prüfpunkt.md",
          "index": 14,
          "title": "Abschnitt 14: Der vierzehnte Prüfpunkt",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1282",
          "manual_ending_code": "K-14-14",
          "backend": "deepseek",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 672,
          "reading_minutes": 3
        },
        {
          "file": "15_art_15_abschnitt_15_der_fünfzehnte_parameter.md",
          "index": 15,
          "title": "Abschnitt 15: Der fünfzehnte Parameter",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "104.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1386",
          "manual_ending_code": "K-15-15",
          "backend": "openrouter",
          "genre": "Kinderbuch",
          "leak_free": "true",
          "words": 425,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_031_die_kammer_der_sieben_stimmen",
      "title": "Die Kammer der sieben Stimmen",
      "language": "DE",
      "style": "Gerichtsdrama",
      "pov": "third_person",
      "setting_summary": "Eine provisorische Schiedskammer tagt in einem fensterlosen Untergeschoss eines stillgelegten Hafenspeichers, während draußen eine Stadt unter Ausnahmezustand steht. Die Kammer hat nur sieben Tage Zeit, über die Rechtmäßigkeit von Internierungen zu entscheiden, bevor ihre Vollmacht erlischt. Jede Sitzung wird aufgezeichnet, die Zeugen sind beschränkt, und Strom wie Aktenzugang sind rationiert.",
      "characters": [
        "Mara Vondracek",
        "Elias Brandt",
        "Richterin Kessler",
        "Tomás Ferreira",
        "Hanna Ostrowski"
      ],
      "chapter_count": 16,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13",
        "art_14",
        "art_15",
        "art_16"
      ],
      "words": 7605,
      "reading_minutes": 38,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "9.9",
          "jaccard_max": "",
          "tokens_generated": "1121",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "",
          "words": 543,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_kalibrierungstag.md",
          "index": 1,
          "title": "Abschnitt 1: Kalibrierungstag",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "82.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1578",
          "manual_ending_code": "H-01-01",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 561,
          "reading_minutes": 3
        },
        {
          "file": "02_art_02_abschnitt_2_parameterprüfung.md",
          "index": 2,
          "title": "Abschnitt 2: Parameterprüfung",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "63.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1362",
          "manual_ending_code": "H-02-02",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 370,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_kalibrierung_der_leere.md",
          "index": 3,
          "title": "Abschnitt 3: Kalibrierung der Leere",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "106.0",
          "jaccard_max": "0.028",
          "tokens_generated": "1315",
          "manual_ending_code": "H-03-03",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 383,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_die_extraktion_der_variablen.md",
          "index": 4,
          "title": "Abschnitt 4: Die Extraktion der Variablen",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.7",
          "jaccard_max": "0.024",
          "tokens_generated": "903",
          "manual_ending_code": "H-04-04",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 450,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_die_kalibrierungsvorgabe_05.md",
          "index": 5,
          "title": "Abschnitt 5: Die Kalibrierungsvorgabe 05",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.6",
          "jaccard_max": "0.0",
          "tokens_generated": "937",
          "manual_ending_code": "H-05-05",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 447,
          "reading_minutes": 2
        },
        {
          "file": "06_art_06_abschnitt_6_die_rechtsfähigkeitsprüfung.md",
          "index": 6,
          "title": "Abschnitt 6: Die Rechtsfähigkeitsprüfung",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "30.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1173",
          "manual_ending_code": "H-06-06",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 359,
          "reading_minutes": 2
        },
        {
          "file": "07_art_07_abschnitt_7_die_gleichheitskalibrierung.md",
          "index": 7,
          "title": "Abschnitt 7: Die Gleichheitskalibrierung",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "56.2",
          "jaccard_max": "0.029",
          "tokens_generated": "1200",
          "manual_ending_code": "H-07-07",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 303,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_rechtsbehelfslücke.md",
          "index": 8,
          "title": "Abschnitt 8: Die Rechtsbehelfslücke",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.2",
          "jaccard_max": "0.073",
          "tokens_generated": "975",
          "manual_ending_code": "H-08-08",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 477,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_kalibrierung_der_unverle.md",
          "index": 9,
          "title": "Abschnitt 9: Die Kalibrierung der Unverletzlichkeit",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.4",
          "jaccard_max": "0.029",
          "tokens_generated": "913",
          "manual_ending_code": "H-09-09",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 473,
          "reading_minutes": 2
        },
        {
          "file": "10_art_10_abschnitt_10_die_kalibrierung_der_gleich.md",
          "index": 10,
          "title": "Abschnitt 10: Die Kalibrierung der Gleichheit",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.0",
          "jaccard_max": "0.128",
          "tokens_generated": "811",
          "manual_ending_code": "H-10-10",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 428,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_unschuldsvermutung_als_.md",
          "index": 11,
          "title": "Abschnitt 11: Die Unschuldsvermutung als Druckausgleich",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.4",
          "jaccard_max": "0.03",
          "tokens_generated": "945",
          "manual_ending_code": "H-11-11",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 495,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_wohnung_als_beweismitte.md",
          "index": 12,
          "title": "Abschnitt 12: Die Wohnung als Beweismittel",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.5",
          "jaccard_max": "0.03",
          "tokens_generated": "1105",
          "manual_ending_code": "H-12-12",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 588,
          "reading_minutes": 3
        },
        {
          "file": "13_art_13_abschnitt_13_der_korridor_als_parameter.md",
          "index": 13,
          "title": "Abschnitt 13: Der Korridor als Parameter",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "55.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1400",
          "manual_ending_code": "H-13-13",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 477,
          "reading_minutes": 2
        },
        {
          "file": "14_art_14_abschnitt_14_der_proxy_als_parameter.md",
          "index": 14,
          "title": "Abschnitt 14: Der Proxy als Parameter",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "64.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1284",
          "manual_ending_code": "H-14-14",
          "backend": "openrouter",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 371,
          "reading_minutes": 2
        },
        {
          "file": "15_art_15_abschnitt_15_der_parameter_der_zugehörig.md",
          "index": 15,
          "title": "Abschnitt 15: Der Parameter der Zugehörigkeit",
          "article": "art_15",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.5",
          "jaccard_max": "0.0",
          "tokens_generated": "952",
          "manual_ending_code": "H-15-15",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 433,
          "reading_minutes": 2
        },
        {
          "file": "16_art_16_abschnitt_16_der_parameter_der_willensei.md",
          "index": 16,
          "title": "Abschnitt 16: Der Parameter der Willenseinigung",
          "article": "art_16",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.8",
          "jaccard_max": "0.0",
          "tokens_generated": "963",
          "manual_ending_code": "H-16-16",
          "backend": "deepseek",
          "genre": "Gerichtsdrama",
          "leak_free": "true",
          "words": 447,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_032_the_glass_tribunal",
      "title": "The Glass Tribunal",
      "language": "EN",
      "style": "Courtroom_Drama",
      "pov": "third_person",
      "setting_summary": "A sealed floating arbitration court anchored in international waters, where a tribunal convened to rule on a disputed refugee detention case must deliver a verdict within seventy-two hours before the platform's life-support contract expires. Every session is broadcast, every corridor is monitored, and the judges, advocates, and witnesses are confined together with no shore leave, turning legal argument into a pressure chamber of alliances and betrayals. The case itself will force the tribunal to weigh dignity, free expression, the right to life, and equality as each witness's testimony opens new ethical fractures.",
      "characters": [
        "Mara Voss",
        "Judge Aldric Kaine",
        "Ilya Petrov",
        "Sister Odile",
        "Dane Mercer"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4704,
      "reading_minutes": 24,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "8.0",
          "jaccard_max": "",
          "tokens_generated": "822",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "",
          "words": 603,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_the_calibration_of_dignity.md",
          "index": 1,
          "title": "Abschnitt 1: The Calibration of Dignity",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.3",
          "jaccard_max": "0.0",
          "tokens_generated": "717",
          "manual_ending_code": "H-01-01",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 532,
          "reading_minutes": 3
        },
        {
          "file": "02_art_03_abschnitt_2_the_threshold_calibration.md",
          "index": 2,
          "title": "Abschnitt 2: The Threshold Calibration",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "23.2",
          "jaccard_max": "0.04",
          "tokens_generated": "1002",
          "manual_ending_code": "H-03-02",
          "backend": "openrouter",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 432,
          "reading_minutes": 2
        },
        {
          "file": "03_art_04_abschnitt_3_the_servitude_calibration.md",
          "index": 3,
          "title": "Abschnitt 3: The Servitude Calibration",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.6",
          "jaccard_max": "0.0",
          "tokens_generated": "658",
          "manual_ending_code": "H-04-03",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 477,
          "reading_minutes": 2
        },
        {
          "file": "04_art_05_abschnitt_4_the_degradation_threshold.md",
          "index": 4,
          "title": "Abschnitt 4: The Degradation Threshold",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "27.5",
          "jaccard_max": "0.0",
          "tokens_generated": "923",
          "manual_ending_code": "H-05-04",
          "backend": "openrouter",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 343,
          "reading_minutes": 2
        },
        {
          "file": "05_art_09_abschnitt_5_the_arbitrary_threshold.md",
          "index": 5,
          "title": "Abschnitt 5: The Arbitrary Threshold",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.9",
          "jaccard_max": "0.0",
          "tokens_generated": "574",
          "manual_ending_code": "H-09-05",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 419,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_correspondence_drift.md",
          "index": 6,
          "title": "Abschnitt 6: The Correspondence Drift",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "90.9",
          "jaccard_max": "0.0",
          "tokens_generated": "964",
          "manual_ending_code": "H-12-06",
          "backend": "openrouter",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 354,
          "reading_minutes": 2
        },
        {
          "file": "07_art_14_abschnitt_7_the_asylum_parameter.md",
          "index": 7,
          "title": "Abschnitt 7: The Asylum Parameter",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.8",
          "jaccard_max": "0.0",
          "tokens_generated": "784",
          "manual_ending_code": "H-14-07",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 534,
          "reading_minutes": 3
        },
        {
          "file": "08_art_19_abschnitt_8_the_expression_parameter.md",
          "index": 8,
          "title": "Abschnitt 8: The Expression Parameter",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.0",
          "jaccard_max": "0.0",
          "tokens_generated": "704",
          "manual_ending_code": "H-19-08",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 489,
          "reading_minutes": 2
        },
        {
          "file": "09_art_26_abschnitt_9_the_education_parameter.md",
          "index": 9,
          "title": "Abschnitt 9: The Education Parameter",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.4",
          "jaccard_max": "0.0",
          "tokens_generated": "771",
          "manual_ending_code": "H-26-09",
          "backend": "deepseek",
          "genre": "Courtroom_Drama",
          "leak_free": "true",
          "words": 521,
          "reading_minutes": 3
        }
      ]
    },
    {
      "book_id": "buch_033_the_ledger_of_quiet_rooms",
      "title": "The Ledger of Quiet Rooms",
      "language": "EN",
      "style": "Epistolary_Novel",
      "pov": "first_person",
      "setting_summary": "Ein abgelegenes Sanatorium auf einer Nordseeinsel, in dem Insassen als 'Gäste' geführt und ihre Briefe zensiert werden, während ein Sturm die letzte Fähre für sechs Wochen aussetzt. Knappe Vorräte, ein wachsames Personal und die ständige Buchführung über jedes gesprochene Wort erzeugen den Druck, unter dem die fünf Figuren um Würde, Wahrheit und Leben verhandeln.",
      "characters": [
        "Maren Voss",
        "Ilya Brandt",
        "Sister Odile",
        "Tobias Renn",
        "The Warden"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4875,
      "reading_minutes": 24,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.4",
          "jaccard_max": "",
          "tokens_generated": "555",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Epistolary_Novel",
          "leak_free": "",
          "words": 456,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_the_weight_of_flour.md",
          "index": 1,
          "title": "Abschnitt 1: The Weight of Flour",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.2",
          "jaccard_max": "0.024",
          "tokens_generated": "662",
          "manual_ending_code": "B-01-01",
          "backend": "deepseek",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 528,
          "reading_minutes": 3
        },
        {
          "file": "02_art_03_abschnitt_2_the_calibration_of_breath.md",
          "index": 2,
          "title": "Abschnitt 2: The Calibration of Breath",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "35.1",
          "jaccard_max": "0.025",
          "tokens_generated": "1194",
          "manual_ending_code": "B-03-02",
          "backend": "openrouter",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 531,
          "reading_minutes": 3
        },
        {
          "file": "03_art_04_abschnitt_3_the_resistance_in_the_wire.md",
          "index": 3,
          "title": "Abschnitt 3: The Resistance in the Wire",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "49.9",
          "jaccard_max": "0.036",
          "tokens_generated": "1232",
          "manual_ending_code": "B-04-03",
          "backend": "openrouter",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 545,
          "reading_minutes": 3
        },
        {
          "file": "04_art_05_abschnitt_4_the_calibration_of_cold.md",
          "index": 4,
          "title": "Abschnitt 4: The Calibration of Cold",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "132.0",
          "jaccard_max": "0.037",
          "tokens_generated": "2442",
          "manual_ending_code": "B-05-04",
          "backend": "openrouter",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 445,
          "reading_minutes": 2
        },
        {
          "file": "05_art_09_abschnitt_5_the_second_ledger.md",
          "index": 5,
          "title": "Abschnitt 5: The Second Ledger",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.8",
          "jaccard_max": "0.0",
          "tokens_generated": "679",
          "manual_ending_code": "B-09-05",
          "backend": "deepseek",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 482,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_third_column.md",
          "index": 6,
          "title": "Abschnitt 6: The Third Column",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "91.0",
          "jaccard_max": "0.0",
          "tokens_generated": "2588",
          "manual_ending_code": "B-12-06",
          "backend": "openrouter",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 394,
          "reading_minutes": 2
        },
        {
          "file": "07_art_14_abschnitt_7_the_calibration_drift.md",
          "index": 7,
          "title": "Abschnitt 7: The Calibration Drift",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "93.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1409",
          "manual_ending_code": "B-14-07",
          "backend": "openrouter",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 520,
          "reading_minutes": 3
        },
        {
          "file": "08_art_19_abschnitt_8_the_carrier_wave.md",
          "index": 8,
          "title": "Abschnitt 8: The Carrier Wave",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "5.5",
          "jaccard_max": "0.0",
          "tokens_generated": "529",
          "manual_ending_code": "B-19-08",
          "backend": "deepseek",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 390,
          "reading_minutes": 2
        },
        {
          "file": "09_art_26_abschnitt_9_the_wet_column.md",
          "index": 9,
          "title": "Abschnitt 9: The Wet Column",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.4",
          "jaccard_max": "0.0",
          "tokens_generated": "759",
          "manual_ending_code": "B-26-09",
          "backend": "deepseek",
          "genre": "Epistolary_Novel",
          "leak_free": "true",
          "words": 584,
          "reading_minutes": 3
        }
      ]
    },
    {
      "book_id": "buch_034_the_weight_of_water",
      "title": "The Weight of Water",
      "language": "EN",
      "style": "Parable",
      "pov": "third_person",
      "setting_summary": "In a cliffside settlement called the Cistern, a community survives by rationing water drawn from a single deep well, and every drop is measured by a rotating council that watches all. When a drought threatens the well and a stranger arrives claiming the right to drink without being counted, the settlement must decide what a person is worth when survival itself is rationed.",
      "characters": [
        "Mara",
        "Teo",
        "Old Sable",
        "Juniper",
        "The Counter"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05",
        "art_09",
        "art_12",
        "art_14",
        "art_19",
        "art_26"
      ],
      "words": 4175,
      "reading_minutes": 21,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "5.7",
          "jaccard_max": "",
          "tokens_generated": "515",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Parable",
          "leak_free": "",
          "words": 421,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_abschnitt_1_the_calibration_of_thirst.md",
          "index": 1,
          "title": "Abschnitt 1: The Calibration of Thirst",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "90.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1573",
          "manual_ending_code": "D-01-01",
          "backend": "openrouter",
          "genre": "Parable",
          "leak_free": "true",
          "words": 336,
          "reading_minutes": 2
        },
        {
          "file": "02_art_03_abschnitt_2_the_verification_of_breath.md",
          "index": 2,
          "title": "Abschnitt 2: The Verification of Breath",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "70.2",
          "jaccard_max": "0.0",
          "tokens_generated": "1081",
          "manual_ending_code": "D-03-02",
          "backend": "openrouter",
          "genre": "Parable",
          "leak_free": "true",
          "words": 297,
          "reading_minutes": 1
        },
        {
          "file": "03_art_04_abschnitt_3_the_parameter_of_servitude.md",
          "index": 3,
          "title": "Abschnitt 3: The Parameter of Servitude",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.0",
          "jaccard_max": "0.0",
          "tokens_generated": "683",
          "manual_ending_code": "D-04-03",
          "backend": "deepseek",
          "genre": "Parable",
          "leak_free": "true",
          "words": 511,
          "reading_minutes": 3
        },
        {
          "file": "04_art_05_abschnitt_4_the_calibration_of_cruelty.md",
          "index": 4,
          "title": "Abschnitt 4: The Calibration of Cruelty",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.3",
          "jaccard_max": "0.0",
          "tokens_generated": "761",
          "manual_ending_code": "D-05-04",
          "backend": "deepseek",
          "genre": "Parable",
          "leak_free": "true",
          "words": 574,
          "reading_minutes": 3
        },
        {
          "file": "05_art_09_abschnitt_5_the_parameter_of_absence.md",
          "index": 5,
          "title": "Abschnitt 5: The Parameter of Absence",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "61.1",
          "jaccard_max": "0.0",
          "tokens_generated": "956",
          "manual_ending_code": "D-09-05",
          "backend": "openrouter",
          "genre": "Parable",
          "leak_free": "true",
          "words": 360,
          "reading_minutes": 2
        },
        {
          "file": "06_art_12_abschnitt_6_the_seal_of_dust.md",
          "index": 6,
          "title": "Abschnitt 6: The Seal of Dust",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "22.9",
          "jaccard_max": "0.029",
          "tokens_generated": "1042",
          "manual_ending_code": "D-12-06",
          "backend": "openrouter",
          "genre": "Parable",
          "leak_free": "true",
          "words": 342,
          "reading_minutes": 2
        },
        {
          "file": "07_art_14_abschnitt_7_the_calibration_of_strangers.md",
          "index": 7,
          "title": "Abschnitt 7: The Calibration of Strangers",
          "article": "art_14",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "6.9",
          "jaccard_max": "0.053",
          "tokens_generated": "639",
          "manual_ending_code": "D-14-07",
          "backend": "deepseek",
          "genre": "Parable",
          "leak_free": "true",
          "words": 469,
          "reading_minutes": 2
        },
        {
          "file": "08_art_19_abschnitt_8_the_parameter_of_open_channe.md",
          "index": 8,
          "title": "Abschnitt 8: The Parameter of Open Channels",
          "article": "art_19",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.0",
          "jaccard_max": "0.05",
          "tokens_generated": "742",
          "manual_ending_code": "D-19-08",
          "backend": "deepseek",
          "genre": "Parable",
          "leak_free": "true",
          "words": 552,
          "reading_minutes": 3
        },
        {
          "file": "09_art_26_abschnitt_9_the_calibration_of_unlearned.md",
          "index": 9,
          "title": "Abschnitt 9: The Calibration of Unlearned Hands",
          "article": "art_26",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "63.8",
          "jaccard_max": "0.0",
          "tokens_generated": "1056",
          "manual_ending_code": "D-26-09",
          "backend": "openrouter",
          "genre": "Parable",
          "leak_free": "true",
          "words": 313,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_035_die_versteinerungsbehörde",
      "title": "Die Versteinerungsbehörde",
      "language": "DE",
      "style": "Magischer_Realismus",
      "pov": "third_person",
      "setting_summary": "In der turmhohen Behörde für Versteinerung in der Stadt Grauberg wird täglich protokolliert, welche Bürger langsam zu Stein erstarren – ein Vorgang, der so normal ist wie Regen und doch jede Familie trifft. Die Behörde verwaltet die Versteinerten in engen Wartesälen, vergibt Resttage nach Hierarchie und kontrolliert, wer noch sprechen darf. Als eine junge Antragstellerin beweist, dass Versteinerte weiter hören und fühlen, gerät das gesamte Ordnungssystem ins Wanken.",
      "characters": [
        "Ilse Wanko",
        "Tobias Kranz",
        "Mira Ott",
        "Herr Pfeil",
        "Frau Sander"
      ],
      "chapter_count": 13,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09",
        "art_10",
        "art_11",
        "art_12",
        "art_13"
      ],
      "words": 5967,
      "reading_minutes": 30,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "10.8",
          "jaccard_max": "",
          "tokens_generated": "1098",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Magischer_Realismus",
          "leak_free": "",
          "words": 560,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_resttage_nach_hierarchie.md",
          "index": 1,
          "title": "Abschnitt 1: Resttage nach Hierarchie",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.2",
          "jaccard_max": "0.026",
          "tokens_generated": "1055",
          "manual_ending_code": "Z-01-01",
          "backend": "deepseek",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 566,
          "reading_minutes": 3
        },
        {
          "file": "02_art_02_abschnitt_2_kalibrierungsvorgabe_b_3.md",
          "index": 2,
          "title": "Abschnitt 2: Kalibrierungsvorgabe B-3",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.1",
          "jaccard_max": "0.0",
          "tokens_generated": "967",
          "manual_ending_code": "Z-02-02",
          "backend": "deepseek",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 519,
          "reading_minutes": 3
        },
        {
          "file": "03_art_03_abschnitt_3_null_lager_vorschrift_art_03.md",
          "index": 3,
          "title": "Abschnitt 3: Null-Lager-Vorschrift Art-03",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "48.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1460",
          "manual_ending_code": "Z-03-03",
          "backend": "openrouter",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 372,
          "reading_minutes": 2
        },
        {
          "file": "04_art_04_abschnitt_4_kondensat_protokoll_art_04.md",
          "index": 4,
          "title": "Abschnitt 4: Kondensat-Protokoll Art-04",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "47.7",
          "jaccard_max": "0.023",
          "tokens_generated": "1068",
          "manual_ending_code": "Z-04-04",
          "backend": "openrouter",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 347,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_kalibrierungsabweichung_art_.md",
          "index": 5,
          "title": "Abschnitt 5: Kalibrierungsabweichung Art-05",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "73.2",
          "jaccard_max": "0.026",
          "tokens_generated": "1055",
          "manual_ending_code": "Z-05-05",
          "backend": "openrouter",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 296,
          "reading_minutes": 1
        },
        {
          "file": "06_art_06_abschnitt_6_die_rechtsfähigkeit_der_stum.md",
          "index": 6,
          "title": "Abschnitt 6: Die Rechtsfähigkeit der Stummen",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.5",
          "jaccard_max": "0.059",
          "tokens_generated": "1083",
          "manual_ending_code": "Z-06-06",
          "backend": "deepseek",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 517,
          "reading_minutes": 3
        },
        {
          "file": "07_art_07_abschnitt_7_die_gleichheit_der_schwerkra.md",
          "index": 7,
          "title": "Abschnitt 7: Die Gleichheit der Schwerkraft",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "2",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "111.2",
          "jaccard_max": "0.029",
          "tokens_generated": "1146",
          "manual_ending_code": "Z-07-07",
          "backend": "openrouter",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 385,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_die_kalibrierung_des_einspru.md",
          "index": 8,
          "title": "Abschnitt 8: Die Kalibrierung des Einspruchs",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "35.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1146",
          "manual_ending_code": "Z-08-08",
          "backend": "openrouter",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 339,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_depotverlagerung.md",
          "index": 9,
          "title": "Abschnitt 9: Die Depotverlagerung",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "15.0",
          "jaccard_max": "0.03",
          "tokens_generated": "1015",
          "manual_ending_code": "Z-09-09",
          "backend": "openrouter",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 288,
          "reading_minutes": 1
        },
        {
          "file": "10_art_10_abschnitt_10_die_anhörungsschleife.md",
          "index": 10,
          "title": "Abschnitt 10: Die Anhörungsschleife",
          "article": "art_10",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.0",
          "jaccard_max": "0.0",
          "tokens_generated": "688",
          "manual_ending_code": "Z-10-10",
          "backend": "deepseek",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 352,
          "reading_minutes": 2
        },
        {
          "file": "11_art_11_abschnitt_11_die_kalibrierung_der_unschu.md",
          "index": 11,
          "title": "Abschnitt 11: Die Kalibrierung der Unschuld",
          "article": "art_11",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.4",
          "jaccard_max": "0.0",
          "tokens_generated": "925",
          "manual_ending_code": "Z-11-11",
          "backend": "deepseek",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 470,
          "reading_minutes": 2
        },
        {
          "file": "12_art_12_abschnitt_12_die_zentrale_registratur.md",
          "index": 12,
          "title": "Abschnitt 12: Die Zentrale Registratur",
          "article": "art_12",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.2",
          "jaccard_max": "0.0",
          "tokens_generated": "964",
          "manual_ending_code": "Z-12-12",
          "backend": "deepseek",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 486,
          "reading_minutes": 2
        },
        {
          "file": "13_art_13_abschnitt_13_die_kalibrierung_der_freien.md",
          "index": 13,
          "title": "Abschnitt 13: Die Kalibrierung der freien Bewegung",
          "article": "art_13",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.7",
          "jaccard_max": "0.05",
          "tokens_generated": "925",
          "manual_ending_code": "Z-13-13",
          "backend": "deepseek",
          "genre": "Magischer_Realismus",
          "leak_free": "true",
          "words": 470,
          "reading_minutes": 2
        }
      ]
    },
    {
      "book_id": "buch_036_die_warteschlange_der_würde",
      "title": "Die Warteschlange der Würde",
      "language": "DE",
      "style": "Witzebuch",
      "pov": "third_person",
      "setting_summary": "Ein überfülltes Amt für menschliche Angelegenheiten, in dem eine nummerierte Warteschlange über Leben und Papiere entscheidet. Ein defekter Lautsprecher, ein einziger Stempel und ein Schalter, der nur dienstags öffnet, erzeugen Dauerstress bei knapper Zeit und noch knapperem Platz. Jeder Antrag wird als Gnadenakt verhandelt, sodass Würde, Gleichheit, Meinungsfreiheit und Leben zu Verhandlungsmasse im Wartesaal werden.",
      "characters": [
        "Herr Knie",
        "Frau Zettel",
        "Bodo",
        "Die Stimme aus dem Lautsprecher",
        "Oma Pflaume"
      ],
      "chapter_count": 9,
      "covered_articles": [
        "art_01",
        "art_02",
        "art_03",
        "art_04",
        "art_05",
        "art_06",
        "art_07",
        "art_08",
        "art_09"
      ],
      "words": 4367,
      "reading_minutes": 22,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "10.2",
          "jaccard_max": "",
          "tokens_generated": "1137",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "",
          "words": 585,
          "reading_minutes": 3
        },
        {
          "file": "01_art_01_abschnitt_1_die_kalibrierung_der_gleichh.md",
          "index": 1,
          "title": "Abschnitt 1: Die Kalibrierung der Gleichheit",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "19.0",
          "jaccard_max": "0.0",
          "tokens_generated": "1286",
          "manual_ending_code": "J-01-01",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 436,
          "reading_minutes": 2
        },
        {
          "file": "02_art_02_abschnitt_2_die_zentrale_registratur_prü.md",
          "index": 2,
          "title": "Abschnitt 2: Die Zentrale Registratur prüft die Sauberkeit der Unterschiede",
          "article": "art_02",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "9.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1095",
          "manual_ending_code": "J-02-02",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 487,
          "reading_minutes": 2
        },
        {
          "file": "03_art_03_abschnitt_3_die_hülse_die_niemand_stempe.md",
          "index": 3,
          "title": "Abschnitt 3: Die Hülse, die niemand stempeln wollte",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1216",
          "manual_ending_code": "J-03-03",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 554,
          "reading_minutes": 3
        },
        {
          "file": "04_art_04_abschnitt_4_der_parameter_der_sich_nicht.md",
          "index": 4,
          "title": "Abschnitt 4: Der Parameter, der sich nicht kalibrieren ließ",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "20.1",
          "jaccard_max": "0.0",
          "tokens_generated": "1006",
          "manual_ending_code": "J-04-04",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 330,
          "reading_minutes": 2
        },
        {
          "file": "05_art_05_abschnitt_5_der_parameter_der_sich_nicht.md",
          "index": 5,
          "title": "Abschnitt 5: Der Parameter, der sich nicht dämpfen ließ",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "66.7",
          "jaccard_max": "0.0",
          "tokens_generated": "995",
          "manual_ending_code": "J-05-05",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 288,
          "reading_minutes": 1
        },
        {
          "file": "06_art_06_abschnitt_6_der_stempel_der_nur_dienstag.md",
          "index": 6,
          "title": "Abschnitt 6: Der Stempel, der nur dienstags rechtsfähig ist",
          "article": "art_06",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1233",
          "manual_ending_code": "J-06-06",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 526,
          "reading_minutes": 3
        },
        {
          "file": "07_art_07_abschnitt_7_der_parameter_der_sich_nicht.md",
          "index": 7,
          "title": "Abschnitt 7: Der Parameter, der sich nicht kalibrieren ließ",
          "article": "art_07",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "54.5",
          "jaccard_max": "0.0",
          "tokens_generated": "1179",
          "manual_ending_code": "J-07-07",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 315,
          "reading_minutes": 2
        },
        {
          "file": "08_art_08_abschnitt_8_der_rechtsbehelf_als_lageror.md",
          "index": 8,
          "title": "Abschnitt 8: Der Rechtsbehelf als Lagerort",
          "article": "art_08",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "133.4",
          "jaccard_max": "0.0",
          "tokens_generated": "1749",
          "manual_ending_code": "J-08-08",
          "backend": "openrouter",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 318,
          "reading_minutes": 2
        },
        {
          "file": "09_art_09_abschnitt_9_die_kammer_der_kalten_klinge.md",
          "index": 9,
          "title": "Abschnitt 9: Die Kammer der kalten Klinge",
          "article": "art_09",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "10.6",
          "jaccard_max": "0.0",
          "tokens_generated": "1215",
          "manual_ending_code": "J-09-09",
          "backend": "deepseek",
          "genre": "Witzebuch",
          "leak_free": "true",
          "words": 528,
          "reading_minutes": 3
        }
      ]
    },
    {
      "book_id": "buch_037_the_ledger_of_hollow_creek",
      "title": "The Ledger of Hollow Creek",
      "language": "EN",
      "style": "Fable",
      "pov": "third_person",
      "setting_summary": "A drought-stricken river valley where beavers, otters, herons, and field mice share a single dwindling reservoir behind an aging dam. The Warden, an ancient heron, controls the water gauge and rations each species' share by a ledger only he can read, while the dry season tightens every day. Scarcity and surveillance turn neighbor against neighbor as whispers of a fairer accounting spread through the reeds.",
      "characters": [
        "Bramble",
        "Old Fenwick",
        "Sable",
        "Pip",
        "The Warden"
      ],
      "chapter_count": 4,
      "covered_articles": [
        "art_01",
        "art_03",
        "art_04",
        "art_05"
      ],
      "words": 2312,
      "reading_minutes": 12,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "6.2",
          "jaccard_max": "",
          "tokens_generated": "606",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Fable",
          "leak_free": "",
          "words": 474,
          "reading_minutes": 2
        },
        {
          "file": "01_art_01_section_1_the_calibration_of_dust.md",
          "index": 1,
          "title": "Section 1: The Calibration of Dust",
          "article": "art_01",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "44.9",
          "jaccard_max": "0.0",
          "tokens_generated": "1057",
          "manual_ending_code": "F-01-01",
          "backend": "openrouter",
          "genre": "Fable",
          "leak_free": "true",
          "words": 355,
          "reading_minutes": 2
        },
        {
          "file": "02_art_03_section_2_the_calibration_of_breath.md",
          "index": 2,
          "title": "Section 2: The Calibration of Breath",
          "article": "art_03",
          "ending_ok": "true",
          "attempts": "1",
          "model": "nvidia/nemotron-3-ultra-550b-a55b:free",
          "duration_seconds": "43.7",
          "jaccard_max": "0.0",
          "tokens_generated": "1717",
          "manual_ending_code": "F-03-02",
          "backend": "openrouter",
          "genre": "Fable",
          "leak_free": "true",
          "words": 291,
          "reading_minutes": 1
        },
        {
          "file": "03_art_04_abschnitt_3_the_calibration_of_servitude.md",
          "index": 3,
          "title": "Abschnitt 3: The Calibration of Servitude",
          "article": "art_04",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "7.9",
          "jaccard_max": "0.032",
          "tokens_generated": "791",
          "manual_ending_code": "F-04-03",
          "backend": "deepseek",
          "genre": "Fable",
          "leak_free": "true",
          "words": 559,
          "reading_minutes": 3
        },
        {
          "file": "04_art_05_abschnitt_4_the_calibration_of_silence.md",
          "index": 4,
          "title": "Abschnitt 4: The Calibration of Silence",
          "article": "art_05",
          "ending_ok": "true",
          "attempts": "1",
          "model": "deepseek-chat",
          "duration_seconds": "8.4",
          "jaccard_max": "0.0",
          "tokens_generated": "867",
          "manual_ending_code": "F-05-04",
          "backend": "deepseek",
          "genre": "Fable",
          "leak_free": "true",
          "words": 633,
          "reading_minutes": 3
        }
      ]
    },
    {
      "book_id": "buch_038_the_weight_of_unspoken_rain",
      "title": "The Weight of Unspoken Rain",
      "language": "EN",
      "style": "Magical_Realism",
      "pov": "third_person",
      "setting_summary": "In the cliffside city of Verdal, a permanent fog called the Hush descends each dusk and erases any spoken word not recorded in the state's official Ledger, while a silent drought parches the lower districts. Water, memory, and speech are rationed by the Ministry of Quiet, and those who whisper without permission find their shadows confiscated by the fog.",
      "characters": [
        "Mira Solano",
        "Tomas Vey",
        "Old Cass",
        "Ines Rook",
        "The Listener"
      ],
      "chapter_count": 0,
      "covered_articles": [],
      "words": 550,
      "reading_minutes": 3,
      "cover": null,
      "chapters": [
        {
          "file": "00_prolog.md",
          "index": 0,
          "title": "Prolog",
          "article": "",
          "ending_ok": "",
          "attempts": "",
          "model": "deepseek-chat",
          "duration_seconds": "8.1",
          "jaccard_max": "",
          "tokens_generated": "675",
          "manual_ending_code": "",
          "backend": "deepseek",
          "genre": "Magical_Realism",
          "leak_free": "",
          "words": 550,
          "reading_minutes": 3
        }
      ]
    }
  ]
}
