{
  lib,
  lib',
  config,
}: let
  doubles = lib'.systems.doubles.all;

  packages = builtins.removeAttrs config.packages ["cross"];
in {
  includes = [
    ./foundation
    ./aux/a.nix
    ./aux/b.nix
  ];

  options = {
    packages = lib.options.create {
      description = "The package set.";
      type = lib.types.submodule {
        freeform = lib.types.attrs.of (lib.types.submodule {freeform = lib'.types.alias;});

        options.cross = lib.attrs.generate doubles (
          system:
            lib.options.create {
              description = "The cross-compiled package set for the ${system} target.";
              type = lib'.types.packages;
              default = {};
            }
        );
      };
    };

    preferences.packages = {
      version = lib.options.create {
        description = "The preferred package version when using aliases.";
        type = lib.types.enum [
          "latest"
          "stable"
        ];
        default.value = "latest";
      };
    };
  };

  config.packages.cross = lib.attrs.generate doubles (
    system:
      builtins.mapAttrs (
        namespace:
          builtins.mapAttrs (
            name: alias: let
              setHost = package:
                if package != {}
                then
                  (package.extend (
                    {config}: {
                      config = {
                        platform = {
                          host = lib.modules.overrides.force system;
                          target = lib.modules.overrides.default system;
                        };

                        deps = {
                          build = {
                            only = setHost package.deps.build.only;
                            build = setHost package.deps.build.build;
                            host = setHost package.deps.build.host;
                            target = setHost package.deps.build.target;
                          };
                          host = {
                            only = setHost package.deps.host.only;
                            host = setHost package.deps.host.host;
                            target = setHost package.deps.host.target;
                          };
                          target = {
                            only = setHost package.deps.target.only;
                            target = setHost package.deps.target.target;
                          };
                        };
                      };
                    }
                  ))
                  .config
                else package;

              updated =
                alias
                // {
                  versions = builtins.mapAttrs (version: package: setHost package) alias.versions;
                };
            in
              updated
          )
      )
      packages
  );
}