type Query { deity(name: String): Deity! } interface Character { name(id: ID): String! } interface Supernatural { power(id: ID!): [String!]! } type Deity implements Character & Supernatural { # arg id has stronger type name(id: ID!): String! # arg: has same type power(id: ID!, age: Int!): [String!]! }