{ lib, ... }: let inherit (lib) filterAttrs groupBy mapAttrs unique ; serviceNamesByUid = entries: mapAttrs (_uid: uidEntries: unique (map (entry: entry.entry) uidEntries)) ( groupBy (entry: toString entry.value) entries ); duplicateUids = entries: filterAttrs (_uid: serviceNames: builtins.length serviceNames > 1) (serviceNamesByUid entries); in { # Next stable UID: 20003 replicate = true; type = lib.types.ints.positive; validate = entries: [ { assertion = duplicateUids entries == { }; message = "Stable UID allocations must be unique."; } ]; }