Upon connecting to the server, the client issues a message of the form -some arbitrary identifier- -the name of the problem to work on- the server will respond with -some number- -the times you can try the problem- -time limit- -turn limit- the client will then send to which the server responds -the count of how many rounds you've done- -that same number- at this point the client may do any calculations, as the clock is running. the server will give states like this (this will only appear if the goal has been met) -atoms- -values- an atom -the name of the predicate- -a term- (0 or more of these) -another term- a value -a term- (0 or more of these) -another term- the client responds with actions -the name of the action- -a term- (0 or more of these) -another term-