using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace AIStudio.Assistants.ModelComparison;
///
/// The JSON options of the files of the Model Comparison assistant.
///
internal static class ModelComparisonJson
{
///
/// The options with which the assistant writes and reads its files.
///
///
/// The files stay readable for people who look into the data folder: indented, enums by name, and umlauts as they
/// are rather than as escapes. The relaxed encoder is fine here, because nothing embeds these files into HTML. A
/// field this version does not know makes a file unreadable rather than letting a save drop it; the store then
/// leaves the file alone.
///
internal static readonly JsonSerializerOptions PERSISTENCE = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
PropertyNameCaseInsensitive = false,
WriteIndented = true,
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
UnmappedMemberHandling = JsonUnmappedMemberHandling.Disallow,
Converters = { new JsonStringEnumConverter() },
TypeInfoResolver = ModelComparisonJsonContext.Default,
}.AsReadOnly();
}