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

    Interface PlayerGameLogEntryShape

    Minimal shape of a per-game log entry that grading needs. Structurally compatible with PlayerGameLogEntry from the gamelog service — keeping this independent so the pure module never transitively imports RN deps.

    mlbRole is set by the parser on MLB entries based on the upstream isMLBPitcher detection. MLB adapters dispatch on it so a "Walks" (batter BB) leg never accidentally reads against a pitcher row's remapped fields, and vice versa for "Walks Allowed" / "Hits Allowed" / "Pitches Thrown". Non-MLB entries leave it undefined.

    interface PlayerGameLogEntryShape {
        assists: string;
        blocks: string;
        categories?: PlayerGameLogCategoriesShape;
        date: string;
        fg?: string;
        ft?: string;
        minutes: string;
        mlbExtras?: PlayerGameLogMlbExtrasShape;
        mlbRole?: "batter" | "pitcher" | null;
        nhlPosition?: "skater" | "goalie" | null;
        plusMinus?: string;
        points: string;
        rebounds: string;
        soccer?: PlayerGameLogSoccerShape;
        steals: string;
        threeP: string;
        turnovers: string;
    }
    Index

    Properties

    assists: string
    blocks: string
    date: string
    fg?: string

    Optional flat-field slots that the parser populates for sports which need them. NHL skaters use fg=PPG, threeP=PPA so the Power Play Points adapter sums them. Other sports leave these undefined; adapters that don't need them ignore the field.

    ft?: string
    minutes: string
    mlbRole?: "batter" | "pitcher" | null
    nhlPosition?: "skater" | "goalie" | null

    NHL-only position discriminator. Same role as mlbRole — the parser (or boxscore-shape adapter) sets it; per-prop NHL adapters guard on it so Saves never reads against a skater row and Goals never reads against a goalie row.

    plusMinus?: string
    points: string
    rebounds: string

    Soccer-specific extras (v1.0). Soccer match data shape differs enough from US-major sports that it gets its own bag rather than remapping onto the flat fields. Adapters read from here for Shots, Shots on Target, Passes Completed, Tackles, Yellow Cards, Pass Accuracy. Goals + Assists reuse the canonical flat slots (points, rebounds) for consistency with other sports — see SOCCER_ADAPTERS.

    steals: string
    threeP: string
    turnovers: string