docs: public long applyChanges(EncodingManager em, Collection<JsonFeature> features) {
          if (em == null)
              throw new NullPointerException("EncodingManager cannot be null to change existing graph");
  
          long updates = 0;
          for (JsonFeature jsonFeature : features) {
              if (!jsonFeature.hasProperties())
                  throw new IllegalArgumentException("One feature has no properties, please specify properties e.g. speed or access");
  
              List<String> encodersAsStr = (List) jsonFeature.getProperty("vehicles");
              if (encodersAsStr == null) {
                  for (FlagEncoder encoder : em.fetchEdgeEncoders()) {
                      updates += applyChange(jsonFeature, encoder);
                  }
              } else {
                  for (String encoderStr : encodersAsStr) {
                      updates += applyChange(jsonFeature, em.getEncoder(encoderStr));
                  }
              }
          }
  
          return updates;
      }