{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} {\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f4\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times;} {\f5\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;}{\f6\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Courier;}{\f7\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Geneva;} {\f8\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Tms Rmn;}{\f9\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Helv;}{\f10\froman\fcharset0\fprq2{\*\panose 00000000000000000000}MS Serif;} {\f11\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}MS Sans Serif;}{\f12\froman\fcharset0\fprq2{\*\panose 00000000000000000000}New York;}{\f13\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}System;} {\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f15\fswiss\fcharset0\fprq3{\*\panose 020b0604030504040204}Tahoma;}{\f16\froman\fcharset238\fprq2 Times New Roman CE;}{\f17\froman\fcharset204\fprq2 Times New Roman Cyr;} {\f19\froman\fcharset161\fprq2 Times New Roman Greek;}{\f20\froman\fcharset162\fprq2 Times New Roman Tur;}{\f21\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f22\fswiss\fcharset238\fprq2 Arial CE;}{\f23\fswiss\fcharset204\fprq2 Arial Cyr;} {\f25\fswiss\fcharset161\fprq2 Arial Greek;}{\f26\fswiss\fcharset162\fprq2 Arial Tur;}{\f27\fswiss\fcharset186\fprq2 Arial Baltic;}{\f28\fmodern\fcharset238\fprq1 Courier New CE;}{\f29\fmodern\fcharset204\fprq1 Courier New Cyr;} {\f31\fmodern\fcharset161\fprq1 Courier New Greek;}{\f32\fmodern\fcharset162\fprq1 Courier New Tur;}{\f33\fmodern\fcharset186\fprq1 Courier New Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0; \red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128; \red192\green192\blue192;}{\stylesheet{\widctlpar\adjustright \fs20\lang2057\cgrid \snext0 Normal;}{\s1\keepn\widctlpar\adjustright \b\fs20\ul\lang2057\cgrid \sbasedon0 \snext0 heading 1;}{\s2\keepn\widctlpar\adjustright \b\fs20\lang2057\cgrid \sbasedon0 \snext0 heading 2;}{\s3\keepn\widctlpar\adjustright \b\fs28\ul\lang2057\cgrid \sbasedon0 \snext0 heading 3;}{\*\cs10 \additive Default Paragraph Font;}{\s15\qc\widctlpar\adjustright \b\fs36\ul\lang2057\cgrid \sbasedon0 \snext15 Title;}{ \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid \sbasedon0 \snext16 Body Text;}{\s17\widctlpar\adjustright \f2\fs20\lang2057 \snext17 HTML Body;}{\s18\widctlpar\adjustright \f2\fs20\lang2057 \snext18 HTML Pre-tag;}}{\*\listtable {\list\listtemplateid2011885088\listsimple{\listlevel\levelnfc2\leveljc0\levelfollow0\levelstartat6\levelspace0\levelindent0{\leveltext\'03(\'00);}{\levelnumbers\'02;}\b\fbias0 \fi-720\li720\jclisttab\tx720 }{\listname ;}\listid367492953} {\list\listtemplateid-1448063806\listsimple{\listlevel\levelnfc2\leveljc0\levelfollow0\levelstartat6\levelspace0\levelindent0{\leveltext\'03(\'00);}{\levelnumbers\'02;}\fbias0 \fi-720\li720\jclisttab\tx720 }{\listname ;}\listid1345790446}} {\*\listoverridetable{\listoverride\listid1345790446\listoverridecount0\ls1}{\listoverride\listid367492953\listoverridecount0\ls2}}{\*\revtbl {Unknown;}{David Norman;}}{\info{\title DPP Message Syntax}{\author David Norman}{\operator David Norman}{\creatim\yr2006\mo4\dy3\hr8\min24} {\revtim\yr2006\mo4\dy3\hr8\min24}{\printim\yr2005\mo10\dy22\hr13\min50}{\version2}{\edmins0}{\nofpages4}{\nofwords9361}{\nofchars53360}{\*\company }{\nofcharsws65529}{\vern113}}\paperw11906\paperh16838\margl720\margr720\margt1080\margb1080 \widowctrl\ftnbj\aenddoc\revisions\hyphcaps0\formshade\viewkind4\viewscale100\pgbrdrhead\pgbrdrfoot \fet0\sectd \linex0\headery706\footery706\colsx709\endnhere\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2 \pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6 \pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \s15\qc\widctlpar\adjustright \b\fs36\ul\lang2057\cgrid {Diplomacy AI Development Environment Message Syntax \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Version 0.1}{\revised\revauth1\revdttm648090776 4}{\deleted\revauthdel1\revdttmdel648090776 3}{. Last updated }{\revised\revauth1\revdttm648288783 2}{\revised\super\revauth1\revdttm648288783\crauth1\crdate648288783 nd}{\revised\revauth1\revdttm648288783 April }{\deleted\revauthdel1\revdttmdel-1499310606 2}{\deleted\super\revauthdel1\revdttmdel-1499310606 nd}{\deleted\revauthdel1\revdttmdel648288783 }{\deleted\revauthdel1\revdttmdel-1499310605 January }{2006. \par \par The following document defines the language which will be used for communications between an AI and server, and for negotiation between two AIs, in the Diplomacy AI Development Environment project. Statements which use \ldblquote will\rdblquote , \ldblquote shall\rdblquote or \ldblquote must\rdblquote are mandatory, and must be observed. Statements which use \ldblquote may\rdblquote or \ldblquote can be\rdblquote are recommended, but cannot or will not be enforced. \par \par The syntax is split into a number of levels. Each level completely includes all previous levels. The levels are : \par \par Level 0 : No Press \par Level 10 : Peace and Alliances \par Level 20 : Order proposals \par Level 30 : Multipart Offers \par Level 40 : Sharing out the Supply Centres \par Level 50 : Nested Multipart Offers \par Level 60 : Queries and Insistences \par Level 70 : Requests for suggestions \par Level 80 : Accusations \par Level 90 : Future discussions \par Level 100 : Conditionals \par Level 110 : Puppets and Favours \par Level 120 : Forwarding Press \par Level 130 : Explanations \par \par All Bots must implement the commands in all levels \endash they should not assume that they will never be playing in a game that is above the level they are designed for. Where a Bot receives a message that is above its intended level, there is a response it can use to indicate this. \par \par The Diplomacy AI Development Environment Message Syntax is based on the structure and syntax of the DPP Language written by Danny Loeb. However, a significant number of changes have been made from the DPP Language in order to make it mo re powerful and more consistent. \par \par }\pard\plain \s1\keepn\widctlpar\outlinelevel0\adjustright \b\fs20\ul\lang2057\cgrid {Common terms \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par There are a number of terms which are used by a lot of commands. They are : \par \par Power \endash can be one of }{\b AUS, ENG, FRA, GER, ITA, RUS, TUR}{. These may be changed for variants other than Standard - see the }{\b MAP}{ token. \par }{\b \par }{Province \endash can be one of }{\b ADR, AEG, ALB, ANK, APU, ARM, BAL, BAR, BEL, BER, BLA, BOH, BRE, BUD, BUL, BUR, CLY, CON, DEN, EAS, ECH, EDI, FIN, GAL, GAS, GOB, GOL, GRE, HEL, HOL, ION, IRI, KIE, LON, LVN, LVP, MAO, MAR, MOS, MUN, NAF, NAO, NAP, NTH, NWG, NWY, PAR, PIC, PIE, POR, PRU, ROM, RUH, RUM, SER, SEV, SIL, SKA, SMY, SPA, STP, SWE, SYR, TRI, TUN, TUS, TYR, TYS, UKR, VEN, VIE, WAL, WAR, WES, YOR.}{ Alternative abbreviations must not be used. These may be changed for variants other than Standard - see the }{\b MAP}{ token. \par \par Coast \endash can be one of }{\b NCS, ECS, SCS, WCS. \par \par }{Season and Phase \endash can be one of }{\b SPR }{(Spring Moves), }{\b SUM}{ (Spring retreats), }{\b FAL}{ (Fall Moves), }{\b AUT }{(Fall retreats), }{\b WIN }{(Adjustments). \par \par Unit type \endash can be one of }{\b AMY, FLT. \par \par }\pard\plain \s1\keepn\widctlpar\outlinelevel0\adjustright \b\fs20\ul\lang2057\cgrid {Notation \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par In the text, anything in [square brackets] may be omitted. \par \par Anything which is specified twice followed by a line of dots \'85 may be repeated any number of times (including once, but not including not at all unless it is also in [square brackets]. \par \par Any (round brackets) are part of the syntax of the language. \par \par }{\b\ul Internal Representation \par }{\ul \par Internally, all tokens are represented as a 16-bit value. Details of the value for each token are provided in the Client-Server Protocol Document. Conversion between 16-bit values and text can be don e. All text versions of the tokens are 3 characters long, alphabetic only, and not case-sensitive. \par }{ \par }\pard\plain \s1\keepn\widctlpar\outlinelevel0\adjustright \b\fs20\ul\lang2057\cgrid {\fs28 Level 0 : No Press \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par In this section, we just have the syntax required for getting a game up and running, ordering, retrieving results, and general game management. \par \par }{\b\ul (i) Starting the game. \par }{ \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {NME ('name') ('version') \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par This should be sent by the AI to the server as soon as it has connected. It contains the name and version of the AI. Both }{\b name}{ and }{\b version}{ are text fields. They may any printable character. The Server will respond with }{\b YES(NME('name') ('version'))}{, or }{\b REJ (NME ('name') ('version'))}{ if the game has already started. \par \par The name and version are stored by the Server, for storing game records when the game ends. It is not possible for an AI to request information about which AI is playing each power. \par \par }\pard\plain \s2\keepn\widctlpar\outlinelevel1\adjustright \b\fs20\lang2057\cgrid {OBS \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par This is sent by the AI to the server in place of }{\b NME}{, to indicate that the connected AI is actually just an observer, and doesn\rquote t wish to take part in the game. Observers are informed of the game progress as turns process, but do not take any part in the game. The server will respond with }{\b YES (OBS)}{. \par \par }{\b IAM}{ }{\b (power) (passcode)}{ \par \par This is sent by the AI to the server in place of }{\b NME}{, to indicate that the AI is rejoining the game following a loss of connection. }{\b Passcode}{ is the passcode which was sent to the AI by the server in the original }{\b HLO}{ message at the start of the game. The server will reply with }{\b YES (IAM (power) (passcode)) }{if the takeover is allowed, or }{\b REJ (IAM (power) (passcode)) }{if the passcode is wrong , the game is not waiting for a replacement of the specified power, or the game has not started. Following a successful }{\b IAM}{ message, a }{\b MAP}{ and }{\b HLO }{ message are NOT sent. The AI is straight into the game where it left off. Note that there may have been messages which were lost as the connection broke. These messages will not be resent on reconnection. \par \par Until a successful }{\b NME}{, }{\b OBS}{ or }{\b IAM}{ message has been received, the client will be treated the same as an observer, except that if the game is in progress, no results messages (}{\b ORD}{, }{\b NOW}{ and }{\b SCO}{) will be sent. \par \par }{\b MAP ('name')}{ \par \par Once the AI has joined the game, the }{\b MAP}{ token is sent to specify the map which is to be used, as soon as the }{\b HLO}{ or }{\b OBS}{ has been received and acknowledged. The name is unique to the map - so i f the AI has played a game on a map with this name before, then this will be the same map again. The Standard map is called 'standard'. }{\b name}{ can include only letters, numbers and underscore. Map names are not case sensitive. \par \par The AI may request another copy of the }{\b MAP}{ message at any time, by sending }{\b MAP}{ with no parameters. \par \par The AI should respond with }{\b YES (MAP ('name'))}{ if it is to play on the map, or }{\b REJ (MAP ('name'))}{ if the AI can not cope with the requested map. \par \par If the AI does not know the map, then instead of replying with }{\b YES (MAP ('name')) }{or }{\b REJ (MAP ('name'))}{, it can request the map definition with : \par \par }{\b MDF}{ \par \par The server will reply with the map definition of the form : \par \par }{\b MDF (powers) (provinces) (adjacencies) \par \par (powers)}{ is the list of powers. e.g. }{\b (AUS ENG FRA GER ITA RUS TUR)}{. \par \par }{\b (provinces)}{ is the list of provinces. This is broken further into two sections - }{\b ((supply centres) (non supply centres))}{. \par }{\b (supply centres)}{ is of the form }{\b ( (power centre centre \'85) (power centre centre \'85) \'85)}{ where }{\b centre}{ is a supply centre province, and }{\b power}{ is the power which the centre is a home centre for. }{\b power}{ is }{\b UNO}{ for neutral supply centres. Also, in the unusual case of a variant where a supply centre is a home centre for two or more powers, }{\b power}{ may be of the form }{\b (power power \'85)}{ . Note that the home centres are the locations where a power may build new units, but are not necessarily the location where the units start the game. \par }{\b (non supply centres)}{ is the list of all non-supply-centre provinces. \par \par }{\b (adjacencies)}{ is the list of what is next to what. It is of the form }{\b ((prov_adj) (prov_adj) ...)}{. \par \par }{\b (prov_adj)}{ is of the form }{\b (province (unit_type adj_prov adj_prov ...) (unit_type adj_prov adj_prov ...) ...)}{. \par \par }{\b unit_type}{ is one of : \par \par }{\b AMY}{ - list of provinces an army can move to \par }{\b FLT}{ - list of provinces a fleet can move to \par }{\b (FLT coast)}{ - list of provinces a fleet can move to from the given coast. \par \par }{\b adj_prov}{ is one of : \par \par }{\b province}{ - a province which can be moved to \par }{\b (province coast)}{ - a coast of a province that can be moved to. \par \par You can tell the type of province from its adjacencies. An inland province only has army adjacencies. A sea province only has fleet adjacencies. A coastal province has both. A multi-coastal province has entries for each coast. \par \par Note that for a land province surrounded by sea, there will be an }{\b AMY}{ entrance with no provinces listed. \par \par So, the map for Standard would (with some provinces skipped, and carriage returns added for clarity) : \par \par }{\b MDF (AUS ENG FRA GER ITA RUS TUR) \par (((AUS TRI BUD VIE) (ENG LON LVP EDI) ... (UNO POR SPA TUN BEL HOL ...)) (ADR AEG ALB APU ...)) \par ((ANK (FLT ARM BLA CON) (AMY CON SMY ARM)) \par (ADR (FLT ION ALB TRI VEN APU)) \par (CON (AMY BUL SMY ANK) (FLT BLA (BUL ECS) (BUL SCS) AEG SMY ANK)) \par (BUL (AMY GRE SER RUM CON) ((FLT ECS) RUM BLA CON) ((FLT SCS) CON AEG GRE)) \par (BOH (AMY TYR MUN SIL GAL VIE)) \par \'85) \par }{ \par No map will ever contain a province abbreviation which is also has a defined meaning in the Diplomacy AI Development Environment syntax, except that the tokens for provinces and powers on the Standard map may be reused on variant maps. \par \par No map will ever contain more than 256 provinces. \par \par Once the AI has received the Map Definition, it should then reply with }{\b YES (MAP ('name')) }{if it is able to use the map, or }{\b REJ (MAP ('name'))}{ if it is not. If the AI wishes to do som e processing on the map before the game starts, then it should do this before sending }{\b YES (MAP ('name'))}{. \par \par The AI can send the }{\b NOW}{ and }{\b SCO}{ commands to the Server to determine the supply centre ownership and starting positions for the variant. See below for details. \par \par Note that for some variants, the map name may be different, but the actual map is the same as another variant (for example, for Fleet Rome). When this occurs, it can not be assumed that the supply centre ownership and starting positions will be the same as for the other variants which use the same (but differently named) map. \par \par On all maps, the condition for a solo is having more than half the supply centres in the game. So for a map which has 34 or 35 centres, the victory condition is 18 centres. \par \par }\pard\plain \s2\keepn\widctlpar\outlinelevel1\adjustright \b\fs20\lang2057\cgrid {HLO (power) (passcode) (variant) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par The Server sends this to each client when the game starts. }{\b power }{is the power to be played by this AI, or UNO for an observer. }{\b passcode}{ is an integer value which is required to rejoin the game. }{\b variant }{is of the form }{\b (va riant option) (variant option)\'85}{, and contains}{\b }{the details of any options for the game. \par \par e.g. }{\b HLO (ENG) (1234)}{ }{\b ((LVL 20) (MTL 1200)) \par }{ \par You are England. Your passcode is 1234. This is a level 20 game, with 20 minutes (1200 seconds) per movement turn. \par \par }{\b variant option}{ can be any of the following : \par \par }{\b LVL n}{ \endash game is of syntax level n. This variant option will always be specified. \par \par }{\b MTL seconds}{ \endash maximum number of seconds available for movement turns. If not specified, there is no time limit. \par \par }{\b RTL seconds}{ \endash maximum number of seconds available for retreat turns. If not specified, there is no time limit. \par \par }{\b BTL seconds}{ \endash maximum number of seconds available for build turns. If not specified, there is no time limit. \par \par }{\b DSD}{ - deadline stops on disconnection. If a client disconnects when it has orders due, the deadline timer stops. \par \par }{\b AOA}{ \endash Any orders accepted. Any orders which match the syntax for an order, and are for a unit owned by the AI sending the order, will be accepted, whether they are legal or not. If not specified, th en only orders which could be valid will be accepted. \par \par The variant options will always be specified in the order they appear in this document. \par \par The AI can send the command }{\b HLO}{ to the server with no arguments at any time. The server will reply by sending another copy of the }{\b HLO }{message, or }{\b REJ(HLO)}{ if the game hasn\rquote t started. \par \par }{\b\ul (ii) Current Position}{\ul \par }{ \par }\pard\plain \s2\keepn\widctlpar\outlinelevel1\adjustright \b\fs20\lang2057\cgrid {SCO (power centre centre\'85) (power centre centre\'85) \'85 \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par This is sent from the Server to each AI at the start of the game, and after each Fall Retreat turn (or Fall Movement turn if there are no retreats). It indicates the current supply centre ownership. Unowned centres are listed against the power name }{\b UNO}{. E.g. at the start of the game : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {SCO (AUS BUD TRI VIE) (ENG LPL EDI LON) (FRA BRE MAR PAR) (GER KIE BER MUN) (ITA ROM NAP VEN) (RUS STP MOS WAR SEV) (TUR ANK CON SMY) (UNO NWY SWE DEN HOL BEL SPA POR TUN GRE SER RUM BUL) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par }{The AI can send the command }{\b SCO }{to the server with no arguments at any time. The server will reply by sending another copy of the latest }{\b SCO }{message, or }{\b REJ(SCO)}{ if the game hasn\rquote t started. \par \par }\pard\plain \s2\keepn\widctlpar\outlinelevel1\adjustright \b\fs20\lang2057\cgrid {NOW (turn) (unit) (unit) \'85 \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par }{This is sent from the server to the AI at the start of the game, and after every turn. It indicates the current turn, and the current unit positions. E.g. at the start of the game : \par \par }\pard\plain \s2\keepn\widctlpar\outlinelevel1\adjustright \b\fs20\lang2057\cgrid {NOW (SPR 1901) (AUS FLT TRI) (AUS AMY BUD) (AUS AMY VIE) (ENG FLT LON) \'85 \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Units in bicoastal provinces have a province and coast bracketed together. E.g. : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {(RUS FLT (STP SCS)) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Before a retreat turn, units may have a list of retreat options, prefixed by }{\b MRT}{ (Must retreat to). E.g. \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {(ENG FLT NTH MRT (LON YOR EDI NWG)) \par }{\b0 \par If you have no possible retreats, then the unit will still be listed, and you still must order the disband. E.g. \par }{ \par (ENG FLT NTH MRT ()) \par \par }{\b0 Retreat options will include a coast if a fleet can retreat to a multi-coastal province. e.g. \par \par }{(TUR FLT CON MRT (BLA SMY (BUL ECS) (BUL SCS))) \par }{\b0 \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {The AI can send the command }{\b NOW }{to the server with no arguments at any time. The server will reply by sending another copy of the latest }{\b NOW }{message, or }{\b REJ(NOW)}{ if the game hasn\rquote t started. \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {\b0 \par }{HST (turn) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par }\pard\plain \s16\widctlpar\tx1440\adjustright \b\fs20\lang2057\cgrid {\b0 Any previous turn\rquote s results may be requested by sending an }{HST }{\b0 command to the server with the turn as a parameter (e.g. }{HST(SPR 1901)}{\b0 ). The server will reply by sending the }{ORD }{\b0 messages for that phase, followed by }{SCO}{\b0 and }{NOW}{\b0 messages to give the position after the turn requested. }{SCO }{\b0 will be sent after every }{HST}{\b0 command, not just those where supply centre ownership changes. }{REJ (HST (turn)) }{\b0 is sent if the requested turn doesn\rquote t exist. \par \par }\pard \s16\widctlpar\adjustright {\ul (iii) Submitting orders \par }{ \par SUB (order) (order) \'85 \par \par }{\b0 This is sent from the AI to the server, to submit orders for the next turn. }{order }{\b0 can take the following form : \par \par }\pard \s16\widctlpar\tx5040\adjustright {\b0 Movement phase orders. \par }{(unit) HLD\tab }{\b0 Hold \par }{(unit) MTO province\tab }{\b0 Move \par }{(unit) SUP (unit)\tab }{\b0 Support to hold \par }{(unit) SUP (unit) MTO prov_no_coast\tab }{\b0 Support to move \par }{(unit) CVY (unit) CTO province\tab }{\b0 Convoy \par }{(unit) CTO province VIA (sea_province sea_province \'85)\tab }{\b0 Move by convoy \par \par Retreat phase orders \par }{(unit) RTO province\tab }{\b0 Retreat to \par }{(unit) DSB\tab }{\b0 Retreat off the board \par }{ \par }{\b0 Build phase orders \par }{(unit) BLD\tab }{\b0 Build unit \par }{(unit) REM\tab }{\b0 Remove unit \par }{power WVE\tab }{\b0 Waive build \par }\pard \s16\widctlpar\tx4320\adjustright {\b0 \par }{unit}{\b0 is a unit, and must be in the form as given by the }{NOW}{\b0 command \endash i.e. }{power type province}{\b0 \endash e.g. }{ENG FLT LON}{\b0 . \par }{province }{\b0 is any province. For a fleet moving to a province with multiple coasts (Spain, StP or Bul in Standard), it must be of the form }{(province coast)}{\b0 . \par }{prov_no_coast}{\b0 is a province with no coast specification. \par }{sea_province}{\b0 is a province where a fleet may be to convoy. \par \par Examples: \par \par }{SUB ((ENG AMY LVP) HLD) ((ENG FLT LON) MTO NTH) ((ENG FLT EDI) SUP (ENG FLT LON) MTO NTH) \par \par SUB ((ENG FLT BAR) MTO (STP NCS)) ((ENG FLT NWY) SUP (ENG FLT BAR) MTO STP) \par \par SUB ((ITA AMY TUN) CTO SYR VIA (ION EMS)) ((ITA FLT ION) CVY (ITA AMY TUN) CTO SYR) ((ITA FLT EMS) CVY (ITA AMY TUN) CTO SYR) \par \par SUB ((ENG AMY YOR) CTO NWY VIA (NTH)) ((ENG FLT NTH) CVY (ENG AMY YOR) CTO NWY) ((ENG FLT NWG) SUP (ENG AMY YOR) MTO NWY) \par \par SUB ((ITA FLT NAP) BLD) \par \par SUB ((RUS FLT GOB) REM) \par \par }{\b0 All unused builds must be waived, even if they are unusable. \par \par The Server will reply to each order (not each message), in left to right order through the orders, with a }{THX}{\b0 message. This is of the format : \par \par }{THX (order) (note)}{\b0 \par \par }{order}{\b0 is the order as submitted. }{note}{\b0 is one of the following : \par \par }\pard \s16\widctlpar\tx1440\adjustright {MBV}{\b0 \tab Order is OK. \par }{FAR}{\b0 \tab Not adjacent. \par }{NSP}{\b0 \tab No such province \par }{NSU}{\b0 \tab No such unit \par }{NAS}{\b0 \tab Not at sea (for a convoying fleet) \par }{NSF}{\b0 \tab No such fleet (in }{VIA}{\b0 section of }{CTO }{\b0 or the unit performing a}{ CVY}{\b0 ) \par }{NSA}{\b0 \tab No such army (for unit being ordered to }{CTO}{\b0 or for unit being }{CVY}{\b0 ed) \par }{NYU}{\b0 \tab Not your unit \par }{NRN\tab }{\b0 No retreat needed for this unit \par }{NVR\tab }{\b0 Not a valid retreat space \par }{YSC}{\b0 \tab Not your supply centre \par }{ESC\tab }{\b0 Not an empty supply centre \par }{HSC}{\b0 \tab Not a home supply centre \par }{NSC}{\b0 \tab Not a supply centre \par }{CST}{\b0 \tab No coast specified for fleet build in StP, or an attempt to build a fleet inland, or an army at sea. \par }{NMB}{\b0 \tab No more builds allowed \par }{NMR}{\b0 \tab No more removals allowed \par }{NRS}{\b0 \tab Not the right season \par }\pard \s16\widctlpar\tx4320\adjustright {\b0 \par Alternatively it will reply with }{REJ (SUB (order) (order) ... )}{\b0 if the game has not started. \par \par Any order which receives a note other than }{MBV}{\b0 has been rejected by the server, and a corrected order should be submitted in its place. \par \par Movement and retreat orders can be changed by giving a new order for a unit. Builds and retreats can be cancelled by ordering }{NOT (SUB (order))}{\b0 . The Server will reply to this with }{YES (NOT (SUB (order)))}{\b0 , or }{REJ (NOT (SUB (order)))}{\b0 if the order cannot be cancelled. Alternatively, an entire turns orders can be cleared with }{NOT (SUB)}{\b0 , which the Server will reply to with }{YES (NOT (SUB))}{\b0 . \par \par }{MIS (unit) (unit) \'85 \par MIS (unit MRT (province list)) (unit MRT (province list)) \'85 \par MIS (number) \par \par }{\b0 This command can be sent by the Server immediately after the last }{THX}{\b0 message following a }{SUB}{\b0 command. If sent, it indicates that it does not have a full set of orders. The first form is used during a movement phase, and indicates the list of units which have not been ordered. The second form is used during a retreat phase, and indicates the list of dislodged units which have not been ordered. The third form is used during a build phase. If }{number}{\b0 is positive, it indicates that you must order that many more disbands. If }{number}{\b0 is negative, it indicates that you must order that many more builds. \par \par The first two forms of the }{MIS}{\b0 command use exactly the same parameter format as the }{NOW}{\b0 command. \par \par The AI may request a copy of the current }{MIS}{\b0 command by sending }{MIS}{\b0 with no parameters. The server will respond with }{REJ (MIS)}{\b0 if the game has not started or has ended. If there are no outstanding orders, then the Server will reply with }{MIS}{\b0 with no parameters. \par \par }{NOT(GOF)}{\b0 \par \par This is sent by the AI to the server. It means don\rquote t process orders until the deadline. It is the equivalent of set wait on the judges. The server will reply with }{YES(NOT(GOF))}{\b0 , or }{REJ(NOT(GOF))}{\b0 if the game has not started, the power has been eliminated, or the game has ended.. \par }{ \par GOF}{\b0 \par \par Go ahead and process orders when everybody is in. Server will reply with }{REJ(GOF) }{\b0 if the game has not started or has ended, or }{YES(GOF)}{\b0 if everything is OK. It will immediately follow this with }{MIS(\'85) }{\b0 (as when an incomplete set of orders is submitted \endash see }{SUB}{\b0 ) if not all orders are in for this player. \par \par If you do not send }{GOF}{\b0 or }{NOT(GOF)}{\b0 during the turn, the server will assume you are ready to process as soon as you have submitted a complete set or orders (i.e. }{GOF}{\b0 is assumed each turn). \par \par }{\ul (iv) Results \par }{ \par ORD (turn) (order) (result) \par }{\b0 \par This is sent by the Server when the turn has processed.}{ turn }{\b0 is the turn which has just processed. \par \par }{order }{\b0 is an order submitted by a player. One }{ORD}{\b0 message is sent per unit for a movement phase, one per retreat for a retreat phase, and one per build/disband/waive for a build phase . It has exactly the same format as in the }{SUB}{\b0 and }{THX}{\b0 commands. \par \par }{result }{\b0 is the result of the order. It can be one of the following : \par \par }\pard \s16\fi-1440\li1440\widctlpar\tx1440\adjustright {SUC}{\b0 \tab Order succeeded \par }{BNC}{\b0 \tab Move bounced \par }{CUT}{\b0 \tab Support cut \par }{DSR}{\b0 \tab Move via convoy failed due to dislodged convoying fleet \par }{NSO}{\b0 \tab No such order (for a support, convoying fleet, or convoyed army) \par }\pard \s16\widctlpar\tx1440\adjustright {\b0 \par In addition, a second token may be included : \par \par }{RET}{\b0 \tab Unit was dislodged and must retreat. \par \par In the case of a unit which was convoying or holding, }{RET}{\b0 may be the only token. \par \par Retreat orders will always have a }{result}{\b0 of }{SUC }{\b0 or}{ BNC}{\b0 . }{BNC}{\b0 indicates the unit was destroyed by a bounced retreat. \par \par Build orders will always have a }{result}{\b0 of }{SUC}{\b0 . \par \par Waived builds are reported as }{(power WVE)}{\b0 for the order. E.g. : \par \par }{ORD (WIN 1901) (RUS WVE) (SUC)}{\b0 \par \par If a power waives multiple builds, then multiple waive }{ORD }{\b0 messages are sent. \par \par When the turn processes, the series of }{ORD}{\b0 messages will be immediately followed by a }{SCO}{\b0 (if the centre ownership has just been updated) and a }{NOW}{\b0 message. The }{NOW}{\b0 message will always be the last message in this sequence. \par \par Turns may be skipped (e.g. a retreat turn where nobody has any retreats). The }{NOW}{\b0 message indicates which is the next turn. \par \par The previous turn\rquote s results may be requested by sending an }{ORD}{\b0 command to the server with no parameters. The server will reply by resending the last movement turn\rquote s }{ORD}{\b0 message, and any subsequent Retreat or Build }{ORD}{\b0 messages, or }{REJ(ORD)}{\b0 if the game has not started or the first turn has not yet processed. \par \par }{\ul (v) Saving and Loading a game \par }{ \par SVE ('gamename') \par \par }{\b0 The Server can send this at any point. It is a request for the AI to save the current game with the name given. }{gamename }{\b0 will never be more than 8 characters, and can include only letters, numbers and underscore. Game names are not case sensitive. The AI should save everything it will need in order to be able to resume the game at a later date. Once the game is saved, the AI should respond with }{YES (SVE ('gamename'))}{\b0 . If there is an error saving the game, then it should respond with }{REJ (SVE ('gamename')). }{\b0 Once the game has been saved, the AI should continue playing. \par \par }{LOD ('gamename')}{\b0 \par \par The server can send this to the AI instead of sending a }{HLO}{\b0 message. It indicates that the game specified is to be loaded and restarted, rather than a new game started. See }{SVE}{\b0 for details of }{gamename}{\b0 . The AI should load the game and then respond with an }{IAM}{\b0 command (as detailed above), and then start playing from the loaded position. If the game can not be reloaded (e.g. because a game with that na me has never been saved), then it should respond with }{REJ (LOD ('gamename'))}{\b0 . \par \par If an AI fails to reload the game, then the game will be started and the AI in question will immediately be placed in CD. \par \par Note that the AI does not need to store the current game position, as it can immediately send the commands }{HLO}{\b0 , }{NOW}{\b0 , }{SCO}{\b0 , and }{ORD}{\b0 to find out the state of the game. All that needs to be stored, is the power being played, the passcode as provided by the }{HLO}{\b0 command, and details of past press and alliances that the AI wishes to store. \par \par }{OFF}{\b0 \par \par This command is sent by the Server, and indicates that the AI should exit. The AI should exit without replying. \par \par }{\ul (vi) Deadlines}{\b0\ul \par }{\b0 \par }{TME (seconds)}{\b0 \par \par This message is sent by the server, in games where there is a time limit for the turn. It indicates the number of seconds until the next deadline. It is sent immediately after each turn has processed (i.e. after the }{ORD}{\b0 , }{SCO }{\b0 (where appropriate)}{,}{\b0 and }{NOW}{\b0 messages). \par \par In addition, the AI can request }{TME}{\b0 to be sent at other times. To do this, the AI sends }{TME (seconds)}{\b0 to the server. The server responds with }{YES(TME (seconds))}{\b0 to confirm this, or }{REJ(TME (seconds))}{\b0 if }{seconds}{\b0 is negative, or is longer than the length of the longest deadline, or if there are no deadlines. The server will then send }{TME (seconds)}{\b0 to the AI, }{seconds }{\b0 seconds before the deadline, every turn. \par \par Having requested a }{TME}{\b0 message, the AI can cancel it with the message }{NOT(TME(seconds))}{\b0 . The server will respond with }{YES(NOT(TME(seconds)))}{\b0 to confirm it has been cancelled, or }{REJ(NOT(TME(seconds)))}{\b0 if there was no such time request. Alternatively the AI can send }{NOT(TME)}{\b0 to request that all }{TME}{\b0 requests are cancelled. This will always be responded to with }{YES(NOT(TME))}{\b0 . \par \par Also, the AI can send the message }{TME}{\b0 with no parameters. The Server will respond with }{TME (seconds)}{\b0 where }{seconds}{\b0 is the time to the next deadline, or }{REJ (TME)}{\b0 if there are no deadlines. \par \par The AI should not acknowledge the }{TME}{\b0 message from the server. \par \par }{\ul (vii) Errors and Failures}{\b0\ul \par }{\b0 \par }{PRN}{\b0 }{(message)}{\b0 \par \par This message is sent from the server to the AI, and indicates that }{message}{\b0 was received from the AI by the server, but does not have a correct set of parentheses. The }{PRN}{\b0 message will also not have matching parentheses. The AI should cope with this. No reply should be sent to the server. \par \par }{HUH (message)}{\b0 \par \par This message is sent from the server to the AI, and means that the server determined that }{message }{\b0 had a syntax error in it. The token }{ERR}{\b0 is inserted into the message immediately before the first offending token. \par \par This error can also be caused by trying to use a form of the Diplomacy AI Development Environment syntax which is not available at the syntax level for the current game. \par \par The }{PRN}{\b0 and }{HUH}{\b0 messages may also be sent from the AI to the Server, if the AI believes that a message from the server is incorrectly bracketed, or contains illegal syntax. }{\b0\revised\revauth1\revdttm648090776 However, the Server and the AI must not send }{\revised\revauth1\revdttm648090776 HUH}{\b0\revised\revauth1\revdttm648090776 or }{\revised\revauth1\revdttm648090776 PRN}{\b0\revised\revauth1\revdttm648090776 in response to a }{ \revised\revauth1\revdttm648090776 HUH }{\b0\revised\revauth1\revdttm648090776 or }{\revised\revauth1\revdttm648090776 PRN}{\b0\revised\revauth1\revdttm648090776 message.}{\b0 \par \par }{CCD (power)}{\b0 \par \par This message is sent from the server to the AI, and indicates tha t the specified power has been declared to be in Civil Disorder. This will normally happen because either the power failed to get its orders in by the deadline, or because the TCP/IP connection to the AI has been broken. If the power returns, the server w ill send the command }{NOT(CCD(power)) \par \par }{\b0 If the game is of the }{DSD}{\b0 variant, then when a power disconnects which has not yet submitted orders, then server sends }{NOT(TME( seconds ))}{\b0 immediately after the }{CCD}{\b0 message to indicate that the deadline timer has stoppe d, and sends }{TME( seconds )}{\b0 following the }{NOT(CCD( power ))}{\b0 message when the timer restarts. \par }{ \par }{\ul (viii) Admin Messages}{\b0 \par \par }{ADM ('name') ('message')}{\b0 \par \par This message is sent from the Client to the Server, and contains an admin message - i.e. a message to do with the running of the game (e.g. I'm having connection problems, or Server going down, or I have to leave shortly). It can be sent by any client - player or observer, and can be sent before, during or after the game. It should not be used for negotiation. The S erver will forward the message to every client. The Server may be configured to refuse Admin messages, in which case it will reply to the Client with }{REJ (ADM ('name') ('message'))}{\b0 . \par }{ \par }{\ul (ix) End of the game \par }{ \par SLO (power) \par \par }{\b0 This command is sent from the server to the AI, and indicates that the game has ended due to a solo by the specified power. It is sent after the SCO message and before the NOW message. \par }{ \par DRW}{\b0 \par \par This command is sent by the AI to the server, to indicate that the AI would accept a DIAS draw at this point. The server responds with }{YES(DRW)}{\b0 , or }{REJ(DRW)}{\b0 if the game has not started. \par \par }{DRW}{\b0 can also be sent from the server to the AI, to indicate that a draw has been declared. This will happen as soon as all non-eliminated AIs have simultaneously indicated that they will accept a draw at that point. \par \par If a turn processes after }{DRW}{\b0 is sent from the AI to the server, then the command is ignored. The AI must resend the command each turn it continues to want a draw. \par \par If the AI changes its mind, it can clear it\rquote s request for a draw with }{NOT(DRW)}{\b0 . The server will respond with }{YES(NOT(DRW))}{\b0 , or }{REJ(NOT(DRW))}{\b0 if the game has not started. \par \par }{SMR (turn) (power (\lquote name\rquote ) (\lquote version\rquote ) centres [year_of_elimination] ) (power (\lquote name\rquote ) (\lquote version\rquote ) centres [year_of_elimination] ) \'85 \par }{\b0 \par The message is sent from the Server to the AI immediately after the }{SLO}{\b0 or }{DRW}{\b0 message, and informs the AI as to who was playing each power. }{centres}{\b0 is the number of centres held by the AI at the end of the game. If this is 0 then }{year_of_elimination}{\b0 is included, and is the year that the AI dropped to 0 centres. \par \par }\pard\plain \s1\keepn\widctlpar\outlinelevel0\adjustright \b\fs20\ul\lang2057\cgrid {\fs28 Level 10 : Peace and Allies \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par In this level, we add some very basic press between AIs. \par \par }{\b\ul (i) Extending the HLO command.}{\ul \par }{ \par In addition to the previous }{\b variant}{ }{\b options}{, the following may also be given at the start of the game : \par \par }{\b PDA}{ \endash Partial draws are allowed (i.e. NoDIAS). \par \par }{\b NPR}{ \endash No press during retreat phases \par \par }{\b NPB}{ \endash No press during build phases \par \par }{\b PTL seconds}{ \endash number of seconds before a movement deadline that all press between powers must stop. If not specified, then 0. \par \par }{\b\ul (ii) Extending the DRW command}{\ul \par }{ \par In a }{\b PDA}{ variant game, the AI can send the }{\b DRW}{ command with a parameter \endash the list of powers in the draw : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {DRW (}{\revised\revauth1\revdttm-1499310603 power }{power power \'85) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par }{If all surviving powers submit a }{\b DRW}{ command with the same list of powers on the same turn, then a draw is immediately declared including those powers. \par \par Multiple }{\b DRW}{ commands may be submitted, each one does }{\ul not}{ supersede previous }{\b DRW}{ messages. Instead it adds an additional draw combination which the power will accept. \par \par The Server will respond to each }{\b DRW }{message with }{\b YES(DRW(power }{\b\revised\revauth1\revdttm-1499310603 power }{\b power \'85))}{, or }{\b REJ(DRW(power }{\b\revised\revauth1\revdttm-1499310603 power }{\b power \'85))}{ if the game has not started, or if the list of powers includes an eliminated power. \par \par When a draw is declared in a }{\b PDA}{ variant game, the draw message includes a parameter \endash the list of powers in the agreed draw. \par \par You may still send a }{\b DRW}{ command without a parameter in a }{\b PDA}{ game \endash it is the same as sending a }{\b DRW}{ command listing all surviving powers. \par \par You can cancel a partial draw request with }{\b NOT (DRW (power }{\b\revised\revauth1\revdttm-1499310603 power }{\b power \'85))}{. \par \par }{\b\ul (iii) Sending and Receiving Press \par }{\b \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {SND }{\deleted\revauthdel1\revdttmdel-962327093 (message_id) }{(power power \'85) (press_message) }{\deleted\revauthdel1\revdttmdel-962327093 [WRT (power message_id) (power message_id) \'85]} { \par SND }{\deleted\revauthdel1\revdttmdel-962327093 (message_id) }{(power power \'85) (reply)}{\deleted\revauthdel1\revdttmdel-962327093 WRT (power message_id) (power message_id) \'85}{ \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par These are sent by the AI to the server, to send }{\b press_message}{ to the list of }{\b country}{s given. The recipient list }{\deleted\revauthdel1\revdttmdel-962327093 must }{\revised\revauth1\revdttm-962327093 should }{not include the sending power. }{ \b\deleted\revauthdel1\revdttmdel-962327093 message_id}{\deleted\revauthdel1\revdttmdel-962327093 is an integer value selected by the sending AI. The }{\b\deleted\revauthdel1\revdttmdel-962327093 (power message_id)}{ \deleted\revauthdel1\revdttmdel-962327093 list following }{\b\deleted\revauthdel1\revdttmdel-962327093 WRT }{\deleted\revauthdel1\revdttmdel-962327093 is the s ending power and message_id of the message(s) which this is a reply to. Some messages are always sent as replies, and so the }{\b\deleted\revauthdel1\revdttmdel-962327093 WRT}{\deleted\revauthdel1\revdttmdel-962327093 section is compulsory. In this case, the reference to the message it is a reply to should be the first in the list. For others, it is optional. }{The message sent applies to the current turn, unless indicated otherwise by the contents of the message. \par \par The server will reply with one of the following : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {CCD (power) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par }{\b power }{is in CD, and so can not receive press. If multiple powers are listed in the }{\b SND}{ command, and you receive a }{\b CCD}{ reply, then the message has not been sent to anybody (including the ones that are not in}{\b }{civil disorder). \par \par }\pard\plain \s16\widctlpar\tx1440\adjustright \b\fs20\lang2057\cgrid {OUT (power) \par \par power}{\b0 has been eliminated from the game. If multiple powers are listed in the }{SND}{\b0 command, and you receive a }{OUT }{\b0 reply, then the message has not been sent to anybody (including the ones that have not been eliminated). \par \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b HUH (SND (power power \'85) (press_message)) \par \par }{Syntax of the }{\b SND}{ message is illegal. This may be a genuine syntax error, or it may be because }{\b press_message}{ contains a token which is not allowed at the language level of the game. }{\b ERR}{ is inserted immediately before the first token to cause an error. See }{\b HUH}{ in Level 0 for details. \par \par }{\b REJ (SND (power power \'85) (press_message)) \par }{ \par Either the game has not started, or it is a retreat phase in a }{\b NPR}{ variant game, or a build phase in a }{\b NPB}{ variant game, or the sending power has been eliminated. \par \par }{\b YES (SND (power power \'85) (press_message)) \par \par }{The message was sent successfully. \par \par When the message is sent successfully, the target AIs will receive the message in one of the following forms : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {FRM (power}{\deleted\revauthdel1\revdttmdel-962327092 message_id}{) (power power \'85) (press_message)}{\revised\revauth1\revdttm-962327092 \par }\pard \s16\widctlpar\pnrnot1\adjustright {\deleted\revauthdel1\revdttmdel-962327092 [WRT (power message_id) (power message_id) \'85] \par }\pard \s16\widctlpar\adjustright {FRM (power}{\deleted\revauthdel1\revdttmdel-962327092 message_id}{) (power power \'85) (reply)}{\deleted\revauthdel1\revdttmdel-962327092 WRT (power message_id) (power message_id) \'85}{ \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par }{The first }{\b power}{ is the power which sent the message}{\deleted\revauthdel1\revdttmdel-962327092 , and the }{\b\deleted\revauthdel1\revdttmdel-962327092 message_id}{\deleted\revauthdel1\revdttmdel-962327092 provided by that power}{. The }{\b power }{list}{\deleted\revauthdel1\revdttmdel-962327092 ,}{\revised\revauth1\revdttm-962327092 and}{ the }{\b press_message}{ }{\deleted\revauthdel1\revdttmdel-962327092 and the }{\b\deleted\revauthdel1\revdttmdel-962327092 WRT }{ \deleted\revauthdel1\revdttmdel-962327092 information }{are as in the }{\b SND}{ command. \par \par We have now covered every command in the Diplomacy AI Development Environment syntax. The remainder of this document covers the contents of }{\b press_message}{ and }{\b reply}{. \par \par }{\b\ul (iv) Proposing an Offer \par }{\b \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {press_message = PRP (offer) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par This indicates that the sending power is proposing an offer. }{\b offer }{can be in one of three forms : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {offer = PCE (power power \'85) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Propose Peace between the listed powers. The list of powers should include the power or powers receiving the message. Eliminated powers must not be included in the power list. The offer is continuous (i.e. it isn\rquote t just for the current turn). \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {offer = ALY (power power \'85) VSS (power power \'85) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Propose an Alliance between the powers in the first list. The list of powers should include the power or powers receiving the message. The second list is the powers to ally against. Eliminated powers must not be included in either power list. The offer is continuous (i.e. it isn\rquote t just for the current turn). \par \par }{\b offer = DRW}{ \par \par Propose a Draw. In the case of a }{\b PDA}{ game, this may also be }{\b DRW (power }{\b\revised\revauth1\revdttm-1499310604 power }{\b power \'85)}{. The list of powers does }{\ul not}{ need to include the powers receiving the message. }{ \revised\revauth1\revdttm-1499310604 The list of powers much include at least two powers. }{Eliminated powers must not be included in the power list. \par \par }{\b offer = SLO (power)}{ \par \par Propose a Solo to the specified power.}{\revised\revauth1\revdttm-1499310605 Note that you can\rquote t actually order a solo }{\revised\revauth1\revdttm-1499310604 \endash }{\revised\revauth1\revdttm-1499310605 but }{ \revised\revauth1\revdttm-1499310604 you may be able to order your units in a way that causes one to occur.}{ \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {offer = NOT (offer) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par All of the available offers can have }{\b NOT}{ placed in front of them to mean the opposite. Double negatives should not be used ! \par \par }{\b\ul (v) Responding to an offer}{\ul \par }{ \par To respond to a message, one of the following can be sent : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {reply = YES (press_message) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par }{Accept the offer \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {reply = REJ (press_message) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par }{Reject the offer \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {reply = BWX (press_message) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Refuse to answer. None of the sending power\rquote s business. \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {reply = HUH (press_message) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par The message proposal contains a token sequence which is too complicated for this AI to understand \endash usually because the AI is not able to handle all the tokens that are available for press at the current level. In this case, the token }{\b ERR}{ should be inserted immediately before the first token which could not be understood. \par \par The above responses should only be sent as a response to a received message. }{\b press_message}{ should be identical to the received message. \par \par }{\b\ul (vi) Reporting your abilities}{\ul \par }{ \par If you send a response of }{\b HUH}{, you should immediately following it with a second message informing the other AI as to what you can understand. This is done with : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {press_message = TRY (tokens) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par List all of the tokens which you can process when received in the }{\b press_message}{ part of a }{\b FRM}{ message. }{\b Tokens}{ should be a subset of }{\b PRP PCE ALY VSS DRW SLO NOT YES REJ BWX.}{ In addition, the following tokens from higher levels may also be included if they can be processed by the AI : }{\b XDO DMZ AND ORR SCD OCC INS QRY THK FCT IDK SUG WHT HOW EXP SRY FOR IFF THN ELS XOY YDO FRM FWD SND \par }{ \par You do not need to list }{\b TRY}{ or }{\b HUH}{ in }{\b tokens}{, and you should not send a }{\b HUH}{ message in response to a }{\b TRY}{ or }{\b HUH}{ message. \par \par An AI which can not process Press (i.e. it is only designed to work at Level 0) should respond to any }{\b FRM }{message with : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {SND }{\deleted\revauthdel1\revdttmdel111416048 (message_id) }{(power) (HUH (ERR press_message)) }{\deleted\revauthdel1\revdttmdel-962327092 WRT (power message_id)}{ \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b SND }{\b\deleted\revauthdel1\revdttmdel111416048 (message_id) }{\b (power) (TRY ()) \par \par }{Where }{\b power}{ is the sending power, and }{\b press_message}{ is the received message. \par \par All tokens which can be processed by the AI may be included in games of any level (so that you can just have a fixed }{\b TRY }{message which you send if you don\rquote t understand something). There is no requirement to remove higher level tokens from the }{\b TRY}{ message in lower level games. The Server will remove all higher level tokens from the }{\b TRY}{ message before passing it onto the receiving power, and may also reorder the tokens. \par \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 20 : Order Proposals \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par In level 20, we add two new forms for }{\b offer}{. \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {offer = XDO (order) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par }{This is a proposal that the given order is ordered. The order should be for the sending power or the receiving power. }{\b order }{uses the same format as in the }{\b SUB}{ command. \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {offer = DMZ (power power \'85) (province province \'85) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par }{This is a proposal that the l isted powers remove all units from, and do not order to, support to , convoy to, retreat to, or build any units in any of the list of provinces. The powers involved in the DMZ should all be recipients of the message. Eliminated powers must not be included in the power list. The offer is continuous (i.e. it isn\rquote t just for the current turn). \par \par Both of these are responded to using the responses in level 10. \par \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 30 : Multipart Offers \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Level 30 adds the ability to offer multiple things in one offer. \par \par }{\b offer = AND (offer) (offer) (offer) \'85 \par \par }{These offers are made as a group, and you should accept or reject them as a group. This is usually used for offers such as \ldblquote I support you and you support me\rdblquote . \par \par }{\b offer = ORR (offer) (offer) (offer) \'85 \par \par }{These alternative offers are made. You should accept or reject them as a group, and then use further press (if necessary) to decide which part of the offer is to actually occur. This is usually used for offers such as \ldblquote I will make one of the following moves\rdblquote . \par \par At level 30, }{\b AND}{ and }{\b ORR}{ must not be nested \endash they must not both appear in the same message, and neither of them is allowed to appear more than once. All }{\b AND}{ and }{\b ORR}{ offers must include at least two sub-offers. E.g. }{ \b AND (offer)}{ is not allowed. \par \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 40 : Sharing out the Supply Centres \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Level 40 adds the ability to discuss who will gain which supply centres and provinces. \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {offer = SCD (power centre centre \'85) (power centre centre \'85) \'85 \par }{\b0 \par The given supply centre distribution is offered. This is typically used when an alliance is sharing out the centres of the powers they are allied against. Any }{centre}{\b0 s not listed are not part of the proposed division. Eliminated powers must not be included in the distribution of centres. The offer is a long term plan, it doesn\rquote t necessarily indicate that the centres will be taken this turn. \par \par }{offer = OCC (unit) (unit) \'85 \par \par }{\b0 This is a suggestion that a power places a particular unit in a particular location. }{unit}{\b0 is in the same format as for }{NOW}{\b0 . For instance }{PRP (OCC (ENG FLT BEL))}{\b0 . Alternatively, the token }{UNT}{\b0 may be used to represent any unit type. E.g. }{PRP (OCC (ENG UNT BEL))}{\b0 . The offer is a long term plan, it doesn\rquote t necessarily indicate that the unit will be placed there this turn. \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid { \par Level 50 : Nested Multipart Offers \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Level 50 allows }{\b AND }{and }{\b ORR }{to be nested. So you can do the following : \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {PRP (ORR ((FRA AMY PAR) MTO PIC) (AND ((FRA AMY PAR) MTO BUR) ((GER AMY MUN) MTO BUR))) \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par It also adds a new token. }{\b CHO}{. \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {offer = CHO (minimum maximum) (offer) (offer) (offer) ... \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b \par minimum}{ and }{\b maximum}{ are numbers. It is an offer of between }{\b minimum}{ and }{\b maximum}{ of the proposed offers. }{\b minimum}{ and }{\b maximum}{ will often be the same, in which case it means choose exactly that many. \par \par For example: \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {CHO (2 2) (SCD (ENG NWY)) (SCD (ENG DEN)) (SCD (ENG SWE))}{\b0 \par \par Choose two centres from Norway, Denmark and Sweden. \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 60 : Queries and Insistences \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par In Level 60, we add the ability to insist on a proposal, and to ask a question. \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {press_message = INS (offer)}{\b0 \par \par The syntax for }{INS}{\b0 is exactly the same as for }{PRP}{\b0 , and the available replies are also exactly the same. The only difference is that }{PRP}{\b0 should be seen as a suggestion, where as }{INS}{\b0 is much more forceful, and implies that relations between the two powers will be worsened if the }{offer}{\b0 is not accepted. If }{offer}{\b0 is something that the se nding power can enforce on the board (e.g. an order for one of his own units), then the receiving power should expect it to happen whether he likes it or not. \par \par }{press_message = QRY (offer) \par \par }{\b0 The syntax for }{QRY}{\b0 is the same as for }{PRP }{\b0 and }{INS}{\b0 , except that where a power list is included, there is no requirement for it to include the sending or receiving powers. }{QRY}{\b0 is asking a question \endash e.g. is there an alliance, rather then proposing \endash e.g. how about an alliance. }{QRY }{\b0 is responded to in exactly the same way as }{PRP}{\b0 and }{INS}{\b0 . However, the following extra responses are also available for }{QRY}{\b0 : \par \par }{reply = THK (QRY (offer)) \par \par }{\b0 I think that }{offer}{\b0 is true. \par \par }{reply = THK (NOT (QRY (offer)))}{\b0 \par \par I think that }{offer}{\b0 is not true. \par \par }{reply = FCT (QRY (offer))}{\b0 \par \par }{offer}{\b0 is true. \par \par }{reply = FCT (NOT (QRY (offer)))}{\b0 \par \par }{offer}{\b0 is not true. \par \par }{reply = IDK (QRY (offer)) \par \par }{\b0 I don\rquote t know. \par \par Note that for }{QRY}{\b0 , }{offer}{\b0 is not really an offer at all, it is a request for information. \par \par }{press_message = SUG (offer) \par \par }{\b0 The syntax for }{SUG}{\b0 is the same as for }{QRY}{\b0 , and once again, where a power list is included, there is no requirement for it to include the sending or receiving powers. }{SUG}{\b0 is suggesting that something is in the mutual interest of the party sending, and all parties receiving the message, but is not something they can directly influence. For instance, Italy may want to say to Austria that it is in their mutual interest for Russia to order to the Black Sea. Replies to }{SUG}{\b0 are the same as for }{PRP}{\b0 . However, the response is an indication of agreement or disagreement, rather than an indication as to whether }{offer}{\b0 will actually happen. \par \par }{THK}{\b0 and }{FCT }{\b0 can also be used as a message in their own right, to pass information without first being queried for the information. \par \par }{press_message = THK (offer) \par \par }{\b0 I think }{offer}{\b0 is true. \par \par }{press_message = FCT (offer) \par }{\b0 \par }{offer }{\b0 is true. \par \par No reply is expected to either of these. \par \par Note that }{THK (QRY (offer))}{\b0 and }{THK (offer) }{\b0 have exactly the same meaning, except that the former is the response to a query where as the latter is volunteered without being asked. The same applies to }{FCT (QRY (offer))}{\b0 and }{ FCT (offer)}{\b0 . \par \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 70 : Requests for suggestions \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid { \par }{\b0 In Level 70, we add the ability to ask for suggestions. Requests for suggestions come in two forms : \par \par }{press_message = WHT (unit)}{\b0 \par \par What should }{unit}{\b0 be ordered to do ? This can either be for the sending or a receiving powers unit. In the former case, it is a request for a suggestion. In the latter case, it is a request for information. \par \par }{WHT}{\b0 messages should be replied to using }{PRP}{\b0 , }{INS}{\b0 to propose or insist on a move (as if it was an initial proposal/insistence, rather than a response to a }{WHT}{\b0 ), }{IDK (WHT (unit)) }{\b0 if the receiving power doesn\rquote t have a suggestion, or with }{BWX (WHT (unit))}{\b0 if the receiving power doesn\rquote t want to tell. \par \par }{press_message = HOW (province)}{\b0 \par \par How do you think we should attack }{province}{\b0 . This should be responded to with }{PRP}{\b0 or }{INS}{\b0 to propose or insist on moves, or with }{REJ (HOW (province)) }{\b0 to indicate that the province should not be attacked, }{ IDK (HOW (province)) }{\b0 if the receiving power doesn\rquote t have a suggestion, or with }{BWX (HOW (province)) }{\b0 if the receiving power doesn\rquote t want to tell. \par \par }{press_message = HOW (power)}{\b0 \par \par How do you think we should attack }{power}{\b0 . Responses are the same as for }{HOW (province)}{\b0 . }{power}{\b0 must not be an eliminated power. \par \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 80 : Accusations \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {\b0 \par Level 80 adds the ability to accuse another power of going back on its word. \par \par }{press_message = EXP}{\b0 }{(turn) (press_message) \par press_message = EXP}{\b0 }{(turn) (reply) \par }{\b0 \par Explain your moves in }{turn}{\b0 given }{press_message}{\b0 that you previously sent. \par \par The standard replies can be used, including : \par \par }{reply = YES (EXP (turn) (press_message)) \par reply = YES (EXP (turn) (reply)) \par \par }{\b0 Yes I know (no explanation given) \par \par }{reply = REJ (EXP (turn) (press_message)) \par reply = REJ (EXP (turn) (reply)) \par \par }{\b0 I didn\rquote t send }{press_message}{\b0 \par \par }{reply = IDK (EXP (turn) (press_message)) \par reply = IDK (EXP (turn) (reply)) \par \par }{\b0 There is nothing to explain \endash they don\rquote t conflict}{ \par }{\b0 \par In addition, the following is available. \par \par }{reply = SRY (EXP (turn) (press_message)) \par reply = SRY (EXP (turn) (reply)) \par \par }{\b0 I\rquote m sorry. \par \par Especially after a }{YES}{\b0 or }{BWX}{\b0 message, it will be common for the next message to be }{INS (NOT (PCE (power power ...)))}{\b0 . \par \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 90 : Future discussions \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {\b0 \par Level 90 adds the ability to talk about the future. To do this, one command is added : \par \par }{offer = FOR (turn) (offer) \par }{\b0 \par }{offer = FOR ((start_turn) (end_turn)) (offer) \par \par }{\b0 For the }{turn }{\b0 specified, or for all turns from }{start_turn}{\b0 to }{end_turn}{\b0 inclusive, }{offer }{\b0 applies. }{turn }{\b0 is of the form }{phase year}{\b0 . The timing specified by }{FOR}{\b0 overrides any timing indicated by }{ offer}{\b0 . \par \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 100 : Conditionals \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {\b0 \par Level 100 adds the ability to make a conditional offer. \par \par }{press_message = IFF (condition) THN (press_message) \par press_message = IFF (condition) THN (press_message) ELS (press_message) \par \par }{\b0 If the }{condition }{\b0 is met then the }{THN}{\b0 part applies, otherwise the }{ELS}{\b0 part applies. \par \par A }{condition }{\b0 takes the same format as an }{offer. }{\b0 \par \par }{IFF}{\b0 is often used in conjunction with }{FOR}{\b0 . i.e. : \par \par }{IFF (NOT (XDO ((RUS FLT (STP NCS)) BLD ))) THN (PRP(FOR (SPR 1902) (XDO ((ENG FLT NWY) SUP (RUS FLT GOB) MTO SWE)))) ELS (INS(FOR (SPR 1902) (XDO ((ENG FLT NWY) SUP (GER FLT DEN) MTO SWE)))) \par \par }{\b0 It is recommended that }{IFF}{\b0 statements are always worded so that the receiving power would prefer the }{THN}{\b0 part to the }{ELS}{\b0 part. \par }{ \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 110 : Puppets and Favours \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid { \par }{\b0 Level 110 adds the ability to trade in favours, and to become a puppet of another power. \par \par }{offer = XOY (power) (power)}{\b0 \par \par Power X owes power Y. The powers listed must not be eliminated powers. \par \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {The amount owed is indicated by the context. For instance, you may ask for "You supp ort me to X, and I owe you.". The amount you owe is the value of the support. It's for when you're asking for something now, and offering to return the favour later, not yet knowing how you'll return it.}{\b \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {\b0 \par }{offer = YDO (power) (unit) (unit) \'85 \par \par }{\b0 The control of the listed }{unit}{\b0 s is given to }{power}{\b0 . If the owner of the units is the sending power then it is allowing the named power to decide the orders for those units (which he should do using }{PRP (XDO \'85)}{\b0 ). The orders for the units must still be entered by the owning power. The power must not be an eliminated power. \par \par }{\fs28\ul Level 120 : Forwarding Press}{\b0\fs28\ul \par \par }{\b0 Level 120 adds the ability to forward press from one power to another. This adds three extra commands to the message syntax : \par \par }{offer = SND (power) (power power \'85) (press_message)}{\deleted\revauthdel1\revdttmdel-962327091 [WRT (power message_id) (power message_id) \'85]}{ \par offer = SND (power) (power power \'85) (reply)}{\deleted\revauthdel1\revdttmdel-962327091 WRT (power message_id) (power message_id) \'85}{ \par \par }{\b0 This is a request for the first }{power }{\b0 to send the message given. The sending power (the first parameter) must be a recipient of the message, although there may be other recipients of the request too (who should not act on it or reply to it). Eliminated powers must not be included in any part of the message. \par \par }{offer = FWD (power power \'85) (power) (power) \par \par }{\b0 This is either a request or an offer for any messages received from any of the powers in the first parameter to the power in the second parameter to be forwarded to the power in the third parameter. Eliminated powers must not be included in any part of the message. Powe rs should not appear twice in the message. The second and third parameters should be the sending and receiving powers of the }{FWD}{\b0 message. If the second parameter is the sending power then this is an offer to forward. If the third parameter is the sending power then it is a request to forward. The }{FWD }{\b0 message may be sent to several powers, in which case only the power which appears in the second or third parameters should act on the message. The offer is continuous (i.e. it isn\rquote t just for the current turn). \par \par }{offer = BCC (power) (power power \'85) (power) \par \par }{\b0 This is exactly the same as }{FWD}{\b0 , except that the sending and receiving powers are now the first and third parameters. This is an offer or request to forward everything sent, rather than everything received. \par \par }{offer = NOT (FWD (power power \'85) (power) (power)) \par offer = NOT (BCC (power) (power power \'85) (power)) \par }{\b0 \par This is an offer/request to cancel a previously agreed }{FWD or BCC}{\b0 . \par \par }{press_message = FRM (power message_id) (power power \'85) (press_message)}{\deleted\revauthdel1\revdttmdel-962327091 [WRT (power message_id) (power message_id) \'85]}{\b0 \par }{press_message = FRM (power message_id) (power power \'85) (reply)}{\deleted\revauthdel1\revdttmdel-962327091 WRT (power message_id) (power message_id) \'85}{\b0 \par \par This is a message to inform a power of a message you have sent or received. No response is required. Eliminated powers must not be included in any part of the message. There is of course no guarantee that the forwarded message is genuine. \par \par Care should be taken to avoid message passing loops. In general, you should not forward a message that already contains the segment }{(FRM (you) (power you are forwarding to) (press_message))}{\b0 . \par \par }{\fs28\ul Level 130 : Explanations}{\b0 \par \par Level 130 adds the ability to ask why a power thinks something. In response to a }{THK}{\b0 or }{FCT}{\b0 message, you can reply with : \par \par }{reply = WHY (THK (offer)) \par \par reply = WHY (FCT (offer))}{\b0 \par \par This is a request for an explanation as to the reason why sender thinks the }{offer}{\b0 in the }{THK}{\b0 or }{FCT}{\b0 message is true. Available replies are }{BWX}{\b0 if you don\rquote t want to tell, }{REJ}{\b0 if you want to deny knowledge of the }{THK}{\b0 or }{FCT}{\b0 message, or another }{THK }{\b0 or}{ FCT}{\b0 message to give further information. Additionally, you can also give any other message which gives further information (most notably a }{FRM}{ \b0 message if someone has told you). Finally, there is one new response available : \par \par }{reply = POB (WHY (\'85)) \par }{\b0 \par The position on the board, or the previous moves, suggests/implies it. \par \par }{WHY}{\b0 can also be used in other contexts: \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par }{\b reply = WHY (SUG (offer))}{ \par \par Why do you think that would be good for us? \par \par }{\b reply = WHY (PRP (offer)) \par reply = WHY (INS (offer)) \par }{ \par }\pard\plain \s17\widctlpar\adjustright \f2\fs20\lang2057 {\f0\cgrid Why are you proposing that? \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par Level 130 also adds some additional uses of }{\b IDK}{ : \par \par }{\b reply = IDK (PRP (offer)) \par reply = IDK (INS (offer)) \par }{ \par }\pard\plain \s17\widctlpar\adjustright \f2\fs20\lang2057 {\f0\cgrid I don't know whether I'll accept that. Throw in something else to make it worthwhile. \par \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid {\b reply = IDK (SUG (offer)) \par }{ \par I don't really know whether I desire that. \par \par }\pard\plain \s3\keepn\widctlpar\outlinelevel2\adjustright \b\fs28\ul\lang2057\cgrid {Level 8000 : Free Text Press \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par This level allows natural language press. Both }{\b message}{ and }{\b reply}{ can be any string of ASCII characters. \par \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {\fs28\ul Appendix A: Complete List of Tokens}{\b0 \par \par The following is a complete alphabetical list of tokens specified in the Diplomacy AI Development Environment Syntax. \par \par }\trowd \trgaph30\trrh247\trleft-30\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \clvertalt\clbrdrt \brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx753\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr \brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx2525\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx4831\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl \brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb \cellx8337\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1\cgrid0 Token\cell Token Type\cell Usage\cell Meaning\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\trowd \trgaph30\trrh247\trleft-30\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv \brdrs\brdrw15\brdrcf1 \clvertalt\clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx753\clvertalt\clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx2525\clvertalt\clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx4831\clvertalt\clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb \cellx8337\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ADR \cell Province\cell Sea\cell Adriatic Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\trowd \trgaph30\trrh247\trleft-30\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl \brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx753\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx2525\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl \brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx4831\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb \cellx8337\pard \widctlpar\intbl\adjustright {\f1\cgrid0 AEG \cell Province\cell Sea\cell Aegean Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ALB \cell Province\cell Coastal\cell Albania \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ALY\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Ally\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 AMY \cell Unit Type\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Army\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 AND\cell Press\cell \cell Logical AND\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ANK \cell Province\cell Coastal Supply Centre\cell Ankara\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 AOA\cell Parameter\cell HLO\cell Any Orders Allowed\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 APU\cell Province\cell Coastal\cell Apulia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ARM \cell Province\cell Coastal\cell Armenia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 AUS \cell Power\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Austria\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 AUT \cell Phase\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Fall Retreats\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BAL \cell Province\cell Sea\cell Baltic Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BAR \cell Province\cell Sea\cell Barents Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BCC\cell Press\cell \cell Request to Blind Carbon Copy\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BEL \cell Province\cell Coastal Supply Centre\cell Belgium\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BER \cell Province\cell Coastal Supply Centre\cell Berlin\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BLA \cell Province\cell Sea\cell Black Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BLD\cell Order\cell Build Phase\cell Build\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BNC\cell Order Note\cell ORD\cell Move Bounced\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BOH \cell Province\cell Inland\cell Bohemia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BPR\cell Order Note\cell THX\cell REMOVED\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BRE \cell Province\cell Coastal Supply Centre\cell Brest\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BTL\cell Parameter\cell }\pard\plain \s17\widctlpar\intbl\adjustright \f2\fs20\lang2057 {\f1 HLO\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1\cgrid0 Build Time Limit\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BUD \cell Province\cell Inland Supply Centre\cell Budapest\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 BUL \cell Province\cell Bicoastal Supply Centre\cell Bulgaria\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BUR \cell Province\cell Inland\cell Burgundy\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 BWX\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 None of Your Business\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 CCD\cell Command\cell Server to AI\cell Power in Civil Disorder\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 CHO\cell Press\cell \cell Choose\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 CLY \cell Province\cell Coastal\cell Clyde\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 CON \cell Province\cell Coastal Supply Centre\cell Constantinople\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 CST\cell Order Note\cell THX\cell No Coast Specified\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 CTO\cell Order\cell Movement Phase\cell Move by Convoy to\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 CUT\cell Order Note\cell ORD\cell Support Cut\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 CVY\cell Order\cell Movement Phase\cell Convoy\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 DEN \cell Province\cell Coastal Supply Centre\cell Denmark\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 DMZ\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Demiliterised Zone\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 DRW\cell Command / Press\cell AI <---> Server\cell Draw\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 DSB\cell Order\cell Retreat Phase\cell Disband\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 DSR\cell Order Note\cell ORD\cell Convoy Disrupted\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 EAS \cell Province\cell Sea\cell Eastern Mediterranean Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ECH \cell Province\cell Sea\cell English Channel\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ECS \cell Coast\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 East Coast\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 EDI \cell Province\cell Coastal Supply Centre\cell Edinburgh\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ELS\cell Press\cell IFF\cell Else \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ENG \cell Power\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 England\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ERR\cell Parameter\cell HUH\cell Error location\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ESC \cell Order Note\cell THX\cell Not an Empty Supply Centre\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 EXP\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Explain\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FAL \cell Phase\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Fall Movements\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FAR\cell Order Note\cell THX\cell Not Adjacent\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FCT\cell Press\cell \cell Fact\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FIN \cell Province\cell Coastal\cell Finland\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FLD\cell Order Note\cell ORD\cell REMOVED\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FLT \cell Unit Type\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Fleet\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FOR\cell Press \cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 For specified Turn\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FRA \cell Power \cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 France\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FRM\cell Command / Press\cell Server to AI\cell Message From \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 FWD\cell Press\cell \cell Request to Forward\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 GAL \cell Province\cell Inland\cell Galecia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 GAS \cell Province\cell Coastal\cell Gascony\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 GER \cell Power\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Germany\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 GOB \cell Province\cell Sea\cell Gulf of Bothnia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 GOF \cell Command\cell AI to Server\cell Go Flag\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 GOL \cell Province\cell Sea\cell Gulf of Lyons\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 GRE \cell Province\cell Coastal Supply Centre\cell Greece\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 HEL\cell Province\cell Sea\cell Helgoland Bight\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 HLD\cell Order\cell Movement Phase\cell Hold\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 HLO\cell Command\cell Server to AI\cell Hello (Start of Game)\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 HOL \cell Province\cell Coastal Supply Centre \cell Holland\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 HOW\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 How to attack\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 HSC\cell Order Note\cell THX\cell Not a Home Supply Centre\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 HST\cell Command\cell AI to Server\cell History\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 HUH\cell Command / Press\cell Server to AI\cell Syntax Error / Not Understood\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 IAM\cell Command\cell AI to Server\cell I am\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 IDK\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 I Don't Know\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 IFF\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 If\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 INS\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Insist\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ION \cell Province\cell Sea\cell Ionian Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 IRI \cell Province\cell Sea\cell Irish Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ITA \cell Power\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Italy\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 KIE \cell Province\cell Coastal Supply Centre\cell Kiel\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 LOD\cell Command\cell Server to AI\cell Load Game\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 LON\cell Province\cell Coastal Supply Centre\cell London\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 LVL\cell Parameter\cell HLO\cell Level (Language Level)\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 LVN \cell Province\cell Coastal\cell Livonia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 LVP \cell Province\cell Coastal Supply Centre\cell Liverpool\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MAO \cell Province\cell Sea\cell Mid Atlantic Ocean\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MAP \cell Command\cell Server to AI\cell Map to be used for this game\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MAR \cell Province\cell Coastal Supply Centre\cell Marseilles\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MBV\cell Order Note\cell THX\cell Might Be Valid\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MDF \cell Command\cell AI <---> Server\cell Map definition\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MIS\cell Command\cell Server to AI\cell Missing Orders\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MOS \cell Province\cell Inland Supply Centre\cell Moscow\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 MRT\cell Parameter\cell NOW\cell Must Retreat to\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MTL\cell Parameter\cell HLO\cell Movement Time Limit\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MTO\cell Order\cell Movement Phase\cell Move To\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 MUN \cell Province\cell Inland Supply Centre\cell Munich\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NAF \cell Province\cell Coastal\cell North Africa\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NAO \cell Province\cell Sea\cell North Atlantic Ocean\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NAP \cell Province\cell Coastal Supply Centre\cell Naples\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NAS\cell Order Note\cell THX\cell Not At Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NCS \cell Coast\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 North Coast\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NMB\cell Order Note\cell THX\cell No More Builds Allowed\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NME\cell Command\cell AI to Server\cell Name\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NMR\cell Order Note\cell THX\cell No More Retreats Allowed\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 NOT\cell Command / Press\cell AI <---> Server\cell Logical NOT\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NOW\cell Command\cell AI <---> Server\cell Current Position\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NPB\cell Parameter\cell HLO\cell No Press During Builds\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 NPR\cell Parameter\cell HLO\cell No Press During Retreats\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NRN\cell Order Note\cell THX\cell No Retreat Needed\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NRS\cell Order Note\cell THX\cell Not the Right Season\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NSC\cell Order Note\cell THX\cell Not a Supply Centre\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NSF\cell Order Note\cell THX\cell No Such Fleet\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NSO\cell Order Note\cell ORD\cell No Such Order\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NSP\cell Order Note\cell THX\cell No Such Province\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NSU\cell Order Note\cell THX\cell No Such Unit\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NTH \cell Province\cell Sea\cell North Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NVR\cell Order Note\cell THX\cell Not a Valid Retreat\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NWG \cell Province\cell Sea\cell Norwegian Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NWY \cell Province\cell Coastal Supply Centre\cell Norway\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 NYU\cell Order Note\cell THX\cell Not Your Unit\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 OBS\cell Command\cell AI to Server\cell Observer\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 OCC\cell Press\cell \cell Occupy \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 OFF\cell Command\cell Server to AI\cell Turn Off (Exit)\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ORD\cell Command\cell Server to AI\cell Order Results\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 ORR\cell Press\cell \cell Logical OR \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 PAR \cell Province\cell Inland Supply Centre\cell Paris\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 PCE\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Peace\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 PDA \cell Parameter\cell HLO\cell Partial Draws Allowed\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 PIC \cell Province\cell Coastal\cell Picardy\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 PIE \cell Province\cell Coastal\cell Piedmont\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 POB\cell Press\cell \cell Position on Board\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 POR \cell Province\cell Coastal Supply Centre\cell Portugal\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 PRN\cell Command\cell Server to AI\cell Parenthesis error\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 PRP\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Propose\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 PRU \cell Province\cell Coastal\cell Prussia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 PTL\cell Parameter\cell HLO\cell Press Time Limit\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 QRY\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Query\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 REJ\cell Command / Press\cell Server to AI\cell Reject\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 REM\cell Order\cell Build Phase\cell Remove\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 RET\cell Order Note\cell ORD\cell Unit must retreat\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 ROM \cell Province\cell Coastal Supply Centre\cell Rome\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 RTL\cell Parameter\cell HLO\cell Retreat Time Limit\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 RTO\cell Order\cell Retreat Phase\cell Retreat to\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 RUH \cell Province\cell Inland\cell Ruhr\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 RUM \cell Province\cell Coastal Supply Centre\cell Rumania\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 RUS \cell Power\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Russia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SCD\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Supply Centre Distribution\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SCO\cell Command\cell AI <---> Server\cell Supply Centre Ownership\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SCS\cell Coast\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 South Coast\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SER \cell Province\cell Inland Supply Centre\cell Serbia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SEV \cell Province\cell Coastal Supply Centre\cell Sevastopol\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SIL \cell Province\cell Inland\cell Silesia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SKA \cell Province\cell Sea\cell Skaggerack\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SLO\cell Command\cell Server to AI\cell Solo\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SMR \cell Command\cell Server to AI\cell Summary\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SMY \cell Province\cell Coastal Supply Centre\cell Smyrna\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SND\cell Command / Press\cell AI to Server\cell Send Message \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SPA \cell Province \cell Bicoastal Supply Centre\cell Spain\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SPR \cell Phase\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Spring Movement\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SRY\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Sorry\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 STP \cell Province\cell Bicoastal Supply Centre\cell St Petersburg\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SUB\cell Command\cell AI to Server\cell Submit Order\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SUC\cell Order Note\cell ORD\cell Order Succeeds\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SUG\cell Press\cell \cell Suggest \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SUM \cell Phase\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Spring Retreats\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SUP\cell Order\cell Movement Phase\cell Support\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SVE\cell Command\cell Server to AI\cell Save Game\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 SWE \cell Province\cell Coastal Supply Centre\cell Sweden\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 SYR \cell Province\cell Coastal\cell Syria\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 THK\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Think\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 THN\cell Press\cell IFF\cell Then\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 THX\cell Command\cell Server to AI\cell Thanks for the order\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 TME\cell Command\cell AI <---> Server\cell Time to Deadline\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 TRI \cell Province\cell Coastal Supply Centre\cell Trieste\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 TRY\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Try the following tokens\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 TUN \cell Province\cell Coastal Supply Centre\cell Tunis\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 TUR\cell Power\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Turkey\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 TUS \cell Province\cell Coastal\cell Tuscany \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 TYR \cell Province\cell Inland\cell Tyrolia\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 TYS \cell Province\cell Sea\cell Tyrrhenian Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 UKR \cell Province\cell Inland\cell Ukraine\cell }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 UNO\cell Parameter\cell SCO\cell Unowned\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 UNT\cell Press\cell OCC\cell Unit\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 VEN \cell Province\cell Coastal Supply Centre\cell Venice\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright { \f1\cgrid0 VIA\cell Order\cell Movement Phase\cell Move via\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 VIE \cell Province\cell Inland Supply Centre\cell Vienna\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 VSS\cell Press\cell ALY\cell Versus\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 WAL \cell Province \cell Coastal\cell Wales\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 WAR \cell Province\cell Inland Supply Centre\cell Warsaw\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 WES \cell Province\cell Sea\cell Western Mediterranean Sea\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 WHT\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 What to do with\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 WHY\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Why\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 WIN \cell Phase\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Fall Builds\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 WVE\cell Order\cell Build Phase\cell Waive\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 XDO\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 Moves to do\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 XOY\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 X owes Y\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 YDO\cell Press\cell }\pard \qr\widctlpar\intbl\adjustright {\f1\cgrid0 \cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 You provide the order for these units\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 YES\cell Command / Press\cell Server to AI\cell Accept\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 YOR \cell Province\cell Coastal\cell Yorkshire\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 YSC\cell Order Note\cell THX\cell Not Your Supply Centre\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\trowd \trgaph30\trrh247\trleft-30\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh \brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx753\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx2525\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx4831\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb \cellx8337\pard \widctlpar\intbl\adjustright {\f1\cgrid0 integer\cell Parameter\cell Various\cell Used for years, number of builds, etc.\cell }\pard \widctlpar\intbl\adjustright {\f1\cgrid0 \row }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {\b0 \par }\pard\plain \widctlpar\adjustright \fs20\lang2057\cgrid { \par }\pard\plain \s16\widctlpar\adjustright \b\fs20\lang2057\cgrid {\fs28\ul Appendix B: Language definition. \par }{\b0 This appendix lists the entire language in a more machine-oriented form, similar to BNF. The first two types, client_server_message and server_client_message are the complete messages that can be sent. The y are then composed of tokens and other types. \par To read the table, the category in the first column can be replaced by any of the combinations in the third column. The language level in the second column indicates the minimum language level at which this su bstitution is allowed. OBS indicates any level including an Observer. \par }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \clvertalt\clbrdrt \brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx2610\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr \brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx3330\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb \cellx10572\pard \s16\widctlpar\intbl\adjustright {\b0\f1 Type\cell Level\cell Composition\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \clvertalt\clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx2610\clvertalt\clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb \brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx3330\clvertalt\clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb \cellx10572\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 client_server_message\cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 NME ( string ) ( string )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx2610\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb \cellx3330\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb \cellx10572\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{ \b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 IAM ( power ) ( number )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{ \b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 MAP}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{ \b0\f1 \cell }{\b0\f1\cf1\cgrid0 MDF}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{ \b0\f1\cf1\cgrid0 YES ( acknowledgable_command )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 REJ ( acknowledgable_command )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{ \b0\f1 \cell }{\b0\f1\cf1\cgrid0 NOW}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{ \b0\f1\cf1\cgrid0 SCO}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 HST ( turn )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 TME ( number ) }{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 TME}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 ADM ( string ) ( string )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell PRN ( bad_bracketed_sequence )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell HUH ( any_token_sequence )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 0}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 HLO}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 0}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 SUB ( order ) ( order ) ...}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 0}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 NOT ( negatable_command )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 0}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 MIS}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 0}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 GOF}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 0}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 ORD}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 0}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 DRW}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 10}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 DRW ( }{\b0\f1\cf1\revised\revauth1\revdttm-1499310603\cgrid0 power }{\b0\f1\cf1\cgrid0 power_list )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 10}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 send_message}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 server_client_message\cell OBS\cell YES ( client_command )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell YES ( client_request )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell REJ ( client_request )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid { \b0\f1 \cell OBS\cell REJ ( rejectable_client_command )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell MAP ( string )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell MDF ( power_list ) ( mdf_provinces ) ( mdf_adjacency_list )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell HLO ( power ) ( number ) ( variant )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell NOW ( turn ) ( unit_with_location_and_mrt ) ( unit_with_location_and_mrt ) ...\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell SCO ( sco_entry ) ( sco_entry ) ...\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell 0\cell THX ( order ) ( order_note )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid { \b0\f1 \cell 0\cell MIS ( unit_with_location_and_mrt ) ( unit_with_location_and_mrt ) ...\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell 0 \cell MIS ( number )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell ORD ( turn ) ( order ) ( compound_order_result )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell 0\cell SVE ( string )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell 0\cell LOD ( string )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell OFF\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell TME ( number )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell PRN ( bad_bracketed_sequence )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid { \b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell HUH ( any_token_sequence )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell CCD ( power )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell NOT ( negated_server_message )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS}{\b0\f1 \cell }{ \b0\f1\cf1\cgrid0 ADM ( string ) ( string )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell SLO ( power )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell DRW\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell SMR ( turn ) ( power_summary ) ( power_summary ) ...\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 10}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 DRW (}{\b0\f1\cf1\revised\revauth1\revdttm-1499310602\cgrid0 power}{\b0\f1\cf1\cgrid0 power_list )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell 10\cell OUT ( power )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 10}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 FRM ( power number ) ( power_list ) ( press_message )}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell }{\b0\f1\cf1\cgrid0 10}{\b0\f1 \cell }{\b0\f1\cf1\cgrid0 FRM ( power number ) ( power_list ) ( reply )}{ \b0\deleted\f1\cf1\revauthdel1\revdttmdel-962327091\cgrid0 WRT ( message_id ) \line ( message_id ) ...}{\b0\f1 \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 acknowedgable_command\cell }{\b0\f1\cf1\cgrid0 OBS\cell MAP ( string )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid { \b0\f1 \cell }{\b0\f1\cf1\cgrid0 OBS\cell SVE ( string )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 any_token_sequence\cell }{ \b0\f1\cf1\cgrid0 OBS\cell Any sequence of tokens where the brackets all match correctly\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 bad_bracketed_sequence\cell }{\b0\f1\cf1\cgrid0 OBS\cell A sequence of tokens where the bracketing is incorrect\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 coast\cell }{\b0\f1\cf1\cgrid0 OBS\cell Any token from the Coast category\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid { \b0\f1 compound_order_result\cell OBS\cell }{\b0\f1\cf1\cgrid0 order_note\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell }{ \b0\f1\cf1\cgrid0 order_result\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell }{\b0\f1\cf1\cgrid0 order_note RET\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell }{\b0\f1\cf1\cgrid0 order_result RET\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 client_command\cell OBS\cell OBS\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell NOT ( TME )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 client_request\cell OBS\cell NME ( string ) ( string )\cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b0\f1 \cell OBS\cell IAM ( power ) ( number ) \cell }\pard\plain \widctlpar\intbl\adjustright \fs20\lang2057\cgrid {\b\f1 \row }\pard\plain \s16\widctlpar\intbl\adjustright \b\fs20\lang2057\cgrid {\b