docs: private static Map<String, Map<String, String[]>> extractConfig(Map<String, Object> config) {
          Map<String, String[]> factories = new HashMap<String, String[]>();
          Map<String, String[]> channels = new HashMap<String, String[]>();
          Map<String, String[]> chains = new HashMap<String, String[]>();
          Map<String, String[]> groups = new HashMap<String, String[]>();
          Map<String, String[]> endpoints = new HashMap<String, String[]>();
  
          for (Map.Entry<String, Object> entry : config.entrySet()) {
              String key = entry.getKey();
              String name;
              if (key.startsWith(CHANNEL_PREFIX)) {
                  name = key.substring(CHANNEL_PREFIX.length()).trim();
                  if (0 != name.length()) {
                      channels.put(name, (String[]) entry.getValue());
                  }
              } else if (key.startsWith(CHAIN_PREFIX)) {
                  name = key.substring(CHAIN_PREFIX.length()).trim();
                  if (0 != name.length()) {
                      chains.put(name, (String[]) entry.getValue());
                  }
              } else if (key.startsWith(GROUP_PREFIX)) {
                  name = key.substring(GROUP_PREFIX.length()).trim();
                  if (0 != name.length()) {
                      groups.put(name, (String[]) entry.getValue());
                  }
              } else if (key.startsWith(FACTORY_PREFIX)) {
                  name = key.substring(FACTORY_PREFIX.length()).trim();
                  if (0 != name.length()) {
                      factories.put(name, (String[]) entry.getValue());
                  }
              } else if (key.startsWith(ENDPOINT_PREFIX)) {
                  name = key.substring(ENDPOINT_PREFIX.length()).trim();
                  if (0 != name.length()) {
                      endpoints.put(name, (String[]) entry.getValue());
                  }
              }
          }
          Map<String, Map<String, String[]>> rc = new HashMap<String, Map<String, String[]>>();
          rc.put("factories", factories);
          rc.put("channels", channels);
          rc.put("chains", chains);
          rc.put("groups", groups);
          rc.put("endpoints", endpoints);
          return rc;
      }