{
  liminix,
  lib,
  s6-rc-round-robin,
}:
{ services, name }:
let
  inherit (liminix.services) oneshot longrun;
  controlled-services = builtins.map (
    s:
    s.overrideAttrs (o: {
      inherit controller;
    })
  ) services;
  controller =
    let
      name' = "control-${name}";
    in
    longrun {
      name = name';
      run = ''
        in_outputs ${name'}
        exec ${s6-rc-round-robin}/bin/s6-rc-round-robin \
           -p ${proxy.name} \
           ${lib.concatStringsSep " " (builtins.map (f: f.name) controlled-services)}
      '';
    };
  proxy = oneshot rec {
    inherit name;
    inherit controller;
    buildInputs = controlled-services;
    up = ''
      echo start proxy ${name}
      set -x
      (in_outputs ${name}
       cp -rv $(output_path ${controller} active)/* .
      )
    '';
  };
in
proxy