{
  description = "Flake for the servicepoint library.";

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

  outputs =
    inputs@{
      self,
      nixpkgs,
      fenix,
    }:
    let
      supported-systems = [
        "x86_64-linux"
        "aarch64-linux"
        "aarch64-darwin"
        "x86_64-darwin"
      ];
      forAllSystems =
        f:
        nixpkgs.lib.genAttrs supported-systems (
          system:
          f rec {
            inherit system self;
            pkgs = nixpkgs.legacyPackages.${system};
            lib = pkgs.lib;
            fenix = inputs.fenix.packages.${system};
            selfPkgs = self.packages.${system};
          }
        );
    in
    {
      packages = forAllSystems (import ./packages.nix);
      devShells = forAllSystems (import ./devShells.nix);
      formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-rfc-style);
    };
}