Repository navigation
v1.2.9
Version 1.2.9 is here — Introducing the Functional Package
This release introduces the Functional Package, a redesigned set of core classes optimized for functional programming and multithreaded environments. At its core, the package emphasizes immutability. All value-representing entities such as positions and moves are now immutable and thread-safe by design.
Key highlights:
🧠 Immutable Design: Position, Move, and related constructs are fully immutable, enabling safer reasoning and reducing side effects across the codebase.
⚙️ Simplified Object Creation: Factories and constructors clearly separate object creation from game logic, improving maintainability and predictability.
♟️ Enhanced Game and Position APIs:
The Game class is now more robust in terms of concurrency and logic handling.
The Position class exposes simplified methods and no longer requires external utilities to evaluate game states (check, checkmate, stalemate, etc.).
🔄 Streamlined Move Generation: The Generator class remains available, but is now largely replaced by the convenient Position#children() method.
🧾 Immutable Lists: Collections returned by these classes are backed by immutable implementations, ensuring thread safety and consistency.