code: function Assignment(param, paramIndex) {
    // The parameter that we are assigning to
    this.param = param;
  
    this.conversion = undefined;
  
    // The index of this parameter in the parent Requisition. paramIndex === -1
    // is the command assignment although this should not be relied upon, it is
    // better to test param instanceof CommandAssignment
    this.paramIndex = paramIndex;
  
    this.onAssignmentChange = util.createEvent('Assignment.onAssignmentChange');
  }
docs: Assignment is a link between a parameter and the data for that parameter.
  The data for the parameter is available as in the preferred type and as
  an Argument for the CLI.
  <p>We also record validity information where applicable.
  <p>For values, null and undefined have distinct definitions. null means
  that a value has been provided, undefined means that it has not.
  Thus, null is a valid default value, and common because it identifies an
  parameter that is optional. undefined means there is no value from
  the command line.
  
  <h2>Events<h2>
  Assignment publishes the following event:<ul>
  <li>onAssignmentChange: Either the value or the text has changed. It is
  likely that any UI component displaying this argument will need to be
  updated.
  The event object looks like:
  <tt>{ assignment: ..., conversion: ..., oldConversion: ... }</tt>
  @constructor