Right now the most complicated logic apart from streamer parsing is:
https://github.com/tamasgal/UnROOT.jl/blob/36fa5eb0a1e19c58f1ade0e40d9b4f5e43a35244/src/iteration.jl#L109-L122
and it's auto_T_JaggT dependency. Every time we try to make some change, we need to guess what the resultant type is at runtime and pre-process it.
I think a better strategy is to actually run the runtime functions and fetch one event just to see the type, and complete the constructor accordingly. This involves type computing, so maybe
https://github.com/vtjnash/ComputedFieldTypes.jl
can simplify our lives