type Query { me: User user(id: ID!): User being(id: ID!): Being beings(ids: [ID!]!): [Being]! lotteryWinner(number: Int!): Lucky fail: Boolean } type User implements Being & Lucky { id: ID! name: String! luckyNumber: Int hair: Hair } type Hair { color: String } # silly name to confuse the name-generator type Animal implements Being { id: ID! name: String! species: Species! owner: Being hair: BeingsHair } type BeingsHair { hasHair: Boolean! } # silly name to confuse the name-generator enum Species { DOG COELACANTH } interface Being { id: ID! name: String! } interface Lucky { luckyNumber: Int }