public static unsafe extern void SetPiece(BoardStruct* board, int square, int pieceType, int color);
public static unsafe extern ulong GetMoves(BoardStruct* board, int tile);
public static unsafe extern int IsEnPassantCapture(BoardStruct* board, int from, int to);
public static unsafe extern ulong GetCastlingMoves(BoardStruct* board, int color);
public static unsafe extern ulong GetEnPassantMove(BoardStruct* board, int from);
public static unsafe extern int Square(BoardStruct* board, int square);
public static unsafe extern ulong GetAttacks(BoardStruct* board, int tile);
public static unsafe extern IntPtr Copy(BoardStruct* board);
public static unsafe extern void Delete(BoardStruct* board);
public static unsafe extern void ClearPiece(BoardStruct* board, int square);
public static unsafe extern int Color(BoardStruct* board, int tile);
public static unsafe extern ulong AttackMap(BoardStruct* board, int color);
public static unsafe extern void Unmake(BoardStruct* board);
public static unsafe extern void ToFEN(BoardStruct* board, byte* outputString100);
public static unsafe extern bool MakeNullMove(BoardStruct* board);
public static unsafe extern void GenerateTileMap(BoardStruct* board);
public static unsafe extern int Evaluate(BoardStruct* board);
public static unsafe extern byte GetCastling(BoardStruct* board);
public static unsafe extern int GetAllMoves(BoardStruct* board, Move* moveList100);
public static unsafe extern int GetSmallestAttacker(BoardStruct* board, int square, int attackerColor, ulong pinnedPieces);
public static unsafe extern byte GetAvailableCastlingTypes(BoardStruct* board, int color);
public static unsafe extern void Init(BoardStruct* board, int setPieces);
public static unsafe extern byte GetCastlingType(BoardStruct* board, int from, int to);
public static unsafe extern bool IsAttacked(BoardStruct* board, int square, int attackerColor);
public static unsafe extern int GetEnPassantVictimTile(BoardStruct* board, int from, int to);
public static unsafe extern int IsChecked(BoardStruct* board, int color);
public static unsafe extern int IsCaptureMove(BoardStruct* board, int from, int to);
public static unsafe extern bool Make(BoardStruct* board, int from, int to);
public static unsafe extern MoveSmall SearchPos(BoardStruct* board, int searchDepth);
public static unsafe extern bool Promote(BoardStruct* board, int square, int pieceType);