code: protected Map<RestrictedPaginationKeys, Integer> parsePaginationParameters(final QueryParamsParserContext context) {
          String pagingKey = RestrictedQueryParamsMembers.page.name();
          Map<String, Set<String>> pagination = filterQueryParamsByKey(context, pagingKey);
  
          Map<RestrictedPaginationKeys, Integer> decodedPagination = new LinkedHashMap<>();
  
          for (Map.Entry<String, Set<String>> entry : pagination.entrySet()) {
              List<String> propertyList = buildPropertyListFromEntry(entry, RestrictedQueryParamsMembers.page.name());
  
              if (propertyList.size() > 1) {
                  throw new ParametersDeserializationException("Exceeded maximum level of nesting of 'page' parameter " +
                          "(1) eg. page[offset][minimal] <-- #2 level and more are not allowed");
              }
  
              String resourceType = propertyList.get(0);
  
              decodedPagination.put(RestrictedPaginationKeys.valueOf(resourceType), Integer.parseInt(entry
                      .getValue()
                      .iterator()
                      .next()));
          }
  
          return Collections.unmodifiableMap(decodedPagination);
      }
docs: <strong>Important!</strong> Katharsis implementation sets on strategy of pagination whereas JSON API
  <a href="http://jsonapi.org/format/#fetching-pagination">definition of pagination</a>
  is agnostic about pagination strategies.
  <p>
  Pagination params can be send with following format: <br>
  <strong>page[offset|limit] = "value"</strong>, where value is an integer
  <p>
  Examples of accepted grouping of resources:
  <ul>
  <li>{@code GET /projects/?page[offset]=0&page[limit]=10}</li>
  </ul>
  @param context Don't know, didn't write the code
  
  @param context Ask PJ about this
  @return {@link Map} Map of pagination keys passed to request