use applicative to clean up encoding of move to PGN