The fact that the `sklearn.tree._tree.Tree` class has many undocumented attributes with `_` prefixes is that the internal tree structure is considered private API and is subject to change in the future without notice (e.g. for performance reasons or to implement new features such as missing values handling for instance).

The new public API that you provide within this PR, while very useful, also enlarge the surface of public API that we will have to maintain with backward compat in the future. So we should be careful in making the right choices for the model representation.