type Bird @shareable @fieldMarks(plumage: "juvenile") {
id: ID!
name: String!
species: String!
observedAt: DateTime! @deprecated
location: String! @tag(name: "locationService") @tag(name: "a")
notes: String @deprecated(reason: "Field is obsolete due to new data model.")
}
type BirdObservation @id(fields: "observationID") {
observationID: ID!
bird: Bird!
observerDetails: ObserverDetails!
timeOfObservation: DateTime!
}
type ObserverDetails @notComposed {
name: String!
membershipNumber: String
observerType: ObserverType!
}
enum ObserverType {
AMATEUR
SEMIPROFESSIONAL @deprecated(reason: "No such thing as semiprofessionals")
PROFESSIONAL
}
input BirdObservationFilters {
observerName: String
observerType: ObserverType
observedAt: DateTime @deprecated(reason: "UNIX timestamps instead, as usual in bird watching")
first: Int
}
type Query {
birdObservations(filters: BirdObservationFilters): [BirdObservation]
birdObservation(observationID: ID!): BirdObservation
}
schema @composeDirective(name: "@fieldMarks") {
query: Query
}