Furthermore, it seems not all games have a start_time field. From what I can tell this is only present in Daily Chess games and not in games with time_class fields such as blitz.
API Documentation Historic Games Endpoint

As you have already guessed, the start_time key is only available for Daily Games.
As for the lack of a username key in the white and black fields, I never really questioned it, but I am definitely curious as to what the developers have to say about it. I would hazard a guess and say the documentation was simply not updated to reflect the change. This is me assuming there was a username key for the Monthly Archives game JSON in the first place.
I figured as much. The missing username key doesn't really matter, since the username is easily extracted from the @id field. However, it would be good to see these details in the API documentation, for example by labelling them optional (which is what they did for the name, avatar and location fields in the player endpoint).

Thank you, @AManMothEater !
This was indeed an oversight. We originally had the username field in both game lists, but when we switched the "current" list to just link the player-profile (the @id field), we accidentally removed the username from both types of lists. We will add the username field back to the archive game list this week (it will stay removed from the current-game list)
You are both correct: the start_time is not a value that we record for live chess games, only for daily chess (since the difference between start and finish is much more significant, and less dependent on the time control). You can distinguish daily from live chess in this way, or from the time_class value.
Hi there,
Fairly new to the forum and just playing around to see what is possible.
I did notice that while the documentation in the README for the Published-Data API mentions that the JSON returned by a call for Complete Monthly Archives does not conform to the format specified.
The documentation mentions that both the white and the black field in each game contain the username of the player, but this is not the case; both the example call and calls to current data return the white and black fields with only 3 fields (rating, @id and result).
I might be missing something and I'm also not sure whether this is the correct place to post this (if not, please let me know and I'll (re)move it), but if not, is it possible to amend this?