gen-link
gen-link is cross-flake aspect federation over origin-labeled subgraphs, implemented as a pure Nix library. Where gen-aspects classifies content within one evaluation, gen-link is what lets two flakes’ aspect graphs meet without collapsing into one undifferentiated tree.
The problem it owns: a graph assembled from more than one flake needs to know which parts came from where, so a name collision between two origins is a fact you can see rather than a silent overwrite. gen-link labels subgraphs by origin and federates across that label.
It’s the widest-reaching library in the aspects stratum: gen-algebra, gen-aspects, gen-identity, gen-prelude, gen-schema, gen-scope, and gen-view all declare it as a flake input. No roster member currently builds on gen-link in turn.
Take it alone
Section titled “Take it alone”{ inputs.gen-link.url = "github:sini/gen-link"; outputs = { gen-link, ... }: let link = gen-link.lib; in { /* ... */ };}
# Or without flakes (siblings auto-derived from the pinned flake.lock):let link = import ./gen-link { };in { /* ... */ }Palettes adapted from Catppuccin (Macchiato) (MIT), Tokyo Night (Apache-2.0), gruvbox (MIT), Catppuccin (Latte) (MIT), Rosé Pine (Dawn) (MIT).