Flakes are why I stopped and likely won't go back. I tried to add a flake that contained PragmataPro (a paid for font). Having a git repo was easy I just wouldn't push it anywhere to avoid copyright issues.
Figuring out the syntax to actually get the font files installed was maddening. It probably didn't help that I followed best practices and built some crazy cross compilation mechanism into my flake but it was almost impossible to figure out how to extract a zip file and then copy to the final destination. Well unless I downloaded the zip file then it was trivial...
Avoiding flakes except as an isolation point likely would have allowed me to stay engaged with the project. Might have to check this out if I ever feel the need again.
Yeah looks like callPackage is what I needed.