I love Typst. It’s especially good for dealing with programmatic input as the —input flag can take json. [0] Then, in the file it’s easy to get the json with the dedicated json.decode() function. Super easy to get solid results. Swapped to it from LaTeX in my own project [1]
[0] https://typst.app/docs/reference/foundations/sys/
[1] https://resgen.app