It seems that game state is not properly updated when parsing a game from PGN. At least checkmate is not updated into the Game.method field when the game ends in checkmate. The following example code illustrates the issue.
pgn := "1. f4 e5 2. g4 Qh4# 0-1"
reader := strings.NewReader(pgn)
pgn_r, _ := chess.PGN(reader)
game := chess.NewGame(pgn_r)
// Now game.method is NoMethod