 
     (* Movetext consists of moves (symbols), numbers, periods, comments,    *)
     (* variations, numeric annotation glyphs, and game termination markers. *)
-    movetext = {(termination-marker / <number> / <'.'> / symbol / comment / variation / nag / semicolon-comment / percent-comment / <whitespace>)}
+    moves = {(termination-marker / <number> / <'.'> / symbol / comment / variation / nag / semicolon-comment / percent-comment / <whitespace>)}
 
     (* Comments are arbitrary strings surrounded by curly braces. *)
     comment = <'{'> comment-content <'}'>

  (ip/parser
    "
    (* A PGN game consists of PGN headers followed by the move text. *)
    game = headers <whitespace> movetext
    headers = {header [<whitespace>]}

    (* Each header consists of a header name and a corresponding value, *)

    <percent-comment> = <'%'> <{!'\n' #'[\\S\\s]'}> <'\n'>

    (* Variations are contained in parens, and can be nested recursively. *)
    <variation> = <'('> moves <')'>

    nag = ('$' #'[0-9]+') | '!' | '?' | '!!' | '??' | '!?' | '?!'

    (* Game termination markers, '1-0', '0-1', '1/2-1/2' or '*', where *)
    (* the asterisk indicates an incomplete game or an unknown result. *)
    termination-marker = '1-0' | '0-1' | '1/2-1/2' | '*'

    (* Strings are a little messy, since they are surrounded by double *)
    (* quotes, but we also allows a double quote within the string if *)
