)]}'
{
  "commit": "81777013dfa582053489efea874e84379f1f0805",
  "tree": "83f227c65b91152d4a8aaca67d418da04d601e9e",
  "parents": [
    "c86a73a6e1da7dd28076054936458b850eda2947"
  ],
  "author": {
    "name": "Matthias Andreas Benkard",
    "email": "code@mail.matthias.benkard.de",
    "time": "Sun Jul 26 08:53:10 2026 +0200"
  },
  "committer": {
    "name": "Matthias Andreas Benkard",
    "email": "code@mail.matthias.benkard.de",
    "time": "Sun Jul 26 08:53:10 2026 +0200"
  },
  "message": "Support unnumbered named Anlagen; strip control characters\n\nInvestigating \"Anlagen as amendment target\" corrected the diagnosis from\nyesterday: Anlagen are supported. In gii-XML they are norms of their own\n(\"Anlage 8\", \"Anhang\"), Stelle.anlagenEnbez() resolves them, and the GEG\nsample applies annex-targeted commands — only two of its fifty manual\nentries touch annexes, both for content reasons.\n\nWhat actually failed in Berlin was narrower, and is fixed:\n\n  * A law with a single annex names it after the provision it belongs to\n    (\"Die Anlage zu § 2 Absatz 4 Satz 1\"). StellenParser demanded a\n    number after \"Anlage\" and rejected the phrase, so the article\u0027s frame\n    command went unrecognised and its items lost their context. The\n    annex now carries the designation \"Anlage\", like \"Anhang\". The naming\n    suffix is skipped deliberately: read along, the \"§ 2\" inside it would\n    become the target and the wrong norm would be amended.\n\n  * C0 control characters are now stripped. Berlin\u0027s enumeration indent\n    carries a U+0007 that sits invisibly in front of the command and made\n    its start-of-line anchor miss.\n\n  * Command verbs torn apart by a stray space in the official typesetting\n    (\"ein gefügt\" for \"eingefügt\") are rejoined, restricted to sequences\n    that are not valid German word order.\n\nThree of Article 1\u0027s four commands are now recognised. The fourth places\nthe new unit by a word anchor (\"Vor den Wörtern … wird folgender Absatz 5\neingefügt\"), which StrukturEinfuegung cannot express; that and the\ninability of the plain-text stem format to carry an Anlage at all are\nrecorded in Landesrecht-Beispiele.adoc.\n\n231 tests green; all pinned figures unchanged.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ic5804bf343dd5d8ce435c07b8f882ca0372890d2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "55d9be64e543234b0b9e32f7f798fcb07ea38866",
      "old_mode": 33188,
      "old_path": "FASSUNGEN.txt",
      "new_id": "a9fa599bf290552e353dc0a88c2bd5a90f2ac9d2",
      "new_mode": 33188,
      "new_path": "FASSUNGEN.txt"
    },
    {
      "type": "modify",
      "old_id": "473eb1484f2fbe0ccb3a290cce7a391de50eff8a",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java",
      "new_id": "786c812aa8a035b26402c8c54de4e6c7bb4fa73f",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/StellenParser.java"
    },
    {
      "type": "modify",
      "old_id": "d0e37f827de7839317f94e4f41d86dca63a8e058",
      "old_mode": 33188,
      "old_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java",
      "new_id": "fc545543b9414d4ede80fd95f23b75bc433485ef",
      "new_mode": 33188,
      "new_path": "src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java"
    },
    {
      "type": "modify",
      "old_id": "482ceac0af944e4424be6da7a253e0b932177780",
      "old_mode": 33188,
      "old_path": "src/main/resources/sampledata/Landesrecht-Beispiele.adoc",
      "new_id": "00cb08bbb3b8c1f948501b6f3a19d1a20c358849",
      "new_mode": 33188,
      "new_path": "src/main/resources/sampledata/Landesrecht-Beispiele.adoc"
    },
    {
      "type": "modify",
      "old_id": "19a7c8c03b464a20d63a6f67f4bdd4c28a56b555",
      "old_mode": 33188,
      "old_path": "src/test/java/eu/mulk/aendggner/EndToEndTest.java",
      "new_id": "b3bea0837590deef76d5d959c6d1dbf472deaa76",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/EndToEndTest.java"
    },
    {
      "type": "modify",
      "old_id": "f15b98fbde439fe31f733651f64a44e877b18514",
      "old_mode": 33188,
      "old_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/StellenParserTest.java",
      "new_id": "d5b960abce4f45c9d3a51b00c58fd4750e257f8f",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/StellenParserTest.java"
    },
    {
      "type": "modify",
      "old_id": "5ed8b93a833b33388982d2521fc34c195bb8cfd2",
      "old_mode": 33188,
      "old_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/TextBereinigerTest.java",
      "new_id": "5b7e850dbfd0e08bca843e8f700e6573859eaa9a",
      "new_mode": 33188,
      "new_path": "src/test/java/eu/mulk/aendggner/aenderung/parse/TextBereinigerTest.java"
    }
  ]
}
