Correspondence Chess
Welcome to begin a new session of chess.
Please enter a nickname for the players.
Move Notation
A square location is denoted by its 1-based column followed by its a-based row.
In order to move the piece at one location to another location, append the destination square's representation.
Alternatively, you may use mouse drag-and-drop on your device, which will also submit the move immediately.
Special Moves
A Pawn Promotion move may have the type of desired piece appended, by the symbol denoting the desired piece,
r, b, k, or alternatively a, b, c, for respectively Rook, Bishop, Knight.
For usual promotion, append nothing, or optionally q or d.
Alternatively the "Promotion" selector may be positioned as desired prior to submitting.
Castling is performed by moving the King as part of this move. Since two steps cannot normally be taken,
it is understood that this move will also involve the Rook, implicitly in the denoted move of the King.
En Passant is also implicit, and denoted with the mere diagonal move of the Pawn.
The Chess URL
The board configuration data is fully contained in the URL itself.
With the URL, the chess board is rendered as a page that facilitates a move as described above.
Components
The URL consists of a directory-like part, which gives a visual hint about players and
move-count. The remaining part is a compact encoding
of a value that represents the configuration of pieces.
A move may be queried with a "?!" and move appended. The reason an exclamation
mark is needed, is that the board URL itself may contain a simple "?" followed by an
alpha-numeric representation of punctuation characters otherwise excluded in email
tools that renders the URL as a link. Thus, you may perform a move by appending
"?!" and the move in the usual notation. The page itself does this, which results
in a status 302 HTTP response, which redirects to the URL of the resulting board.
This redirection is why you will not see a page with a move appended to its URL.
Server Data
Neither the session name nor the game progression is being stored, and no
stored data is needed to render an URL to its chess board.
However, in support of the UPDATE feature a hash of the name and its most recent board
is stored. This allows spurs of semi-interactive sessions during the game.
Note that this feature is not needed for pure correspondence, and that any given URL
will always render to the board that was originally displayed for this URL.
Cookies
The page will store one cookie at your first move in a game.
This cookie will tell what player you are in this game. The name of the
session is used in the cookie, and the number "0" or "1" to denote which player.
The browser is instructed to place it in requests to this page exclusively,
otherwise kept for no more than six months.
Game Progression
Correspondance Chess is usually played by having a physical board,
and using a written form to exchange the moves. In this spirit, the
web page rendering of the game board is kept simple and minimalistic.
Once a move is submitted, convention is that it cannot be undone.
But for the case of erroneous entry, or that the players agree they
would like to start from a previous board, "re-do" is provided.
Re-Do
Editing an URL, or replacing to another name or turn-count, will yield an URL
that fails to render a board. The tampering is detected.
But, by using explicit notation, it is possible to re-do from a previous board.
In order to replace the current board with the result of a move, "~N" must be
appended to the move, otherwise representing the move as desired.
Integrity
By deleting the cookie discussed previously, one may indeed re-create
a similar board as the current one. Good faith is assumed between the players,
and the feature to regret any move, or resume the play from any historical board,
seems valuable. In case of suspicion of manipulation without consent of the peer,
a player may simply look back on previous correspondence.
Confidentiality
The game leaves users identities anonymous and authenticates no more than
with knowledge of the URL.
This means that a third party may guess the URL of an initial board,
and perform moves at any time, or always watch the game progression.
However, the only information on users is what you have in the URL which is the pair
of nick names. Remember that the browser will receive a cookie with the
session name as key and one digit denoting side in the game as value.
Transport between browser and site is as provided by TLS with common,
best practice ciphers. This means that it is not feasable to sniff the URL
or any content at any point between the sites and browsers computer.
Detect your existing sessions