docs: public Set<DiscoveryEntryWithMetaInfo> filter(Version callerVersion,
                                                    Set<DiscoveryEntryWithMetaInfo> discoveryEntries,
                                                    Map<String, Set<Version>> discoveredVersions) {
          if (callerVersion == null || discoveryEntries == null) {
              throw new IllegalArgumentException(String.format("Neither callerVersion (%s) nor discoveryEntries (%s) can be null.",
                                                               callerVersion,
                                                               discoveryEntries));
          }
          Iterator<DiscoveryEntryWithMetaInfo> iterator = discoveryEntries.iterator();
          while (iterator.hasNext()) {
              DiscoveryEntry discoveryEntry = iterator.next();
              if (discoveredVersions != null) {
                  Set<Version> versionsByDomain = discoveredVersions.get(discoveryEntry.getDomain());
                  if (versionsByDomain == null) {
                      versionsByDomain = new HashSet<>();
                      discoveredVersions.put(discoveryEntry.getDomain(), versionsByDomain);
                  }
                  versionsByDomain.add(discoveryEntry.getProviderVersion());
              }
              if (!versionCompatibilityChecker.check(callerVersion, discoveryEntry.getProviderVersion())) {
                  iterator.remove();
              }
          }
          return discoveryEntries;
      }