code: func payloadFactory(t tasks.Task) payloadFn {
  	rt := reflect.TypeOf(t).Elem()
  	return func(id string) proto.Message {
  		p := reflect.New(rt)
  		p.Elem().FieldByName("Id").SetString(id)
  		return p.Interface().(proto.Message)
  	}
  }
docs: // payloadFactory returns a payloadFn which can be called to return a
  // proto.Message to use as the Payload in a *tq.Task.