sig
  type id = [ `Worker ] Id.t
  type t
  val create : Host.t -> Worker.t
  val id : Worker.t -> Worker.id
  val host : Worker.t -> Host.t
  val equal : Worker.t -> Worker.t -> bool
  val compare : Worker.t -> Worker.t -> int
  val pp : Worker.t Fmt.t
  val json : Worker.t Jsont.codec
  type status = [ `Idle | `Job of Job.id | `Task of Task.id ]
  val pp_status : Worker.status Fmt.t
  val json_status : Worker.status Jsont.codec
end