@usethrottle/cart
    Preparing search index...

    Interface CartSessionSummary

    The badge-sized read: what a storefront header needs to draw a cart count, and nothing more. No line items, no addresses, no buyer email or notes.

    interface CartSessionSummary {
        cartSessionId: string;
        currency: string | null;
        status: "converted" | "active" | "expired";
        total: number;
        unitCount: number;
    }
    Index
    cartSessionId: string
    currency: string | null

    null on a finished session — there is no live cart to price.

    status: "converted" | "active" | "expired"

    active while the cart can still be edited. expired (past its TTL) or converted (handed off to checkout) once the session is finished — those come back as a normal 200 with a zeroed summary, not an error, so a badge can render a zero without a try/catch.

    total: number

    Cart total in minor units, or 0 on a finished session.

    unitCount: number

    Sum of the line-item quantities — 1 stand + 2 notebooks + 1 keyboard is 4, not 3. Named for what it counts because itemCount elsewhere in Throttle (the cart.abandoned payload) means the number of distinct lines.