directive @extends on OBJECT directive @key(fields: String!) on OBJECT | INTERFACE directive @permission(permission: String!) on FIELD type Dog { name: String! owner: Person! @permission(permission: "admin") } type Person @key(fields: "name") { name: String! } type Query @extends { dogs: [Dog!]! } type Subscription { dogEvents: [Dog!]! }