using System.Text.Json;
namespace AIStudio.Assistants.VisualBriefing;
///
/// Contains deterministic inputs for committing one immutable briefing revision.
///
/// The owning briefing identifier.
/// The optional parent revision.
/// The revision mode.
/// The local revision instruction.
/// Canonical business data.
/// The validated declarative template.
/// The validated presentation stylesheet.
/// The export-safe fallback model label.
/// The local revision origin.
/// The immutable content artifact identifier.
/// The immutable presentation artifact identifier.
/// The persistent build identifier.
/// The operation identifier.
/// The export-safe model contributions.
/// The reserved revision identifier.
/// The revision creation time.
/// The single protected embedded-asset map.
/// The validated visual asset descriptions and alternatives.
/// The immutable evidence artifact identifier.
/// The immutable plan artifact identifier.
/// Optional user-facing export metadata copied from a parent revision.
public sealed record VisualBriefingRevisionRequest(
Guid BriefingId,
Guid? ParentRevisionId,
VisualBriefingEditMode EditMode,
string Instruction,
JsonElement Data,
string TemplateHtml,
string Css,
string ModelDisplayName,
string Origin,
Guid? ContentArtifactId = null,
Guid? PresentationArtifactId = null,
Guid? BuildId = null,
Guid? OperationId = null,
IReadOnlyList? ModelContributions = null,
Guid? RevisionId = null,
DateTimeOffset? CreatedAtUtc = null,
IReadOnlyDictionary? EmbeddedAssets = null,
IReadOnlyList? AssetPlan = null,
Guid? EvidenceArtifactId = null,
Guid? PlanArtifactId = null,
VisualBriefingExportManifest? ExportMetadataSource = null);