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