code: func (t *transaction) saveJob(job *Job) {
  	// Generate id if needed
  	if job.id == "" {
  		job.id = generateRandomId()
  	}
  	// Set status to saved if needed
  	if job.status == "" {
  		job.status = StatusSaved
  	}
  	// Add the job attributes to a hash
  	t.command("HMSET", job.mainHashArgs(), nil)
  	// Add the job to the appropriate status set
  	t.setStatus(job, job.status)
  	// Add the job to the time index
  	t.addJobToTimeIndex(job)
  }
docs: // saveJob adds commands to the transaction to set all the fields for the main hash for the job,
  // add the job to the time index, move the job to the appropriate status set. It will
  // also mutate the job by 1) generating an id if the id is empty and 2) setting the status to
  // StatusSaved if the status is empty.