The "dynamic" value type should be a variant similar to that of the current implementation. In addition to the scalar and string types it already contains, the variant should also hold a recursive proxy to a list type, for the different list layouts.
This variant should also std::monostate to handle missing values. The nullable type originally introduced for that might be complicated to use with nested layouts. This can be explored later.
The "dynamic" value type should be a variant similar to that of the current implementation. In addition to the scalar and string types it already contains, the variant should also hold a recursive proxy to a list type, for the different list layouts.
This variant should also
std::monostate
to handle missing values. Thenullable
type originally introduced for that might be complicated to use with nested layouts. This can be explored later.