Такой формат не понятно как кодировать и раскодировать.
Может быть два экрана с одинаковыми параметрами
Если по одному параметру на роут, то вроде понятно. А если нет и максимальная глубина стэка позволяет, можно хранить параметры в query через разделитель ?first=123_10_abc&second=221_42
Параметры тут позиционно кодируются раскодируются, главное эскейпить сам разделитель в такой кодировке. а то пользователь с юзернеймом my_name может недосчитаться букв
А зачем хранить бреадкрамб в юрле? Это актуально для пользователя чтобы понимать как он сюда пришёл, но для человека прошедшего по ссылке совершенно непонятно почему кнопка назад ведёт в какое-то странное место
Есть ещё такое понятие как максимальная длина урла, если стейт развесистый, придётся кодировать через коды хаффмана. Чем это поддерживать, уж точно проще в консоли команду ввести.
Там вопрос больше в том, чтобы дать точную ссылку на страницу, которую хочет пользователь, а не как часто делают "ну вот перейдите сюда, потом красная кнопка, потом синяя"
Тогда придётся определить ключевые параметры для роутов парсить, никуда не денешься. Идеально если по 1 параметру всего и все названия роутов уникальные.