docs: public Optional<DataType> handleFinalSet( TraversalStep traversalStep, Object tree, String key, DataType data ) {
  
          Optional<DataType> optSub = traversalStep.get( tree, key );
  
          if ( !optSub.isPresent() || optSub.get() == null ) {
              // nothing is here so just set the data
              traversalStep.overwriteSet( tree, key, data );
          }
          else if ( optSub.get() instanceof List ) {
              // there is a list here, so we just add to it
              ((List<Object>) optSub.get()).add( data );
          }
          else {
              // take whatever is there and make it the first element in an Array
              List<Object> temp = new ArrayList<>();
              temp.add( optSub.get() );
              temp.add( data );
  
              traversalStep.overwriteSet( tree, key, temp );
          }
  
          return Optional.of( data );
      }