Sometimes the tag and the content of the JSON you're processing are on the same level where both TaggedObject and UntaggedValue will not suffice. I propose adding another SumEncoding option that handles this case. The implementation should be very similar to that of UntaggedValue.