code: function CommandAssignment() {
    var commandParamMetadata = { name: '__command', type: 'command' };
    // This is a hack so that rather than reply with a generic description of the
    // command assignment, we reply with the description of the assigned command,
    // (using a generic term if there is no assigned command)
    var self = this;
    Object.defineProperty(commandParamMetadata, 'description', {
      get: function() {
        var value = self.value;
        return value && value.description ?
            value.description :
            'The command to execute';
      },
      enumerable: true
    });
    this.param = new canon.Parameter(commandParamMetadata);
    this.paramIndex = -1;
    this.onAssignmentChange = util.createEvent('CommandAssignment.onAssignmentChange');
  }
docs: This is a special assignment to reflect the command itself.