Starting on a port to D
Start on the Board type

Added the basic game information properties.
These properties keep track of the following
castling ability
enpassant target square
half move clock
full move number
king attack state

The last value is an idea to improve movegen performance
that has not been tested yet in the version that is being ported.
Piece movement and general board information

Board.Core.cs. This part of the Board class kept track of general
board information, such as the half move clock for PGN encoding.

Board.Surface.cs. This part of the Board class kept track of piece
movement. Provided a model of the chessboard surface.

To get these two pieces of board to compile I had to port most of the
types piece, coordinate, and move. I have extended these three into some
areas that D allows, such as parametric value types. More work to do here.

Stack is a simple stack type. The only reason it is here is that the
standard library Phobos does not have one yet.

It seems possible to include Surface and GameInfo as subtypes of Board.
However, it doesn't seem to provide any benefits and there is no closure
reference need that I can see.

For some reason that I cannot see the build is broken. Still committing as
this is a good amount of work done.
Fixed the build issue.

The problem was with using a custom type to index an associative array. It
is necessary to add the functions opCmp and toHash to the type. Could not
get that to work for some reason. So I backed out to use a simple array.

A wrapper could be used to index this array without using Piece.toHash.
Still, in the end, this whole design seems too complex. So I am holding
off on further adjustments until I get a clearer picture of the whole
thing.
Attack vectors

Translated the non-sliding piece attack vectors: king and knight.
Translated queenAttack which can be used as model for the rest.
Finished the attack vectors
Finished psuedo-legal move gen

The fact that Coordinate needs to be casted so many times and not in a
uniform manner seems to call for a better design. Perhaps it is best to go
back to basic numerical types in the end.

I wanted to use reduce and map for the move generation but couldn't figure
out how to make it work with the custom type Coordinate.
Added legal move tests
Added move serialization

Serialize to and from long algebraic encoding.
This is the encoding used by the UCI protocol.
Simplify coordinates

Realized that an alias can be used to add a 'type' to coordinates as well
as keep the math and other stuff really simple.
Simplify pieces accordingly
Added board serialization

Currently serialization and deserialization from FEN encoding is
supported.
Needed board.reset() to finish the previous commit
Renamed smodel to sm
Some cleanup

1. Renamed a couple of immutables to make more sense
2. Deleted the Phobos array file which should have not been committed
Added some unittests

This is my first attempt at adding unittest code blocks to more than one
file and then doing a link/compile. Before I was just using them on a
single file that also contained a main() routine for a console script.

I haven't found the exact cause but the unittest blocks in each file are
ignored when I compile to a library. For example, the following command
does not execute the tests.

    dmd --main -unittest piece.d coordinate.d move.d

I have tried both using --main and not. It seems to be there for rdmd.
Anyways, I was successfully able to run the unit tests by putting the code
for all three files into a single one (call it asdf.d) and then running
the following command.

    rdmd --main -unittest asdf.d

Here are some references that probably make more sense than me.
http://www.digitalmars.com/d/archives/digitalmars/D/Unittesting_in_static_libraries_144598.html
http://d.puremagic.com/issues/show_bug.cgi?id=4669
http://www.digitalmars.com/d/archives/digitalmars/D/Unittest_compiling_into_file_with_main._159416.html
Combined the coordinate graphs
Moved the build commands to a readme file
Adjust to the style guidlines

http://dlang.org/dstyle.html
Test some paths of the stack structure