Я вот кстати не очень понимаю вот этого стремления на одной либе всего навертеть.
Каждый формат сериализации - по сути личность, и если делать что то обобщённое, то и получится что то общее и не заточенное в итоге ни под что
Так сейчас все сериализационные либы по одному шаблону делаются. Есть фронт, который преобразует классы во внутреннее представление, есть бэк, который транслирует внутреннее представление в текст. Вопрос только в гибкости внутреннего представления