{ ... }: { naming = { networkService = name: "docker-${name}-network"; groupTarget = group: "docker-${group}-group-root"; serviceService = fullName: "docker-${fullName}"; service = { group, name, full ? false, }: let isGroup = group != ""; isDefault = name == "default" || name == group; shortName = if isGroup && isDefault then group else name; fullName = if isGroup then (if isDefault then group else "${group}-${name}") else name; in assert name != ""; assert isDefault -> isGroup; if full then fullName else shortName; }; }