у меня есть похожий кейс, с историей поиска. Там у меня запросы связаны с результатом. И реализована история, когда выбором предыдущего запроса чиститься все, что было выше него
Я так понимаю, что когда пользователь нажимает "отмена" он возвращается назад в навигации. А что еслибы ему нужно было показать исходное состояние (без возврата)?
Нет. Один раз загружаем из базы в settings. Когда надо начать редактирование - компируем из settings в editing. Отмена - снова копируем. Применить, копируем в обратную сторону и записываем в базу.