Firstly, I am delighted about the idea of using I/O for the interface between the engines. This is really great news. I am still wondering about the rationale of not using I/O for the map as well, but the fact that we are not starting a new process at each round is a really good idea.
In the starter bot (Java for me), I see that the engine waits for the round number with the sc.nextInt(); command. During this wait, the opponents is of course thinking. Is it allowed to rather use this time to think ahead, rather than wait? (i.e. have that part in a separate thread rather?)
I guess if each engine is in its own container, I can use the resources to its fullest potential, correct?