{
  description = "SoraFlake";
  inputs = {
    # Trick renovate into working: "github:NixOS/nixpkgs/nixpkgs-unstable"
    nixUnstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
    nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
    hardware.url = "github:nixos/nixos-hardware";
    nur = {
      url = "github:nix-community/nur";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    home-manager = {
      url = "github:nix-community/home-manager/release-26.05";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    darwin = {
      url = "github:lnl7/nix-darwin/master";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    sops-nix = {
      url = "github:Mic92/sops-nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    nix-colors.url = "github:misterio77/nix-colors";
    nixos-wsl = {
      url = "github:nix-community/nixos-wsl";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    vscode-server = {
      url = "github:nix-community/nixos-vscode-server";
      inputs.nixpkgs.follows = "nixpkgs";
    };

  };

  outputs = inputs:
    let
      lib = inputs.nixpkgs.lib;
      gen = import ./generator.nix { inherit inputs; };
      systemsDir = ./systems;
      systemNames = lib.attrNames (lib.filterAttrs
        (name: type: type == "directory" && builtins.pathExists (systemsDir + "/${name}/cfg.nix"))
        (builtins.readDir systemsDir));
      hostsByType = systemType:
        lib.filter
          (host: (import (systemsDir + "/${host}/cfg.nix")).syscfg.type == systemType)
          systemNames;
      generateHosts = systemType:
        builtins.listToAttrs (map
          (host: lib.nameValuePair host (gen.generate { inherit host; }))
          (hostsByType systemType));
    in {
      devShells = import ./shells { inherit inputs; };

      nixosConfigurations = generateHosts "nixos";
      darwinConfigurations = generateHosts "macos";
      homeConfigurations = generateHosts "home";
    };

  # ===== Unsupported/NotImplemented ======
  # menel - PI/ARM64
  # ilduma - PI/ARM64
  # daimoth - PI/ARM64
  # gimle - ....

  # ===== Unused ======
  #
  # naraka - ?
  # diyu - ?
  # tirnanog - ?
  # valhalla - ?
  # arcadia - ? 
  # elysium - ? 
  # empyrean - ?
  # duat - ?
  # sheol - ?
  # adlivun - ?
  # araf - ?
  # aman/araman - ?

}
