{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  inputs.nix-select.url = "git+https://git.clan.lol/clan/nix-select.git";
  inputs.nixpkgs-lib.url = "github:nix-community/nixpkgs.lib";

  outputs = inputs:
  let
    forAllSystems = f: inputs.nixpkgs.lib.genAttrs inputs.nixpkgs.lib.systems.flakeExposed (system: f rec {
      inherit system;
      pkgs = inputs.nixpkgs.legacyPackages.${system};
      inherit (pkgs) lib;
    });
  in {
    inherit inputs;

    overlays.default = prev: {
      nixq = prev.callPackage ./package.nix { inherit (inputs) nix-select nixpkgs-lib; };
    };

    packages = forAllSystems ({ pkgs, ... }: rec {
      default  = nixq;
      nixq     = pkgs.callPackage ./package.nix { inherit (inputs) nix-select nixpkgs-lib; };
      nixq-nix = pkgs.callPackage ./package.nix { inherit (inputs) nix-select nixpkgs-lib; extraRuntimeDeps = [ pkgs.nix ]; };
      nixq-lix = pkgs.callPackage ./package.nix { inherit (inputs) nix-select nixpkgs-lib; extraRuntimeDeps = [ pkgs.lix ]; };
    });

    devShells = forAllSystems ({ lib, pkgs, ... }: rec {
      default = pkgs.mkShellNoCC {
        packages = builtins.attrValues {
          inherit (pkgs)
            lix
            jq
            yq
            bat
            ;
          };
        env.NIXQ_NIX_SELECT_PATH = inputs.nix-select.outPath;
        env.NIXQ_NIXPKGS_LIB_PATH = inputs.nixpkgs.outPath;
        env.UV_PYTHON_DOWNLOADS = "never";
      };
    });

  };
}