using System.Text.Json;
using System.Text.Json.Serialization;
namespace AIStudio.Assistants.VisualBriefing;
///
/// Defines one bounded declarative interaction control.
///
[JsonUnmappedMemberHandling(JsonUnmappedMemberHandling.Disallow)]
[CanonicalJsonShape("42306121")]
public sealed class VisualBriefingControlSpec
{
/// Gets or sets the globally unique control identifier.
[JsonRequired]
public string ControlId { get; init; } = string.Empty;
/// Gets or sets the owning component identifier.
[JsonRequired]
public string ComponentId { get; init; } = string.Empty;
/// Gets or sets the control kind.
[JsonRequired]
public VisualBriefingControlKind Kind { get; init; }
/// Gets or sets the deterministic initial value.
[JsonRequired]
public JsonElement InitialValue { get; init; }
/// Gets or sets the selectable options.
[JsonRequired]
public List Options { get; init; } = [];
}