Forsyth–Edwards Expanded Notation

A general purpose UTF-8-based format for recording chess positions from chess variants.

Created
Updated
Version
1.0.0

Introduction

FEEN (Forsyth–Edwards Expanded Notation) is a lightweight, UTF-8-based format that gives a consistent and easy way to represent most chessboard positions between two-players.

Inspired by FEN (Forsyth–Edwards Notation), FEEN is able to describe both multidimensional positions and related state, easy for humans to read and write, and easy for machines to import and export, it is completely laws of chess independent and compatible with the main chess variants, including 장기Janggi, หมากรุกMakruk, 将棋Shogi, Chess, 象棋Xiangqi, and many others. These properties make FEEN an ideal data-interchange format for recording chessboard positions.

Notational Conventions

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

Notation for board positions

A FEEN description MUST have three fields:

  1. Flatten board
  2. Active side
  3. Pieces in hand

Each field MUST be composed only of UTF-8 characters, and non-blank printing.

Adjacent fields MUST be separated by a single UTF-8 space character (i.e., “ ”).

Flatten board

Pieces MUST be identified by at least one character; e.g., “P”, “”, “C:P”, “”, “foobar”.

Blank squares are noted using digits 1 through n (where n is the number of blank squares on the last dimension). An empty string “” is used to separate pieces, and between each dimension, solidus characters “/” are used.

Empty board examples:

Starting board examples:

Another board example from a tsume Shogi:

3,s,k,s,3/9/4,+P,4/9/7,+B,1/9/9/9/9

Active side

Players are identified by a number according to the order in which they traditionally play from the starting position.

Examples:

Therefore, in a game of Chess, if Black have to play the next move, the identifier MUST always be 1.

Pieces in hand

Pieces in hand MUST be listed here. Those pieces are listed in alphabetical order, separated by a “,” char, and grouped by sides (in the order in which they traditionally play from the starting position), and separated by a “/” char.

If neither player has any captured actors, for instance on an initial position, the value MUST be “/”.

Note: in Chess and Xiangqi, captured pieces are removed from the game, but in Shogi captured pieces are kept in the player’s hand.

Starting position’s pieces in hand examples:

Another example from a tsume Shogi with an initial position where Sente’s pieces in hand is 1 silver, and Gote’s pieces in hand are 2 rooks, 1 bishop, 4 golds, 1 silver, 4 knights, 17 pawns:

S/b,g,g,g,g,n,n,n,n,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,r,r,s

Example

Starting position examples:

Another example from a tsume Shogi:

3,s,k,s,3/9/4,+P,4/9/7,+B,1/9/9/9/9 0 S/b,g,g,g,g,n,n,n,n,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,r,r,s

Scenario

Given the following position between two Chess players:

♜,♞,♝,♛,♚,♝,♞,♜/♟,♟,♟,♟,♟,♟,♟,♟/8/8/8/8/♙,♙,♙,♙,♙,♙,♙,♙/♖,♘,♗,♕,♔,♗,♘,♖ 0 /

When 52,36,♙ move (in PMN format) is applied, then the position becomes:

♜,♞,♝,♛,♚,♝,♞,♜/♟,♟,♟,♟,♟,♟,♟,♟/8/8/4,♙,3/8/♙,♙,♙,♙,1,♙,♙,♙/♖,♘,♗,♕,♔,♗,♘,♖ 1 /

Implementation
Informative References

This work is influenced by several documents.