code: function(json){
    
    // Protect against forgetting the new keyword when calling the constructor
    if(!(this instanceof ExtensibleData)){
      return new ExtensibleData(json);
    }
    
    // If the given object is already an instance then just return it. DON'T copy it.
    if(ExtensibleData.isInstance(json)){
      return json;
    }
    
    this.init(json);
  }
docs: A set of data that supports extension elements.
  
  @class
  @extends Base
  @param {Object} [json]