<let name="objVar" type="object" value="{{ { key: 'value' } }}"/>
<item for="item in ['apple', 'banana', 'cherry']">{{item}}</item>
<p if="isVisible">This paragraph is visible.</p>
This looks like JSX but worse. What's wrong with throwing a bit of imperative syntax into a DSL if you need imperativity? It seems unnecessary to put code into strings.