docs: @Override
      public Object transform( Object input ) {
  
          if ( input == null ) {
              // if null, assume HashMap
              input = new HashMap();
          }
  
          // TODO : Make copy of the defaultee or like shiftr create a new output object
          if ( input instanceof List ) {
              if  ( arrayRoot == null ) {
                  throw new TransformException( "The Spec provided can not handle input that is a top level Json Array." );
              }
              arrayRoot.applyChildren( input );
          }
          else {
              mapRoot.applyChildren( input );
          }
  
          return input;
      }