{ lib, ... }: let duplicateUids = entries: lib.filterAttrs (_uid: entryNames: builtins.length entryNames > 1) (entryNamesByUid entries); entryNamesByUid = entries: lib.mapAttrs (_uid: uidEntries: lib.unique (map (entry: entry.entry) uidEntries)) ( lib.groupBy (entry: toString entry.value) entries ); in { # Next stable UID: 20005 type = lib.types.ints.positive; checks = [ { assertion = entries: duplicateUids entries == { }; message = "Multiple entries use the same stable UID."; } ]; }