Именно так и делать. 2 модели ModelInput на вход и ModelOutput на выход.
А ещё можно почитать про BFF, но это крайний случай, но он решает такие вопросы.
Но вообще, желательно договориться с бекендом о наименовании. Иначе, это на мой взгляд в большинстве своём "мусорный" код, который ничего не делает, а только раздувает пустым переименованием.
Постараться объяснить им, что вы ребята, работаете с json натацией, это ни к чему не обязывает, но всё же.
Что у меня, например, есть линтеры, которые не позволяют писать свойства с нижним подчёркиванием, тире.
Либо, я должен писать их так: obj['my_prop']
что не очень то.
Резюмируя:
1) Договориться, объяснить почему для вас это плохо и какие проблемы вызывает. И какие проблемы у вас могут от этого быть.
2) Делать свои модели для переименования
3) BFF
4) Забить болт, если это проходной проект.
P.S. Я убеждён, что json должен быть в camelCase натации. В своих проектах, я не раз убеждал бекенд команды делать так. Но это всё были новые проекты. Если проект уже старый, то тут точно ничего не подедать, либо BFF.