public interface TaskIO
Process state when the task is started, and
 outputs, which can be thought of as atomically applied to the Process state when a task is
 completed.  Task can use Task.inputField to specify the field from the Process state that should be used as inputs, and
 Task.outputField to specify the
 field from the Process state that the task should output to. 
 More complex tasks can take
 multiple fields from the process state via Task.inputFieldList and write to
 multiple fields of the process state via Task.outputFieldList. In this case,
 the task is said to have an "input Record" and/or "output Record", which can be thought of as a
 copy of the process state Record with only the fields listed in the inputFieldList
 are copied. 
 When both inputField and inputFieldList are
 specified, the inputField is considered the "primary" input field and will be used
 automatically by various Task subclasses.