type Query {
  deity(name: [[[[[String!]]!]]], mythology: String): Deity!
  character(characterID: String!, age: Int): Character!
  hero: Human!
}

type Mutation {
  createDeity(deityName: [[[[[String!]]!]]], deityMythology: String): Deity!
  createCharacter(charRealm: Realm!, charMutID: String!): Character!
}

type Subscription {
  newDeity: Deity!
  newCharacter: Character!
}

union Character = Creature | Deity | Human

type Deity {
  fullName: String!
  power: ScalarPower!
}

type Creature {
  """
  simple field description
  """
  creatureName: String!
  realm: City!
}

type Human {
  humanName: String!
  profession: String
}

input Realm {
  owner: String!
  place: Int
}

enum City {
  Athens
  Ithaca
  Sparta
  Troy
}

scalar ScalarPower
