Returns all descendants (including self) in pre-order.
Iterable<LogSpan> get allDescendants sync* { yield this; for (final child in allChildren) { yield* child.allDescendants; } }