And also...
- It supports named parameters in functions/filters/macros
- It can render templates to a stream (also TIL that I can stream responses to the browser via ServletResponse, available from Spark's Response via .raw())
- You can make custom tags and even operators, custom EVERYTHING
- Did I tell you that the API is nicer than that of JTwig?
- There's a range function so you can have a for loop without an array or a map!
- You can have {%else%} in {%for ...%} to handle an empty list
There's also a corresponding Idea plugin, and while it's highlighting the syntax nicely (at last!), I've yet to figure out how exactly it knows which variables do exist and which do not.