chessgames.com: <zanzibar>
Sorry for taking so long to get back, it's a complex issue and I wanted to address it properly.
First, a understand there are different categories of game uploaders.
<1> Some people find an entire tournament, and they know we have some of the games but not all, so they just cut-and-paste the whole thing into the upload utility and press "SUBMIT". This isn't too bad, but if the moves of their games contradict some of the moves of our games, we'll have duplicates. The holding pen is a good time to work things like that out before the final transference to the main database.
<2> Another type will slowly accumulate games one by one from all sorts of sources. They are likely looking into our database and notices "holes" and trying to fill them in. Or perhaps they have old periodicals and are slowly turning 19 century descriptive notation into algebraic, using SCID or their favorite chess utility. Most of the Bistro contributors fit into this category.
<3> Then there is the person much like the above, except they don't have any software to help them perform their task, they just dutifully attempt to do it all by hand. Their error rate is only 2-3 or mistakes per game, which is probably less than most of us would accomplish, but still no good.
<4> Finally there is the person who played a really neat blitz game on chess.com and wants to share it to the world. Maybe they even have a high rating. Hopefully they have more than screen-names in the "White" and "Black" tags.
The game uploader has to be ready for all of these cases.
You opine: <My suggestion would be to screen the PGN immediately upon submission, bouncing it back to the user as rejected right there and then - perhaps even pointing out the approximate location the PGN goes off the rails.>
We're totally on board with that, but it turns out to be a very tricky if you want 100% success. For example, one library that we use for the Opening Explorer will sometimes choke and output the FEN right before where the problem lies. (With a very small finesse we could get it to provide the move number as well.) So that seems to satisfy your requirement. But the problem is, sometimes that software stamps it as approved but Olga still won't play it. (We're looking at fringe issues now, but they happen all the time.) Of course we could write our own error trapping on top of the parser to make it even more robust, but in the end, the real test will be to look at it with your own two eyes.
<I don't get it. Why would you even consider requiring a user to play through games by hand?> Mostly for cases 3 & 4 above.
<Sorry, but consider the interzonal I did of ~400 games. You're going to require me to play through 400 games?>
Not at all! You will have the OPTION of playing through them, as will anybody else while they are in the holding pen. And will it take ~400 votes to get all of the games approved? Of course not, there will be a function that allows people to vote in all ~400 games at once. I imagine the way it would play out is that people would perform a number of "spot checks" and if it all seems good, in it goes.
Ideally the same people examining and voting could have access to utilities that show potential problem games in the ~400 game collection. Like Elo's that seem below our criteria, or zero move games, or important tags with "?" in it, etc.
Have faith. I'm not going to create a monstrosity more complex and slow than what we have now.