насколько я понимаю, вопрос в том сериализовать класс в json или бинарник
Сериализуются не классы, а данные. Ты можешь менять все, что угодно, до тех пор, пока функционал получения структур данных из файла не будет нарушен следующей версией. Для этого в бинарных файлах реализуют словари, счетчики смещения и пары «ключ-значение» как в JSON.