code: function keyFound(ascent, newDeepestName, maybeNewDeepestNode) {
  
        if( ascent ) { // if not root
        
           // If we have the key but (unless adding to an array) no known value
           // yet. Put that key in the output but against no defined value:      
           appendBuiltContent( ascent, newDeepestName, maybeNewDeepestNode );
        }
     
        var ascentWithNewPath = cons( 
                                   namedNode( newDeepestName, 
                                              maybeNewDeepestNode), 
                                   ascent
                                );
  
        emitNodeOpened( ascentWithNewPath);
   
        return ascentWithNewPath;
     }
docs: For when we find a new key in the json.
  
  @param {String|Number|Object} newDeepestName the key. If we are in an
  array will be a number, otherwise a string. May take the special
  value ROOT_PATH if the root node has just been found
  
  @param {String|Number|Object|Array|Null|undefined} [maybeNewDeepestNode]
  usually this won't be known so can be undefined. Can't use null
  to represent unknown because null is a valid value in JSON