{ "query": "mutation Foo() { ... }" }
As such type safety is dependent on the query langauge (graphQL) not Json. As far as the Json goes, it might as well be multi-part form encoded.