docs: function() {
  			// If this Model has already been fully serialized in this branch once, return to avoid loops
  			if ( this.isLocked() ) {
  				return this.id;
  			}
  			
  			var json = Backbone.Model.prototype.toJSON.call( this );
  			
  			_.each( this._relations, function( rel ) {
  					var value = json[ rel.key ];
  					
  					if ( rel.options.includeInJSON === true && value && _.isFunction( value.toJSON ) ) {
  						this.acquire();
  						json[ rel.key ] = value.toJSON();
  						this.release();
  					}
  					else if ( _.isString( rel.options.includeInJSON ) ) {
  						if ( value instanceof Backbone.Collection ) {
  							json[ rel.key ] = value.pluck( rel.options.includeInJSON );
  						}
  						else if ( value instanceof Backbone.Model ) {
  							json[ rel.key ] = value.get( rel.options.includeInJSON );
  						}
  					}
  					else {
  						delete json[ rel.key ];
  					}
  				}, this );
  			
  			return json;
  		}