Explain the updated definition of xiao
Prevent local imports from leaking through to the user
Update the header for the function xb
Make the xb signature a bit more flexible
Clarify the second xb function signature
Update the property blackPieces
Update the property whitePieces
Update the XiaoBoard get and set functions
Update the helper function db
Make XiaoBoard a struct so it can use accessor operators
Use DMD syntax for if, for, and foreach
Fix a logic error
Make the argument reflect its intent better
Clarify what goes at each coordinate position
Further explanation for the format used
No reason to use an array for the surface piece placements

Since the main goal of the xb creation functions is visual brevity
this new definition trims off a further two characters.
Move opIndex to its standard position before opIndexAssign
Fix parseSurface

Includes general comment updates
Update to use the new XiaoBoard struct type

NOTE: the move generation tests are failing
Update the comments