@buzzr/dfs-engine
    Preparing search index...

    Type Alias DfsParseResult

    Result of running the vision pipeline on a screenshot. Always returns a partial - fields we couldn't parse are left null/empty so the confirmation screen can prompt the user to fill them in.

    type DfsParseResult = {
        app: DfsApp;
        inferredStatus: "pending" | "won" | "lost";
        legs: DfsBetLeg[];
        multiplier: number | null;
        parseConfidence: "full" | "partial";
        parseMeta?: BetslipParseMeta;
        playType: DfsPlayType | null;
        potentialPayout: number | null;
        profitBoostPct: number | null;
        rawText: string[];
        slipState: "pre" | "live" | "final";
        stakeAmount: number | null;
    }
    Index

    Properties

    app: DfsApp
    inferredStatus: "pending" | "won" | "lost"

    'pending' | 'won' | 'lost' - read from header badge when settled.

    legs: DfsBetLeg[]
    multiplier: number | null
    parseConfidence: "full" | "partial"

    Confidence indicator surfaced on the confirmation screen.

    parseMeta?: BetslipParseMeta

    Server/provider telemetry attached to model-assisted parses.

    playType: DfsPlayType | null
    potentialPayout: number | null

    Implied potential payout from the slip header ("$X to pay $Y").

    profitBoostPct: number | null
    rawText: string[]

    Raw OCR text blocks for debugging. Stripped before persisting.

    slipState: "pre" | "live" | "final"

    'pre' | 'live' | 'final' aggregated across legs (worst-case wins).

    stakeAmount: number | null

    Pre-game / in-game screenshots may not show stake on Underdog.