Earlier quoted context omitted.
Genuine question—why would you need a sum type in a self-describing data format?
Well, there are already sumtypes, just only specific builtin ones, not custom ones. E.g. booleans are sumtypes (true | false). Everything else that is nullable is also a sumtype (e.g. number | null). I think it should be pretty obvious how these are helpful and why they are needed no?
I can see why sum types would be useful in a schema or for the elements of a collection that is required to be homogeneous (ie. List).
For what use case would one use custom sum types in a schema-less data format?