code: func (job *Job) PayloadField() (reflect.Value, error) {
  	rv := reflect.ValueOf(job).Elem()
  	rt := rv.Type()
  
  	payloadIndex := -1
  	for i := 0; i < rt.NumField(); i++ {
  		if rt.Field(i).Type.Implements(payloadType) && !rv.Field(i).IsNil() {
  			if payloadIndex >= 0 {
  				return reflect.Value{}, fmt.Errorf("only one Job payload field should be set, but both '%v' and '%v' are set",
  					rt.Field(payloadIndex).Name, rt.Field(i).Name)
  			}
  			payloadIndex = i
  		}
  	}
  	if payloadIndex == -1 {
  		return reflect.Value{}, fmt.Errorf("Job has no payload, please set at least one job value")
  	}
  
  	return rv.Field(payloadIndex), nil
  }
docs: // Ensures only one Job payload is set and returns a pointer to that field or an error if none or multiple
  // job payload fields are set