code: function (version) {
              this.log("asVersion: " + version);
              var result = {
                  objectType: this.objectType
              };
  
              version = version || TinCan.versions()[0];
  
              if (version === "0.9") {
                  if (this.mbox !== null) {
                      result.mbox = [ this.mbox ];
                  }
                  else if (this.mbox_sha1sum !== null) {
                      result.mbox_sha1sum = [ this.mbox_sha1sum ];
                  }
                  else if (this.openid !== null) {
                      result.openid = [ this.openid ];
                  }
                  else if (this.account !== null) {
                      result.account = [ this.account.asVersion(version) ];
                  }
  
                  if (this.name !== null) {
                      result.name = [ this.name ];
                  }
              } else {
                  if (this.mbox !== null) {
                      result.mbox = this.mbox;
                  }
                  else if (this.mbox_sha1sum !== null) {
                      result.mbox_sha1sum = this.mbox_sha1sum;
                  }
                  else if (this.openid !== null) {
                      result.openid = this.openid;
                  }
                  else if (this.account !== null) {
                      result.account = this.account.asVersion(version);
                  }
  
                  if (this.name !== null) {
                      result.name = this.name;
                  }
              }
  
              return result;
          }
docs: While a TinCan.Agent instance can store more than one inverse functional identifier
  this method will always only output one to be compliant with the statement sending
  specification. Order of preference is: mbox, mbox_sha1sum, openid, account
  
  @method asVersion
  @param {String} [version] Version to return (defaults to newest supported)