type Tribe { id: Int! name: String! tag: String! totalMembers: Int! totalVillages: Int! points: Int! allPoints: Int! rank: Int! exists: Boolean! rankAtt: Int! scoreAtt: Int! rankDef: Int! scoreDef: Int! rankTotal: Int! scoreTotal: Int! dominance: Float! bestRank: Int! bestRankAt: Time! mostPoints: Int! mostPointsAt: Time! mostVillages: Int! mostVillagesAt: Time! createdAt: Time! deletedAt: Time } type TribeList { items: [Tribe!] total: Int! } input TribeFilterOr { id: [Int!] tag: [String!] tagIEQ: String name: [String!] nameIEQ: String } input TribeFilter { id: [Int!] idNEQ: [Int!] exists: Boolean tag: [String!] tagNEQ: [String!] tagMATCH: String tagIEQ: String name: [String!] nameNEQ: [String!] nameMATCH: String nameIEQ: String totalMembers: Int totalMembersGT: Int totalMembersGTE: Int totalMembersLT: Int totalMembersLTE: Int totalVillages: Int totalVillagesGT: Int totalVillagesGTE: Int totalVillagesLT: Int totalVillagesLTE: Int points: Int pointsGT: Int pointsGTE: Int pointsLT: Int pointsLTE: Int allPoints: Int allPointsGT: Int allPointsGTE: Int allPointsLT: Int allPointsLTE: 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 rankTotal: Int rankTotalGT: Int rankTotalGTE: Int rankTotalLT: Int rankTotalLTE: Int scoreTotal: Int scoreTotalGT: Int scoreTotalGTE: Int scoreTotalLT: Int scoreTotalLTE: Int dominance: Int dominanceGT: Int dominanceGTE: Int dominanceLT: Int dominanceLTE: Int createdAt: Time createdAtGT: Time createdAtGTE: Time createdAtLT: Time createdAtLTE: Time deletedAt: Time deletedAtGT: Time deletedAtGTE: Time deletedAtLT: Time deletedAtLTE: Time or: TribeFilterOr } type FoundTribe { server: String! id: Int! tag: String! name: String! bestRank: Int! mostPoints: Int! mostVillages: Int! } type FoundTribeList { items: [FoundTribe!] total: Int! } extend type Query { tribes( server: String! filter: TribeFilter limit: Int offset: Int sort: [String!] ): TribeList! tribe(server: String!, id: Int!): Tribe searchTribe( version: String! query: String! limit: Int offset: Int sort: [String!] ): FoundTribeList! }