using System.Text.Json.Serialization; namespace AIStudio.Assistants.VisualBriefing; /// /// Stores an immutable validated evidence-stage artifact. /// [JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)] public sealed class VisualBriefingEvidenceArtifact { /// Gets or sets the intermediate artifact schema version. public int ArtifactVersion { get; set; } = VisualBriefingVersions.INTERMEDIATE_ARTIFACT; /// Gets or sets the evidence prompt contract version. public int ContractVersion { get; set; } = VisualBriefingVersions.EVIDENCE_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 extracted factual statements. public List Facts { get; init; } = []; /// Gets or sets the extracted numeric metrics. public List Metrics { get; init; } = []; /// Gets or sets the extracted tables. public List Tables { get; init; } = []; /// Gets or sets source coverage. public List SourceCoverage { get; init; } = []; /// Gets or sets the visual asset plan. public List AssetPlan { get; init; } = []; /// Gets or sets the contributing model name. public string Model { get; init; } = string.Empty; }