using System.Text.Json.Serialization; namespace AIStudio.Assistants.VisualBriefing; /// /// Defines one node in the validated bounded presentation layout tree. /// [JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)] [CanonicalJsonShape("14064835")] public sealed class VisualBriefingLayoutNode { /// Gets or sets the globally unique layout node identifier. [JsonRequired] public string NodeId { get; init; } = string.Empty; /// Gets or sets the node kind. [JsonRequired] public VisualBriefingLayoutNodeKind Kind { get; init; } /// Gets or sets the planned section identifier for a section node. [JsonRequired] public string? SectionId { get; init; } /// Gets or sets the planned component identifier for a component node. [JsonRequired] public string? ComponentId { get; init; } /// Gets or sets the ordered child nodes. [JsonRequired] public List Children { get; init; } = []; /// Gets or sets responsive columns for a grid node. [JsonRequired] public VisualBriefingResponsiveColumns? Columns { get; set; } /// Gets or sets the bounded grid span. [JsonRequired] public int Span { get; set; } = 1; /// Gets or sets the explicit sibling order. [JsonRequired] public int Order { get; init; } /// Gets or sets whether the node receives visual emphasis. [JsonRequired] public bool Emphasized { get; set; } /// Gets or sets the cross-axis alignment. [JsonRequired] public VisualBriefingAlignment Alignment { get; set; } }