public record GcsResult(
    GcsOutcome Outcome,
    int? TotalScore = null,
    string? Classification = null,
    bool AlertCreated = false,
    int PresentComponents = 0,
    List<ScoreContributor>? Contributors = null)
{
    public static readonly GcsResult NotGcsCode = new(GcsOutcome.NotGcsCode);
    public static readonly GcsResult EncounterNotFound = new(GcsOutcome.EncounterNotFound);

    public static GcsResult IncompleteComponents(int presentCount) =>
        new(GcsOutcome.IncompleteComponents, PresentComponents: presentCount);
}