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