# Echecs v0.1.5 - Table of Contents

> A high-performance chess library in pure Elixir with bitboard move generation.

## Pages

- [Echecs](readme.md)

## Modules

- [Echecs](Echecs.md): Echecs is a pure Elixir chess library for move generation, validation, and game state management.
- [Echecs.Bitboard](Echecs.Bitboard.md): Legacy struct-based bitboard container, superseded by the `Echecs.Board`
tuple representation used throughout the engine.
- [Echecs.Bitboard.Constants](Echecs.Bitboard.Constants.md): Constants for Bitboard operations
- [Echecs.Bitboard.Helper](Echecs.Bitboard.Helper.md): Low-level bit manipulation helpers for bitboards.
- [Echecs.Bitboard.Magic](Echecs.Bitboard.Magic.md): Magic-bitboard attack lookups for sliding pieces (rooks, bishops).
- [Echecs.Bitboard.MagicGenerator](Echecs.Bitboard.MagicGenerator.md): Finds magic numbers and attack tables for sliding pieces (rooks, bishops).
- [Echecs.Bitboard.Precomputed](Echecs.Bitboard.Precomputed.md): Compile-time attack and geometry tables for non-sliding queries.
- [Echecs.Board](Echecs.Board.md): Chess board as a 15-element tuple of 64-bit integer bitboards.
- [Echecs.FEN](Echecs.FEN.md): Parsing and generation of Forsyth-Edwards Notation (FEN) strings.
- [Echecs.Game](Echecs.Game.md): Complete state of a chess game: board tuple, side to move, castling rights
(bit flags `wk = 1`, `wq = 2`, `bk = 4`, `bq = 8`), en-passant square,
half/fullmove clocks, position history, Zobrist hash and cached king squares.
- [Echecs.Move](Echecs.Move.md): Chess moves as structs and as packed integers.
- [Echecs.MoveGen](Echecs.MoveGen.md): Legal-only move generation using the check-mask + pin-mask technique.
- [Echecs.PGN](Echecs.PGN.md): Minimal PGN move-text parser and replayer.
- [Echecs.Perft](Echecs.Perft.md): Performance-test (perft) helpers for validating move generation.
- [Echecs.Piece](Echecs.Piece.md): Piece colors (`:white`, `:black`) and types (`:pawn`, `:knight`, `:bishop`,
`:rook`, `:queen`, `:king`).
- [Echecs.Zobrist](Echecs.Zobrist.md): Zobrist hashing for fast position identity and repetition detection.

## Mix Tasks

- [mix echecs.benchmark](Mix.Tasks.Echecs.Benchmark.md): Runs deterministic benchmarks for move generation, perft, PGN replay, and hashing.

