Ну просто по задумке, как я вижу, есть before, который фильтрует для подготовки к валидации, потом валидирует, потом срабатывает after, который должен вернуть их преобразованными в body (либо куда-нибудь для использования)
Да почти все валидаторы для express/koa делают преобразования после валидации, т.к. на котроллер потом все приходит в строке и чтобы руками не парсить чила, даты и т.п. когда и так валиадтор это делает, они возвращают уже отфильрованные данные. Просто не понятно, либо эта либа куда-то склаыдывает, либо просто косячная)
я короче рядом с каждым роутом ложу input.json и output.json в котором описываю входящие параметры и исходящие в формате json schema и мидлварь для koa запускает ajv на входе и выходе
1) приходят только нужные параметры (если что-то неправильно передано или недопередано то клиент получает ошибку с описанием) 2) от меня уходят только разрешенные параметры (то есть я не продумываю логику типа "удалить из ответа поле secureToken так как клиент не должен токены видеть") 3) эти схемы автоматом вставляются в документацию по моему api и оно всегда актуально