I hadn't considered that angle, that someone might not want to reveal their player logic to me. What you suggested was my "plan B" where instead of communicating over stdin/stdout, the players connect to m server over TCP/TLS and communicate over that channel instead.
I didn't want to do it this way because I liked the idea of running in a closed autonomous system. That ZIP file has to contain all the state of the player. Your robot is out there in the world alone and separated from their owner. It isn't just communication with a human I wanted to restrict, but any external system. Databases, helper systems, anything like that.
The idea of doing this way stemmed from playing CRobots in my teens in the late 80s. The robot has to be completely autonomous without the ability for a human to step in. I found programming a fighting robot rather frustrating in the end but I recalled the experience when I stumbled upon poker bots.
Your post may just cause me to pick up that plan B and leave trying to find that sandbox mode for Python. I'll be sure to thank you if I ever build something bigger than some rough plans in a text file.