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;
}