The state of nix-doom-emacs and whether doom should expose an API for it?

I understand that nix-doom-emacs is a downstream dependent and not necessarily a concern of doom, but I believe being able to nix-ify (or guix-ify) doom is, as I understand, quite aligned with the project. Forgive me if this suggestion is not within scope.

Currently nix-doom-emacs jacks in to straight.el to first get a list of dependencies, and then provides repos as nix packages. This doesn’t have any pinning information from doom-emacs.

It would be convenient if there was a batch mode API to:

  • get a list of packages with descriptions of all the information doom has about them without network access
  • generate a lock from package descriptions with network access
  • from a locked package description, describe how to fetch its source and what it’s dependencies are.
  • compile a single package from its description and its source

I am not well versed in how doom does package management. Some of this logic may be straight’s responsibility. I am willing to work on a PR for this, but I just want to clarify whether this sort of thing belongs here or in nix-doom-emacs and put what would be ideal for the maintainers here first.