type Ennoblement { id: Int! village: Village @goField(forceResolver: true) newOwner: Player @goField(forceResolver: true) newOwnerTribe: Tribe @goField(forceResolver: true) oldOwner: Player @goField(forceResolver: true) oldOwnerTribe: Tribe @goField(forceResolver: true) ennobledAt: Time! } type EnnoblementList { items: [Ennoblement!] total: Int! } input EnnoblementFilterOr { newOwnerID: [Int!] newOwnerTribeID: [Int!] oldOwnerID: [Int!] oldOwnerTribeID: [Int!] } input EnnoblementFilter { villageID: [Int!] villageIDNEQ: [Int!] villageFilter: VillageFilter newOwnerID: [Int!] newOwnerIDNEQ: [Int!] newOwnerFilter: PlayerFilter newOwnerTribeID: [Int!] newOwnerTribeIDNEQ: [Int!] newOwnerTribeFilter: TribeFilter oldOwnerID: [Int!] oldOwnerIDNEQ: [Int!] oldOwnerFilter: PlayerFilter oldOwnerTribeID: [Int!] oldOwnerTribeIDNEQ: [Int!] oldOwnerTribeFilter: TribeFilter ennobledAt: Time ennobledAtGT: Time ennobledAtGTE: Time ennobledAtLT: Time ennobledAtLTE: Time or: EnnoblementFilterOr } extend type Query { ennoblements( server: String! filter: EnnoblementFilter limit: Int offset: Int sort: [String!] ): EnnoblementList! }