using System.Text.Json.Serialization; namespace AIStudio.Assistants.VisualBriefing; /// /// Stores an immutable validated plan-stage artifact. /// [JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)] public sealed class VisualBriefingPlanArtifact { /// Gets or sets the intermediate artifact schema version. public int ArtifactVersion { get; set; } = VisualBriefingVersions.INTERMEDIATE_ARTIFACT; /// Gets or sets the plan prompt contract version. public int ContractVersion { get; set; } = VisualBriefingVersions.PLAN_CONTRACT; /// Gets or sets the immutable artifact identifier. public Guid ArtifactId { get; init; } /// 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; init; } = string.Empty; /// Gets or sets the ordered planned sections. public List Sections { get; init; } = []; /// Gets or sets the canonical structural signature. public string StructuralSignature { get; init; } = string.Empty; /// Gets or sets the contributing model name. public string Model { get; init; } = string.Empty; }