private void populateFetcherConfigs(Map<String, Object> fetcherConfigParams,
                                        Document tikaConfigDoc, Element fetcher) {
        for (var configParam : fetcherConfigParams.entrySet()) {
            Element configElm = tikaConfigDoc.createElement(configParam.getKey());
            fetcher.appendChild(configElm);
            if (configParam.getValue() instanceof List) {
                List configParamVal = (List) configParam.getValue();
                String singularName = configParam.getKey().substring(0, configParam.getKey().length() - 1);
                for (Object configParamObj : configParamVal) {
                    Element childElement = tikaConfigDoc.createElement(singularName);
                    childElement.setTextContent(Objects.toString(configParamObj));
                    configElm.appendChild(childElement);
                }
            } else {
                configElm.setTextContent(Objects.toString(configParam.getValue()));
            }
        }
    }
FetcherID is key, The pair is the Fetcher object and the Metadata
tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java