@using ScadaLink.Commons.Types.Audit @* Execution-chain tree (Audit Log ParentExecutionId feature, Task 10). A custom recursive Blazor tree: the host hands in the FLAT ExecutionTreeNode list the repository returns; this component assembles it into a tree (joining ParentExecutionId → a parent's ExecutionId), then renders depth-first. Recursion is expressed by the component rendering for each child subtree. To keep that recursion finite even on corrupt/cyclic input, the assembled subtree is computed ONCE at the root (Depth == 0) and threaded downward via the PreBuiltRoots parameter — child instances never re-run the flat-list assembly, and the assembly itself tracks visited ExecutionIds so a cycle is broken on first revisit. *@ @if (_rootsToRender.Count == 0) { return; }