это тоже вариант, особенно если протокол экспериментальный и часто перерабатывается
но поднимает требование к качеству кода, требует проверок валидности полей и язык референсной реализации должен быть достаточно известный и достаточно не брейнфак
зы: xsd (и json-schema) - половина живучести xml (про json не знаю, такое ощущение, что json как гнилой банан для макак - под рукой и можно метнуть вдаль, про json-schema они даже не слышали)