schema { query: Query } extend schema { subscription: Subscription } type Query { dogs: [Dog!]! } type Subscription { dogEvents: [Dog!]! } type Dog { name: String! } type Person @favorite(name: "sushi") @favorite(name: "tempura") { name: String! } directive @favorite(name: String!) repeatable on OBJECT extend type Dog { owner: Person! @permission(permission: "admin") } directive @permission(permission: String!) on FIELD_DEFINITION