docs: private void resolveTemporaryProperties(Map<String, Set<String>> map) {
          boolean temporaryPresent = false;
          do {
              temporaryPresent = false;
              for (Map.Entry<String, Set<String>> entry : map.entrySet()) {
                  Set<String> newProperties = new HashSet<String>();
                  Iterator<String> properties = entry.getValue().iterator();
                  while (properties.hasNext()) {
                      String property = properties.next();
                      if (isTemporaryProperty(property)) {
                          LOGGER.debug("Resolve temporary field {} for property {}", entry.getKey(), property);
                          temporaryPresent = true;
                          newProperties.addAll(map.get(property));
                          properties.remove();
                      }
                  }
                  entry.getValue().addAll(newProperties);
              }
          } while (temporaryPresent);
      }