public static function forRequiredContextCompatibility(
        $process = null,
        int $code = self::CODE_FOR_REQUIRED_CONTEXT_COMPATIBILITY,
        Throwable $previous = null
    ): self {
        if (self::CODE_FOR_REQUIRED_CONTEXT_COMPATIBILITY === $code) {
            if ($process instanceof Hydrator) {
                $code += self::CODE_FOR_HYDRATOR;
            } elseif ($process instanceof Builder) {
                $code += self::CODE_FOR_BUILDER;
            }
        }

        $message = self::DEFAULT_MESSAGE . self::MESSAGE_EXTENSION_FOR_REQUIRED_CONTEXT_COMPATIBILITY;

        return new static($message, $code, $previous);
    }