"mainsnak": {
      "snaktype": "value",
      "property": "P31",
      "hash": "d679b35e7a9523b92903b52661a9e4c15d8d76d3",
      "datavalue": {
        "value": {
          "entity-type": "item",
          "numeric-id": 112826905,
          "id": "Q112826905"
        },
        "type": "wikibase-entityid"
      },
      "datatype": "wikibase-item"
    },

One of the constant pain points that I have heard and run across is this:

Any chance Wikidata's JSON format might be a little more developer friendly for tooling in general?  Like why do they sometimes have "entity-type" and "numeric-id" as keys with dashes, when a lot of the world and our parsing libraries have sorta standardized around at least only camelCase or snake_case in JSON.  I mean, look at what they did with "snaktype" and "entity-type" !  Can you find out, Thad ?

So I said to them, sure. 😉
(granted I know all characters are allowed for object property names in JSON and someone likely in the team at the time said, "eh, doesn't matter, it's JSON, it eats anything".)