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

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

  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
  );
}