I get your point .. like GSON we should not type the json string output, if we want it to adhere abs to spec.
The saving grace for gson in Java is if you just give the root level object type, rest of it is automatic typing. We lack that capability in Pharo. Though there also for types specified as an interface can then require code assistance in deserializing.
So either we follow a meta data route, code helper methods, that is needed for deserializing a JSON as spec or let it have an optional @type tag..�� to make the whole thing automatic
That way we can be both gson / or any other lib compatible for reading given format ignoring the extra tag, but helps if given to hydrate the object.