XML-TNS ::= "" [ACK | CMD] XML-TN DESCRIPTION ""(these are entity updates) | "" ACK XML-MAP DESCRIPTION "" | "" ACK VIEWPORT DESCRIPTION "" | "" ACK DESCRIPTION "" | "" ERROR DESCRIPTION "" ACK ::= "previous client command" CMD ::= "" (forced updates without a previous command from the client) ERROR ::= "previous client command" DESCRIPTION::= MSG | MSG ADM | MSG DBG | MSG DBG ADM | (empty) MSG ::= "" "message for user" "" ADM ::= "" "administrative message" "" DBG ::= "" "debug message" "" XML-TN ::= [ENTITY]+ | [EUPDATE]+ (entity behaviour change) | [EVCHANGE]+ (entity velocity change) | [ERCHANGE]+ (entity rotation change) ENTITY ::= "" ID XY [ BEHAVIOUR []* ]* "" (entity == ent) IMG ::= "" | "" embedded SVG "" EUPDATE ::= "" ID BEHAVIOUR "" EVCHANGE ::= "" ID V "" ERCHANGE ::= "" ID R "" ID ::= "" UNIQUEID "" BEHAVIOUR ::= "" string "" (bhr == behaviour) UNIQUEID ::= integer XML-MAP ::= "" "" ""integer""""integer"" "" [ENTITY]* "" VIEWPORT ::= "" "" integer "" "" integer "" "" V ::= "" float "" (in m/s) R ::= "" float "" (in radians) XY ::= "" integer "" "" integer ""