{
  description = "System Configuration Flake";
  outputs = inputs@{
    nixpkgs,
    nixpkgs-xr,
    nixos-hardware,
    nixpkgs-quartus,
    home-manager,
    ...
  } : {

    nixosConfigurations = {
      malachite = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        specialArgs = { inherit inputs; };
        modules = [

          ./packages/default.nix
          ./hosts/malachite/default.nix
          ./users/stitchynyan/default.nix
          nixpkgs-xr.nixosModules.nixpkgs-xr

          home-manager.nixosModules.home-manager
          {
             home-manager.extraSpecialArgs = {inherit inputs;};
             home-manager.useGlobalPkgs = true;
             home-manager.useUserPackages = true;
             home-manager.users.stitchynyan = import ./users/stitchynyan/home.nix;
          }
        ];
      };
      lappy = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        specialArgs = { inherit inputs; };
        modules = [
          nixos-hardware.nixosModules.framework-12th-gen-intel

          ./packages/default.nix
          ./hosts/lappy/default.nix
          ./users/stitchynyan/default.nix

          home-manager.nixosModules.home-manager
          {
             home-manager.extraSpecialArgs = {inherit inputs;};
             home-manager.useGlobalPkgs = true;
             home-manager.useUserPackages = true;
             home-manager.users.stitchynyan = import ./users/stitchynyan/home.nix;
          }
        ];
      };
      gemini = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        specialArgs = { inherit inputs; };
        modules = [

          ./packages/default.nix
          ./hosts/gemini/default.nix
          ./users/nyadmin/default.nix
          ./users/cirno/default.nix

          home-manager.nixosModules.home-manager
          {
             home-manager.extraSpecialArgs = {inherit inputs;};
             home-manager.useGlobalPkgs = true;
             home-manager.useUserPackages = true;
             home-manager.users.nyadmin = import ./users/nyadmin/home.nix;
             home-manager.users.cirno = import ./users/cirno/home.nix;
          }
        ];
      };
      tanzanite = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        specialArgs = { inherit inputs; };
        modules = [

          ./packages/default.nix
          ./hosts/tanzanite/default.nix
          ./users/nyadmin/default.nix

          home-manager.nixosModules.home-manager
          {
             home-manager.extraSpecialArgs = {inherit inputs;};
             home-manager.useGlobalPkgs = true;
             home-manager.useUserPackages = true;
             home-manager.users.nyadmin = import ./users/nyadmin/home.nix;
          }
        ];
      };
    };
  };

  inputs = {
    home-manager = {
      url = "github:nix-community/home-manager/master";
        inputs.nixpkgs.follows = "nixpkgs";
    };
    mobile-nixos = {
      url = "github:nixos/mobile-nixos";
      flake = false;
    };
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
    nixos-hardware.url = "github:Nixos/nixos-hardware/master";
    nixpkgs-quartus.url = "github:nixos/nixpkgs/nixos-22.05";
  };
}