query findGroups(
  $query: String!
  $cursor: String
  $first: Int = 1000
  $lat: Float = 0.0
  $lon: Float = 0.0
  $radius: Float = 100000000.0
  $categoryId: ID
  $topicCategoryId: ID
) {
  groupSearch(
    after: $cursor
    first: $first
    filter: {
      query: $query
      lat: $lat
      lon: $lon
      radius: $radius
      categoryId: $categoryId
      topicCategoryId: $topicCategoryId
    }
  ) {
    pageInfo {
      hasNextPage
      endCursor
    }
    totalCount
    edges {
      node {
        id
        name
        urlname
        city
        state
        country
        lat
        lon
        memberships {
          totalCount
        }
        foundedDate
        timezone
        joinMode
        isPrivate
        membershipMetadata {
          status
        }
        << extra_graphql >>
      }
    }
  }
}