code: public void addConstructState(Constructs construct, ConstructState constructState, Optional<String> infix) {
      addOverwriteProperties(constructState.getOverwritePropertiesMap());
      constructState.removeProp(OVERWRITE_PROPS_KEY);
  
      for (String key : constructState.getPropertyNames()) {
        setProp(construct.name() + "." + (infix.isPresent() ? infix.get() + "." : "") + key, constructState.getProp(key));
      }
  
      addAll(constructState);
    }
docs: Merge a {@link ConstructState} for a child construct into this {@link ConstructState}.
  
  <p>
  Non-override property names will be mutated as follows: key -> construct.name() + infix + key
  </p>
  
  @param construct type of the child construct.
  @param constructState {@link ConstructState} to merge.
  @param infix infix added to each non-override key (for example converter number if there are multiple converters).