anchor.diff:  
   * The Interface object MUST have a member with the name `cmd`. The member's value MUST be a string specifying the
   absolute path to the job executable within the Docker image.
  -* The Interface object MUST have a member with the name `args`. The member's value MUST be a string specifying the
  +* The Interface object MAY have a member with the name `args`. The member's value MUST be a string specifying the
   complete parameter string passed to the executable defined in `cmd` member. Based on the Linux shell, shell escaping
   of special characters MAY be required.
  -* The Interface object MUST have a member with the name `inputData`. The member's value is an array of `InputData`
  -objects (see <<inputdata-section>>) and MUST contain at least 1 element. There is no other standard restriction on the
  -array size.
  -* The Interface object MUST have a member with the name `outputData`. The member's value is an array of `OutputData`
  -objects (see <<inputdata-section>>) and MUST contain at least 1 element. There is no other standard restriction on the
  -array size.
  +* The Interface object MAY have a member with the name `inputData`. The member's value is an array of `InputData`
  +objects (see <<inputdata-section>>) and MAY contain any number of elements.
  +* The Interface object MAY have a member with the name `outputData`. The member's value is an array of `OutputData`
  +objects (see <<inputdata-section>>) and MAY contain any number of elements. There is no other standard restriction on
  +the array size.
  +
  +The following annotated snippet provides quick reference to the use of Interface object:
   
   [source,javascript]
   ----
   {
  -  "cmd": "/app/job.sh",
  -  "args": "${INPUT_FILE} ${JOB_OUTPUT_DIR}",
  -  "inputData": [ { "name": "INPUT_FILE", ... }, ... ],
  -  "outputData": [ ... ]
  +  "cmd": "/app/job.sh", // <1>
  +  "args": "${INPUT_FILE} ${JOB_OUTPUT_DIR}", // <2>
  +  "inputData": [ { "name": "INPUT_FILE", ... }, ... ], // <3>
  +  "outputData": [ ... ] <4>
   }
   ----
  +<1> Required string indicating the job executable. It should be an absolute path for clarity.
  +<2> Optional string indicating the job arguments. Shell expansion may be used to inject existing environment variables
  +and executable arguments. Linux shell escaping may be needed in the case of special characters.
  +<3> Optional array of InputData objects. This is the means to inject external data into the job container.
  +<4> Optional array of OutputData objects. This is the means to capture results from the job container.
   
   [[inputdata-section, InputData Objects]]
   ====== InputData Objects
  
positive.code: short descriptive title of the job.
  * The Job object MUST have a member with the name `description`. The member's value MUST be a string and SHOULD contain
  a full job abstract.
  * The Job object MUST have a member with the name `authorName`. The member's value MUST be a string and SHOULD contain
  the authoring individual or organization.
  * The Job object MAY have a member with the name `authorUrl`. The member's value MUST be a string and SHOULD contain a
  
negative.code: *** The Content object MUST have a member `pattern`. The member's value MUST indicate a standard glob pattern for the 
  capture of files.
  *** The Content object MAY have a member `count`. The member's value MUST be a string that accepts 2 possibilities:
  positive numeric values or a `\*`. Numeric values indicate an explicit match expected for `pattern` while `*` indicates
  1 or more matched.
  ** The Content object for OutputData objects with member `type` of value `JSON` MUST follow the following format:
  *** The Content object MUST have a member `type`. The member's value MUST indicate the JSON schema type of the member
  being captured by OutputData from the result manifest.
  
  The following annotated snippet provides quick reference to the use of OutputData object:
  
  [source,javascript]
  ----
  