/// <inheritdoc />
        public override void WriteJson(
            [NotNull] JsonWriter writer,
            FluentValidationProblemDetails value,
            [NotNull] JsonSerializer serializer
            )
        {
            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }

            if (serializer == null)
            {
                throw new ArgumentNullException(nameof(serializer));
            }

            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            var annotatedProblemDetails = new AnnotatedProblemDetails(value);

            serializer.Serialize(writer, annotatedProblemDetails);
        }
    /// <inheritdoc />
    public override void WriteJson(JsonWriter writer, object?value, JsonSerializer serializer)
    {
        if (value == null)
        {
            writer.WriteNull();
            return;
        }

        var problemDetails          = (ProblemDetails)value;
        var annotatedProblemDetails = new AnnotatedProblemDetails(problemDetails);

        serializer.Serialize(writer, annotatedProblemDetails);
    }
        /// <inheritdoc />
        public override void Write(
            [JetBrains.Annotations.NotNull] Utf8JsonWriter writer,
            FluentValidationProblemDetails value,
            JsonSerializerOptions options
            )
        {
            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }

            if (value == null)
            {
                writer.WriteNullValue();
                return;
            }

            var annotatedProblemDetails = new AnnotatedProblemDetails(value);

            JsonSerializer.Serialize(writer, annotatedProblemDetails, options);
        }