X2-FEN Explanation
As I was building a new chessboard system, I realized I needed a way to easily describe everything, so I started to look into standard chess notation. I found Forsyth–Edwards Notation (FEN), which I'd seen before, but didn't really understand.
Once I read the instructions for it, that was simple enough, but a little too simple, so I kept looking. I found X-FEN, which seemed like a better, more flexible system, but still not quite what I needed, so I'm extending it further to meet my overly complicated needs.
Since this new specification is based on X-FEN, I'm incementing it to X2-FEN. Boring, yes, but it saves my creative "juices" for other things. Besides, I'm not good at naming anything other than variables.
So, without anymore rambling, here's the specifications for X2-FEN:
  • All FEN and X-FEN notations are valid.
  • The notation now also serves as a description of the board size and shape.
  • Squares are the individual, legal locations on the board for pieces to be placed, regardless of their shape.
  • Rows are defined by the neighboring horizontal squares at the widest point of the square.
  • Rows are center justified, by defalit, on previous rows and allow greater or fewer columns than 8. Also, greater or fewer than 8 rows are allowed. Ex: 8/8/7/6/5/6/7/8/8
  • Rows that are left justified start with < (less than) symbol. Ex: 8/8/<6/<6/8/8
  • Rows that are right justified start with > (greater than) symbol. Ex: 8/8/>6/>6/8/8
  • Rows that aren't left, right, or center justified use the left or right justification notation to delimit and mulitiple numbers to specify how the row is set up. Ex: 8/8/2<3/8
  • Rows that are otherwise right offset by half a square can start with ^ (carat) symbol, such as Masonic Chess. Ex: ^8/>^8/^8/>^8/^8/>^8/^8/>^8 or ^rnbqkbnr/>^pppppppp/^8/>^8/^8/>^8/^PPPPPPPP/>^RNBQKBNR
  • Carats aren't necessary when another rule makes it redundant. Ex: 8/8/7/6/6/7/8/8
  • Multiple carats can be used and can be used with justification symbols.Ex: /8/8/<^^^6/^6/6/^6/^8/8/8 same board 8/8/8/>^6/^6/6/^6/^8/8/8
  • Voids are expressed as a single underscore per square. Ex: 8/8/8/3__3/3__3/8/8/8 or 8/8/8/2_2_2/2_2_2/8/8/8 or 8/8/4_4/4__4/4__4/4_4/8/8
  • If squares to are fully span the width of more than 1 square on the previous row, a - (dash) after a number will indicate how many half-squares the last square will occupy beyond one standard square. Ex: 8/8/2--1--1--1/1--1--1--1--/1--1--1--1--/2--1--1--1/8/8
  • Moves: (w)hite, (b)lack, (r)ed, b(l)ue, (g)reen, (y)ellow, (p)urple, (o)range
New colors & piece notation:
  • Black: t = robot
  • White: T = robot
  • Red: ~ (tilde) = rook, ! = knight, @ = bishop, # = king, $ = queen, % = pawn, & = robot
  • Blue: ( = rook, ) = knight, = (equals) = bishop, * = king, + = queen, { = pawn, } = robot
  • Green: undetermined as yet
  • Yellow: undetermined as yet
  • Purple: undetermined as yet
  • Orange: undetermined as yet
  • More pieces can be added as desired. Black and white are geared towards English upper and lower case letters. Numbers are invalid for pieces. Other characters from a standard Qwerty keyboard are used first, then any Unicode characters from there, but excluding quotes and characters already used elsewhere in this specification.
A 7th section is added, which specifies what game rules variation is used, such as standard, atomic, infinite, or something else.
An 8th section is also added, which specifies what board variation is used, such as square, rhombic, hexagonal, or something else.
This specification is not backward compatible with FEN or X-FEN.