This was made as a learning Kotlin exercise and is yet to be fully completed (AI is pretty time-consuming!)
This is probably far from being the most optimized chess engine implementation, but my main goal was to make use of most of this great language's features while following its core principles, such as maintaining object immutability everywhere possible.
Note: not very proud of the Git commit history.