)]}'
{
  "commit": "2aecd86b37340e3aec7b169e1c205ff0417b7351",
  "tree": "f6e36ac59922b20f48ee59dfd3365b6857cc3f0f",
  "parents": [
    "5eccbbd2bce4fb8b0312ec090179aeaac0fbdd7c"
  ],
  "author": {
    "name": "Niels Lohmann",
    "email": "mail@nlohmann.me",
    "time": "Thu Oct 29 06:37:33 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Oct 29 06:37:33 2026"
  },
  "message": "Document the contract of object keys passed to json_sax::key and key callbacks (#5956)\n\n* Document the contract of object keys passed to json_sax::key and key callbacks\n\nDescribe what the name passed to json_sax::key and to a parser callback\nfor parse_event_t::key holds when parsing JSON text: escapes are decoded\nto UTF-8, different spellings of a name yield identical strings, the name\nis validated before the call (invalid escapes or UTF-8 give a parse error\nand no key event), no normalization or case conversion is applied, the\nevent precedes the \u0027:\u0027 check, and duplicate names are reported once per\noccurrence. Also note that sax_parse passes binary-format keys unchanged.\n\nSee discussion #5955.\n\nSigned-off-by: Niels Lohmann \u003cmail@nlohmann.me\u003e\n\n* Add a test for the object key contract and correct the BON8 note\n\nPin the guarantees documented for json_sax::key and the key event of\nparser callbacks: decoded names, validation before delivery, delivery\nbefore the colon, one event per repeated name, and the binary formats.\nBON8 rejects ill-formed UTF-8 in a name even with sax_parse, so the\nnote no longer lists it with the formats that pass bytes through.\n\nSee discussion #5955.\n\nSigned-off-by: Niels Lohmann \u003cmail@nlohmann.me\u003e\n\n* Fix the GCC build of the object key contract test\n\nGCC 11 in C++11 mode rejects a default argument on a lambda parameter\n(-Wc++14-extensions) and ignores a static_cast\u003cvoid\u003e on the\nwarn_unused_result of parse(). Pass the input format explicitly and bind\nthe parse result to a variable.\n\nSigned-off-by: Niels Lohmann \u003cmail@nlohmann.me\u003e\n\n* Add version history for the object key contract\n\nSigned-off-by: Niels Lohmann \u003cmail@nlohmann.me\u003e\n\n---------\n\nSigned-off-by: Niels Lohmann \u003cmail@nlohmann.me\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a12634b9d17e29989c8c10e3059a5e5e26c43624",
      "old_mode": 33188,
      "old_path": "docs/mkdocs/docs/api/basic_json/parser_callback_t.md",
      "new_id": "643610cb25adcdf8637fd48cdf6615bfc5c896ea",
      "new_mode": 33188,
      "new_path": "docs/mkdocs/docs/api/basic_json/parser_callback_t.md"
    },
    {
      "type": "modify",
      "old_id": "591f590e0a0c2f724e612ba097ad2a2eb6b47858",
      "old_mode": 33188,
      "old_path": "docs/mkdocs/docs/api/json_sax/key.md",
      "new_id": "14b1b52a12509479440c8ba7f42d78cb57d103d1",
      "new_mode": 33188,
      "new_path": "docs/mkdocs/docs/api/json_sax/key.md"
    },
    {
      "type": "modify",
      "old_id": "872105a20c5fa0115d9071d0339453d02ef0946c",
      "old_mode": 33188,
      "old_path": "docs/mkdocs/docs/features/parsing/sax_interface.md",
      "new_id": "f732f4b2e794879a6a08b36c00e2e46b30d8efc1",
      "new_mode": 33188,
      "new_path": "docs/mkdocs/docs/features/parsing/sax_interface.md"
    },
    {
      "type": "modify",
      "old_id": "dd78f7ff46a8546cb15df19bd63a05126d2aa6c8",
      "old_mode": 33188,
      "old_path": "tests/src/unit-class_parser.cpp",
      "new_id": "1662fd03762641e811407a6992f7b92b7ab9fb3c",
      "new_mode": 33188,
      "new_path": "tests/src/unit-class_parser.cpp"
    }
  ]
}
