has_stroke_index was derived solely from course_holes.stroke_index,
but stroke indices can also be stored as JSON on course_tees
(stroke_indices column), which is what's used at game creation to
compute strokes_allocation per player. Courses imported from the API
often have per-tee SI but no course-level hole SI, causing
has_stroke_index = False even though every player had valid stroke
data — hiding the +N badges and scorecard slash markers entirely.
Fix: fall back to checking whether any player actually has stroke
data in strokes_per_hole, applied to both game_page and game_summary.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>