@beerwright/core
    Preparing search index...

    Interface BlendInput

    Inputs to evaluateBlend.

    interface BlendInput {
        additions: readonly BlendAdditionInput[];
        components: readonly BlendComponentInput[];
        kegVolumeL: number | null;
        measuredFg?: number | null;
        measuredOn?: Date | null;
        packagedOn?: Date | null;
        sugar?: PrimingSugar;
        targetVolumes: number;
    }
    Index
    additions: readonly BlendAdditionInput[]

    Fruit, sugar, flavourings and spirits folded in. Empty means none.

    components: readonly BlendComponentInput[]

    The beers going into the blend.

    kegVolumeL: number | null

    Volume going to keg, litres. The rest of the blend is bottles. null means the whole blend is bottled.

    measuredFg?: number | null

    Final gravity measured on the blend itself (not on a component), or null if it hasn't been measured yet.

    The volume-weighted FG describes the blend on the day it was mixed, while BlendEvaluation.extractVolumes and BlendEvaluation.abvWithAdditions both describe it months later, once everything sweeter than the driest component has fermented down to that floor. A measurement tells us where the blend actually is now, so when it's present it replaces the predicted extract term and ABV.

    measuredOn?: Date | null

    The day measuredFg was read, or null.

    We need it because a hydrometer reading already includes every addition made before it; the fruit's sugar is in that number. Without the day we can't tell whether an addition came before or after the reading, and the fruit would be counted once in the gravity and again in abvWithAdditions.

    packagedOn?: Date | null

    The day the blend is packaged. Any addition sugar that hasn't fermented by then ends up in the bottle.

    null when the blend hasn't been packaged and the caller has no date. In that case no addition can be judged, and none of them count toward the priming dose. For a blend that's still conditioning, pass today's date to answer "if I bottled this now, what would still be sugar?".

    sugar?: PrimingSugar

    The sugar to prime with. Defaults to table sugar.

    targetVolumes: number

    Target carbonation, volumes of CO₂.