Чтобы развернуто ответить мне нужно видео на 40 минут. коротко вот: Как разработчик который пишет бекенды, где клиент-серверное взаимодействие на клиент-серверном взаимодействии, могу сказать, что эмуляция сети и сама сеть тут совсем такая себе. Во первых, любое действие с сеточкой занимает много времени, и по этому разные дяди типа вас любят либо лочить поток, либо отстреливать сайдэффектом, порой даже без коллбека. Но на самом деле, любая вот такая операция может возвращать результат - будь это () => Task, () => Future, () => ListenableFuture, IO, ZIO, так гораздо будет удобнее, чем делать лапшу из коллбеков, которые вызываются из ХЗ какого потока и исполняются на ХЗ каком потоке. Кроме этого, всякие делегаты-эвентики это слишком низкоуровневые реактивные штуки, уже изобретено 100500 более хороших абстракций по типу рефов, тех же тасков. Проблема в том, что у вас вместо кода одна большая индерекция, где какую либо связь проследить будет года через 2 весьма затруднительно, да и я не увидел вменяемого эррор-хендлинга, что у вас будет если у вас то сервер недоступен, то доступен, то пакет потерялся, то сервер 500 отдал, сверху на ваше решение это не накрутится. И не надо мне тут доказывать что "а как ты без эвентов уи напишешь" - напишешь и с удовольствием, и не только уи, и без лока потоков, и без прямого юза эвентов. Дальше, вы я смотрю завендорлочились на сериализацию юнитологов через анотации, это крайне хреновое решение, очень. Сериализацию можно сделать и без вендорлока, с тем же удобством и с ГОРАЗДО большим контролем.
советуешь юзать UniRx?