docs: public void addPathDetails(Map<String, List<PathDetail>> details) {
          if (!this.pathDetails.isEmpty() && !details.isEmpty() && this.pathDetails.size() != details.size()) {
              throw new IllegalStateException("Details have to be the same size");
          }
          for (Map.Entry<String, List<PathDetail>> detailEntry : details.entrySet()) {
              if (this.pathDetails.containsKey(detailEntry.getKey())) {
                  List<PathDetail> pd = this.pathDetails.get(detailEntry.getKey());
                  merge(pd, detailEntry.getValue());
              } else {
                  this.pathDetails.put(detailEntry.getKey(), detailEntry.getValue());
              }
          }
      }