Typically services have a `package` option, so it can be set externally if users are running the stable version but want the package from unstable, or devs want to test a package from their flake in production. Really useful in many situations! Also, the previous implementation was using `pkgs.runCommand` which is discouraged due to [IFD](https://nix.dev/manual/nix/2.26/language/import-from-derivation) (import from derivation) leading to potential slowdowns during evaluation. I opted for reading the json file and using [lib.attrsets.recursiveUpdate](https://ryantm.github.io/nixpkgs/functions/library/attrsets/#function-library-lib.attrsets.recursiveUpdate) to update the default values with the user provided ones.