{ eval, lib, pkgs }: let inherit (lib) types; conf = eval.config; rootDir = builtins.toPath ./..; stripAnyPrefixes = lib.flip (lib.fold lib.removePrefix) ["${rootDir}/"]; optToDoc = name: opt : { inherit name; description = opt.description or null; default = opt.default or null; visible = if (opt ? visible && opt.visible == "shallow") then true else opt.visible or true; readOnly = opt.readOnly or false; type = opt.type.description or "unspecified"; }; spliceServiceDefn = item : if item.type == "parametrisable s6-rc service definition" then let sd = lib.attrByPath item.loc ["not found"] conf; in item // { declarations = map stripAnyPrefixes item.declarations; parameters = let x = lib.mapAttrsToList optToDoc sd.parameters; in x; } else item // { declarations = map stripAnyPrefixes item.declarations; }; in builtins.map spliceServiceDefn (pkgs.lib.optionAttrSetToDocList eval.options)