using System.Text.Json.Serialization;
namespace AIStudio.Assistants.VisualBriefing;
///
/// Plans one semantic component and its evidence and content dependencies.
///
[JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)]
[CanonicalJsonShape("bdafbeaf")]
public sealed class VisualBriefingPlanComponent
{
/// Gets or sets the globally unique component identifier.
[JsonRequired]
public string ComponentId { get; set; } = string.Empty;
/// Gets or sets the component kind.
[JsonRequired]
public VisualBriefingComponentKind Kind { get; set; }
/// Gets or sets the referenced evidence identifiers.
[JsonRequired]
public List EvidenceIds { get; set; } = [];
/// Gets or sets the component's planned semantic slots.
[JsonRequired]
public List Slots { get; set; } = [];
/// Gets or sets the optional embedded asset identifier.
[JsonRequired]
public string? AssetId { get; set; }
/// Gets or sets the orientation used only by timeline components.
[JsonRequired]
public VisualBriefingTimelineOrientation? TimelineOrientation { get; set; }
}