docs: function(fullSchema, schema, seenObjects, path, options) {
    // Top level reference, dereference it
    if(schema['$ref']) {
      // Dereference
      var dereference = deref(fullSchema, '', schema["$ref"], seenObjects, options);
      // Delete the tag
      delete(schema['$ref']);
      // Merge the dereferenced value
      for(var name in dereference) {
        schema[name] = dereference[name];
      }
    }
  
    for(var name in schema) {
      var value = schema[name];
      path.push(name);
  
      if(value instanceof Object) {
        // Extract the path
        if(value["$ref"]) {
          // Get the reference
          var reference = value["$ref"];
          // Unroll the reference
          var dereference = deref(fullSchema, name, reference, seenObjects, path, options);
          // Add the dereferenced value
          schema[name] = dereference;
        } else {
          extractReferences(fullSchema, value, seenObjects, path, options);
        }
      }
  
      path.pop();
    }
  }