For [[ElPaso]], I looked at a number options before settling on Pygame. These were:

LÖVE - This uses Lua. Lua isn't nearly as mature as Python. Lua is a great language that has gotten a few key things wrong. In particular, it is designed only to be embedded, so LÖVE calls your Lua code. Pygame works the other way around with you Python code calling Pygame. When writing a game, you should be in charge and you should call whatever code in the game library that you want. So Pygame go this right

ROBLOX - This also uses Lua. It is 90% about playing games and only 10% about programming. Not being a game player myself, I couldn't make sense of this website. It also isn't about writing game programs from scratch, which is what I am interested in.

Slick2D - This uses Java. As a Java programmer, I hoped to use this. But this game library just isn't as well designed as the others. And Java has gotten more complicated over the years to the point where it is no longer a good first language to learn.

Greenfoot - This also uses Java. It is a simplified environment for writing simple games. It isn't a serious gaming environment for writing real games. I rejected this one both because I want to be able to write real games and because it is in Java.

After playing with all of these options, I believe that Pygame with Python is by far the best way to start kids programming. Python is a clean programming language that is simple enough to start with. And Pygame is simple and well designed for writing basic 2D games.