docs: public SimpleOrderedMap<Object> create(ComponentFacet facet, Boolean encode)
        throws IOException {
      SimpleOrderedMap<Object> mtasFacetResponse = new SimpleOrderedMap<>();
      mtasFacetResponse.add("key", facet.key);
      HashMap<MtasDataCollector<?, ?>, HashMap<String, MtasSolrMtasResult>> functionData = new HashMap<>();
      for (int i = 0; i < facet.baseFields.length; i++) {
        if (facet.baseFunctionList[i] != null) {
          for (MtasDataCollector<?, ?> functionDataCollector : facet.baseFunctionList[i]
              .keySet()) {
            SubComponentFunction[] tmpSubComponentFunctionList = facet.baseFunctionList[i]
                .get(functionDataCollector);
            if (tmpSubComponentFunctionList != null) {
              HashMap<String, MtasSolrMtasResult> tmpList = new HashMap<>();
              for (SubComponentFunction tmpSubComponentFunction : tmpSubComponentFunctionList) {
                tmpList.put(tmpSubComponentFunction.key,
                    new MtasSolrMtasResult(tmpSubComponentFunction.dataCollector,
                        tmpSubComponentFunction.dataType,
                        tmpSubComponentFunction.statsType,
                        tmpSubComponentFunction.statsItems, null, null));
              }
              functionData.put(functionDataCollector, tmpList);
            }
          }
        }
      }
      MtasSolrMtasResult data = new MtasSolrMtasResult(facet.dataCollector,
          facet.baseDataTypes, facet.baseStatsTypes, facet.baseStatsItems, null,
          facet.baseSortTypes, facet.baseSortDirections, null, facet.baseNumbers,
          functionData);
  
      if (encode) {
        mtasFacetResponse.add("_encoded_list", MtasSolrResultUtil.encode(data));
      } else {
        mtasFacetResponse.add("list", data);
        MtasSolrResultUtil.rewrite(mtasFacetResponse, searchComponent);
      }
      return mtasFacetResponse;
    }