I think it is in Typst’s interest to continue to improve separation of markup and style. Documents are easier to edit, templates are easier to use and styling is more versatile in this scenario.
A reflection on latex use is that I like the general concept, you just write the document with markup and the template does the rest. This is not how I think it works out in practice, a lot of extra directives are needed around figures and tables and other elements. Also so in Typst.
The show rules work very well so far. Has there been any ideas around “class” (think CSS class) or tag based styling? It could be something like this:
#let hrule = line().class("hrule")
#show line.where(class: "hrule"): ...
#hrule
This may seem trivial but it separates style configuration from defining the elements of the document markup. Could it help template interoperability? Maybe it overlaps to a big extent with suggestions for custom types?
Imagine the use case of defining two different table classes, without having to have them be different types. Maybe this is already possible?