docs: function createPathPartSetter( node ) {
  	// Local references to `node` properties used by returned functions
  	const nodeLevel = node.level;
  	const nodeName = node.names[ 0 ];
  	const supportedMethods = node.methods || [];
  	const dynamicChildren = node.children ?
  		Object.keys( node.children )
  			.map( key => node.children[ key ] )
  			.filter( childNode => ( childNode.namedGroup === true ) ) :
  		[];
  	const dynamicChild = dynamicChildren.length === 1 && dynamicChildren[ 0 ];
  	const dynamicChildLevel = dynamicChild && dynamicChild.level;
  
  	if ( node.namedGroup ) {
  		/**
  		 * Set a dymanic (named-group) path part of a query URL.
  		 *
  		 * @example
  		 *
  		 *     // id() is a dynamic path part setter:
  		 *     wp.posts().id( 7 ); // Get posts/7
  		 *
  		 * @chainable
  		 * @param  {String|Number} val The path part value to set
  		 * @returns {Object} The handler instance (for chaining)
  		 */
  		return function( val ) {
  			this.setPathPart( nodeLevel, val );
  			if ( supportedMethods.length ) {
  				this._supportedMethods = supportedMethods;
  			}
  			return this;
  		};
  	} else {
  		/**
  		 * Set a non-dymanic (non-named-group) path part of a query URL, and
  		 * set the value of a subresource if an input value is provided and
  		 * exactly one named-group child node exists.
  		 *
  		 * @example
  		 *
  		 *     // revisions() is a non-dynamic path part setter:
  		 *     wp.posts().id( 4 ).revisions();       // Get posts/4/revisions
  		 *     wp.posts().id( 4 ).revisions( 1372 ); // Get posts/4/revisions/1372
  		 *
  		 * @chainable
  		 * @param  {String|Number} [val] The path part value to set (if provided)
  		 *                               for a subresource within this resource
  		 * @returns {Object} The handler instance (for chaining)
  		 */
  		return function( val ) {
  			// If the path part is not a namedGroup, it should have exactly one
  			// entry in the names array: use that as the value for this setter,
  			// as it will usually correspond to a collection endpoint.
  			this.setPathPart( nodeLevel, nodeName );
  
  			// If this node has exactly one dynamic child, this method may act as
  			// a setter for that child node. `dynamicChildLevel` will be falsy if the
  			// node does not have a child or has multiple children.
  			if ( val !== undefined && dynamicChildLevel ) {
  				this.setPathPart( dynamicChildLevel, val );
  			}
  			return this;
  		};
  	}
  }