toggleCheck method
Toggle a node's check: cascades to every leaf beneath it (a lone leaf toggles itself). Pure state — not part of structural undo history.
Implementation
void toggleCheck(TreeNodeId id) {
final n = node(id);
if (n == null) return;
final leaves = TreeOps.leafIds<T>(n);
final targets = leaves.isEmpty ? [id] : leaves;
final allOn = targets.every(_checked.contains);
if (allOn) {
_checked.removeAll(targets);
} else {
_checked.addAll(targets);
}
notifyListeners();
}