namespace AIStudio.Assistants.BeyondFactsLab;
///
/// A field of the form "Your details" of a step in the BeyondFacts Lab.
///
/// The ID of the field, which a form stores. It never changes.
/// The step whose form shows the field.
/// How the field takes its value.
public sealed record BflFieldDefinition(string Id, BflStep Step, BflFieldKind Kind)
{
///
/// Gets whether the step works poorly without the field, so the lab marks it as missing while it is empty.
/// The person may continue anyway; the chat asks for it.
///
public bool IsKeyDetail { get; init; }
///
/// Gets whether the field holds something personal, which exports and sharing leave out unless the person
/// chooses otherwise.
///
public bool IsPersonalDisclosure { get; init; }
///
/// Gets whether the field holds public details about the event, which the research on the web may use.
///
///
/// Nothing else of a preparation reaches the research: neither the other fields, nor materials, nor work states.
///
public bool IsSharedWithResearch { get; init; }
///
/// Gets whether the field holds names of people.
///
public BflNameRole NameRole { get; init; } = BflNameRole.NONE;
///
/// Gets the options of a field which offers a choice, in the order to show them.
///
public IReadOnlyList Options { get; init; } = [];
}