scalar JSON

type Query {
  testStruct: TestStruct
  myUnion: MyUnionType
}

type TestStruct {
  fieldOne(x: Int, y: String): String!
  tastyCakes(first: Dessert!, second: Dessert): Dessert!
  fieldWithInput(input: AnInputType!): Dessert!
  nested: Nested!
  optNested: Nested
  dessert: Dessert
  json: JSON
}

union MyUnionType = Nested | TestStruct

type Nested {
  aString: String!
  optString: String
}

enum Dessert {
  CHEESECAKE
  ICE_CREAM
}

input AnInputType {
  favouriteDessert: Dessert
}
