oneOf looks like it could be used to encode sum types together with a custom string tag, but that's not the first class treatment that records get.
Mark (https://mark.js.org) is a new notation that extends JSON with a type-name, which can be a more structured way to encode type info, instead of using custom string tag.