code: func (StoreValidation) UpdateArgs(req UpdateTaskRequest) (options.Options, error) {
  	var missing []string
  	var o options.Options
  
  	if req.Script == "" && req.Status == "" {
  		missing = append(missing, "script or status")
  	} else {
  		if req.Script != "" {
  			var err error
  			o, err = options.FromScript(req.Script)
  			if err != nil {
  				return o, err
  			}
  		}
  		if err := req.Status.validate(true); err != nil {
  			return o, err
  		}
  	}
  
  	if !req.ID.Valid() {
  		missing = append(missing, "task ID")
  	}
  
  	if len(missing) > 0 {
  		return o, fmt.Errorf("missing required fields to modify task: %s", strings.Join(missing, ", "))
  	}
  
  	return o, nil
  }
docs: // UpdateArgs validates the UpdateTaskRequest.
  // If the update only includes a new status (i.e. req.Script is empty), the returned options are zero.
  // If the update contains neither a new script nor a new status, or if the script is invalid, an error is returned.