{
  description = "TazUO FHS Environment";

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

  outputs = { self, nixpkgs }:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs { inherit system; };
      
      tazuo-fhs = pkgs.buildFHSEnv {
        name = "tazuo-fhs";
        targetPkgs = pkgs: (with pkgs; [
          libpulseaudio
          alsa-lib
          icu 
          openssl 
          zlib 
          fontconfig 
          freetype 
          libGL 
          sdl3 
          vulkan-loader
          libX11 
          libXext
          libXcursor
          libXi 
          libXrandr 
          libICE 
          libSM
        ]);
        runScript = "bash -c '/mnt/fileStorage/TazUOLauncher/TazUOLauncher'";
      };

      tazuo-desktop = pkgs.makeDesktopItem {
        name = "TazUO";
        exec = "${tazuo-fhs}/bin/tazuo-fhs";
        icon = "tazuo-icon";
        desktopName = "TazUO";
        genericName = "Ultima Online Client";
        categories = [ "Game" ];
      };
      tazuo-icon = pkgs.stdenv.mkDerivation {
        name = "tazuo-icon";
        src = ./.;
        installPhase = ''
          mkdir -p $out/share/icons/hicolor/256x256/apps
          cp tazuo-icon.png $out/share/icons/hicolor/256x256/apps/tazuo-icon.png
        '';
      };
    in
    {
      packages.${system}.default = pkgs.symlinkJoin {
        name = "tazuo-package";
        paths = [ tazuo-fhs tazuo-desktop tazuo-icon ];
      };
    };
}
