В итоге оказалось самое удобное просто все руками написать вместо автомаппингов, так как это просто надежнее и короче. Обычные запросы с именованными параметрами и обычные маппинги руками, либо придется городить вагон десериализаторов или промежуточных моделей. Не то что бы где-то по другому, но была надежда, что newtype хотя бы оно само проглотит, а оно не смогло это делать без доп пометок...что возня и не надо, так как тогда просто руками.
Оказывается таки да, рускулайт серде не поддерживает кортежные структуры, там имен полей нет, но почему не поддерживает их в качестве значений, загадка. Нашел самое короткое решение
#[serde(from = "String")]
В итоге можно совсем мало потом написать, реализовать From<String> и много гетов можно не писать. При этом если тип внешний то можно десериализатор накатать все же. Это самое короткое, что можно так как для серде тоже надо. Короче увы нет решения кажется.