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; } = []; }