{
  description = "SoraFlake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    hardware.url = "github:nixos/nixos-hardware";
    nur.url = "github:nix-community/nur";

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

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

    hyprland = {
      url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    sops-nix = {
      url = "github:Mic92/sops-nix";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.nixpkgs-stable.follows = "nixpkgs";
    };
    nix-colors.url = "github:misterio77/nix-colors";

    arion.url = "github:hercules-ci/arion";
    arion.inputs.nixpkgs.follows = "nixpkgs";

  };

  outputs = inputs:
    let gen = import ./generator.nix { inherit inputs; };
    in {
      devShells = import ./shells { inherit inputs; };

      nixosConfigurations = {
        valinor = gen.generate { host = "valinor"; };
        iriy = gen.generate { host = "iriy"; };
        efir = gen.generate { host = "efir"; };
        avalon = gen.generate { host = "avalon"; };
        ci = gen.generate { host = "ci"; };
        sandbox = gen.generate { host = "sandbox"; };
      };
      darwinConfigurations = { asgard = gen.generate { host = "asgard"; }; };
      homeConfigurations = {
        yomi = gen.generate { host = "example"; };
        example = gen.generate { host = "example"; };
      };
    };

  # ===== 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 - ?

}