% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/Game.R
\name{gc_play_by_play}
\alias{gc_play_by_play}
\alias{gc_pbp}
\title{Access the GameCenter (GC) play-by-play for a game}
\usage{
gc_play_by_play(game = 2023030417)

gc_pbp(game = 2023030417)
}
\arguments{
\item{game}{integer ID (e.g., 2025020275); see \code{\link[=games]{games()}} for reference}
}
\value{
data.frame with one row per event (play)
}
\description{
\code{gc_play_by_play()} retrieves the GameCenter (GC) play-by-play for a game as
a \code{data.frame} where each row represents an event. The returned schema is the
cleaned, public-facing play-by-play schema, including canonical names such as
\code{periodNumber}, \code{eventTypeCode}, \code{eventTypeDescKey}, \code{homeShots},
\code{shotsFor}, \code{penaltyTypeDescKey}, \code{penaltyDuration}, \code{servedByPlayerId},
\code{goalieInNetId}, and HTML-report-derived on-ice player ID columns such as
\code{homeGoaliePlayerId}, \code{awayGoaliePlayerId}, \code{homeSkater1PlayerId}, and any
additional overflow skater slots required by the game. HTML report skater and
goalie IDs are returned whenever they can be matched back to a supported row,
even when the raw \code{situationCode} is stale. Use \code{\link[=add_shift_times]{add_shift_times()}} with
\code{\link[=shift_chart]{shift_chart()}} (or \code{\link[=shift_charts]{shift_charts()}}) to add on-ice shift timing columns.
}
\examples{
# May take >5s, so skip.
\donttest{gc_pbp_Martin_Necas_legacy_game <- gc_play_by_play(game = 2025020275)}
}
