{ inputs ? import ../../inputs.nix {}
, uninitializedNixpkgs ? import "${inputs.nixpkgs}/pkgs/top-level/default.nix"
, ...
} @ args:

let
  attrsToRemove = [
    "inputs"
    "overlays"
    "uninitializedNixpkgs"
  ];

  options = (builtins.removeAttrs args attrsToRemove) // {
    overlays = (args.overlays or []) ++ [
      # ../.. should be nix store path that represents self in outputs.nix that is gc-rooted by this point
      ( import ../overlays/selfExpr.nix { nixpkgsPath = "${builtins.toString ../..}/pkgs/top-level/impure.nix"; } )
      ( import ../overlays/unstable-with-meta.nix { unstableSource = inputs.nixpkgs-unstable; revision = inputs.lock.nixpkgs-unstable.revision; } )
      ( import ../overlays/version-info-fixup.nix { inherit inputs; } )
      ( import ./by-name-overlay.nix ../by-name )
    ];
  };
in
uninitializedNixpkgs options