user15989: Trawling through the PGN standard, I was surprised by two of the specifications:
An escape mechanism triggered by % at the start of a new line:

There is a special escape mechanism for PGN data. This mechanism is triggered by a percent sign character ("%") appearing in the first column of a line; the data on the rest of the line is ignored by publicly available PGN scanning software. This escape convention is intended for the private use of software developers and researchers to embed non-PGN commands and data in PGN streams.
A percent sign appearing in any other place other than the first position in a line does not trigger the escape mechanism.

A "rest of line" comment initiated by a semicolon ;:

Comment text may appear in PGN data. There are two kinds of comments. The first kind is the "rest of line" comment; this comment type starts with a semicolon character and continues to the end of the line. [...]

They surprised me because I have never encountered them in any PGNs I've found "in the wild", so to speak. Has anyone encountered PGNs where these (escape mechanism or semicolon comments) are used?

user3594: You can use the percent sign to comment out a line of text in your PGN file (similar to Latex). For example, if you'd like to include personal comments that categorize the games within the database, such as % Games to study later. All such lines starting with % will not be interpreted by a PGN parser, so you can safely leave self-notes or other comments (that you might want to later parse in a script) in a PGN database. 
An example of such a PGN file:
% Interesting games from Wijk aan zee

1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 d6 5. c3 a6 6. Ba4 Be7 7. O-O O-O 8. Re1
Re8 9. Nbd2 Bf8 10. h3 b5 11. Bc2 Bb7 12. d4 g6 13. a3 Nb8 14. d5 c6 15. c4 Nbd7
16. a4 Qc7 17. b3 Rec8 18. Ra2 bxc4 19. bxc4 a5 20. Nf1 Ba6 21. Ne3 Nc5 22. Nd2
cxd5 23. cxd5 Rab8 24. Ba3 Qd8 25. Qf3 h5 26. Raa1 Bh6 27. Rab1 Rxb1 28. Rxb1
Kg7 29. Nef1 h4 30. Ne3 Bf4 31. Nef1 Qc7 32. g3 hxg3 33. fxg3 Bh6 34. h4 Qd7 35.
Kg2 Nxa4 36. Bxa4 Qxa4 37. Bxd6 Qd4 38. Qf2 Qxf2+ 39. Kxf2 Bxf1 0-1


% Caro-Kann games:

1. e4 c6 2. Nf3 d5 3. Nc3 Bg4 4. h3 Bxf3 5. Qxf3 Nf6 6. Be2 e6 7. O-O dxe4 8.
Nxe4 Nxe4 9. Qxe4 Nd7 10. d4 Nf6 11. Qd3 Qc7 12. Rd1 Be7 13. c4 O-O 14. Be3 Rfd8
15. Qb3 Rd7 16. Bf3 Rad8 17. a3 h6 18. g3 b6 19. Kg2 c5 20. Qc3 a5 21. Rac1 cxd4
22. Bxd4 Ne8 23. h4 Bf6 24. Bxf6 Nxf6 25. b4 axb4 26. axb4 Rxd1 27. Rxd1 Rxd1
28. Bxd1 Kf8 29. Bf3 Ke7 30. c5 bxc5 31. bxc5 Kf8 32. Qb4 Ne8 33. Qb6 Qe5 34.
Bc6 Ke7 35. Bxe8 Kxe8 36. c6 Qd6 37. Kg1 g5 38. h5 f5 39. Qb7 Qd1+ 40. Kg2 Qd5+
41. Kh2 Qd4 42. Kg1 Qd1+ 43. Kg2 Qd5+ 44. Kh2 Qd4 45. Kg1 1/2-1/2

You can experiment with this by loading the PGN file (like the above) on for example chesstempo in order to sanity check the parsing, and see that those lines are indeed correctly ignored.

As for annotations and the use of the semicolon see this answer by Andrew.
Briefly, the semicolon is another way of indicating move annotations but it's not efficient as it requires including redundant characters and line-skips per annotation, e.g.:
1. d4; closed system 
1...d5 2. c4 

instead of 1. d4 {closed system} d5 2. c4. And the semicolon notation is rarely supported by PGN parsers. So the use of curly brackets {} is always recommended, as it's well supported, simple and intuitive to use and less prone to mistakes in the notation.

15989: <p>Trawling through the <a href="http://www.saremba.de/chessgml/standards/pgn/pgn-complete.htm" rel="noreferrer">PGN standard</a>, I was surprised by two of the specifications:</p>

<p>An <a href="http://www.saremba.de/chessgml/standards/pgn/pgn-complete.htm#c6" rel="noreferrer">escape mechanism</a> triggered by <code>%</code> at the start of a new line:</p>

