{
  description = "Flake for environment building ILP CW";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  };

  outputs = {
    self,
    nixpkgs,
  }: {
    devShells =
      nixpkgs.lib.genAttrs [
        "x86_64-linux"
        "aarch64-darwin"
      ] (system: let
        pkgs = import nixpkgs {
          inherit system;
        };
      in {
        default = pkgs.mkShell {
          buildInputs = with pkgs; [
            vscode-langservers-extracted
            jdt-language-server
            jless
            jdk21
            gradle
            httpie
            docker
            docker-compose
            newman
            gron
            fx
            google-java-format
            oha
            gopls
            go
            bun
            svelte-language-server
            typescript-language-server
            prettier
          ];
          shellHook = ''
            export JAVA_HOME=${pkgs.jdk21}
            echo "Java: $(java --version | head -n 1)"
          '';
        };
      });
  };
}
