type PlayerNameChange { oldName: String! newName: String! changeDate: Time! } type Player { id: Int! name: String! totalVillages: Int! points: Int! rank: Int! exists: Boolean! rankAtt: Int! scoreAtt: Int! rankDef: Int! scoreDef: Int! rankSup: Int! scoreSup: Int! rankTotal: Int! scoreTotal: Int! dailyGrowth: Int! bestRank: Int! bestRankAt: Time! mostPoints: Int! mostPointsAt: Time! mostVillages: Int! mostVillagesAt: Time! joinedAt: Time! lastActivityAt: Time! deletedAt: Time tribe: Tribe @goField(forceResolver: true) servers: [String!]! @goField(forceResolver: true) nameChanges: [PlayerNameChange!]! @goField(forceResolver: true) } type PlayerList { items: [Player!] total: Int! } input PlayerFilter { id: [Int!] idNEQ: [Int!] exists: Boolean name: [String!] nameNEQ: [String!] nameMATCH: String nameIEQ: String totalVillages: Int totalVillagesGT: Int totalVillagesGTE: Int totalVillagesLT: Int totalVillagesLTE: Int points: Int pointsGT: Int pointsGTE: Int pointsLT: Int pointsLTE: Int rank: Int rankGT: Int rankGTE: Int rankLT: Int rankLTE: Int rankAtt: Int rankAttGT: Int rankAttGTE: Int rankAttLT: Int rankAttLTE: Int scoreAtt: Int scoreAttGT: Int scoreAttGTE: Int scoreAttLT: Int scoreAttLTE: Int rankDef: Int rankDefGT: Int rankDefGTE: Int rankDefLT: Int rankDefLTE: Int scoreDef: Int scoreDefGT: Int scoreDefGTE: Int scoreDefLT: Int scoreDefLTE: Int rankSup: Int rankSupGT: Int rankSupGTE: Int rankSupLT: Int rankSupLTE: Int scoreSup: Int scoreSupGT: Int scoreSupGTE: Int scoreSupLT: Int scoreSupLTE: Int rankTotal: Int rankTotalGT: Int rankTotalGTE: Int rankTotalLT: Int rankTotalLTE: Int scoreTotal: Int scoreTotalGT: Int scoreTotalGTE: Int scoreTotalLT: Int scoreTotalLTE: Int dailyGrowth: Int dailyGrowthGT: Int dailyGrowthGTE: Int dailyGrowthLT: Int dailyGrowthLTE: Int joinedAt: Time joinedAtGT: Time joinedAtGTE: Time joinedAtLT: Time joinedAtLTE: Time lastActivityAt: Time lastActivityAtGT: Time lastActivityAtGTE: Time lastActivityAtLT: Time lastActivityAtLTE: Time deletedAt: Time deletedAtGT: Time deletedAtGTE: Time deletedAtLT: Time deletedAtLTE: Time tribeID: [Int!] tribeIDNEQ: [Int!] tribeFilter: TribeFilter } type FoundPlayer { server: String! id: Int! name: String! bestRank: Int! mostPoints: Int! mostVillages: Int! tribeID: Int! tribeTag: String! } type FoundPlayerList { items: [FoundPlayer!] total: Int! } extend type Query { players( server: String! filter: PlayerFilter limit: Int offset: Int sort: [String!] ): PlayerList! player(server: String!, id: Int!): Player searchPlayer( version: String! name: String id: Int limit: Int offset: Int sort: [String!] ): FoundPlayerList! }