interface Character { name: String } interface Supernatural { power: [String!]! } type Hero implements Character { name: String nickname: String } type Deity implements Character & Supernatural { name: String! power: [String!]! } union MyUnion = Hero | Deity type Query { deity: Deity! myUnion: MyUnion character: [Character!] }