package interface01;

message SimState {
	message Tuple3f {
		required float a1 = 1;
		required float a2 = 2;
		required float a3 = 3;
	}
	message Tuple2f {
		required float a1 = 1;
		required float a2 = 2;
	}

	message Bot {
		required Tuple2f pos = 1;
		required float   cost = 2;
		required Tuple3f angles = 3;
		required Tuple3f angvel = 4;
		required Tuple2f handpos = 5;
	}
	
	required Bot left = 1;
	required Bot right = 2;
	required Tuple2f ballpos = 3;
	required Tuple2f ballvel = 4;
	required float   ballcol = 5;
}

message Commands {
	message Command {
		required float torqueA = 1;
		required float torqueB = 2;
		required float torqueC = 3;
	}
	required Command left = 1;
	required Command right = 2;
}

