public function challengeRecording($subject, $ruleSet, string $keyPath = 'root')
    {
        $validate_by_rules = new ValidateAgainstRuleSet($this, [
            'recordFailure' => true,
        ]);

        $validate_by_rules->challenge($subject, $ruleSet, $keyPath);
        $record = $validate_by_rules->getRecord();

        return [
            'passed' => !$record,
            'record' => $record,
        ];
    }