This is crucial for datagen and self-play, and obviously the standard play.
It's possible to start with shakmaty-syzygy, but that requires position transformation from pabi's position representation to shakmaty's, which possibly requires FEN parsing (not great) or some work arounds for ensuring the correct translation. I'm not sure about shakmaty-syzygy performance, but the API and implementation look clean.
Another option is to use Fathom, which is what majority of the engines do. The problem with Fathom is that it's written in plain C and it should be used through FFI, and the API is not as nice. But the performance should be great.
It's probably best to start with shakmaty and then decide if it's worth migrating to Fathom some time down the road.
[x] Add support for game adjudication using tablebases
This is crucial for datagen and self-play, and obviously the standard play.
It's possible to start with shakmaty-syzygy, but that requires position transformation from pabi's position representation to shakmaty's, which possibly requires FEN parsing (not great) or some work arounds for ensuring the correct translation. I'm not sure about shakmaty-syzygy performance, but the API and implementation look clean.
Another option is to use Fathom, which is what majority of the engines do. The problem with Fathom is that it's written in plain C and it should be used through FFI, and the API is not as nice. But the performance should be great.
It's probably best to start with shakmaty and then decide if it's worth migrating to Fathom some time down the road.