Most markdown parsers require at least one dash in the header separator, so
| id | name | email | bal | | -: | - | - | -: | | 5 | chris | foo | 12089 |
would be valid. I found that Gitlab's parser does not like this, and requires 3.
Making the separator 3 dashes long does not affect rendering anywhere else that I've seen, as the "at least one dash" requirement is met.
| id | name | email | bal | | ---: | --- | --- | ---: | | 5 | chris | foo | 12089 |
Your parser renders it correctly too:
Can the markdown output be updated to use 3 dashes instead of 1?