using System.Text.Json; using System.Text.Json.Serialization; namespace AIStudio.Assistants.VisualBriefing; /// /// Stores an immutable validated content-stage artifact. /// [JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)] public sealed class VisualBriefingContentArtifact { /// /// Gets or sets the intermediate artifact schema version. /// public int ArtifactVersion { get; set; } = VisualBriefingVersions.INTERMEDIATE_ARTIFACT; /// /// Gets or sets the content prompt contract version. /// public int ContractVersion { get; set; } = VisualBriefingVersions.CONTENT_CONTRACT; /// /// Gets or sets the immutable artifact identifier. /// public Guid ArtifactId { get; set; } /// /// Gets or sets the artifact creation time. /// public DateTimeOffset CreatedAtUtc { get; set; } /// /// Gets or sets the hash of the artifact payload. /// public string PayloadHash { get; set; } = string.Empty; /// /// Gets or sets the canonical business data. /// public JsonElement Data { get; set; } /// /// Gets or sets the exactly-once planned slot values. /// public List Slots { get; set; } = []; /// /// Gets or sets typed chart specifications. /// public List Charts { get; set; } = []; /// /// Gets or sets typed interaction controls. /// public List Controls { get; set; } = []; /// /// Gets or sets versioned simulation formulas. /// public List Formulas { get; set; } = []; /// /// Gets or sets assistive component descriptions that never become visible. /// public Dictionary AccessibilityTexts { get; set; } = new(StringComparer.Ordinal); /// /// Gets or sets visible source references keyed by component ID. /// public Dictionary> SourceReferences { get; set; } = new(StringComparer.Ordinal); /// /// Gets or sets the localized label for deterministic simulation reset actions. /// public string ResetLabel { get; set; } = string.Empty; /// /// Gets or sets source coverage. /// public List SourceCoverage { get; set; } = []; /// /// Gets or sets the asset plan without embedded bytes. /// public List AssetPlan { get; set; } = []; /// /// Gets or sets the canonical structural signature. /// public string StructuralSignature { get; set; } = string.Empty; /// /// Gets or sets the contributing model name. /// public string Model { get; set; } = string.Empty; }