So I have been reading a draft proposal ? :-)
I think we agree, basically. A small, simple, textbased protocol is wat we want. It should not change with every version of gnugo. Apart from the syntax, the semantics should be clear. Minimalistic implemetations should be able to ignore anything they don't understand.
I liked the section in the (draft ...)protocol, where the (not) initializing of enginevariables by the clear command was described. Then I realised, that having a bunch of invisible state variables (the were summed up neatly) , without being able to inspect or influence them, might be dangerous. That's why.
As a basic command set: GMP is probably too small, and SGF is probaly too big.
As for the PL[] command: there is another reason. Incremental programs may benefit from (;AB[........]AW[..........];PL[B] , because it enables them to delay the updating of internal structures. Instead of 100 incremental updates, they can do one massive rebuild, which is probably more efficient. The PL acts as a "commit", more or less. I remember a previous discussion on SGF where this came up. (was about why mixing setup and move properties in the same node was bad style, or even unwanted)
Anyway, Have a nice weekend, AvK