<blockquote>
  <p>There is a special escape mechanism for PGN data. This mechanism is triggered by a percent sign character ("%") appearing in the first column of a line; the data on the rest of the line is ignored by publicly available PGN scanning software. This escape convention is intended for the private use of software developers and researchers to embed non-PGN commands and data in PGN streams.</p>
  
  <p>A percent sign appearing in any other place other than the first position in a line does not trigger the escape mechanism.</p>
</blockquote>

<p>A <a href="http://www.saremba.de/chessgml/standards/pgn/pgn-complete.htm#c5" rel="noreferrer">"rest of line" comment</a> initiated by a semicolon <code>;</code>:</p>

<blockquote>
  <p>Comment text may appear in PGN data. There are two kinds of comments. The first kind is the "rest of line" comment; this comment type starts with a semicolon character and continues to the end of the line. [...]</p>
</blockquote>

<p>They surprised me because I have never encountered them in any PGNs I've found "in the wild", so to speak. <strong>Has anyone encountered PGNs where these (escape mechanism or semicolon comments) are used?</strong></p>
 3594: <p>You can use the percent sign to comment out a line of text in your PGN file (<a href="https://www.overleaf.com/blog/619-tip-of-the-week-add-inline-or-margin-comments-to-your-pdf" rel="noreferrer">similar to Latex</a>). For example, if you'd like to include personal comments that categorize the games within the database, such as <code>% Games to study later</code>. All such lines <strong>starting</strong> with <code>%</code> will not be interpreted by a PGN parser, so you can safely leave self-notes or other comments (that you might want to later parse in a script) in a PGN database. </p>

<p>An example of such a PGN file:</p>

<pre><code>% Interesting games from Wijk aan zee

1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 d6 5. c3 a6 6. Ba4 Be7 7. O-O O-O 8. Re1
Re8 9. Nbd2 Bf8 10. h3 b5 11. Bc2 Bb7 12. d4 g6 13. a3 Nb8 14. d5 c6 15. c4 Nbd7
16. a4 Qc7 17. b3 Rec8 18. Ra2 bxc4 19. bxc4 a5 20. Nf1 Ba6 21. Ne3 Nc5 22. Nd2
cxd5 23. cxd5 Rab8 24. Ba3 Qd8 25. Qf3 h5 26. Raa1 Bh6 27. Rab1 Rxb1 28. Rxb1
Kg7 29. Nef1 h4 30. Ne3 Bf4 31. Nef1 Qc7 32. g3 hxg3 33. fxg3 Bh6 34. h4 Qd7 35.
Kg2 Nxa4 36. Bxa4 Qxa4 37. Bxd6 Qd4 38. Qf2 Qxf2+ 39. Kxf2 Bxf1 0-1


% Caro-Kann games:

1. e4 c6 2. Nf3 d5 3. Nc3 Bg4 4. h3 Bxf3 5. Qxf3 Nf6 6. Be2 e6 7. O-O dxe4 8.
Nxe4 Nxe4 9. Qxe4 Nd7 10. d4 Nf6 11. Qd3 Qc7 12. Rd1 Be7 13. c4 O-O 14. Be3 Rfd8
15. Qb3 Rd7 16. Bf3 Rad8 17. a3 h6 18. g3 b6 19. Kg2 c5 20. Qc3 a5 21. Rac1 cxd4
22. Bxd4 Ne8 23. h4 Bf6 24. Bxf6 Nxf6 25. b4 axb4 26. axb4 Rxd1 27. Rxd1 Rxd1
28. Bxd1 Kf8 29. Bf3 Ke7 30. c5 bxc5 31. bxc5 Kf8 32. Qb4 Ne8 33. Qb6 Qe5 34.
Bc6 Ke7 35. Bxe8 Kxe8 36. c6 Qd6 37. Kg1 g5 38. h5 f5 39. Qb7 Qd1+ 40. Kg2 Qd5+
41. Kh2 Qd4 42. Kg1 Qd1+ 43. Kg2 Qd5+ 44. Kh2 Qd4 45. Kg1 1/2-1/2
</code></pre>

<p>You can experiment with this by loading the PGN file (like the above) on for example <a href="https://chesstempo.com/pgn-viewer.html" rel="noreferrer">chesstempo</a> in order to sanity check the parsing, and see that those lines are indeed correctly ignored.</p>

<hr>

<p>As for annotations and the use of the semicolon see <a href="https://chess.stackexchange.com/a/15626/3594">this answer</a> by <a href="https://chess.stackexchange.com/users/12/andrew">Andrew</a>.</p>

<p>Briefly, the semicolon is another way of indicating move annotations but it's not efficient as it requires including redundant characters and line-skips per annotation, e.g.:</p>

<pre><code>1. d4; closed system 
1...d5 2. c4 
</code></pre>

<p>instead of <code>1. d4 {closed system} d5 2. c4</code>. And the semicolon notation is rarely supported by PGN parsers. So the use of curly brackets <code>{}</code> is always recommended, as it's well supported, simple and intuitive to use and less prone to mistakes in the notation.</p>
