roots property
Roots (with order). Live, internally-owned List<TKey> — the reference
is stable for the lifetime of this buffer instance, so wrapping it with
an UnmodifiableListView produces a view that reflects subsequent
mutations.
Internal callers (TreeController and its part files) mutate this list
directly using standard List operations (add, remove, insert, clear,
chained ..clear()..addAll(...), etc.). External callers should use
TreeController.rootKeys (the unmodifiable view).
Implementation
final List<TKey> roots = <TKey>[];