type SomeDeity {
  _0: Deity!
}

type Human implements Person {
  name: String!
  bornAt: City!
}

type SomeMutli {
  _0: Int!
  _1: String!
}

type SomeScalarRecord {
  scalar: String!
}

type Cronus {
  _: Unit!
}

type Zeus {
  _: Unit!
}

type Deity implements Person {
  name: String!
  power: String
  realm: Realm!
  bornAt: City
}

type Creature {
  name: String!
  age: Int!
}

interface Person {
  name: String!
}

type BoxedDeity {
  boxedDeity: Deity!
}

union Character =
    Human
  | Deity
  | Creature
  | BoxedDeity
  | SomeScalarRecord
  | SomeDeity
  | SomeScalar
  | SomeMutli
  | Zeus
  | Cronus

enum City {
  Athens
  Colchis
  Delphi
  Ithaca
  Sparta
  Troy
}

enum Realm {
  MountOlympus
  Sky
  Sea
  Underworld
  Dream
}

type Query {
  deity(name: String!, bornPlace: City): Deity!
  character: [Character!]!
  persons: [Person!]!
}

enum Unit {
  Unit
}

type SomeScalar {
  _0: Int!
}