{
  # ============================================================================
  # Flake Entry Point
  # ============================================================================
  # This file defines the inputs (dependencies) and outputs (configurations)
  # for Athenix. It ties together the hardware, software, and user
  # configurations into deployable systems using flake-parts.

  inputs = {
    # Core NixOS package repository (Release 25.11)
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";

    # Older kernel packages for Surface compatibility if needed
    nixpkgs-old-kernel.url = "github:NixOS/nixpkgs/nixos-25.05";

    # Flake-parts for modular flake organization
    flake-parts = {
      url = "github:hercules-ci/flake-parts";
      inputs.nixpkgs-lib.follows = "nixpkgs";
    };

    # Home Manager for user environment management
    home-manager = {
      url = "github:nix-community/home-manager/release-25.11";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # Disko for declarative disk partitioning
    disko = {
      url = "github:nix-community/disko";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # Hardware quirks and configurations
    nixos-hardware.url = "github:NixOS/nixos-hardware/master";

    agenix = {
      url = "github:yaxitech/ragenix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # Neovim configuration
    lazyvim-nixvim.url = "github:azuwis/lazyvim-nixvim";

    # VS Code server for remote development
    vscode-server = {
      url = "github:nix-community/nixos-vscode-server";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # NixOS Generators for creating ISOs, LXC, etc.
    nixos-generators = {
      url = "github:nix-community/nixos-generators";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # WSL Support
    nixos-wsl = {
      url = "github:nix-community/NixOS-WSL/main";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs =
    inputs@{ flake-parts, ... }:
    flake-parts.lib.mkFlake { inherit inputs; } {
      # Support all common systems
      systems = [
        "x86_64-linux"
        "aarch64-linux"
        "x86_64-darwin"
        "aarch64-darwin"
      ];

      # Import flake-parts modules
      imports = [
        ./parts/formatter.nix
        ./parts/lib.nix
        ./parts/fleet-data.nix
        ./parts/nixos-configurations.nix
        ./parts/nixos-modules.nix
        ./parts/packages.nix
        ./parts/templates.nix
      ];
    };
}
