private List<TreeCursor> findChildren(Predicate<TreeCursor> predicate) {
        List<TreeCursor> result = new ArrayList<>();
        recursiveFindChildren(this, result, predicate);
        return result;
    }
Recursively finds every node in the tree that matches the given predicate.

@param predicate Predicate to test each recursive child against.
@return Returns the matching tree cursors, or an empty list if none are found.
smithy-syntax/src/main/java/software/amazon/smithy/syntax/TreeCursor.java