schema {
    # query comment
    query: Query
}

extend schema {
    # subscription comment
    subscription: Subscription
}

# query extends comment
type Query @extends {
    # dogs comment
    dogs: [Dog!]!
    # end of type comment
}

# subscription comment
type Subscription {
    # dogEvents comment
    dogEvents: [Dog!]!
    # end of type comment
}

# Dog comment
type Dog {
    # Dog name comment
    name: String!
    # end of type comment
}

# Person comment
type Person @key(fields: "name") {
    # Person name comment
    name: String!
    # end of type comment
}

# extend type Dog comment
extend type Dog {
    # Dog owner comment
    owner: Person! @permission(permission: "admin")
    # end of type comment
}

# directive @persmission comment
directive @permission(permission: String!) on FIELD_DEFINITION
# directive @extends comment
directive @extends on OBJECT
# directive @key comment
directive @key(fields: String!) on OBJECT | INTERFACE
# end of file comment
# end of file comment 2
