{
  description = "Description for the project";

  inputs = {
    flake-parts.url = "github:hercules-ci/flake-parts";
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
    nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
    lix-module = {
      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    home-manager = {
      url = "github:nix-community/home-manager/release-24.11";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    devshell.url = "github:numtide/devshell";
    nixos-hardware = {
      url = "github:NixOS/nixos-hardware/master";
    };
  };

  outputs =
    inputs@{ flake-parts, self, ... }:
    flake-parts.lib.mkFlake { inherit inputs; } {
      imports = [
        inputs.devshell.flakeModule
        ./nixos/machines/wsl/configuration.nix
        ./nixos/machines/installer/configuration.nix
        ./nixos/machines/crash/machine.nix
        ./home-manager/machines/wsl/home.nix
        ./home-manager/machines/crash/home.nix
        ./devshells/rust.nix
        ./devshells/idris2.nix
        ./devshells/raku.nix
      ];
      config = {
        systems = [
          "x86_64-linux"
          "aarch64-linux"
          "aarch64-darwin"
          "x86_64-darwin"
        ];
        perSystem =
          {
            config,
            self',
            inputs',
            pkgs,
            system,
            ...
          }:
          {
            # Per-system attributes can be defined here. The self' and inputs'
            # module parameters provide easy access to attributes of the same
            # system.

            # Equivalent to  inputs'.nixpkgs.legacyPackages.hello;
            packages.default = pkgs.hello;
          };
      };
      options = with inputs.nixpkgs.lib; {
        flake = flake-parts.lib.mkSubmoduleOptions {
          homeConfigurations = mkOption {
            type = types.lazyAttrsOf types.raw;
            default = { };
          };

        };
      };
    };
}