code: function(json){
      
      // Protect against forgetting the new keyword when calling the constructor
      if(!(this instanceof Link)){
        return new Link(json);
      }
      
      // If the given object is already an instance then just return it. DON'T copy it.
      if(Link.isInstance(json)){
        return json;
      }
      
      // TODO: Enforce spec constraint that requires either an href or a template?
      
      this.init(json);
    }
docs: A representation of an available transition from one application state to another.
  
  {@link https://github.com/FamilySearch/gedcomx-rs/blob/master/specifications/rs-specification.md#link|GEDCOM X RS Spec}
  
  @class Link
  @extends Base
  @param {Object} [json]