using System.Text.Json.Serialization; namespace AIStudio.Assistants.VisualBriefing; /// /// Stores an immutable resolved presentation-stage artifact. /// [JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)] public sealed class VisualBriefingPresentationArtifact { /// /// Gets or sets the intermediate artifact schema version. /// public int ArtifactVersion { get; set; } = VisualBriefingVersions.INTERMEDIATE_ARTIFACT; /// /// Gets or sets the design prompt contract version. /// public int ContractVersion { get; set; } = VisualBriefingVersions.DESIGN_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 resolved presentation payload. /// public string PayloadHash { get; set; } = string.Empty; /// /// Gets or sets the validated layout DSL. /// public VisualBriefingLayoutNode Layout { get; set; } = new(); /// /// Gets or sets the bounded MindWork editorial design profile. /// public VisualBriefingDesignProfile Profile { get; set; } /// /// Gets or sets the complete declarative HTML template. /// public string TemplateHtml { get; set; } = string.Empty; /// /// Gets or sets the complete safe stylesheet. /// public string Css { get; set; } = string.Empty; /// /// Gets or sets the deterministic template hash. /// public string TemplateHash { get; set; } = string.Empty; /// /// Gets or sets the deterministic CSS hash. /// public string CssHash { get; set; } = string.Empty; /// /// Gets or sets the contributing model name. /// public string Model { get; set; } = string.Empty; }