This teapot was successfully created and added to the scene from a first verson of a text data/resource file.
Thinking again about that and the arrays. Right now I need extra logic every time I have an array/vector. Maybe I should also make them a type too.
I implemented a codepath for value parsing. Values are basic types with a few invariants such as not having child node or arguments. Node parsers will have another callback to accept values directly. That should help speeding a bit the parser. I'd like it to be comparable to the old handmade format

It works pretty well? I have to port the test scene to make it really comparable but with 1500 entities it parses in 4 to 8ms, depending on the weather, I suppose.

I can't really profile effectively, it's streamed, not recursive. My guess for the load is the heavy use of unique_ptrs/allocations and just the speed of the HDD. I'll check that on the DevDrive.

I find incredible I can pull a std::variant<typeParser, type2Parser,…>, call std::visit([](auto& parser){ return parser->get(); } directly into a matching variant<type1, type2, …> and it *works*.

I wonder how heavy on the compiling process it must be.

@Ronflaix wait, what does the full line look like?
@Ronflaix not what I was hoping for, but TIL that C++20 added an overload for std::visit that lets you specify the return type, which allows for this kind of thing:
@missmouse you expected more from me? 🥺