{recurse} is where the children of the current row go. It renders the body of the enclosing {tree} - the content as written between {tree} and {/tree} - again, once for every child, each child a row of its own with its own fields. Inside that body {recurse} works again one level down, so the tree is rendered to any depth. A row without children renders nothing here.

The new list is a level named as the tree is: depth@tree is one more than the level above, and first@tree, current@tree and count@tree speak of the children being rendered. The tree's sort, where and reverse options are carried along, so children are ordered and filtered as their parents were.

Usually it stands inside {branch}, so the list markup around it only appears for a row that has children. The tag takes no parameters; under the strict syntax check a {recurse} outside a tree is an error.