categories = [
    (82, False, "player", "defense_ast", "Assist to a tackle."),
    (91, False, "player", "defense_ffum", "Defensive player forced a fumble."),
    (88, False, "player", "defense_fgblk", "Defensive player blocked a field goal."),
    (60, False, "player", "defense_frec", "Defensive player recovered a fumble by the opposing team."),
    (62, False, "player", "defense_frec_tds", "Defensive player scored a touchdown after recovering a fumble by the opposing team."),
    (62, False, "player", "defense_frec_yds", "Yards gained by a defensive player after recovering a fumble by the opposing team."),
    (26, False, "player", "defense_int", "An interception."),
    (28, False, "player", "defense_int_tds", "A touchdown scored after an interception."),
    (28, False, "player", "defense_int_yds", "Yards gained after an interception."),
    (64, False, "player", "defense_misc_tds", "A touchdown scored on miscellaneous yardage (e.g., on a missed field goal or a blocked punt)."),
    (64, False, "player", "defense_misc_yds", "Miscellaneous yards gained by a defensive player (e.g., yardage on a missed field goal or blocked punt)."),
    (85, False, "player", "defense_pass_def", "Incomplete pass was due primarily to a defensive player's action."),
    (86, False, "player", "defense_puntblk", "Defensive player blocked a punt."),
    (110, False, "player", "defense_qbhit", "Defensive player knocked the quarterback to the ground and the quarterback was not the ball carrier."),
    (89, False, "player", "defense_safe", "Tackle by a defensive player that resulted in a safety. This is in addition to a tackle."),
    (84, True, "player", "defense_sk", "Defensive player sacked the quarterback. Note that this is the only field that is a floating point number. Namely, there can be half-credit sacks."),
    (84, False, "player", "defense_sk_yds", "Yards lost as a result of a sack."),
    (80, False, "player", "defense_tkl", "A defensive player tackle. (This include defense_tkl_primary.)"),
    (120, False, "player", "defense_tkl_loss", "Defensive player tackled the runner behind the line of scrimmage. Play must have ended, player must have received a tackle stat, has to be an offensive player tackled."),
    (402, False, "player", "defense_tkl_loss_yds", "The number of yards lost caused by a defensive tackle behind the line of scrimmage."),
    (80, False, "player", "defense_tkl_primary", "Defensive player was the primary tackler."),
    (87, False, "player", "defense_xpblk", "Defensive player blocked the extra point."),
    (5, False, "play", "first_down", "A first down or TD occurred due to a penalty. A play can have a first down from a pass or rush and from a penalty."),
    (9, False, "play", "fourth_down_att", "4th down play."),
    (8, False, "play", "fourth_down_conv", "4th down play resulted in a first down or touchdown."),
    (9, False, "play", "fourth_down_failed", "4th down play did not result in a first down or touchdown."),
    (52, False, "player", "fumbles_forced", "Player fumbled the ball, fumble was forced by another player."),
    (106, False, "player", "fumbles_lost", "Player fumbled the ball and the opposing team recovered it."),
    (53, False, "player", "fumbles_notforced", "Player fumbled the ball that was not caused by a defensive player."),
    (54, False, "player", "fumbles_oob", "Player fumbled the ball, and the ball went out of bounds."),
    (56, False, "player", "fumbles_rec", "Fumble recovery from a player on the same team."),
    (58, False, "player", "fumbles_rec_tds", "A touchdown after a fumble recovery from a player on the same team."),
    (58, False, "player", "fumbles_rec_yds", "Yards gained after a fumble recovery from a player on the same team."),
    (54, False, "player", "fumbles_tot", "Total number of fumbles by a player. Includes forced, not forced and out-of-bounds."),
    (410, False, "player", "kicking_all_yds", "Kickoff and length of kick. Includes end zone yards for all kicks into the end zone, including kickoffs ending in a touchback."),
    (102, False, "player", "kicking_downed", "A downed kickoff. A kickoff is downed when touched by an offensive player within the 10 yard free zone, and the ball is awarded to the receivers at the spot of the touch."),
    (71, False, "player", "kicking_fga", "A field goal attempt, including blocked field goals. Unlike a punt, a field goal is statistically blocked even if the ball does go beyond the line of scrimmage."),
    (71, False, "player", "kicking_fgb", "Field goal was blocked. Unlike a punt, a field goal is statistically blocked even if the ball does go beyond the line of scrimmage."),
    (70, False, "player", "kicking_fgm", "A field goal."),
    (70, False, "player", "kicking_fgm_yds", "The length of a successful field goal."),
    (71, False, "player", "kicking_fgmissed", "The field goal was unsuccessful, including blocked field goals. Unlike a punt, a field goal is statistically blocked even if the ball does go beyond the line of scrimmage."),
    (71, False, "player", "kicking_fgmissed_yds", "The length of an unsuccessful field goal, including blocked field goals. Unlike a punt, a field goal is statistically blocked even if the ball does go beyond the line of scrimmage."),
    (42, False, "player", "kicking_i20", "Kickoff and length of kick, where return ended inside opponent's 20 yard line."),
    (108, False, "player", "kicking_rec", "Recovery of own kickoff, whether or not the kickoff is onside."),
    (108, False, "player", "kicking_rec_tds", "Touchdown resulting from direct recovery in endzone of own kickoff, whether or not the kickoff is onside."),
    (44, False, "player", "kicking_tot", "A kickoff."),
    (44, False, "player", "kicking_touchback", "A kickoff that resulted in a touchback."),
    (74, False, "player", "kicking_xpa", "An extra point attempt."),
    (74, False, "player", "kicking_xpb", "Extra point was blocked."),
    (72, False, "player", "kicking_xpmade", "Extra point good."),
    (74, False, "player", "kicking_xpmissed", "Extra point missed. This includes blocked extra points."),
    (44, False, "player", "kicking_yds", "The length of a kickoff."),
    (50, False, "player", "kickret_fair", "A fair catch kickoff return."),
    (49, False, "player", "kickret_oob", "Kicked ball went out of bounds."),
    (46, False, "player", "kickret_ret", "A kickoff return."),
    (48, False, "player", "kickret_tds", "A kickoff return touchdown."),
    (51, False, "player", "kickret_touchback", "A kickoff return that resulted in a touchback."),
    (48, False, "player", "kickret_yds", "Yards gained by a kickoff return."),
    (19, False, "player", "passing_att", "A pass attempt."),
    (16, False, "player", "passing_cmp", "A pass completion."),
    (111, False, "player", "passing_cmp_air_yds", "Length of a pass, not including the yards gained by the receiver after the catch."),
    (4, False, "play", "passing_first_down", "A first down or TD occurred due to a pass."),
    (19, False, "player", "passing_incmp", "Pass was incomplete."),
    (112, False, "player", "passing_incmp_air_yds", "Length of the pass, if it would have been a completion."),
    (19, False, "player", "passing_int", "Pass attempt that resulted in an interception."),
    (20, False, "player", "passing_sk", "The player was sacked."),
    (103, False, "player", "passing_sk_yds", "The yards lost by a player that was sacked."),
    (16, False, "player", "passing_tds", "A pass completion that resulted in a touchdown."),
    (78, False, "player", "passing_twopta", "A passing two-point conversion attempt."),
    (77, False, "player", "passing_twoptm", "A successful passing two-point conversion."),
    (78, False, "player", "passing_twoptmissed", "An unsuccessful passing two-point conversion."),
    (16, False, "player", "passing_yds", "Total yards resulting from a pass completion."),
    (93, False, "play", "penalty", "A penalty occurred."),
    (5, False, "play", "penalty_first_down", "A first down or TD occurred due to a penalty."),
    (93, False, "play", "penalty_yds", "The number of yards gained or lost from a penalty."),
    (2, False, "player", "punting_blk", "Punt was blocked. A blocked punt is a punt that is touched behind the line of scrimmage, and is recovered, or goes out of bounds, behind the line of scrimmage. If the impetus of the punt takes it beyond the line of scrimmage, it is not a blocked punt."),
    (30, False, "player", "punting_i20", "A punt where the punt return ended inside the opponent's 20 yard line."),
    (32, False, "player", "punting_tot", "A punt."),
    (32, False, "player", "punting_touchback", "A punt that results in a touchback."),
    (32, False, "player", "punting_yds", "The length of a punt."),
    (38, False, "player", "puntret_downed", "Punt return where the ball was downed by kicking team."),
    (39, False, "player", "puntret_fair", "Punt return resulted in a fair catch."),
    (37, False, "player", "puntret_oob", "Punt went out of bounds."),
    (36, False, "player", "puntret_tds", "A punt return touchdown."),
    (34, False, "player", "puntret_tot", "A punt return."),
    (40, False, "player", "puntret_touchback", "A punt return that resulted in a touchback."),
    (36, False, "player", "puntret_yds", "Yards gained by a punt return."),
    (22, False, "player", "receiving_rec", "A reception."),
    (115, False, "player", "receiving_tar", "Player was the target of a pass attempt."),
    (24, False, "player", "receiving_tds", "A reception that results in a touchdown."),
    (105, False, "player", "receiving_twopta", "A receiving two-point conversion attempt."),
    (104, False, "player", "receiving_twoptm", "A successful receiving two-point conversion."),
    (105, False, "player", "receiving_twoptmissed", "An unsuccessful receiving two-point conversion."),
    (113, False, "player", "receiving_yac_yds", "Yardage from where the ball was caught until the player's action was over."),
    (24, False, "player", "receiving_yds", "Yards resulting from a reception."),
    (11, False, "player", "rushing_att", "A rushing attempt."),
    (3, False, "play", "rushing_first_down", "A first down or TD occurred due to a rush."),
    (95, False, "player", "rushing_loss", "Ball carrier was tackled for a loss behind the line of scrimmage, where at least one defensive player is credited with ending the rush with a tackle, or tackle assist."),
    (95, False, "player", "rushing_loss_yds", "Yards lost from the ball carrier being tackled for a loss behind the line of scrimmage, where at least one defensive player is credited with ending the rush with a tackle, or tackle assist."),
    (13, False, "player", "rushing_tds", "A touchdown resulting from a rush attempt."),
    (76, False, "player", "rushing_twopta", "A rushing two-point conversion attempt."),
    (75, False, "player", "rushing_twoptm", "A successful rushing two-point conversion."),
    (76, False, "player", "rushing_twoptmissed", "An unsuccessful rushing two-point conversion."),
    (13, False, "player", "rushing_yds", "Yards resulting from a rush."),
    (7, False, "play", "third_down_att", "3rd down play."),
    (6, False, "play", "third_down_conv", "3rd down play resulted in a first down or touchdown."),
    (7, False, "play", "third_down_failed", "3rd down play did not result in a first down or touchdown."),
    (68, False, "play", "timeout", "Team took a time out."),
    (301, False, "play", "xp_aborted", "The extra point was aborted."),
]
