old
 1{
 2  lib,
 3  inputs,
 4  ...
 5} @ args: let
 6  inherit (inputs) haumea;
 7
 8  # Contains all the flake outputs of this system architecture.
 9  data = haumea.lib.load {
10    src = ./src;
11    inputs = args;
12  };
13  # nix file names is redundant, so we remove it.
14  dataWithoutPaths = builtins.attrValues data;
15
16  # Merge all the machine's data into a single attribute set.
17  outputs = {
18    nixosConfigurations = lib.attrsets.mergeAttrsList (map (it: it.nixosConfigurations or {}) dataWithoutPaths);
19    packages = lib.attrsets.mergeAttrsList (map (it: it.packages or {}) dataWithoutPaths);
20
21    colmenaMeta = {
22      nodeNixpkgs = lib.attrsets.mergeAttrsList (map (it: it.colmenaMeta.nodeNixpkgs or {}) dataWithoutPaths);
23      nodeSpecialArgs = lib.attrsets.mergeAttrsList (map (it: it.colmenaMeta.nodeSpecialArgs or {}) dataWithoutPaths);
24    };
25
26    colmena = lib.attrsets.mergeAttrsList (map (it: it.colmena or {}) dataWithoutPaths);
27  };
28in
29  outputs
30  // {
31    inherit data;
32  }