@beerwright/core
    Preparing search index...

    Interface BlendHopInput

    Hops added to finished beer. It has a variety and a weight but isn't used in any calculation.

    It has the same shape as the flavour row, but it's a separate kind because it's a different ingredient. The name is usually a hop variety but is free text, since hops off a neighbour's fence have no variety.

    There's no bitterness, and that's correct, not an approximation. Every model in ibu.ts returns zero for a hop that never went in the kettle, and a blend is finished beer, so there's no isomerisation to model. That's why the row has no alpha acid: nothing would read it, and the addition union exists so rows don't carry fields the maths ignores.

    It doesn't take away any beer either. Hops do absorb liquid (the equipment profile's dryHopAbsorptionMlPerG is 6 mL/g, so 100 g in a 20 L blend is most of a bottle), but no addition changes the blend's volume or bottle count, and we don't make hops an exception. The weight is recorded so the blender knows what they used; the beer lost to the hops is left for them to account for.

    interface BlendHopInput {
        addedOn?: Date | null;
        amountG: number | null;
        kind: "hop";
        name: string;
    }

    Hierarchy (View Summary)

    Index
    addedOn?: Date | null

    The day it went into the blend, or null if the blender didn't say.

    amountG: number | null

    Amount by weight, grams. null is "not decided yet".

    kind: "hop"

    Tells the additions apart.

    name: string

    The hop, usually a variety name.