namespace AIStudio.Settings.DataModel;
///
/// A saved set of model comparison inputs, so a familiar test case does not have to be typed and
/// picked by hand again every time.
///
///
/// Purely local to this user: unlike , there is no Lua import
/// path and no enterprise ownership, because nothing here needs to be rolled out centrally.
///
public sealed record ModelComparisonPreset
{
public required string Id { get; init; }
///
/// The name shown in the preset picker. Mutable, unlike the rest of a saved preset: renaming is
/// an edit to a saved entry, while every other field is only ever set once, at the moment the
/// current form is captured.
///
public required string Name { get; set; }
///
/// The first model's provider ID, or empty when none was selected while saving. Resolved back to
/// a provider through , which already answers
/// for an ID that no longer exists.
///
public string FirstProviderId { get; init; } = string.Empty;
///
/// The second model's provider ID. See .
///
public string SecondProviderId { get; init; } = string.Empty;
public bool JudgeEnabled { get; init; }
///
/// The judge's provider ID. See .
///
public string JudgeProviderId { get; init; } = string.Empty;
public string JudgeInstructions { get; init; } = string.Empty;
public string Context { get; init; } = string.Empty;
public string Question { get; init; } = string.Empty;
public int RunCount { get; init; } = 1;
}