сам визитор выглядит так. его преимущество — в рекурсивности с сохранением контекста, в данном случае, положение в валидируемом объекте определяется через path, уникальный для каждого, а результаты сохраняются в общий для всех errors
после того, как снапшот сделан, тест будет падать если тайпчекеры вернут не то же самое значение, что и было. что в свою очередь может означать как появление проблемы, так и её исправление