code: function (jobOpt) {
      var constraints = {};
      // [1]
      if (jobOpt.hasOwnProperty('script') && jobOpt.script !== null) constraints['script'] = jobOpt.script;
      else if (jobOpt.hasOwnProperty('cmd') && jobOpt.cmd !== null) constraints['cmd'] = jobOpt.cmd;
      else console.log('ERROR in extractConstraints : neither script nor cmd specified');
      // [2]
      if (jobOpt.hasOwnProperty('tagTask') && jobOpt.tagTask !== null)
          constraints['tagTask'] = jobOpt.tagTask;
      // [3]
      if (jobOpt.hasOwnProperty('exportVar') && jobOpt.exportVar !== null)
          constraints['exportVar'] = jobOpt.exportVar;
      return constraints;
  }
docs: /*
  Extract the constraints of the job from its @jobOpt according these rules :
  - use obligatory either a script or a cmd (otherwise error) [1]
  - use a tagTask : value or none (optional) [2]
  - use the literal exportVar : value or none (optional) [3]