{"_id":"xchess2","_rev":"102-13295646323bba8c3a2ecb4d5b5878d1","name":"xchess2","dist-tags":{"latest":"2.18.0"},"versions":{"2.0.0":{"name":"xchess2","version":"2.0.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"0ec3c07db18dfb12db380314080e538252a076d9","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.0.tgz","fileCount":47,"integrity":"sha512-QTZirL7HOSlsYu9y8b/YfGx2SY+i5HTMGppkNP7VTg1OBTM6qRMIuzi0r/8EJPFeApNBC6UmC3ibaZyyFfCdlg==","signatures":[{"sig":"MEYCIQC1a86FeryGpqDEfkGoarzehxmlZBvE88cc22sLx+mEswIhALUWEk3BYW3r5aLxthoJZsnWnjOLMYtD/e6a7KkWZFgP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146309},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.0_1755713165068_0.24520377098558743","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"xchess2","version":"2.0.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"a28b6f80e0e9a666e4c8efaf83c45c71c1381a87","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.1.tgz","fileCount":48,"integrity":"sha512-CmS1iH5F9OKyL9LPM5P4YFBv4DsMqfzzzTurPQuanLu7UW3vJO6JEWbo3Dk8j5EBpxN3GE9BWErr3RCN/Q7xag==","signatures":[{"sig":"MEUCIQCvFlzvYfOVbqM6LpMM8mlYg5/5uMvbKsFOybCaIkZ6HwIgFn68kciQi7QEWG4SNi98nArZN8ABpGtJ3NZhXqkW5vQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179463},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.1_1755777444562_0.6528890802095058","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"xchess2","version":"2.0.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1ffee5687bcf94d7b3bb5251d805374be9462643","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.2.tgz","fileCount":48,"integrity":"sha512-sF59MJfXD/JCtQ8f+27VvoZec5KhuHpQNw7sNXrVhTprn6H6jZe3JsRIwuO8XtIsW1drBMGV18k9/TUEtaO3Gw==","signatures":[{"sig":"MEYCIQC5wPN80ClV6zandPwEgIa5WsCQ+qbUfcNEpBZbH+66vwIhAN4r8GvFSqedLqWiUW5HR39PomiGLvjkNm8VpZ9+WTVD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183817},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.2_1755777742995_0.2812495897803171","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"xchess2","version":"2.0.4","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.4","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"f67995e29966d7d6d339e5739a061c671ee2ff7b","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.4.tgz","fileCount":48,"integrity":"sha512-HqaWaRZG38XH2mBoOfMzbUH092+hAEEimPWN5SUrIimjJdWQW7uqe0DBrxnBua16MExZIcsXcy8QlZ0k3cg/VA==","signatures":[{"sig":"MEYCIQC3MIgYH4V8VIsIzw8TUkE7YtgWZLKcWKW553g7Nym3NAIhANu8TYIWX3XdP7Kw7zXtHqrRDk3GfJqt9rmk6MKY44B0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173636},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.4_1755784158509_0.36648396028108166","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"xchess2","version":"2.0.5","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.5","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"9305dd34aaa2f19a2567af3d8d9f79d66f9ac191","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.5.tgz","fileCount":48,"integrity":"sha512-47QsaXrZAwLikbKirAfwmRU7ppjqHGBUKmA4nb4R8s0FIo7Pw+7QDnnCBexfp+klr5lcnhGkpKqnZvu/5grW3Q==","signatures":[{"sig":"MEQCIAimxNVbZVOOJQZ8yZmabtjpmAAUj4P7VQU6PbLZd61VAiA1miWnMBTroBHFeBPkUTE0QUfGIi5Il+QKumyg3yAFbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174548},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.5_1755784506299_0.06592453889888117","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"xchess2","version":"2.0.6","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.6","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"a09b1cea7c30505eb1676fe295572fea929e9a80","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.6.tgz","fileCount":48,"integrity":"sha512-KLDqQ+yHGiKwZLImLNWpZhbj3Ces8RsCq2zkWh4fi/b/EsAa/lrC7WuhBTRkr07OlCvxpORauHWcxv0Gc9pMig==","signatures":[{"sig":"MEUCIQDJEFTN1LDVbmNIMzIvzWNVK2gKPjqECE6mAK2zJt8eRQIgbLPKj0Fx/V+dA60y+eBWPj1aWMHQrpMSQRpffPqdbwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174523},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.6_1755784620752_0.009439315069923904","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"xchess2","version":"2.0.7","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.7","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"c401f7a3bcc9a2f0909aa7e572663af3bfc903b3","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.7.tgz","fileCount":48,"integrity":"sha512-A2TWS0KQpU5PLbAMv6iKmQskhYYV7+fGT1af2yVDhudlc0EJHJ7Gbm4SFFN2bvl/vj9Axd71bMWFbtRbN6dGdA==","signatures":[{"sig":"MEQCIBAEJRoxPQU9YmYEH4fbxwAYs4iWDnB5DI9x6uk87NFxAiAuR5DbX72gRvS7dTNyaNYqPZAVqp9AYp+vpxp47R01hA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219404},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.7_1755801570148_0.381286100507229","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"xchess2","version":"2.0.8","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.8","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"34b7c47137ba89391a87aafdf28f7cbe8081a80e","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.8.tgz","fileCount":48,"integrity":"sha512-YNS0r8Ar5bg3vGibqmp2jAzwjYtC9cFVsveUnGp4bBfbsOuWHfgNjNooCVqNUvoGkn0SiMgHOCgcyC7b6DpH6g==","signatures":[{"sig":"MEUCIQDYuEEdqUcPEfTWGQ5VyzqKvmEhbbNgqIa2iAAmIbAjNQIgYXpOVJXYsQvL+n/DHHXr9yJCx3AxqN4J7XDf6ddbN38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219404},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.8_1755801676059_0.42625723703878715","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"xchess2","version":"2.0.9","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.9","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"6148fa57430509b14afd9a927f32748c360e3672","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.9.tgz","fileCount":48,"integrity":"sha512-5NeKv2+fJ+dGNVnqHnkdJ4uRH7/ckY2gFsMde/gQoz4uibGU+CZ0oTzZd4WsD/Psm3dB5Vz+n3XnhOulczm1PQ==","signatures":[{"sig":"MEYCIQD6wQ3WUks91bxLorPGJAY018rdI0JKnKPKVPLIS4WifAIhAKOAaPULdlIiCgdoYMlnClLKukwuKxy5PruWr7Xa7tAA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219403},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.9_1755801874344_0.456345249315659","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"xchess2","version":"2.0.10","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.10","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"7f9f182154ec37ef28c68475c68c2a80fc74308f","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.10.tgz","fileCount":48,"integrity":"sha512-Wb5MdjWDsnuYFx9Xf9G/Qfg1YKi+j634VAyH2twC9JMMbFMUn8P4Fq2TNkSmbgM5SZE0Qza9tF9q6/Uy7ZxDXA==","signatures":[{"sig":"MEUCIHKOr1yr4t5bFUJSVzQ4BwRoo7E24cFk1ETXATHbpbkyAiEAvXm7GYRXLWCxxLfaDHAr7NOeeWKoSiWZRrBV1bmdTE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219404},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.10_1755801963431_0.5344146537579706","host":"s3://npm-registry-packages-npm-production"}},"2.0.11":{"name":"xchess2","version":"2.0.11","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.11","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"9d1af297643cc9b1d95e7cf81fcc3a596ef240d6","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.11.tgz","fileCount":48,"integrity":"sha512-iLz9fEA93eikt8I+xWb84AlpCJzC0iCdlAAQt4PQjBXqy62m1JY6POtqN6djldcfXNmo6hF5QDkfZWTXi/VcMQ==","signatures":[{"sig":"MEUCIEs27XgNMqIFy0vIJfKhbmAOI7RafjSSQi9OZzPsQlFUAiEA5aPs+XvKirkMpQNc9P/iOTfHvDcSQQgkD25JbNXdpQY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219405},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.11_1755802156387_0.5880905846250646","host":"s3://npm-registry-packages-npm-production"}},"2.0.12":{"name":"xchess2","version":"2.0.12","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.12","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"260cefc5e0ba95d6c5c0818bd37d5bb10e51b9f3","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.12.tgz","fileCount":48,"integrity":"sha512-Mh9nLsKZE53DO24yBevOxFLUdkdpgPlV0Z1//uzpNpJyot5rWoWPqs4vPdU8RpIVzxoyd+1EsWEev57E5/wE/w==","signatures":[{"sig":"MEQCIGF9+puVVYsPYJEG6HGN1s+RSQECtOFQicdUpbqZawM0AiBzehxT/zq+WV0NgWyh1vGiBxnHdBG0HRgQqVtOmrCuPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246985},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.12_1755811382358_0.6557721191447647","host":"s3://npm-registry-packages-npm-production"}},"2.0.13":{"name":"xchess2","version":"2.0.13","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.13","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"aeff7fc337e60104fe8bf9328d07e470c94630c1","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.13.tgz","fileCount":48,"integrity":"sha512-Oz3ch6xohI4Pv4+FD0tr77yAq9+vieeDSc9gcpDevsOWSFPDw3Fi8Js1aOuzDa/6feEKLWKxHFF49AsilCYXYA==","signatures":[{"sig":"MEQCIBR5Png2K+yxjdzjddm7kwKGJnKNXep20f6c/65sbRgfAiBYiAvmuxXZcBrFlvAGdCqQWorHgTJm95Va5Pwv8SKklg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275666},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.13_1755820492231_0.5939289906378284","host":"s3://npm-registry-packages-npm-production"}},"2.0.14":{"name":"xchess2","version":"2.0.14","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.14","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"d15795d507c1a884e55f21ee5cd0a1cdf02fb417","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.14.tgz","fileCount":48,"integrity":"sha512-y+OReXR4WXqCAVSQVsKN6OlO13nbm2dHLi+Wx94qmxHuQIklQb7viTwDMEihPD7gOmq4DNZ21PvsuoCoq+SS6w==","signatures":[{"sig":"MEUCIQDE83ZOfoWa3OMylC+EtxphY6JkR6II78eOpQlFmngfGwIgEWZ0h6ENmY+mhwV7O4EQfASFCzgw0aSavB3NU0oa/cE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275848},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.14_1755821284770_0.4833120721343833","host":"s3://npm-registry-packages-npm-production"}},"2.0.15":{"name":"xchess2","version":"2.0.15","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.15","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"b05d35ff84cc10c044f6dd5c221f893fd29c7ada","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.15.tgz","fileCount":48,"integrity":"sha512-z2kK85IwWjDeKGeCBzwVIKngClW8/IcTO+zik9Rpk9Dw4jty5c4XlKrxkVZhQGZ/K4chHEfmToGhz6beaAuzhQ==","signatures":[{"sig":"MEUCIE3NhSwh5SCsxKicA/xqO/og6WmlrIDquM+/KfwMenglAiEA+AGpgCFJySKHxhZ7vH9Pzm9pl8PrQ+BtWaMILbYjGrQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276715},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.15_1755821916305_0.787288811672713","host":"s3://npm-registry-packages-npm-production"}},"2.0.16":{"name":"xchess2","version":"2.0.16","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.16","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"f887b5f80ada48bab5ae119b1891c4330f306e29","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.16.tgz","fileCount":48,"integrity":"sha512-qeq5/uxz3TBYl30yrdm/O+Q2Pkq4+SUW27jP/5dpd3AwXPZaZ8VxCHvyhs+DqwaNbxoA7RQK54KHTo2K8SPpUQ==","signatures":[{"sig":"MEYCIQDpHxdb1cM0Q59YWCZmkvnwxOYXIJSK9zMBs/L80pzWbAIhAORtPSFwoWwUvILk+DEjMskqlXuPL7N/gRmoG3NeDRqB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276715},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.16_1755821967158_0.6434020932963653","host":"s3://npm-registry-packages-npm-production"}},"2.0.17":{"name":"xchess2","version":"2.0.17","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.17","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"de9adde09078145c8217399eadeb3030fe33d396","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.17.tgz","fileCount":48,"integrity":"sha512-balHLW+72IWAVtaBZ+MVFE6YnOKw/PjcZsuM8gCR5Q8pYDVJWiVDeEthcKWztSZZyn0sBe+ApiqmYEzsmMVG5w==","signatures":[{"sig":"MEYCIQC4PYDYnrwhgLBwP0qbMCju/lOTvKoOOU0aFii1Kmj/9QIhAIbJaqfF5dkmijhUO1XxM0IiSqHJ1FvB3VCpLEOBX8jz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277410},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.17_1755822579261_0.8882659467086251","host":"s3://npm-registry-packages-npm-production"}},"2.0.18":{"name":"xchess2","version":"2.0.18","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.18","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"754cb0aaf33170f5e0cad68fd5224b06d7a2067b","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.18.tgz","fileCount":48,"integrity":"sha512-YAeI1HOxhbZzKwE+53Ukn119vWZQU2FOKixc1qm2XoC/OD8q8qseq8mnTyTjDzfQLxkYqdVzqfEOzGmRcoh08w==","signatures":[{"sig":"MEUCIHFnPDtqebKTGeiNGNuQCP8ODuWRZjhuYy14m5u4T/biAiEAmRIyIg3VYrXoChQstx92Oq70MQEH+YYY6U2UmUSDT2c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277832},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.18_1755823915293_0.22406885660744646","host":"s3://npm-registry-packages-npm-production"}},"2.0.19":{"name":"xchess2","version":"2.0.19","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.19","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"4febb4193d5cee2c828eb71e0ea5638de5496716","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.19.tgz","fileCount":48,"integrity":"sha512-AlYRynRUpeCOio7h8/kLsrCk8qscq/6ne86GLCDbPE5r6EUqC3yfZlK14cbky6v0K7OUfZTry35iF+wiJ/EIGg==","signatures":[{"sig":"MEUCIQDs06itKC28OewpzoAUWwEj5mYW5x8lmVCvchOUbUHQkQIgXFvg2dHM0Pf7jg3SAVsOaZEwJfJSHmWm8BbSzcwUSMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277908},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.19_1755824703460_0.8924597604084892","host":"s3://npm-registry-packages-npm-production"}},"2.0.20":{"name":"xchess2","version":"2.0.20","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.20","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"06f52844b40abb58b2892035251d179e7de2995a","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.20.tgz","fileCount":48,"integrity":"sha512-UaFjhzwGMr+Plw0KkN23FK5n7JGxeOpOt3NFJHUYsmhlh7PWdyoGPOe+8vXimy2BXEZxHJ/rsYxlNY6Hz+aJZg==","signatures":[{"sig":"MEQCIEi7ghQHnpptxJ3D4a0IYY2FIFePB4TkpsEgokNihUVaAiBPhEeiiXDj9z2LnVSxu6dbnpElGuPxfV6kh7vXiKEAHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278793},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.20_1755867203811_0.02300259978964503","host":"s3://npm-registry-packages-npm-production"}},"2.0.21":{"name":"xchess2","version":"2.0.21","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.21","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"8849a5ddd39d528a92aba60dbacd306b2394a484","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.21.tgz","fileCount":48,"integrity":"sha512-em1KeIUoFApKl9dgXS7g8X9hxJxofoQR97dgjNu+pcTr1q+VSU0BRuLOcNlIVFBUnMz0ArwmTLCX/8xqTBW1UA==","signatures":[{"sig":"MEUCIGuLA0wikgvtJ9tQYD0SJFJz6XHN2r55gyIA0CPhRr47AiEA0MVODemn9fW7ZNchDSmdfovKWiscesmD4Ge9YrlIcJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279479},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.21_1755883333534_0.7279680896605609","host":"s3://npm-registry-packages-npm-production"}},"2.0.22":{"name":"xchess2","version":"2.0.22","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.22","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"89fcc89cb4db3c95d5ac2c9d1990088ab5172f7e","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.22.tgz","fileCount":48,"integrity":"sha512-wnG+DLZdoBqtcG+JI8bW8DqJyCIRSiST/FGniCwOEKL05qfkc/fXHDQf20tI1l8UsYxlmKGwfXOQi/XRM8++RQ==","signatures":[{"sig":"MEYCIQDCK+V0RXTTwQm3HQww10Lw5yDzlH8U/ImQWmx+rrXoLAIhAP4/yZvfdaQjbmGjgYUc/eZOeef1ddBfeKX0rA72bmh5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279835},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.22_1755884816959_0.24301910629793233","host":"s3://npm-registry-packages-npm-production"}},"2.0.23":{"name":"xchess2","version":"2.0.23","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.23","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"8b5f3947d7522b16f3e565956b15f8dec5fcc147","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.23.tgz","fileCount":48,"integrity":"sha512-zL23g6Eg8hDQDLlZC3QqF++ZyeqAZXCuJYLZ2ZI0bOxRHz4w9XsEI0NZEWQgVCoiBcpC3AGdvMFtCotd2n/Kbg==","signatures":[{"sig":"MEUCIHajjmkYUy7hrcJx2b5PDVG0/OYkBPf7dZ6FP3Zaa5MxAiEA7ZhZp7Oij2PTZLZJSbQuj+QbLWAnTzLl6A0HzBFUBM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279842},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.23_1755884885012_0.4369095516637911","host":"s3://npm-registry-packages-npm-production"}},"2.0.24":{"name":"xchess2","version":"2.0.24","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.24","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"a70336ebaef02423a62506fde75532743be48e5d","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.24.tgz","fileCount":48,"integrity":"sha512-exfiMdtc6LuuDLJKNGeJ6vxysTD39zkWz4rcelVczi+ci5GFJ/I/kOu2bNCGOy7/7Gw3Gpf4XvcfGZDFSNo2ug==","signatures":[{"sig":"MEYCIQC7c02HczvGZHoaZZFYKriQwkGuLdtiUCOaK1bjf3ow1AIhAKITha2DMHj3istr+ECjcet8iRAOyOEIVe7aqczqomZD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280200},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.24_1755885850085_0.7994861169586467","host":"s3://npm-registry-packages-npm-production"}},"2.0.25":{"name":"xchess2","version":"2.0.25","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.25","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"791f1e01df0033ab62a818b4a5876af6c4806470","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.25.tgz","fileCount":51,"integrity":"sha512-3lTYMT5Z/v4WH+VqTMOJYPEEPbX8fzvv4zlWd8qBZ2ty9WIbLS7/pus4Y+WWjSo+9ZRyywKWIhEO9kkricQbCw==","signatures":[{"sig":"MEYCIQCpjlQNqmh3s8Vk2/34/j88QYVbAnHThJhPMwaCWXj22wIhANBBgLaeIg981bh16fK+RbA8Y7SkySsa5JJQBYF8mXrz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287905},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.25_1755915832181_0.7663406656351788","host":"s3://npm-registry-packages-npm-production"}},"2.0.26":{"name":"xchess2","version":"2.0.26","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.26","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"b6cb4e59d2184bb9b85ed5040a50a473028e81a8","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.26.tgz","fileCount":50,"integrity":"sha512-MHUz3cZzojDmpPZtv/xiQ+df8gkTyddxU0DthS3f0EpwAuQXz6yoHOnjxpq2xXBA+XjjlxTAhRXKEVCNyylaaQ==","signatures":[{"sig":"MEYCIQCpLcN0wmLDpX/GP7aDLCQZe3RJACp0uf7NRPbMsrU3swIhAMiPYkPydR+YKZKPlYzfSNvVG7HnNEutsbvMu5Le/V9o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291413},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.26_1755967269578_0.5948013961257015","host":"s3://npm-registry-packages-npm-production"}},"2.0.27":{"name":"xchess2","version":"2.0.27","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.27","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"3e2500117ae88fb5cbb8c6d153af9b6b1a3431f8","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.27.tgz","fileCount":50,"integrity":"sha512-Z0bziMI6omy4Mna2nuR0V/Qsf82QrFAFsi5jll9/6OMGBtEgee+npXkokhE4AKg5lILTSQb06aSJLXmUeFWI0A==","signatures":[{"sig":"MEQCIB6zCDakQ+oRrtsabDuTE0yH32i58H/JBbXj8qsA/9xPAiBZajb0PQmadC6v5MMNFhGatVT+NMzUha6g32cw4mpN6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295423},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.27_1755967539885_0.05039085026051926","host":"s3://npm-registry-packages-npm-production"}},"2.0.28":{"name":"xchess2","version":"2.0.28","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.28","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"71b3d183099ceca4d5e6221f65bbdf7775e2e96c","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.28.tgz","fileCount":50,"integrity":"sha512-V3q630jAMYhkC8trqAsd+KbER+8DxN1w0kao2+Mhdvv1L7TWyV14T0vFOfiR2ABtHuZG/Gpb7yrG5Nge7NujKg==","signatures":[{"sig":"MEUCIQDBlhwizxHX2aX+SHqqfzYHrSN/3ZTPUVcqJlZSkEIsugIgZWyqKYa6C3DKncBf/vHmzvL99aF5LFEXxpmzQBPta+I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291447},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.28_1755968386245_0.6565071528808533","host":"s3://npm-registry-packages-npm-production"}},"2.0.29":{"name":"xchess2","version":"2.0.29","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.29","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"3793014fc96f6b33ea99af6c8e8b6853f25a385a","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.29.tgz","fileCount":50,"integrity":"sha512-AaPh3pX0fQEMjt6UY3oThP1iaFQSX2on/eMN4NI3Ln0EpDumQwDmQ8Q6d2RBDRMUARI1rpMdK8qxV1Xlk7EUOQ==","signatures":[{"sig":"MEQCIDUpE+XDcwAEkXpzUnTMYw4hClJXXZSa9Ne1/8wJYfZWAiA8S2JBwW7G3kNAAczTKwb3YSO2ebZSlKBsOoiW9naxDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311013},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.29_1755971766354_0.9919764727477336","host":"s3://npm-registry-packages-npm-production"}},"2.0.30":{"name":"xchess2","version":"2.0.30","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.30","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"5ee0a765fe0df3a91de9a3aaf91fe2e4f847cc8d","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.30.tgz","fileCount":50,"integrity":"sha512-XTTHVvE7lD/52kjepVMbCh5LBn9OtapRghQubog/51eWjPzhxbUJB1Ijkh0BuKTsogkNtRm2jwE22YM9zXE0dQ==","signatures":[{"sig":"MEUCIQDObzX9ZVVDiwlcoAVoyG5nQ3DRSF4f0Nuk+8Q4sEquOgIgRmo90zXSm9Z7dwv81XCzdHbiG+Y/hTAeos91vgijjNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310847},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.30_1755972284037_0.3787991769422612","host":"s3://npm-registry-packages-npm-production"}},"2.0.31":{"name":"xchess2","version":"2.0.31","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.31","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"c8b75c596cf79880e4fb00d5b9f6bcf201975677","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.31.tgz","fileCount":50,"integrity":"sha512-5lZ40KZxk2DfT3Hg8WG11INoAbwc/e8Grli2RP41qQNitTx0QE5B8TpKFASqb88iFd/349NWnkXF0tjI5Wiz5Q==","signatures":[{"sig":"MEUCIQCvHRiHohgDrtS878El8Iwvh7+J8c+Sc83QL42myLZuKwIgTCN9kjrujTifu1XUsqpCcrvjM+LbwiXFv96kRL8rMnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308412},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.31_1755972602602_0.41473750332107584","host":"s3://npm-registry-packages-npm-production"}},"2.0.32":{"name":"xchess2","version":"2.0.32","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.32","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"bc89790c8598f0dc4e7f7a883c9a7b21f0a13350","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.32.tgz","fileCount":50,"integrity":"sha512-g8ObUcFOj/F+sJduLKETkvWzI+wSGKuA72nQywW0G5Ld0Py49ovQRyYxa52wuRJqBix5ekDIP2fjHgX9suamaA==","signatures":[{"sig":"MEYCIQDlcYD5AmCAYfeSPIfK0Gcp7PXXZ6kcxwYOqEWNE0jLugIhAOvBv1EoJqaX9NMOXIoIBG8/u+WOTlC+roQd6Xg6viYa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310814},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.32_1755973533842_0.3334544146738174","host":"s3://npm-registry-packages-npm-production"}},"2.0.33":{"name":"xchess2","version":"2.0.33","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.0.33","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"aa146ea7d5cfe9b83cef926d0d63e8e5195a2dba","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.0.33.tgz","fileCount":50,"integrity":"sha512-XCjWRtrjl9FGaicD8Hi8kYQNcjdutUYEhWDS9aulPkrJSUgIjfG+JuE17SuhwEdFPc0BvjYvVhPqOKFZxjSnNA==","signatures":[{"sig":"MEYCIQDSX+j5gftpneVJL38dj+huS8N752exAbzKxV1i5YVJvgIhAJKfFNRN0t4EoOPzfl0B4GRewFVBfqzwgBKwL2qAmvtI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312169},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.0.33_1755974285588_0.6202898730423232","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"xchess2","version":"2.1.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.1.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"46fed2a91f7305ed58b7afe755a256e0e45ceccc","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.1.0.tgz","fileCount":50,"integrity":"sha512-HjDcYaOs7Zmz3HAPPN/wFok+l52kE0qcW46w4jpKwj2IknY/Psq97CGwDnwXylKyLDt+b/UNztuEAbyPhr3PSw==","signatures":[{"sig":"MEYCIQDxWSWJUeQEn5BfBssoljWm0EsaBo3WbpH8cV5Ob4kZZQIhAL9G30NpXg/9QYXUvaITLBWPvGHUgJDqjolvD6D6J7xQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316456},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.1.0_1756085556194_0.5600437442413542","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"xchess2","version":"2.1.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.1.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"c73348b6650d46e34bbafd6adbee6a5f81bb6d27","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.1.1.tgz","fileCount":50,"integrity":"sha512-2H9ymC/HBM/KpmyBEV/LYl7LoRp947aZkHxDWeD4yl2g/jmrkepvL++xpN3IaRboXVo/XIYeto6QPnB1NA7vOA==","signatures":[{"sig":"MEYCIQCLkfVyEZUo3504RVIYnbacVadJw/JrX+qGGn1GQlZx6AIhANKtUkc91t6sWiqraStj8BzmTccNVxLXi5DPsJWlf7aU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316456},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.1.1_1756085598533_0.3954125457015334","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"xchess2","version":"2.1.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.1.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"a2fb64ca5dac1839c8f6873b7ea9739b308c2f84","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.1.2.tgz","fileCount":50,"integrity":"sha512-D+x/F5ZPqBju0iC76XcLnrGHKDyj1nIWMviJvv4tfFQV3RmSggDebRQIQZk8V9GBWzwvqJqu6NlymxootduAOA==","signatures":[{"sig":"MEUCICVi4pRBPkkYw76GVWCIB2AGKyqVFuYugOog9rCQ1Fw5AiEAr5H7MXznRhUsEoQiij/cplVLhfxrgoqQLy8y+1pSco4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324531},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.1.2_1756087237801_0.09788234726274037","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"xchess2","version":"2.1.3","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.1.3","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"3c015d62c632e23f9aff330780cdd7ba1f21a1b8","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.1.3.tgz","fileCount":50,"integrity":"sha512-1+1T4Q0wEGA4mSS36+J5GWfKL449T2AfK2uDO/aqhugogZrPn8gLxZ1L50CxL7C8dBN8SE3ZA0N7sM00QKSxAg==","signatures":[{"sig":"MEYCIQCWQ3NEu7tDFYXUYlBjzhbIS+lR6pf4zhr74uyKLou1uAIhANBaLVR54SP6fEbjOS71d8RtrMYGWiH08SDJ9sPwafaZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324752},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.1.3_1756087477633_0.16849101154355828","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"xchess2","version":"2.1.4","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.1.4","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"2029ccf80677955a63f0615bca4400bab2d73ac5","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.1.4.tgz","fileCount":50,"integrity":"sha512-p4dUYjfj6Se0EbP2MdGydfhGyFWkepa9kymASPv73j4QCxaCQ/2GiRjwD0MuEXwqL8CfqVGJ03xENaLA789kqg==","signatures":[{"sig":"MEYCIQCOkwz4DC4q7Blw3Ez89RsLBEy86alE/hNn/tSHKgAGUwIhAL49TUrGoETEk5N51reehse06YLC8ZY7cGwggzNlaF3n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326120},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.1.4_1756124951133_0.6688716422987431","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"xchess2","version":"2.1.5","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.1.5","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"99a4fd2676a6edb13831f5d326044967f7ec862f","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.1.5.tgz","fileCount":50,"integrity":"sha512-eG5yf8ZBK+JhNmgEWKyEOhqe8q4voz0WP6f2kgywoiy6Sa43/SNdt5Gc9lfJsLos33G4YYHSQ8r7mh9wr+H9bg==","signatures":[{"sig":"MEQCIBCMI1jj+d/3ycBhmL4FqK4z5G/F9I6sB+yMKnCeAs23AiBTInlJkVrgNpTMdTeedTjtpupwIxq8Np/IDfya3leY+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326977},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.1.5_1756132306981_0.6919652801078591","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"xchess2","version":"2.1.6","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.1.6","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"2b4258e9393ab30af9e0f5f8b3c58dbb1adee2db","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.1.6.tgz","fileCount":50,"integrity":"sha512-KDOtls8UC7Lo0r6wMA1HoHuVsAhHL5FK0o1qcjHoFqbqbrDn2R1c6Z1Ux8Zt1ae96QZjb4P5tD4p5a4pvkmkRw==","signatures":[{"sig":"MEUCIDzO+BDEJQn1xEtqvDpes2klT8fzM7KmjP6udRBny3A/AiEAifPVnFqKkT0MvRip0spmfocTB8bBoqyZkRvRXkp0tr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328900},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.1.6_1756170536811_0.03417062650425162","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"xchess2","version":"2.2.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"a278a9c6f91c9a657b2a50536461fd7acee8a562","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.0.tgz","fileCount":50,"integrity":"sha512-sv/xSmpfcMnuBpTVrLUlFndKMoawXxVdjbbEte/pi7mu+nyVC9ZOEBnecy1MA6INUrPCZBmFvYbMw2LsoKZXKw==","signatures":[{"sig":"MEUCIQDMySYmWFT+J8O3V3jNI/lGs/S6hwnNiC+11zz40wkv1AIgKWu2952rGA+UYPO5AK7+QwPDs4lqMTFa4rsnz+NTBKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333015},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.0_1756238105676_0.0012381984223333031","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"xchess2","version":"2.2.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"7eb7cda8d5960779f313093c31a11a171afb9fa6","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.1.tgz","fileCount":50,"integrity":"sha512-8s7acS/TSY6IOi3gVl8/gk4y36jVKSet6V1fBeAWHfd+G9zzrKGIZMrSe3QD59nlZb95yOuVtAicv1tH7McG8w==","signatures":[{"sig":"MEQCIEASEzI7Tid7U5/wi6C6Al5h5tMyVNaXyi/ob6q4MtSqAiBTumt3AXtZv/m66XiiNdE+WqEVkQwZmTjeQNsOR/sXbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333013},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.1_1756238205140_0.6492891237378196","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"xchess2","version":"2.2.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"5269f35bbe5cc1c8784e64858375c5a204a31d75","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.2.tgz","fileCount":50,"integrity":"sha512-EZ65OHZd/cBOnAqDEMurXDZyCNx+IwMwYVIf4DlCMTVzWVWUkmu+4oCn7tCnSXV0huNjMXrLElHWDYdvtS3uFg==","signatures":[{"sig":"MEQCIFdPyEhB8/vy69JhZNhgrq989bu+tuBiUn237Mj+f5D+AiACqH6JVLm3NF1jqDGKfHEGPqSX+ZSjuNMsQdBknv3B7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335742},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.2_1756239856627_0.028677125465364828","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"xchess2","version":"2.2.3","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.3","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"599e3029d7e3e824bb9cbeadb9e545e5af5ee678","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.3.tgz","fileCount":50,"integrity":"sha512-aZ0SOJekCncHJQ5cYFpEgSQNBdDxoLKkS0eryYSCeYpLZUzmG+mV5YxfY+652lvOJK8P20A4PFUjsElBKjBBHg==","signatures":[{"sig":"MEYCIQCSgZ9yPNyYp5BeizMfzzeIfVAvKNXbBKl/xRPCKxiG/gIhAO7kKF8RsLMqNpsoldgHL3tJklKE0XH5rkDWV+ZReFLm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335788},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.3_1756239886945_0.1636486676133495","host":"s3://npm-registry-packages-npm-production"}},"2.2.4":{"name":"xchess2","version":"2.2.4","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.4","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"6eb6376c066b6600c07110ede1e4a881ba1f3723","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.4.tgz","fileCount":50,"integrity":"sha512-vYT/wHIA2coB7rYE87/fiVB/6CUFFGQqqAwC3UefRpWSYo/3GUQ5QWFCl3MVQMCdiA6xDKNNOPtRzF0WwQ6dXg==","signatures":[{"sig":"MEUCIQCGkhu8x11Vh0wjBjzdW/6DR4x9KKyy2P31vjcKLrJzDgIgOG2Rr3oCDiGAQ7SXbIuLDAAlDOdISyMHgbDuKsvqWmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335786},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.4_1756239934911_0.22466472632596046","host":"s3://npm-registry-packages-npm-production"}},"2.2.5":{"name":"xchess2","version":"2.2.5","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.5","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"6ba9d57b9ef4bfedcd93ee954a6b3a31e58190a5","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.5.tgz","fileCount":50,"integrity":"sha512-4y8MWesqTtXiWL4xQmONwd1of8wvwVn1ZU6edfZy0SnFSKbn69f/RlV9rBqfIcH5sGOW5WJMycYSrb4Qcr4YAw==","signatures":[{"sig":"MEYCIQDVqeIFgIK9G4excTU7Z04cajGf2ThLStc8wUIeEdUNWQIhAONTu7IC+81BLyJjJvGYYUwONDqmLzjxNg4b3k/iX5xC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335884},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.5_1756240386580_0.6190505168884346","host":"s3://npm-registry-packages-npm-production"}},"2.2.6":{"name":"xchess2","version":"2.2.6","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.6","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"150bbcca83fbb2ec74446da4c1901893c7c281ec","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.6.tgz","fileCount":50,"integrity":"sha512-ue/JoAQfbmO0Xy5/4ITA9ZGuhU2N3/XfDIOGgiP2DSMh0hdjcT5zhHEt2/DWeQ8eYI8UwdJO2g+YwbFFVqPzNg==","signatures":[{"sig":"MEQCIAKBaDlKpNb11Hb3O6eLdPFaQZbhCpH6EEhc3x2D77wXAiACWZkXRR5ZWS5Zo8hUQf4OL/JG7dVsAwoDaOfzRtfpgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335758},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.6_1756240654080_0.48797387979745044","host":"s3://npm-registry-packages-npm-production"}},"2.2.7":{"name":"xchess2","version":"2.2.7","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.7","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"39ce1ee07100ab0a6f7e5c99730205be455ad51f","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.7.tgz","fileCount":50,"integrity":"sha512-XZIbqTRQsH3zrnLoxnHsvBYZb032B8QyxRKSvWO5wg6fxemQMcDbAAlzC/tXUTmDs/1lBXhhbKp6FURL3sb4Hg==","signatures":[{"sig":"MEYCIQDfJ3FQV/xqCgCmviw2EcHg+ozqtf4B5h1kaYNA8FOVBAIhAMd3MP2aHgARrbVC9yRRLrRhmUiMFzR7trB7bTcLuqqV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336216},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.7_1756253390221_0.24209170322622642","host":"s3://npm-registry-packages-npm-production"}},"2.2.8":{"name":"xchess2","version":"2.2.8","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.8","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"af8ac56287a4237d95e200c08da27eea6954fbde","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.8.tgz","fileCount":50,"integrity":"sha512-klM4XDimaBvD1IRx6JouaebnbutjY6g7rztnu2FXZWAXkJHirUtICMrj/TUzPlyphxpjPARlP0+FVEqSdngNjg==","signatures":[{"sig":"MEYCIQCj7RwHtMpu9EgasKRHMrLWQZ+QYIdBwCFSWyd4Bwrx7AIhANp6VgQ4uWI50DQLc+fb9pt3WE5rEL2WrJnUbT/oo69r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336159},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.8_1756253422369_0.36935981875632073","host":"s3://npm-registry-packages-npm-production"}},"2.2.9":{"name":"xchess2","version":"2.2.9","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.9","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"f1d444ab3e4e5eb193d8b022ce6908b44290a349","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.9.tgz","fileCount":50,"integrity":"sha512-JLS2NgQkwWg+RqEy7GtaEhFG0k8VJg1k2d4r9EU+NHdReCQYQ42a5liAyc+yYgZzIJ+8O7n0W453zJ6tVaKyfQ==","signatures":[{"sig":"MEUCIQCh9ckZbk6urYzvNdG8kfqhCBaKfB1LlazLo+nt+R24hgIgCDS6XV7d9NuEEiSTtN/ZdptNBMdqq3FhUqdWCSvXrIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336597},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.9_1756254794381_0.37153789127945736","host":"s3://npm-registry-packages-npm-production"}},"2.2.10":{"name":"xchess2","version":"2.2.10","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.10","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1eda87b412d9701b82848a070f256a53ca320013","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.10.tgz","fileCount":50,"integrity":"sha512-YcMuvkS9nJmtdUSIsehoRzWfwvockHa4MJ01Hm+xvPf3iX2u81tbHFwU4Ps5Ef+uzDW4eRVJiSJ6qdXe5V5/wA==","signatures":[{"sig":"MEUCIQClxOzsOgCYeMG8ofETPE9np5PugmKumBMSrEFsArCgkgIgEsyRXWn8Aj3JBZj2XVw3xmriazF5fA+TXuuZkf0zjLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337752},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.10_1756257863429_0.8992642529577934","host":"s3://npm-registry-packages-npm-production"}},"2.2.11":{"name":"xchess2","version":"2.2.11","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.11","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"74c5e23805383ada41bea94ffd699325ae5a8956","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.11.tgz","fileCount":50,"integrity":"sha512-wnK4ggkqFsKK/31/z+I3Z3FYH9usYEO/nM8zVDyZiLUVpvjuRghzg7486R4NKoVBhe22lTpvR2tymQzAPWB2NA==","signatures":[{"sig":"MEUCIAUbySkD3KeMXX7AQ/BY1cIXN2enRHLkeDe192fUcRmiAiEA5OqebYQw28vtBXZYy2RSoKQcL710f4OibT5X9oFE4WA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337752},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.11_1756257958508_0.6705501511093197","host":"s3://npm-registry-packages-npm-production"}},"2.2.12":{"name":"xchess2","version":"2.2.12","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.12","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"4eec647f16fde1d2d7bfcd4e8ff096c8a118c77e","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.12.tgz","fileCount":50,"integrity":"sha512-B8Z0Ohg9/n+7oWCr337g+eftktT9qXmKE22hqRNZh6yOwZuoHGfUKFc7pRb5DhZ+eWTRP30GcYuANXgy4KFeZg==","signatures":[{"sig":"MEQCICRifKT2GHLXEtlIepu/Z70buX49imIRCA61+Kez2XsTAiAdhcSHsw6kMTVEqy/3Zbg1LgmUsWilPV6NAXgAN66AAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337756},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.12_1756258015493_0.13337994302133716","host":"s3://npm-registry-packages-npm-production"}},"2.2.13":{"name":"xchess2","version":"2.2.13","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.13","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1ec0ed6369a72db361956ef609e3ba71ea797db4","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.13.tgz","fileCount":50,"integrity":"sha512-fZIYF+TRknVrbzjoZB1ueeBGWeHkh34KKjwWPrb9LqoR314Exu2/LzJzvRTJeHS+NHI6udoz493A8Z2hndx1Dw==","signatures":[{"sig":"MEUCIGaAxelOOb/gmdPSaCdZh9/4794y6cx9Mr7KT+LcAeLTAiEA+G+DxyHx1fPRD7IYumLRErnS9vLWKhEUJ2Jo6ICZyhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337760},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.13_1756258074142_0.10560540471360635","host":"s3://npm-registry-packages-npm-production"}},"2.2.14":{"name":"xchess2","version":"2.2.14","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.14","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1f074377da3721a9e885b0f6617b1bad827ff0d9","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.14.tgz","fileCount":50,"integrity":"sha512-kvgeWaSX22wLdiQvDm7QbF1dE8PKZkS724lEvcnBanveYQ9D5FKkdMCN4D2bbuILkA8ovay62vpdx6uw0HM+RA==","signatures":[{"sig":"MEUCIDwttA57EnT+50oM2o+EWB2LBG9vhjWGcDkbNBMzAvynAiEA3MNoklwp5wcep3tahYXR3nP3BfKK9KW3BNz/ZgYW16Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337760},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.14_1756260501025_0.16486368667122875","host":"s3://npm-registry-packages-npm-production"}},"2.2.15":{"name":"xchess2","version":"2.2.15","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.15","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"8873a7bf291437a56983c50854cfaa3a3002bcbf","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.15.tgz","fileCount":50,"integrity":"sha512-U9cxpjlYnZUT1NC9LQ/xlvOlRo1E+OYy7uJMQnukRApkcrpLQGdvdm1eNEkNGfdilg/0D9DcsHHAwKKEE8Kbng==","signatures":[{"sig":"MEYCIQCG/4g/uM6e/fytvEmCXdB+3VaO2tP0mgoXtFOo2n/JKwIhALw1f7LPsjplWOIt3W78NZXaz8x+X+uoFeb0dp4xRzHZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338593},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.15_1756322119892_0.5251387238791145","host":"s3://npm-registry-packages-npm-production"}},"2.2.16":{"name":"xchess2","version":"2.2.16","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.2.16","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"2e3b748713548d8e6d05544894cd0e65c696db91","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.2.16.tgz","fileCount":50,"integrity":"sha512-PezF5az2Zm6KHXDWnklOm0grL5ZPpmPl88svBNAZ7jPY8npN+B1XdKzGm3P9IswBRUO3jSjai0lziakzQlti8w==","signatures":[{"sig":"MEUCIFjEsn/9w2Q9CGPFBwqHy2b+06y2tLl7yJwWAElktaLlAiEAonbb1/sWHIlB2KgqO8vfSsk9M7PPwsJJhRFqxGm6LuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338592},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.2.16_1756322253908_0.5061860819980826","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"xchess2","version":"2.3.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.3.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"b60f577c5e4f17e3596ed3eb81ed337dabd7e3b2","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.3.0.tgz","fileCount":51,"integrity":"sha512-pLrQA7EtDY088pQGkgdVWP0taraNthXvLjdteMJ3PRyqng3U6rlEdJWl8aWiY4gh+xIhN2QE/RJIatYu+Udu6w==","signatures":[{"sig":"MEYCIQCgPUe+L2XyR73iTjgAZNFj7A0on0/0oxTl3i1eURiKfQIhALhhTu2b4dEoCxqI+BqP4PVWLrwdnVazqcgpGUqKIHlE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348225},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.3.0_1756401353227_0.9780735361081156","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"xchess2","version":"2.3.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.3.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"deeaa62518d3198184a82c5e97f6dffbbd46d6c7","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.3.1.tgz","fileCount":51,"integrity":"sha512-m1ltpbw+hvO3nbJPKTkNZDIEAPep3xuD1738jPq1QTkAWkRASRqwNCt9qvCgA1VT6PRUFNHmTNLhsqRoqDqNNA==","signatures":[{"sig":"MEQCIGk3GWx2FQGcoSkFCwck5yJ2SPxswSJ6lTIDjEFBgTM3AiBIx+XUYtXk/lv8BwSfar4dDh3F6EGRk150dxtesxEciw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348327},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.3.1_1756401537769_0.5678926261101291","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"xchess2","version":"2.3.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.3.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"ac13919c9a30765ba8f515e70d61cafbcb4cbe36","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.3.2.tgz","fileCount":51,"integrity":"sha512-33kwyxDmdGd8pBhJ4OyqVqnKdQTRKxUu72XihbRaTh5oS9u4LO88flK+qpNqAatw4pkIKDXjyqYbTeAOU0v2jw==","signatures":[{"sig":"MEUCICP61Akiq9IKwo2222BD4mb6ygVXbYA3fL7A4Jsu1lSRAiEA21OIhPyN1FDKmBYOKVL+/EN0smxTGsSYPHKCkd4qLko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348355},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.3.2_1756401727461_0.020042887518785246","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"xchess2","version":"2.3.3","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.3.3","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1b90839a3a730499d508d3e8ab95b308400825a7","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.3.3.tgz","fileCount":51,"integrity":"sha512-gWnmccSFyAMIYI48H4aeUiJEYK1M/7E5oqpxcyTNgx+mDh8iZcgSakr7qEaBZoS6wLlKZWvzPuGr1ak3Q+pyaQ==","signatures":[{"sig":"MEUCIQCNmuRG/TmVOxEzptki1i0yYuer3saunMppsPuNT5QcCwIgU3Gob+GF7CU6USgMvb53uMwzN5jUhWwk3c7wwQndVT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348888},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.3.3_1756404802011_0.7079452326409121","host":"s3://npm-registry-packages-npm-production"}},"2.3.4":{"name":"xchess2","version":"2.3.4","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.3.4","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"babe076dc85f62555364e2385d49dc09d01b35f3","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.3.4.tgz","fileCount":51,"integrity":"sha512-GTjK+4csXgqSBWbFpYjw8bWOAWIXlxKUBw1+Y5WsaLmQkUs4+ZVqlSSBX/OPLobJS6ljqYIX5aPMvKyjlmEzUA==","signatures":[{"sig":"MEUCIQCb/Xcq6nxCSTXnNop9y3EWVyxavqFtDK+6YSycafzpvgIgfKHgJoLCZupN9luIuK5v47vyQObVVv7yao3zjTpCGZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348937},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.3.4_1756497283412_0.8097458440786713","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"xchess2","version":"2.4.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.4.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"62996ac2c95bbc1734b88aaec5ace17a5135eae4","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.4.0.tgz","fileCount":51,"integrity":"sha512-7p+XbkwdecPG35KDH/Mj0wFfOxPcpI4owLYdeRAzW/KOP1TVBkXRW+XWHeD0C1M0sB/+3HBxxyzmEqNosktjsg==","signatures":[{"sig":"MEQCIHfdHL6uNDLWa/PEUeCDn8o3HgqM1Yh+GkWaKlZiwoy/AiAXz7JmESg8jSzAwNQ3JzJ5gZOFaQoeLGcS+PUYEWFAPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349258},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.4.0_1756503931095_0.036215507219835574","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"xchess2","version":"2.4.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.4.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"04a878f4654febf520747afaa1feea1f743f8ed4","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.4.1.tgz","fileCount":51,"integrity":"sha512-3tgnyegwOkDPrAtQUVKGFWbAR/WrJnQgYFGmRD6j1nLG4xEJIXRkIuyUadl99sfrDojaq7PDgLDBVCkxaqfIrw==","signatures":[{"sig":"MEUCIButg1Vu0SLVBA35Y/WgsFJdPN8DpgIu1am/Y660NrmQAiEA9qCpB1kWKbd1stJNf1MXfbGJ7FAfhNai9WeNfxxwt70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349343},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.4.1_1756680521640_0.21620217116817564","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"xchess2","version":"2.5.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.5.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1e6dfc531175ff1c40354f8ee516c38f40b69bc4","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.5.0.tgz","fileCount":51,"integrity":"sha512-nq/0QrLfZ+gk6y1A50KjJO9N+qdqTZKIijpwvBznA6uBHOgGdK8RwJyD9rmiiHXHrn9KtX9HZ2IRrwXul0El4g==","signatures":[{"sig":"MEYCIQCA3jsnn/Ej1Vrh+8fRf3E27ZiS+16tFPywV5SmZLI6CwIhANKi0WD3g/EqNQjcCthRpo7ywtaCE7b60V5ZVhG9UjjN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350318},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.5.0_1757526451298_0.10511930858658802","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"xchess2","version":"2.5.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.5.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"9bd1f6219b657c081f9e609bee4f4295265e0112","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.5.1.tgz","fileCount":51,"integrity":"sha512-2fB3R5vXr/aKEd/kGyxDO5yJi9nP02h+t3DuSo8p8Pb0t8uAb63tQK5l6kRU5LAJ3CIZth/j7ltYMYYbslEdEw==","signatures":[{"sig":"MEUCICUnfr7/CuLNQ5Ro5Thad25DQYc0UrrdnUL2Hi4Q7qZHAiEAtZx6SM/+bENPefkFtRvYDGXmVg4WK7icuFSo4IAOBQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350375},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.5.1_1757526610744_0.26646104687104955","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"xchess2","version":"2.5.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.5.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"2cb56e8c5628eae26d21819d584e57acd3bd4bef","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.5.2.tgz","fileCount":51,"integrity":"sha512-C3W6XJ34htk1OQG5yEXZoJULm9L+G5iQoFUhH7tJF4GpPSiKFKZ+GFIE27b/mND07JG2yw5LuX7gzpycdfCoDQ==","signatures":[{"sig":"MEUCID/ZCqbDY8QJUKob88VhgczfqbKzgE3zhSEVJQAxxG2BAiEApx9fNS4xaEB48D8/2C7Uq5QVnGYmiiJur/2nlNNqtCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350375},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.5.2_1757526626406_0.3977110995941737","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"xchess2","version":"2.5.3","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.5.3","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"5c12536396441da92cc80810db94b9234961247e","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.5.3.tgz","fileCount":51,"integrity":"sha512-QvX7LjTHxtejhB5KbCklp9nqf2iWfa/JvtU5TD2u5W0FuxeptCqOlPXm0cvpd42Spa7ey1jFBATrqx7u6FT/Vw==","signatures":[{"sig":"MEYCIQCocI4/yC9OfPYJTDsRXMe3mYmcdK4FjHG3qT+YNc/jkAIhAIFLLSn80gWm4ikeslIrd3mOelaSuQ2fe9VszGUtdcOm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350375},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.5.3_1757526699011_0.4688297311473997","host":"s3://npm-registry-packages-npm-production"}},"2.5.4":{"name":"xchess2","version":"2.5.4","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.5.4","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"e74d9fb6d1d5a80298f2d2b80e7418517efd6df5","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.5.4.tgz","fileCount":51,"integrity":"sha512-vZcW4KFxc6siirZuc6Tp4rlzrIOe6aWtd5oQrZpDeZiDkWbOEqsu+tPgZoZJ58pd+lkJ25FO7URljGGrXOB3lQ==","signatures":[{"sig":"MEYCIQD9DbAy5ZmMe6ebY7wa/IX0f7DXl2TjRmqqaUCO2c5CRQIhAJGbZCyH2PeRl/abI5PMRNtb1FQjj0DL5S2exlROp1sv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350380},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.5.4_1757534082208_0.058158574120640294","host":"s3://npm-registry-packages-npm-production"}},"2.5.5":{"name":"xchess2","version":"2.5.5","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.5.5","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"12672dbe1d9338904037484795d55a6858a527f8","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.5.5.tgz","fileCount":51,"integrity":"sha512-7Cxo6IL3R5NBtyejeu3/WsTVpih9PpSxidZbznZBRR/WNaP5uVhATc5Ma/UpFPUbnRuAFL3CmOargeIX2fjbQg==","signatures":[{"sig":"MEQCIB1u7QeNP2lE+klqShq7Qgc5qnq8i1s2zbzUGcaA/xEfAiBsjsGNAIkFjBCI1XVePXyHsN5a5yRL3uKgDi8tuuqdcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350380},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.5.5_1757547632223_0.7008207730454323","host":"s3://npm-registry-packages-npm-production"}},"2.5.6":{"name":"xchess2","version":"2.5.6","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.5.6","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1e32e2dfda02dc48dc6b1cd95ec8ed3a1fc352e1","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.5.6.tgz","fileCount":51,"integrity":"sha512-CVklD50Ce1xUXWOSL6tFu4/GX5113iqBXjRnhTxre+7gC2YquZMJt3x/otrgrvPlNKtTRQM6Yb01TMKe0eFerQ==","signatures":[{"sig":"MEUCIQDs5B5/TdDNjzjDyH+IPsghBAarQD/pUDn8IZHH/klKggIgEpxAHR+BI6oNc5XKaFcMKxJVxpCS74FyKFoY36L4MTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350388},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.5.6_1757630775311_0.3174901571805664","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"xchess2","version":"2.6.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.6.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"308e308e5c8bff75f389cc11a757c8ec232b9fed","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.6.0.tgz","fileCount":51,"integrity":"sha512-i/E17IKKJjVPjYtXnxsAaC+uVXUMmAu0mQugNNoN+vxW569+rOm0VNuWWICpZVuI1HPZshnBs5+i283vxEteEw==","signatures":[{"sig":"MEUCIFsoUlKgK7DSkyWLtTv+JwmzpNJRGCREolmjie8FRsBkAiEAsui8gIAFN1Toxg26ChLnOFSJAxpacfNHAjEXnWgoiTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351672},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.6.0_1757688556072_0.524643234358185","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"xchess2","version":"2.6.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.6.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"628311c1757d403b55edf5e19a41a1b6e0ce4555","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.6.1.tgz","fileCount":51,"integrity":"sha512-Qo/vekK6N9JVY5nolEoHDnxdpXEOQbfQ8XZkSFsxAkAcc9iKXEKxrw+7xdF9hgaNpYmtkudakDXaQkOzgD1Yjw==","signatures":[{"sig":"MEUCIDr26UM1k1dKXEiB38OrJ5CppXZeCvkmqDDaaFv1EXssAiEA74uIklRJTX5mzOJMoK8JcPcKQm0ws9dk55vJJfxGFkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351670},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.6.1_1757688692382_0.6675829517808209","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"xchess2","version":"2.6.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.6.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"355e3c3151f3088a5955952cd0681e02fb5ddebc","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.6.2.tgz","fileCount":51,"integrity":"sha512-KWDA6yUOGfIZznpEXgxjP7uC6wvHv0JkP4XPsXOC1KlB4eKJKEyh1Od9RHCcVVQWGTIQVPWZGh1b4Acg74IS4g==","signatures":[{"sig":"MEQCIH48QbKgqtWQcJfL3YcdUCYaFzuQMhoxtHwONrawvfqlAiAPR3m0mM//mi/BK2NA0I5OfPhHNPDUjrH0Mst3yM8dxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352361},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.6.2_1757690537190_0.09340432440834867","host":"s3://npm-registry-packages-npm-production"}},"2.6.3":{"name":"xchess2","version":"2.6.3","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.6.3","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"efffe7f5a46564f91bec2242ba96b1f744abe02c","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.6.3.tgz","fileCount":51,"integrity":"sha512-PEo2asT7Avqp+/R7wTkvHOxKsZ+ws29dfrL8Uy1gUbjmX05NCm9c+XfNsisVgiAbnrMUcAslfL/H+AApkQE6QQ==","signatures":[{"sig":"MEYCIQDQLMWopUVKqxepj1yqlNN+TaZF/YozTMlNk2OHLd8CfwIhAMjbu6fhgh/83TtkV/eZ+5fgGmPurAUfxFxzQhEiaozx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352411},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.6.3_1757690614406_0.9995857669131325","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"xchess2","version":"2.7.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.7.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"f8064069b7043ed02157f8028d23a1de57c1ee1f","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.7.0.tgz","fileCount":51,"integrity":"sha512-ar3Bm39KcomAzsIy5em7k77czhoOC2Jm/GxCiHimcoCmNbVY9m2IMNP2movwdCFU4sALnaPuUY3dQkxOkX4lqQ==","signatures":[{"sig":"MEUCIC1k57g4vdSEffJAdBas/10RAOjsr6hSwTp0wzjIw6VJAiEA/VNiXCi3c5c/hHKhAtbi6wQyBjR32Qs9iGn78XN+/M4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353863},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.7.0_1757789059335_0.07518470026314716","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"xchess2","version":"2.7.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.7.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"6b71f69af1f3ed1de6400e168bc4e067a064562c","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.7.1.tgz","fileCount":51,"integrity":"sha512-DAUpIWcX4UHe3tcYUb63ommjPfCi7zmNpjZm/ZBDgAe5Zrjq1c8ejYzTnSYpsaeu8kbpFYBFrNh/os7W28oybg==","signatures":[{"sig":"MEQCICt9scWKB8sDcvE4JZZkTJVD+oXmrxn0KNCSjOCSn+oOAiBZ81xI5SXksEMnxmaRJqWF+EqrqE9gaWlU4oBGSGkLOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354054},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.7.1_1757870113275_0.04591764709791235","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"xchess2","version":"2.8.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.8.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"8a7ecf74fbddce59014f18330a86c88ec54edffc","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.8.0.tgz","fileCount":51,"integrity":"sha512-JBfyrKxi38hoRUVDpff4L1O5fOqI8fBU8VLBAk7J/gKX9v8MAdSIvCMFo0l2/uWj9cppkJCRdD5GbgssgVODMg==","signatures":[{"sig":"MEUCIHDykTX3s4ZlkE/Fb3eGv1hQYmVK87NhxloOuW8hk0k3AiEA2AKIpdHpl70Ey2gSaTPo7idhgdgaQP+z0GHxy2ls7I0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355026},"main":"lib/index.js","type":"module","gitHead":"e4734bbe1f104e467bbf25c0f7ac65779eea0a47","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.8.0_1757908609481_0.3786098255988948","host":"s3://npm-registry-packages-npm-production"}},"2.8.1":{"name":"xchess2","version":"2.8.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.8.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"9792ff6abfdc168bc1558bf87c64dd26bc88e014","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.8.1.tgz","fileCount":51,"integrity":"sha512-Z6ig3dAdol8CN2bgPx6OONKCkvNAzFMLsDSa0CTfP9uPHRjDNTPGzbY259ZgTRa+6lbUSkwa4sQvPMkPSRjb7Q==","signatures":[{"sig":"MEUCIQD4CZcMapBsiOVNAkBZgSvqPRTdZQdgfyEH52FR7Y3iVgIgblxSJivYBkv3jMs1oQ1rvOEgHGnv9tDiGDY0ADfkcCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355036},"main":"lib/index.js","type":"module","gitHead":"1142fdda1d68fef3884ec0f4c480664b1903bac3","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.8.1_1758304556966_0.7850914440714647","host":"s3://npm-registry-packages-npm-production"}},"2.8.2":{"name":"xchess2","version":"2.8.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.8.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"e92c80c89780f8d0143ae45ed9fcaf2006c348c1","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.8.2.tgz","fileCount":51,"integrity":"sha512-JyKHgzgwhCLhKrUtDvStNwZ/0MbSvENjZR+PNj+ph+NDCIDbDl/vJK+Im+3bTeHDaS1/YZvfoCPqi2+ws9+XLg==","signatures":[{"sig":"MEYCIQCfMOFDso96yEWiXTUDbUcZy0WAHSe1SdBB5F5GWn7KSwIhANAsm2W7Tl+E8Q2mJek6ptK0zENMQzccTGtSAkrX6JbN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355241},"main":"lib/index.js","type":"module","gitHead":"1142fdda1d68fef3884ec0f4c480664b1903bac3","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.4.2","description":"Chess Engine","directories":{},"_nodeVersion":"24.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.8.2_1758308553939_0.4479753372633195","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"xchess2","version":"2.9.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.9.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"a50738b010f522a0c17f0b2f48f470e7abbde4e0","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.9.0.tgz","fileCount":51,"integrity":"sha512-bScOicZ9qOenAUOOvHNAqkFYF1q5naQuhGf/hMyrRdXUhkdT38OkJd2UhUL7els09PWjVuTa0FQLOpbs14KkQA==","signatures":[{"sig":"MEUCIDMokv3ifZdekfYGa6EoYKnbqluQ4k0nRigWKf1yWguRAiEAhD/Sg3YARrWQ/6s7H+KldHIVhkYwLVDFooIJTxnqwKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355512},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.9.0_1778617106484_0.5355307775385352","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"xchess2","version":"2.9.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.9.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1e7819c125adccef262af2c024f01ab18536aacb","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.9.1.tgz","fileCount":51,"integrity":"sha512-I2rkVtCvWWe+8tqIlhL6Hx1tRxOMUcdiG2CF99KRyHuoLPFcAPDl7awyFjxpMMH2fN4jKsxsqY9KtQM/32wcCg==","signatures":[{"sig":"MEQCIAph+KJ20qOGNIti49DvQyAFnfX1MMrRlTnpgFHT4TBZAiAXdrg/c7s0iXSZpOHm/CheywcQ99uYPigqQ9q/s627gQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356238},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.9.1_1778618071188_0.5217372497557053","host":"s3://npm-registry-packages-npm-production"}},"2.9.2":{"name":"xchess2","version":"2.9.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.9.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"fa66af2e7de85299e42e8afaaaea068d00dd08d4","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.9.2.tgz","fileCount":51,"integrity":"sha512-2dej8tINiBlf+QgsYa+ucKDHMlHTBnA6120gOEH4wT2aPcMJhBi8t6BczgnhxtYp3U/L+DfeNkY37xn9dgUtRg==","signatures":[{"sig":"MEQCIAqcB+YOILvwyu3w64hI4V2zZ4cxl3YdcmvLIwcCQq6KAiAdy86EZ/XcbsmXM/76VsXs6OQMJel0oCq2Hp0t8YSUWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356238},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.9.2_1778618119122_0.7617522361472371","host":"s3://npm-registry-packages-npm-production"}},"2.9.3":{"name":"xchess2","version":"2.9.3","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.9.3","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"2495a599a9cd5d9d4a3ebea6c27d8e560024f7f0","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.9.3.tgz","fileCount":51,"integrity":"sha512-7AzKp2CoyGcrQwkq62KaWz/HEAtWzvYz/qvbjM5DL2uKksuxY3w46dii+oJOwEd1VEvEbE5PYuL/a5AFHr9RrQ==","signatures":[{"sig":"MEQCIHwwdcO1dIwTf270pg5WENgIdj3/9rVUZku4HWmhmiUrAiBV9RtlHjwpxOR5wlUfzIjU7c18qiV/lHbQrDqyxdeJsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356240},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.9.3_1778623453767_0.008560243673249035","host":"s3://npm-registry-packages-npm-production"}},"2.9.4":{"name":"xchess2","version":"2.9.4","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.9.4","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1771bf11b4591c8dff93e13b03d21d3e44886136","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.9.4.tgz","fileCount":51,"integrity":"sha512-wroae5lMgCjPe76m1lfpa1HNoeY9CVleViqaWbGr/W5UHtdOw3VGwBgl7be0oyI/EtY5Crfl1ybLPWsjurFR3w==","signatures":[{"sig":"MEYCIQCBvLQYD/EY+ptW47484vitpBZUjziIv1TdX1YK2y8riwIhAJlglnKa7+72h1Se/Dtd1aVNjXpbadYI9WWcYuJC64kE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356259},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.9.4_1778623599326_0.25473217920439284","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"xchess2","version":"2.10.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.10.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"0dfbb2a0d518646ed188557469324cb6d104b7b3","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.10.0.tgz","fileCount":51,"integrity":"sha512-iUnl2TJOKPxU+i7oH1g6OHEEBvM5S2o0NEYN4EviC9wndnGHCQFmT8m/IPMzm3+gPrBKDvS+J/65JSDEmEkbhA==","signatures":[{"sig":"MEQCICRIv/s61odrxMn1nv4EsG2GFB1H1tv+NQ8zwuuvLY7rAiBG7JAyzEkIVXBqOaMxqaS/jHVhw5bqGAenxEIjGuwjHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358146},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.10.0_1778641362856_0.8752920541563534","host":"s3://npm-registry-packages-npm-production"}},"2.10.1":{"name":"xchess2","version":"2.10.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.10.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"3caf505917a96189448ff31fa45b4af535457fc9","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.10.1.tgz","fileCount":51,"integrity":"sha512-O5oJX6BHT9p0q3VNxHdbMoTrIwRghXtdVzWFIOgEO3p+chdb/wwlqILBzNetwZdTwXYcWqmdDP5hXJAk/JowYQ==","signatures":[{"sig":"MEYCIQCmhUDsCa3iZec7Fx0onESgNajBbHEwCQDOkMjlqEzhOwIhAIthjjuE7XIhpd5khyurB/mzp0X+ZeGCCngjwExrHZNp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358145},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.10.1_1778642297292_0.030957521802851495","host":"s3://npm-registry-packages-npm-production"}},"2.10.2":{"name":"xchess2","version":"2.10.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.10.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"e182adc13c328cbbe7a0c102ed2ee96822d0f189","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.10.2.tgz","fileCount":51,"integrity":"sha512-WRLIeDaBlmB04ecB9xWI7aKaLd8zuUYA6SbL5yHcL3Tire15wQWC2chb2LbSO4/sniBw1EpEqowG7myf8xqobw==","signatures":[{"sig":"MEYCIQD+DePSlhh32aipgAZaZQDy4DexUtnZyTXZ/Z8HufKA/QIhAO7fn8SJjEAsUIsip7I4m5/eTTczpirCZ6VpYOo5LYdH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358204},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.10.2_1778642751666_0.8498722641273537","host":"s3://npm-registry-packages-npm-production"}},"2.10.3":{"name":"xchess2","version":"2.10.3","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.10.3","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"7bac15868285b6294b7edf396b4ddef61ab2a887","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.10.3.tgz","fileCount":51,"integrity":"sha512-akE0gfVuiC5U0fmhTa2crB03ogg/zH8lR0AwKAuraGjpCwMydK6a+97yPkxLWXYAuLiyWAMBgZ9Zw/mMUazHCw==","signatures":[{"sig":"MEYCIQDJJ9dAAZAA8D8Fqo7k5uzLl/sgj+s7tcEjks5X/osjmQIhAOvEoxzFY7RfRZ53MNkGfsF++yHyPWej05rYL77FJT0O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":358802},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.12.1","description":"Chess Engine","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.10.3_1778643210999_0.8493222590814011","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"xchess2","version":"2.11.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.11.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"3491fba4ab3ff0b412d3eea62f7a85b5442dbe7e","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.11.0.tgz","fileCount":51,"integrity":"sha512-5i1SSIgaWpLX6x/TKXNttYXNs8A4WnOdgMfZV9oGeA4+RQJVfUOSLkHsMnIRVoHS+n5GeV5qbYTffUHJGPCUDQ==","signatures":[{"sig":"MEYCIQDpwGzX0FYVasPGzEcz7Q2nrWlzz87+OjHrkaf3urFFWAIhAMU1JU9na9QRA2afv30EDmX0mOuQMbFOSEz1xbUTMqrE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359476},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.13.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.11.0_1779587850638_0.5687822936054217","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"xchess2","version":"2.12.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.12.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"d14c55eb37d585d872a479b06cc10e32ff202692","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.12.0.tgz","fileCount":51,"integrity":"sha512-7IN1Xpfvt5wVzQFV5rXe5nZSbqP1YOX4NwAzCFTWvRg1BMJnWV21MrkJpEKKW90lFJXWf6DR8Fe+rrqgseRiDQ==","signatures":[{"sig":"MEYCIQCmk93OxoWhYPzW+O1M4ITyc/kqJ/BmGZyT+/1wymEKeQIhAKDytL/eSuzzS+PSiKPfVeBp6t5IVqwP/5bvt+MpCwJ0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359790},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.13.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.12.0_1779902024766_0.2909852798788184","host":"s3://npm-registry-packages-npm-production"}},"2.12.1":{"name":"xchess2","version":"2.12.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.12.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"dcb31bfd2aa1581c8e3ed940a64e24643ebd5262","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.12.1.tgz","fileCount":51,"integrity":"sha512-8UD/IBCDNXpKjxh48vNv6KLxWgh2rQ5lMIHPed0vra57YRUP6L+g97nNbgy9W8V41/NvtOSN/lTkAiEFgCa1wg==","signatures":[{"sig":"MEUCIQCeFyLYGdazzrs8IgyIgUej0eMJlO5VMYSOc7CCP8aFrAIgeTZyJ8gel/1mHkSbs2KHahn4m1zfrX8CQL9iY45saLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359880},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.13.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.12.1_1779902904485_0.33660672686943305","host":"s3://npm-registry-packages-npm-production"}},"2.12.2":{"name":"xchess2","version":"2.12.2","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.12.2","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"b9d34c1f50575bcef016def66187511942bec211","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.12.2.tgz","fileCount":51,"integrity":"sha512-zGlP7EuObhHmA64FZTCv5WESUmX+Mm7ftBFjgjZqqcXWmXkdhjHUAZIGftHGeQUVhvFTF8ADTrHZpPp5L0/pNQ==","signatures":[{"sig":"MEUCIQDFq3VjIj6qgr33hpQUavMn9QBdDlHZ3jsNmjeHRkeuigIgUR1bbKkiAi6VwBb3cwqxLGw1X0qLPzn7Z6kHZG/JHVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359884},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.13.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.12.2_1779918535192_0.7033012594140462","host":"s3://npm-registry-packages-npm-production"}},"2.12.3":{"name":"xchess2","version":"2.12.3","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.12.3","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"1b18443d7c6fcd37851f23a7d92334708189648d","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.12.3.tgz","fileCount":51,"integrity":"sha512-zMNelWUWD5nrVadJ2Cg2mzHGhV4Dy5K58b77Zo4mzXpl3r+syUPy/UkhQ1u3xOZHhtja3yabRunm4C68MtI4TA==","signatures":[{"sig":"MEUCIQDRwq4VOUmKjaoN+MSINKspi8arwzaq/cJYOtWALHtLPQIgSnSCr6bnBqUy4JlS+nnWWMgZvSqKyrAl28dLrbjRjdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359811},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.13.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.12.3_1780155617222_0.1379481093937307","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"xchess2","version":"2.13.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.13.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"319cae6c8ec4ab05505adf0ae98bd215d545246d","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.13.0.tgz","fileCount":51,"integrity":"sha512-wDUHYEQKah0tvbFcxBAI2O8Th2tYAHc7lhNITAAW+mSx6AnP6nmNjEx3yRwom1xmbi+/8IqAV63hu4CsmMxDdQ==","signatures":[{"sig":"MEQCIAc+R3QOzS1iuVQXh1SSB5JF+9oWGpKeXoWTL1ynoSIGAiAMNpn02yDI367Z89PqWQ0cK+YQlL3RinzeFMBWM94GmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360665},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.17.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.13.0_1785116830543_0.8755946844527513","host":"s3://npm-registry-packages-npm-production"}},"2.13.1":{"name":"xchess2","version":"2.13.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.13.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"f215d6306688eae3e9bda57ff4d90a4dfd921e58","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.13.1.tgz","fileCount":51,"integrity":"sha512-v9wTwqnK4Mqvc2zHhjhav9tYRTt6lhqxzBRp0miG8edtNLO0o+UIhHpR0ToGtKLR/PMVUfDonyjBr4kXZd/mWA==","signatures":[{"sig":"MEYCIQDsRCBinR9RnKf1NlpUlZLAilBsLmavkCG3nDYFJBq2WQIhAI3NpoDVKavuQezX7RrIjdIUie7ofOPtWVcPCO+Tw0Qp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360693},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.17.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.13.1_1785426019733_0.32195796319898307","host":"s3://npm-registry-packages-npm-production"}},"2.14.0":{"name":"xchess2","version":"2.14.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.14.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"49155b6a0686cbfe87d2cb443dbd894c53ab1518","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.14.0.tgz","fileCount":51,"integrity":"sha512-yl2yvbdyRWJVm2wCmxTkEE0zpxVw5EUous/e4p98NrE42YiuMK57RnysinF57+yZqNUs9ulBD+m/wTFqMYa9Ng==","signatures":[{"sig":"MEUCIQCxUm+JsCnSrRYMbO+E6MCNrMhGvrv+0hp6BCq4SuNt4AIgHcIZZKA2gwJdDOTcveCf2pUI31M67pXVRYilPLT8qtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360618},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.17.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.14.0_1785427448791_0.5627611484595114","host":"s3://npm-registry-packages-npm-production"}},"2.15.0":{"name":"xchess2","version":"2.15.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.15.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"58504a86728f3c37b9ed49931737c948022be232","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.15.0.tgz","fileCount":51,"integrity":"sha512-YSJOwRwGIzkXYBSdUtjuBzNeRtE/xsiiHjcVZ9SfVkl8JC7/4P53XKo65pod5qCHj1xcO/kuUQRUE7bUzNH0ug==","signatures":[{"sig":"MEYCIQCfAuLbyRYpyguT0g28Oz0G6ebSWl2PhaxmCUoGCHFSxwIhAISvW0UIR6J2FvwLik2LD9/eF4ZNp0M9ePYYUcSwy0OF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361483},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.17.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.15.0_1785433080623_0.718192008514632","host":"s3://npm-registry-packages-npm-production"}},"2.15.1":{"name":"xchess2","version":"2.15.1","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.15.1","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"c9b2f1fe8dede233067f5b76f310ed6279fcdacf","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.15.1.tgz","fileCount":51,"integrity":"sha512-wQMSYDAWMl8JMONuZBBZPyQtjd1Hih3u+/ytd6DV4LtlIEfsg1eD9aZC3qX0txNkbaFIQ9d2+VfRHftuNbygJw==","signatures":[{"sig":"MEYCIQDSwbfEdlPsksXZlnNOS1D9SJgp5a79x5TuOjhKwngpRgIhAJXky4onHz8Xpbn8fgZpxNBxvyEn/LDZn5ShunKwO/0h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361872},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.17.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.15.1_1785588556127_0.5217100728060311","host":"s3://npm-registry-packages-npm-production"}},"2.16.0":{"name":"xchess2","version":"2.16.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.16.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"ed8bfdbe988ba6031d443212bf98552b621344bc","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.16.0.tgz","fileCount":51,"integrity":"sha512-1oW87JjdrVfMDm28gDNuOsAQO3kQyU+4f2lAFXzuyqxonBbAspWQh0PiEe+DiaC8jyfv6NVxzKRpx5TDcSz48w==","signatures":[{"sig":"MEQCIChGU2X3i1uvbYP3nEgsBcVrVn/8/JkoHe0VqJDjYNQuAiBt3jDpy2dCKuYZQmWqso8Fp9g1M31FEpFtx8fazaqXFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":362168},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.17.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.16.0_1785589005007_0.8895876591095622","host":"s3://npm-registry-packages-npm-production"}},"2.17.0":{"name":"xchess2","version":"2.17.0","keywords":["chess","pgn","fen"],"author":{"name":"Aika"},"license":"ISC","_id":"xchess2@2.17.0","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"dist":{"shasum":"ab94ea8cea9db9c64afb816df6cff21c7ced386e","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.17.0.tgz","fileCount":51,"integrity":"sha512-UUtE8nXTOIzE2qRN7GI7Tx30e0hAp9LWiZuFo3g9NVrgTQd8iiaCAomJ6YiZy5Pzt93otSkj6Ikv0azT/e6sgw==","signatures":[{"sig":"MEUCIQDi9EpD36w4CaO+oKjWg66FHCh/HpTo+1FbbaccUMNukgIgZEhH9ROo1ipJL8FkmSRmMrTUJvrMdfcwq7YLLIfWBjY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":362528},"main":"lib/index.js","type":"module","_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"_npmVersion":"11.17.0","description":"Chess Engine","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/xchess2_2.17.0_1785591827078_0.36315990727003","host":"s3://npm-registry-packages-npm-production"}},"2.18.0":{"name":"xchess2","version":"2.18.0","description":"Chess Engine","keywords":["chess","pgn","fen"],"license":"ISC","author":{"name":"Aika"},"type":"module","main":"lib/index.js","_id":"xchess2@2.18.0","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-QgYKrsok6w9c99gGbR4gBsKGs1Jf19FfFbEaNSfAfAWroZkySkquChNzq907Y/IXCxTHcKH11Bz4qnGCuwZozA==","shasum":"1072d0acf7a401078dbbaa6e0503f6b9ba05dfe6","tarball":"https://registry.npmjs.org/xchess2/-/xchess2-2.18.0.tgz","fileCount":51,"unpackedSize":362892,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC3K8fuL/rCcQdyfD5exr4QYAa7SrmyltChUSQ39uI0SwIhANBJRWpZeB3odhRsemUUE93B/jtHN77o4cTGKbiCmHyT"}]},"_npmUser":{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"},"directories":{},"maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xchess2_2.18.0_1786453067640_0.061249193328757556"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-20T18:06:05.067Z","modified":"2026-08-11T12:57:48.218Z","2.0.0":"2025-08-20T18:06:05.279Z","2.0.1":"2025-08-21T11:57:24.761Z","2.0.2":"2025-08-21T12:02:23.245Z","2.0.4":"2025-08-21T13:49:18.674Z","2.0.5":"2025-08-21T13:55:06.559Z","2.0.6":"2025-08-21T13:57:00.944Z","2.0.7":"2025-08-21T18:39:30.325Z","2.0.8":"2025-08-21T18:41:16.288Z","2.0.9":"2025-08-21T18:44:34.515Z","2.0.10":"2025-08-21T18:46:03.623Z","2.0.11":"2025-08-21T18:49:16.603Z","2.0.12":"2025-08-21T21:23:02.530Z","2.0.13":"2025-08-21T23:54:52.440Z","2.0.14":"2025-08-22T00:08:04.996Z","2.0.15":"2025-08-22T00:18:36.504Z","2.0.16":"2025-08-22T00:19:27.426Z","2.0.17":"2025-08-22T00:29:39.474Z","2.0.18":"2025-08-22T00:51:55.503Z","2.0.19":"2025-08-22T01:05:03.657Z","2.0.20":"2025-08-22T12:53:23.989Z","2.0.21":"2025-08-22T17:22:13.798Z","2.0.22":"2025-08-22T17:46:57.187Z","2.0.23":"2025-08-22T17:48:05.258Z","2.0.24":"2025-08-22T18:04:10.270Z","2.0.25":"2025-08-23T02:23:52.382Z","2.0.26":"2025-08-23T16:41:09.774Z","2.0.27":"2025-08-23T16:45:40.080Z","2.0.28":"2025-08-23T16:59:46.459Z","2.0.29":"2025-08-23T17:56:06.531Z","2.0.30":"2025-08-23T18:04:44.327Z","2.0.31":"2025-08-23T18:10:02.789Z","2.0.32":"2025-08-23T18:25:34.068Z","2.0.33":"2025-08-23T18:38:05.775Z","2.1.0":"2025-08-25T01:32:36.385Z","2.1.1":"2025-08-25T01:33:18.758Z","2.1.2":"2025-08-25T02:00:38.035Z","2.1.3":"2025-08-25T02:04:37.815Z","2.1.4":"2025-08-25T12:29:11.292Z","2.1.5":"2025-08-25T14:31:47.190Z","2.1.6":"2025-08-26T01:08:57.054Z","2.2.0":"2025-08-26T19:55:05.910Z","2.2.1":"2025-08-26T19:56:45.339Z","2.2.2":"2025-08-26T20:24:16.865Z","2.2.3":"2025-08-26T20:24:47.155Z","2.2.4":"2025-08-26T20:25:35.125Z","2.2.5":"2025-08-26T20:33:06.782Z","2.2.6":"2025-08-26T20:37:34.343Z","2.2.7":"2025-08-27T00:09:50.418Z","2.2.8":"2025-08-27T00:10:22.609Z","2.2.9":"2025-08-27T00:33:14.648Z","2.2.10":"2025-08-27T01:24:23.653Z","2.2.11":"2025-08-27T01:25:58.723Z","2.2.12":"2025-08-27T01:26:55.701Z","2.2.13":"2025-08-27T01:27:54.323Z","2.2.14":"2025-08-27T02:08:21.240Z","2.2.15":"2025-08-27T19:15:20.189Z","2.2.16":"2025-08-27T19:17:34.113Z","2.3.0":"2025-08-28T17:15:53.471Z","2.3.1":"2025-08-28T17:18:58.058Z","2.3.2":"2025-08-28T17:22:07.794Z","2.3.3":"2025-08-28T18:13:22.306Z","2.3.4":"2025-08-29T19:54:43.610Z","2.4.0":"2025-08-29T21:45:31.277Z","2.4.1":"2025-08-31T22:48:41.870Z","2.5.0":"2025-09-10T17:47:31.510Z","2.5.1":"2025-09-10T17:50:10.943Z","2.5.2":"2025-09-10T17:50:26.583Z","2.5.3":"2025-09-10T17:51:39.175Z","2.5.4":"2025-09-10T19:54:42.473Z","2.5.5":"2025-09-10T23:40:32.441Z","2.5.6":"2025-09-11T22:46:15.530Z","2.6.0":"2025-09-12T14:49:16.288Z","2.6.1":"2025-09-12T14:51:32.618Z","2.6.2":"2025-09-12T15:22:17.375Z","2.6.3":"2025-09-12T15:23:34.640Z","2.7.0":"2025-09-13T18:44:19.579Z","2.7.1":"2025-09-14T17:15:13.490Z","2.8.0":"2025-09-15T03:56:49.660Z","2.8.1":"2025-09-19T17:55:57.174Z","2.8.2":"2025-09-19T19:02:34.263Z","2.9.0":"2026-05-12T20:18:26.703Z","2.9.1":"2026-05-12T20:34:31.361Z","2.9.2":"2026-05-12T20:35:19.325Z","2.9.3":"2026-05-12T22:04:14.007Z","2.9.4":"2026-05-12T22:06:39.516Z","2.10.0":"2026-05-13T03:02:43.074Z","2.10.1":"2026-05-13T03:18:17.451Z","2.10.2":"2026-05-13T03:25:51.829Z","2.10.3":"2026-05-13T03:33:31.170Z","2.11.0":"2026-05-24T01:57:30.805Z","2.12.0":"2026-05-27T17:13:44.961Z","2.12.1":"2026-05-27T17:28:24.641Z","2.12.2":"2026-05-27T21:48:55.413Z","2.12.3":"2026-05-30T15:40:17.374Z","2.13.0":"2026-07-27T01:47:10.698Z","2.13.1":"2026-07-30T15:40:19.916Z","2.14.0":"2026-07-30T16:04:08.971Z","2.15.0":"2026-07-30T17:38:00.776Z","2.15.1":"2026-08-01T12:49:16.279Z","2.16.0":"2026-08-01T12:56:45.188Z","2.17.0":"2026-08-01T13:43:47.210Z","2.18.0":"2026-08-11T12:57:47.808Z"},"author":{"name":"Aika"},"license":"ISC","keywords":["chess","pgn","fen"],"description":"Chess Engine","maintainers":[{"name":"gabriel.zoroaster","email":"gabriel.zoroaster@gmail.com"}],"readme":"\n# Chess Engine Features\nA powerful and flexible chess engine supporting classic and custom variants, move validation, full history, and Chess960.\n\n# Features\n\n- Accepts moves in algebraic notation\n- Lists valid moves in algebraic notation\n- Fuzzy algebraic notation parsing\n- En Passant validation\n- 3-fold and 5-fold repetition detection\n- 50-move and 75-move rule detection\n- Dead position detection\n- Stalemate detection\n- Check detection\n- Checkmate detection\n- Supports resignations\n- Flag (timeout) detection\n- Forfait (technical loss)\n- Draw offers and acceptance\n- Undo and redo moves\n- Full event log of all actions\n- Full FEN support\n- PGN support\n- Custom board sizes\n- Custom pieces with unique moves\n- Custom castling rules\n- Chess960 (Fischer Random Chess) support\n- Fairy/variant chess support\n- Generates valid moves for any custom piece, supporting leapers, riders, and hoppers\n- ASCII visualizations of board, position, moves, and reachability\n- Works in both Node.js and browser environments\n\n```js\nimport { Game } from \"xchess2\"\n\n// Create a new game with the standard board\nconst game = new Game();\n\n// Setup position\ngame.position.setup();\n// Play game\ngame.play();\n\ngame.on('check', () => console.log('Check!'));\ngame.on('gameover', () => console.log(game.reason));\n\n// Make moves in algebraic notation\ngame.move(\"e4\");\ngame.move(\"e5\");\n```\n\n## Work with a custom board and custom pieces\n\n```js\nimport { Game } from \"xchess2\"\n\nconst game = new Game({board: [10, 8], bestiary: [\"chess\", \"princess\"]});\n\n// FEN position\ngame.fen = 'rnbsqksbrn/pppppppppp/10/10/10/10/PPPPPPPPPP/RNBSQKSBNR w KQkq - 0 1';\n\n\n// Show position\ngame.on('state', () => console.log(game.position.text()))\n\ngame.play();\n\ngame.move(\"a3\");\n\n// Get the full event log of the game\nfor(const state of game.moveLog())\n\tconsole.log(state.toSAN());\n\n// Generate FEN and PGN\nconsole.log(game.fen);\nconsole.log(game.toPGN());\n```\n\n## Example of a custom piece class — Elephant\n\n```js\nimport { Game, Piece, moves, hits} from \"xchess2\"\n\nclass Elephant extends Piece {\n  static id = \"elephant\";        // Unique identifier of the piece\n  static whiteFen = \"E\";         // Symbol in FEN for the white piece\n  static blackFen = \"e\";         // Symbol in FEN for the black piece\n  static moveLetter = \"E\";       // Letter used in algebraic notation\n  static whiteSign = \"🐘\";      // Unicode symbol for white Elephant\n  static blackSign = \"🦏\";      // Unicode symbol for black Elephant\n  static code = 6;               // Internal code for the engine\n\n  // Method to generate legal moves (customizable)\n\tmoves(state, from){\n\t\treturn moves.A(from, this, state.position);\n\t}\n\n  // Check attacks (customizable)\n\tattacks(position, from, to){\n\t\treturn hits.A(from, to);\n\t}\n}\n\n// Using the custom piece in a game\nconst customGame = new Game({\n  board: [10, 8],\n  bestiary: ['chess', Elephant]\n});\n\ngame.fen = 'renbqkbner/pppppppppp/10/10/10/10/PPPPPPPPPP/RENBQKBNER w KQkq - 0 1';\n\n// Place Elephant on a1 and make a move\ngame.position.set(\"a1\", \"E\");\ngame.move(\"a3\");\n\n// Check FEN after the move\nconsole.log(game.fen);\n```\n\n# Table of Contents\n\n- [Game](#game)\n\t- [Game.is(value)](#gameisvalue)\n\t- [Game.from(value)](#gamefromvalue)\n\t- [new Game(config)](#new-gameconfig)\n\t- [game.board](#gameboard)\n\t- [game.bestiary](#gamebestiary)\n\t- [game.rules](#gamerules)\n\t- [game.tags](#gametags)\n\t- [game.current](#gamecurrent)\n\t- [game.first](#gamefirst)\n\t- [game.last](#gamelast)\n\t- [game.time](#gametime)\n\t- [game.prevEvent](#gameprevevent)\n\t- [game.nextEvent](#gamenextevent)\n\t- [game.eventID](#gameeventid)\n\t- [game.status](#gamestatus)\n\t- [game.state](#gamestate)\n\t- [game.ply](#gameply)\n\t- [game.result](#gameresult)\n\t- [game.prev](#gameprev)\n\t- [game.next](#gamenext)\n\t- [game.plyID](#gameplyid)\n\t- [game.drawOffer](#gamedrawoffer)\n\t- [game.fen](#gamefen)\n\t- [game.color](#gamecolor)\n\t- [game.position](#gameposition)\n\t- [game.castling](#gamecastling)\n\t- [game.enPassant](#gameenpassant)\n\t- [game.fullmoveNumber](#gamefullmovenumber)\n\t- [game.halfmoveClock](#gamehalfmoveclock)\n\t- [game.lastMove](#gamelastmove)\n\t- [game.moves](#gamemoves)\n\t- [game.checkSquares](#gamechecksquares)\n\t- [game.isCheck](#gameischeck)\n\t- [game.repetitionCount](#gamerepetitioncount)\n\t- [game.isDeadPisition](#gameisdeadpisition)\n\t- [game.hash](#gamehash)\n\t- [game.wk](#gamewk)\n\t- [game.wq](#gamewq)\n\t- [game.bk](#gamebk)\n\t- [game.bq](#gamebq)\n\t- [game.reason](#gamereason)\n\t- [game.isSetup](#gameissetup)\n\t- [game.isPromotion](#gameispromotion)\n\t- [game.isState](#gameisstate)\n\t- [game.isMeta](#gameismeta)\n\t- [game.isPly](#gameisply)\n\t- [game.canMove](#gamecanmove)\n\t- [game.canMeta](#gamecanmeta)\n\t- [game.isIrreversible](#gameisirreversible)\n\t- [game.isGameOver](#gameisgameover)\n\t- [game.isWin](#gameiswin)\n\t- [game.isDraw](#gameisdraw)\n\t- [game.isCheckmate](#gameischeckmate)\n\t- [game.isStalemate](#gameisstalemate)\n\t- [game.winner](#gamewinner)\n\t- [game.loser](#gameloser)\n\t- [game.stats()](#gamestats)\n\t- [game.traceMoves(square, piece)](#gametracemovessquare-piece)\n\t- [game.play()](#gameplay)\n\t- [game.move(query)](#gamemovequery)\n\t- [game.promote(piece)](#gamepromotepiece)\n\t- [game.forfeit(color)](#gameforfeitcolor)\n\t- [game.resign(color)](#gameresigncolor)\n\t- [game.flagFall()](#gameflagfall)\n\t- [game.draw(color)](#gamedrawcolor)\n\t- [game.nag(value)](#gamenagvalue)\n\t- [game.comment(comment)](#gamecommentcomment)\n\t- [game.undo()](#gameundo)\n\t- [game.redo()](#gameredo)\n\t- [game.go(offset)](#gamegooffset)\n\t- [game.goto(plyID)](#gamegotoplyid)\n\t- [game.rewind()](#gamerewind)\n\t- [game.end()](#gameend)\n\t- [game.undoEvent()](#gameundoevent)\n\t- [game.redoEvent()](#gameredoevent)\n\t- [game.goEvent(offset)](#gamegoeventoffset)\n\t- [game.gotoEvent(eventID)](#gamegotoeventeventid)\n\t- [game.log()](#gamelog)\n\t- [game.moveLog()](#gamemovelog)\n\t- [game.events()](#gameevents)\n\t- [game.toPGN()](#gametopgn)\n\t- [game.on(eventType, listener)](#gameoneventtype-listener)\n\t- [game.off(eventType, listener)](#gameoffeventtype-listener)\n\t- [game.once(eventType, listener)](#gameonceeventtype-listener)\n\t- [game.emit(eventType, ... args)](#gameemiteventtype-args)\n\t- [game.subscribe(listener)](#gamesubscribelistener)\n\t- [game.unsubscribe(listener)](#gameunsubscribelistener)\n\t- [game.on('transition', listener)](#gameontransition-listener)\n\t- [game.on('seek', listener)](#gameonseek-listener)\n\t- [game.on('seek-state', listener)](#gameonseek-state-listener)\n\t- [game.on('seek-ply', listener)](#gameonseek-ply-listener)\n\t- [game.on('event', listener)](#gameonevent-listener)\n\t- [game.on('state', listener)](#gameonstate-listener)\n\t- [game.on('ply', listener)](#gameonply-listener)\n\t- [game.on('play', listener)](#gameonplay-listener)\n\t- [game.on('50-moves', listener)](#gameon50-moves-listener)\n\t- [game.on('3-repetition', listener)](#gameon3-repetition-listener)\n\t- [game.on('promotion', listener)](#gameonpromotion-listener)\n\t- [game.on('move', listener)](#gameonmove-listener)\n\t- [game.on('promote', listener)](#gameonpromote-listener)\n\t- [game.on('capture', listener)](#gameoncapture-listener)\n\t- [game.on('double-pawn-move', listener)](#gameondouble-pawn-move-listener)\n\t- [game.on('en-passant', listener)](#gameonen-passant-listener)\n\t- [game.on('castling', listener)](#gameoncastling-listener)\n\t- [game.on('draw-offer', listener)](#gameondraw-offer-listener)\n\t- [game.on('nag', listener)](#gameonnag-listener)\n\t- [game.on('comment', listener)](#gameoncomment-listener)\n\t- [game.on('gameover', listener)](#gameongameover-listener)\n\t- [game.on('win', listener)](#gameonwin-listener)\n\t- [game.on('draw', listener)](#gameondraw-listener)\n\t- [game.on('checkmate', listener)](#gameoncheckmate-listener)\n\t- [game.on('forfeit', listener)](#gameonforfeit-listener)\n\t- [game.on('resignation', listener)](#gameonresignation-listener)\n\t- [game.on('win-on-time', listener)](#gameonwin-on-time-listener)\n\t- [game.on('stalemate', listener)](#gameonstalemate-listener)\n\t- [game.on('dead-position', listener)](#gameondead-position-listener)\n\t- [game.on('draw-by-3-repetition', listener)](#gameondraw-by-3-repetition-listener)\n\t- [game.on('draw-by-5-repetition', listener)](#gameondraw-by-5-repetition-listener)\n\t- [game.on('draw-by-50-moves', listener)](#gameondraw-by-50-moves-listener)\n\t- [game.on('draw-by-75-moves', listener)](#gameondraw-by-75-moves-listener)\n\t- [game.on('draw-by-agreement', listener)](#gameondraw-by-agreement-listener)\n\t- [game.on('draw-by-resignation', listener)](#gameondraw-by-resignation-listener)\n\t- [game.on('draw-on-time', listener)](#gameondraw-on-time-listener)\n\t- [game.on('change', listener)](#gameonchange-listener)\n\t- [Position Change Events](#position-change-events)\n\t\t- [game.on('insert', listener)](#gameoninsert-listener)\n\t\t- [game.on('remove', listener)](#gameonremove-listener)\n\t\t- [game.on('transfer', listener)](#gameontransfer-listener)\n\t\t- [game.on('clear', listener)](#gameonclear-listener)\n- [Board](#board)\n\t- [Board.from(value)](#boardfromvalue)\n\t- [board.width](#boardwidth)\n\t- [board.height](#boardheight)\n\t- [board.size](#boardsize)\n\t- [board.width10Length](#boardwidth10length)\n\t- [board.height10Length](#boardheight10length)\n\t- [board.maxFileLength](#boardmaxfilelength)\n\t- [board.maxPackedLength](#boardmaxpackedlength)\n\t- [board.files](#boardfiles)\n\t- [board.ranks](#boardranks)\n\t- [board.ranksReversed](#boardranksreversed)\n\t- [board.filesReversed](#boardfilesreversed)\n\t- [board.squares](#boardsquares)\n\t- [board.text(cellCb)](#boardtextcellcb)\n\t- [board.file(value)](#boardfilevalue)\n\t- [board.hasFile(value)](#boardhasfilevalue)\n\t- [board.reqFile(value)](#boardreqfilevalue)\n\t- [board.rank(value)](#boardrankvalue)\n\t- [board.hasRank(value)](#boardhasrankvalue)\n\t- [board.reqRank(value)](#boardreqrankvalue)\n\t- [board.at(x, y)](#boardatx-y)\n\t- [board.get(value)](#boardgetvalue)\n\t- [board.has(value)](#boardhasvalue)\n\t- [board.req(value)](#boardreqvalue)\n\t- [board.rand()](#boardrand)\n\t- [board.pack(... squares)](#boardpacksquares)\n\t- [board.unpack(value, length)](#boardunpackvaluelength)\n\t- [board.packString(...squares)](#boardpackstringsquares)\n\t- [board.unpackString(value)](#boardunpackstringvalue)\n- [Bestiary](#bestiary)\n\t- [Bestiary.from(value)](#bestiaryfromvalue)\n\t- [bestiary.size](#bestiarysize)\n\t- [bestiary.has(type)](#bestiaryhastype)\n\t- [bestiary.promotes()](#bestiarypromotes)\n\t- [bestiary.supports(piece)](#bestiarysupportspiece)\n\t- [bestiary.from(value, color)](#bestiaryfromvalue-color)\n\t- [bestiary.rand(color)](#bestiaryrandcolor)\n- [RuleEngine](#ruleengine)\n\t- [RuleEngine.from(rules)](#ruleenginefromrules)\n\t- [rules.moves(state)](#rulesmovesstate)\n\t- [rules.checkSquares(state)](#ruleschecksquaresstate)\n\t- [rules.repetitionCount(state)](#rulesrepetitioncountstate)\n\t- [rules.isDeadPosition(position)](#rulesisdeadpositionposition)\n\t- [rules.canDeliverMate(position, color)](#rulescandelivermateposition-color)\n\t- [rules.result(state)](#rulesresultstate)\n- [File](#file)\n\t- [file.board](#fileboard)\n\t- [file.x](#filex)\n\t- [file.name](#filename)\n\t- [file.iccf](#fileiccf)\n\t- [file.squares](#filesquares)\n\t- [file.toString()](#filetostring)\n\t- [file.valueOf()](#filevalueof)\n\t- [file.eq(file)](#fileeqfile)\n- [Rank](#rank)\n\t- [rank.board](#rankboard)\n\t- [rank.y](#ranky)\n\t- [rank.name](#rankname)\n\t- [rank.iccf](#rankiccf)\n\t- [rank.squares](#ranksquares)\n\t- [rank.toString()](#ranktostring)\n\t- [rank.valueOf()](#rankvalueof)\n\t- [rank.eq(rank)](#rankeqrank)\n- [Square](#square)\n\t- [square.board](#squareboard)\n\t- [square.file](#squarefile)\n\t- [square.rank](#squarerank)\n\t- [square.id](#squareid)\n\t- [square.color](#squarecolor)\n\t- [square.name](#squarename)\n\t- [square.iccf](#squareiccf)\n\t- [square.x](#squarex)\n\t- [square.y](#squarey)\n\t- [square.a](#squarea)\n\t- [square.b](#squareb)\n\t- [square.toString()](#squaretostring)\n\t- [square.valueOf()](#squarevalueof)\n\t- [square.toJSON()](#squaretojson)\n\t- [square.eq(square)](#squareeqsquare)\n\t- [square.to(dx, dy)](#squareatdx-dy)\n\t- [square.dx(dx)](#squaredxdx)\n\t- [square.dy(dy)](#squaredydy)\n\t- [square.walk(... args)](#squarewalk-args)\n\t- [square.ray(dx, dy)](#squareraydx-dy)\n- [Color](#color)\n\t- [Color.white](#colorwhite)\n\t- [Color.black](#colorblack)\n\t- [Color.w](#colorw)\n\t- [Color.b](#colorb)\n\t- [Color.from(value)](#colorfromvalue)\n\t- [Color.invert(value)](#colorinvertvalue)\n\t- [Color.rand()](#colorrand)\n\t- [Color.all()](#colorall)\n\t- [Color.is(value)](#colorisvalue)\n\t- [Color.isWhite(value)](#coloriswhitevalue)\n\t- [Color.isBlack(value)](#colorisblackvalue)\n\t- [color.code](#colorcode)\n\t- [color.char](#colorchar)\n\t- [color.name](#colorname)\n\t- [color.fen](#colorfen)\n\t- [color.isWhite](#coloriswhite)\n\t- [color.isBlack](#colorisblack)\n\t- [color.moveDir](#colormovedir)\n\t- [color.invert()](#colorinvert)\n\t- [color.valueOf()](#colorvalueof)\n\t- [color.toString()](#colortostring)\n\t- [color.toJSON()](#colortojson)\n\t- [color.eq(value)](#coloreqvalue)\n\t- [color.not(value)](#colornotvalue)\n\t- [color.relRank(square)](#colorrelranksquare)\n- [ColorSet](#colorset)\n\t- [new ColorSet(value)](#newcolorsetvalue)\n\t- [colorSet.size](#colorsetsize)\n\t- [colorSet.setAll(colors)](#colorsetsetallcolors)\n\t- [colorSet.add(value)](#colorsetaddvalue)\n\t- [colorSet.delete(value)](#colorsetdeletevalue)\n\t- [colorSet.toggle(value, force)](#colorsettogglevalue-force)\n\t- [colorSet.has(value)](#colorsethasvalue)\n\t- [colorSet.clear()](#colorsetclear)\n\t- [colorSet.addWhite()](#colorsetaddwhite)\n\t- [colorSet.addBlack()](#colorsetaddblack)\n\t- [colorSet.deleteWhite()](#colorsetdeletewhite)\n\t- [colorSet.deleteBlack(fo)](#colorsetdeleteblack)\n\t- [colorSet.toggleWhite(force)](#colorsettogglewhiteforce)\n\t- [colorSet.toggleBlack(force)](#colorsettoggleblackforce)\n\t- [colorSet.hasWhite()](#colorsethaswhite)\n\t- [colorSet.hasBlack()](#colorsethasblack)\n\t- [colorSet.toArray()](#colorsettoarray)\n\t- [colorSet.toJSON()](#colorsettojson)\n\t- [colorSet.keys()](#colorsetkeys)\n\t- [colorSet.values()](#colorsetvalues)\n\t- [colorSet.entries()](#colorsetentries)\n\t- [colorSet.forEach(cb, thisArg)](#colorsetforeachcb-thisarg)\n\t- [colorSet.onChange()](#colorsetonchange)\n- [Piece](#piece)\n\t- [Built-in Piece Classes](#built-in-piece-classes)\n\t- [Custom Pieces](#custom-pieces)\n\t- [Piece.id](#pieceid)\n\t- [Piece.code](#piececode)\n\t- [Piece.whiteFen](#piecewhitefen)\n\t- [Piece.blackFen](#pieceblackfen)\n\t- [Piece.whiteSign](#piecewhitesign)\n\t- [Piece.blackSign](#pieceblacksign)\n\t- [Piece.moveLetter](#piecemoveletter)\n\t- [Piece.iccf](#piecemoveiccf)\n\t- [Piece.weight](#pieceweight)\n\t- [Piece.isPromotable](#pieceispromotable)\n\t- [Piece.is(value)](#pieceisvalue)\n\t- [new Piece(color)](#new-piececolor)\n\t- [piece.color](#piececolor)\n\t- [piece.id](#pieceid)\n\t- [piece.code](#piececode)\n\t- [piece.fen](#piecefen)\n\t- [piece.sign](#piecesign)\n\t- [piece.moveLetter](#piecemoveletter)\n\t- [piece.iccf](#pieceiccf)\n\t- [piece.weight](#pieceweight)\n\t- [piece.isRoyal](#pieceisroyal)\n\t- [piece.isPawn](#pieceispawn)\n\t- [piece.isLocked](#pieceislocked)\n\t- [piece.isPromotable](#pieceispromotable)\n\t- [piece.isIrreversible](#pieceisirreversible)\n\t- [piece.isMating](#pieceismating)\n\t- [piece.isCastlingActor](#pieceiscastlingactor)\n\t- [piece.isCastlingPartner](#pieceiscastlingpartner)\n\t- [piece.isCapturable(piece, position)](#pieceiscapturablepiece-position)\n\t- [piece.isPassable(piece, position)](#pieceispassablepiece-position)\n\t- [piece.eq(value)](#pieceeqvalue)\n\t- [piece.advantage(color)](#pieceadvantagecolor)\n\t- [piece.moves(state, square)](#piecemovesstate-square)\n\t- [piece.attacks(position, from, to)](#pieceattacksposition-from-to)\n\t- [piece.toString()](#piecetostring)\n\t- [piece.valueOf()](#piecevalueof)\n- [Move](#move)\n\t- [move.state](#movestate)\n\t- [move.color](#movecolor)\n\t- [move.isPieceMove](#moveispiecemove)\n\t- [move.isCapture](#moveiscapture)\n\t- [move.isIrreversible](#moveisirreversible)\n\t- [move.isPromotable](#moveispromotable)\n\t- [move.disambiguation](#movedisambiguation)\n\t- [move.piece](#movepiece)\n\t- [move.from](#movefrom)\n\t- [move.to](#moveto)\n\t- [move.captured](#movecaptured)\n\t- [move.capturedAt](#movecapturedat)\n\t- [move.promoteTo](#movepromoteto)\n\t- [move.qc](#moveqc)\n\t- [move.kc](#movekc)\n\t- [move.promotes](#movepromotes)\n\t- [move.iccf](#moveiccf)\n\t- [move.match(query)](#movematchquery)\n\t- [move.eq(value)](#moveeqvalue)\n\t- [move.apply(prev)](#moveapplyprev)\n\t- [move.project(position)](#moveprojectposition)\n\t- [move.enPassant()](#moveenpassant)\n\t- [move.trigger(game)](#movetriggergame)\n\t- [move.isCheck(position)](#moveischeckposition)\n\t- [move.toSAN(options)](#movetosanoptions)\n\t- [move.toString(options)](#movetostringoptions)\n- [MoveList](#movelist)\n\t- [moveList.game](#movelistgame)\n\t- [moveList.size](#movelistsize)\n\t- [moveList.rand(query)](#movelistrandquery)\n\t- [moveList.has(query)](#movelisthasquery)\n\t- [moveList.of(piece)](#movelistofpiece)\n\t- [moveList.search(query)](#movelistsearchquery)\n\t- [moveList.resolve(query)](#movelistresolvequery)\n\t- [moveList.is(a, b)](#movelistisa-b)\n\t- [moveList.parse(input)](#movelistparseinput)\n\t- [moveList.toArray()](#movelisttoarray)\n\t- [moveList.text(query)](#movelisttextquery)\n- [Position](#position)\n\t- [new Position(game, position)](#new-positiongame-position)\n\t- [position.game](#positiongame)\n\t- [position.board](#positionboard)\n\t- [position.bestiary](#positionbestiary)\n\t- [position.size](#positionsize)\n\t- [position.fen](#positionfen)\n\t- [position.at(x, y)](#positionatx-y)\n\t- [position.get(square)](#positiongetsquare)\n\t- [position.has(square)](#positionhassquare)\n\t- [position.find(piece)](#positionfindpiece)\n\t- [position.contains(piece)](#positioncontainspiece)\n\t- [position.keys()](#positionkeys)\n\t- [position.values()](#positionvalues)\n\t- [position.entries()](#positionentries)\n\t- [position.byColor(color)](#positionbycolorcolor)\n\t- [position.whites()](#positionwhites)\n\t- [position.blacks()](#positionblacks)\n\t- [position.forEach(cb, thisArg)](#positionforeachcb-thisarg)\n\t- [position.toString()](#positiontostring)\n\t- [position.toJSON()](#positiontojson)\n\t- [position.text(pieceCb)](#positiontextpiececb)\n\t- [position.clone()](#positionclone)\n\t- [position.freeze()](#positionfreeze)\n\t- [position.weight()](#positionweight)\n\t- [position.advantage(color)](#positionadvantagecolor)\n\t- [position.density()](#positiondensity)\n\t- [position.stats(color)](#positionstatscolor)\n\t- [position.attacks(square, piece)](#positionattackssquare-piece)\n\t- [position.moves(state)](#positionmovesstate)\n\t- [position.checks(color)](#positioncheckscolor)\n\t- [position.isCheck(color)](#positionischeckcolor)\n- [MutablePosition, SetupPosition](#mutableposition-setupposition)\n\t- [setupPosition.set(square, piece)](#setuppositionsetsquare-piece)\n\t- [setupPosition.delete(square)](#setuppositiondeletesquare)\n\t- [setupPosition.clear()](#setuppositionclear)\n\t- [setupPosition.move(from, to)](#setuppositionmovefrom-to)\n\t- [setupPosition.setAll(position)](#setuppositionsetallposition)\n\t- [setupPosition.merge(position)](#setuppositionmergeposition)\n\t- [setupPosition.fill(piece)](#setuppositionfillpiece)\n\t- [setupPosition.fillFile(file, piece)](#setuppositionfillfilefile-piece)\n\t- [setupPosition.fillRank(rank, piece)](#setuppositionfillrankrank-piece)\n\t- [setupPosition.sample(probability)](#setuppositionsampleprobability)\n\t- [setupPosition.shuffle()](#setuppositionshuffle)\n\t- [setupPosition.setup()](#setuppositionsetup)\n\t- [setupPosition.setup960()](#setuppositionsetup960)\n\t- [setupPosition.king(square, color)](#setuppositionkingsquare-color)\n\t- [setupPosition.queen(square, color)](#setuppositionqueensquare-color)\n\t- [setupPosition.rook(square, color)](#setuppositionrooksquare-color)\n\t- [setupPosition.bishop(square, color)](#setuppositionbishopsquare-color)\n\t- [setupPosition.knight(square, color)](#setuppositionknightsquare-color)\n\t- [setupPosition.pawn(square, color)](#setuppositionpawnsquare-color)\n\t- [setupPosition.K(square)](#setuppositionksquare)\n\t- [setupPosition.Q(square)](#setuppositionqsquare)\n\t- [setupPosition.R(square)](#setuppositionrsquare)\n\t- [setupPosition.B(square)](#setuppositionbsquare)\n\t- [setupPosition.N(square)](#setuppositionnsquare)\n\t- [setupPosition.P(square)](#setuppositionpsquare)\n\t- [setupPosition.k(square)](#setuppositionksquare)\n\t- [setupPosition.q(square)](#setuppositionqsquare)\n\t- [setupPosition.r(square)](#setuppositionrsquare)\n\t- [setupPosition.b(square)](#setuppositionbsquare)\n\t- [setupPosition.n(square)](#setuppositionnsquare)\n\t- [setupPosition.p(square)](#setuppositionpsquare)\n- [Castling](#castling)\n\t- [caslting.fen](#casltingfen)\n\t- [caslting.size](#casltingsize)\n\t- [castling.wk](#castlingwk)\n\t- [castling.wq](#castlingwq)\n\t- [castling.bk](#castlingbk)\n\t- [castling.bq](#castlingbq)\n\t- [castling.toArray()](#castlingtoarray)\n\t- [castling.moves(state)](#castlingmovesstate)\n\t- [castling.apply(move)](#castlingapplymove)\n- [SetupCastling](#setupcastling)\n\t- [SetupCastling.from(game, value)](#setupcastlingfromgame-value)\n\t- [setupCastling.game](#setupcastlinggame)\n\t- [setupCastling.wk](#setupcastlingwk)\n\t- [setupCastling.wq](#setupcastlingwq)\n\t- [setupCastling.bk](#setupcastlingbk)\n\t- [setupCastling.bq](#setupcastlingbq)\n\t- [setupCastling.fen](#setupcastlingfen)\n\t- [setupCastling.size](#setupcastlingsize)\n\t- [setupCastling.setWK(value)](#setupcastlingsetwkvalue)\n\t- [setupCastling.setWQ(value)](#setupcastlingsetwqvalue)\n\t- [setupCastling.setBK(value)](#setupcastlingsetbkvalue)\n\t- [setupCastling.setBQ(value)](#setupcastlingsetbqvalue)\n\t- [setupCastling.add(kingFrom, kingTo, rookFrom, rookTo)](#setupcastlingaddkingfrom-kingto-rookfrom-rookto)\n\t- [setupCastling.delete(castle)](#setupcastlingdeletecastle)\n\t- [setupCastling.clear()](#setupcastlingclear)\n\t- [setupCastling.has(castle)](#setupcastlinghascastle)\n\t- [setupCastling.toArray()](#setupcastlingtoarray)\n\t- [setupCastling.valid(position)](#setupcastlingvalidposition)\n\t- [setupCastling.prepare(position)](#setupcastlingprepareposition)\n- [Castle](#castle)\n\t- [castle.kingFrom](#castlekingfrom)\n\t- [castle.kingTo](#castlekingto)\n\t- [castle.rookFrom](#castlerookfrom)\n\t- [castle.rookTo](#castlerookto)\n\t- [castle.wk](#castlewk)\n\t- [castle.wq](#castlewq)\n\t- [castle.bk](#castlebk)\n\t- [castle.bq](#castlebq)\n\t- [castle.fen](#castlefen)\n\t- [castle.toArray()](#castletoarray)\n\t- [castle.valid(position)](#castlevalidposition)\n\t- [castle.available(position)](#castleavailableposition)\n\t- [castle.toMove(state)](#castletomovestate)\n\t- [castle.involves(move)](#castleinvolvesmove)\n- [moves](#moves)\n\t- [moves.walk(state, from, piece, squares)](#moveswalkstate-from-piece-squares)\n\t- [moves.trace(state, from, piece, squares)](#movestracestate-from-piece-squares)\n\t- [moves.ray(state, from, piece, dx, dy)](#movesraystate-from-piece-dx-dy)\n\t- [moves.hop(state, from, piece, dx, dy)](#moveshopstate-from-piece-dx-dy)\n\t- [moves.T(state, from, piece, R)](#moveststate-from-piece-r)\n\t- [moves.X(state, from, piece, R)](#movesxstate-from-piece-r)\n\t- [moves.L(state, from, piece, A, B)](#moveslstate-from-piece-a-b)\n\t- [moves.W(state, from, piece)](#moveswstate-from-piece)\n\t- [moves.D(state, from, piece)](#movesdstate-from-piece)\n\t- [moves.H(state, from, piece)](#moveshstate-from-piece)\n\t- [moves.F(state, from, piece)](#movesfstate-from-piece)\n\t- [moves.A(state, from, piece)](#movesastate-from-piece)\n\t- [moves.G(state, from, piece)](#movesgstate-from-piece)\n\t- [moves.N(state, from, piece)](#movesnstate-from-piece)\n\t- [moves.C(state, from, piece)](#movescstate-from-piece)\n\t- [moves.Z(state, from, piece)](#moveszstate-from-piece)\n\t- [moves.Q(state, from, piece)](#movesqstate-from-piece)\n\t- [moves.TT(state, from, piece, R)](#movesttstate-from-piece-r)\n\t- [moves.XX(state, from, piece, R)](#movesxxstate-from-piece-r)\n\t- [moves.LL(state, from, piece, A, B)](#movesllstate-from-piece-a-b)\n\t- [moves.WW(state, from, piece)](#moveswwstate-from-piece)\n\t- [moves.DD(state, from, piece)](#movesddstate-from-piece)\n\t- [moves.HH(state, from, piece)](#moveshhstate-from-piece)\n\t- [moves.FF(state, from, piece)](#movesffstate-from-piece)\n\t- [moves.AA(state, from, piece)](#movesaastate-from-piece)\n\t- [moves.GG(state, from, piece)](#movesggstate-from-piece)\n\t- [moves.NN(state, from, piece)](#movesnnstate-from-piece)\n\t- [moves.CC(state, from, piece)](#movesccstate-from-piece)\n\t- [moves.ZZ(state, from, piece)](#moveszzstate-from-piece)\n\t- [moves.QQ(state, from, piece)](#movesqqstate-from-piece)\n\t- [moves.hopT(state, from, piece, R)](#moveshoptstate-from-piece-r)\n\t- [moves.hopX(state, from, piece, R)](#moveshopxstate-from-piece-r)\n\t- [moves.hopL(state, from, piece, A, B)](#moveshoplstate-from-piece-a-b)\n\t- [moves.hopW(state, from, piece)](#moveshopwstate-from-piece)\n\t- [moves.hopD(state, from, piece)](#moveshopdstate-from-piece)\n\t- [moves.hopH(state, from, piece)](#moveshophstate-from-piece)\n\t- [moves.hopF(state, from, piece)](#moveshopfstate-from-piece)\n\t- [moves.hopA(state, from, piece)](#moveshopastate-from-piece)\n\t- [moves.hopG(state, from, piece)](#moveshopgstate-from-piece)\n\t- [moves.hopN(state, from, piece)](#moveshopnstate-from-piece)\n\t- [moves.hopC(state, from, piece)](#moveshopcstate-from-piece)\n\t- [moves.hopZ(state, from, piece)](#moveshopzstate-from-piece)\n\t- [moves.hopQ(state, from, piece)](#moveshopqstate-from-piece)\n\t- [moves.pawn(state, from, piece)](#movespawnstate-from-piece)\n- [hits](#hits)\n\t- [hits.walk(to, squares)](#hitswalkto-squares)\n\t- [hits.trace(from, to, piece, position, squares)](#hitstracefrom-to-piece-position-squares)\n\t- [hits.ray(from, to, piece, position, dx, dy)](#hitsrayfrom-to-piece-position-dx-dy)\n\t- [hits.hop(from, to, piece, position, dx, dy)](#hitshopfrom-to-piece-position-dx-dy)\n\t- [hits.T(from, to, R)](#hitstfrom-to-r)\n\t- [hits.X(from, to, R)](#hitsxfrom-to-r)\n\t- [hits.L(from, to, A, B)](#hitslfrom-to-a-b)\n\t- [hits.W(from, to)](#hitswfrom-to)\n\t- [hits.D(from, to)](#hitsdfrom-to)\n\t- [hits.H(from, to)](#hitshfrom-to)\n\t- [hits.F(from, to)](#hitsffrom-to)\n\t- [hits.A(from, to)](#hitsafrom-to)\n\t- [hits.G(from, to)](#hitsgfrom-to)\n\t- [hits.N(from, to)](#hitsnfrom-to)\n\t- [hits.C(from, to)](#hitscfrom-to)\n\t- [hits.Z(from, to)](#hitszfrom-to)\n\t- [hits.Q(from, to)](#hitsqfrom-to)\n\t- [hits.TT(from, to, piece, position, R)](#hitsttfrom-to-piece-position-r)\n\t- [hits.XX(from, to, piece, position, R)](#hitsxxfrom-to-piece-position-r)\n\t- [hits.LL(from, to, piece, position, A, B)](#hitsllfrom-to-piece-position-a-b)\n\t- [hits.WW(from, to, piece, position)](#hitswwfrom-to-piece-position)\n\t- [hits.DD(from, to, piece, position)](#hitsddfrom-to-piece-position)\n\t- [hits.HH(from, to, piece, position)](#hitshhfrom-to-piece-position)\n\t- [hits.FF(from, to, piece, position)](#hitsfffrom-to-piece-position)\n\t- [hits.AA(from, to, piece, position)](#hitsaafrom-to-piece-position)\n\t- [hits.GG(from, to, piece, position)](#hitsggfrom-to-piece-position)\n\t- [hits.NN(from, to, piece, position)](#hitsnnfrom-to-piece-position)\n\t- [hits.CC(from, to, piece, position)](#hitsccfrom-to-piece-position)\n\t- [hits.ZZ(from, to, piece, position)](#hitszzfrom-to-piece-position)\n\t- [hits.QQ(from, to, piece, position)](#hitsqqfrom-to-piece-position)\n\t- [hits.hopT(from, to, piece, position, R)](#hitshoptfrom-to-piece-position-r)\n\t- [hits.hopX(from, to, piece, position, R)](#hitshopxfrom-to-piece-position-r)\n\t- [hits.hopL(from, to, piece, position, A, B)](#hitshoplfrom-to-piece-position-a-b)\n\t- [hits.hopW(from, to, piece, position)](#hitshopwfrom-to-piece-position)\n\t- [hits.hopD(from, to, piece, position)](#hitshopdfrom-to-piece-position)\n\t- [hits.hopH(from, to, piece, position)](#hitshophfrom-to-piece-position)\n\t- [hits.hopF(from, to, piece, position)](#hitshopffrom-to-piece-position)\n\t- [hits.hopA(from, to, piece, position)](#hitshopafrom-to-piece-position)\n\t- [hits.hopG(from, to, piece, position)](#hitshopgfrom-to-piece-position)\n\t- [hits.hopN(from, to, piece, position)](#hitshopnfrom-to-piece-position)\n\t- [hits.hopC(from, to, piece, position)](#hitshopcfrom-to-piece-position)\n\t- [hits.hopZ(from, to, piece, position)](#hitshopzfrom-to-piece-position)\n\t- [hits.hopQ(from, to, piece, position)](#hitshopqfrom-to-piece-position)\n\t- [hits.pawn(from, to, pawn)](#hitspawnfrom-to-pawn)\n\n# Game\n\n`Game` is the main class representing a chess game. It manages the game state, move history, and gameplay logic.\n\n### States\n\n- **Setup Mode** (`game.isSetup = true`):\n  - The game is in **edit mode** immediately after creation.\n  - You can freely modify the position, castling rights, and other parameters.\n  - **Move history does not exist**, and methods related to gameplay or history navigation are unavailable.\n\n- **Game Mode** (`game.isSetup = false`):\n  - Activated by calling `game.play()`.\n  - The game **cannot return to setup mode** once started.\n  - Manual editing of game parameters is not allowed; all state changes are determined by game logic.\n  - You can trigger game events or navigate the move history.\n  - The current game cursor (`game.current`) points to a specific position in the event chain.\n\n## Game.is(value)\nChecks if the given `value` is a `Game` instance.\n### Parameters\n- `value` (`any`): The value to check.\n### Returns\n- `boolean`: `true` if `value` is a `Game` instance, otherwise `false`.\n\n## Game.from(value)\nCreates a `Game` instance from the given `value`.\n\nIf `value` is already a `Game` instance, it is returned as-is.  \nOtherwise, a new `Game` is created using `new Game(value)`.\n### Parameters\n- `value` (`Game` | `string` | `object`):  \n  The source to create the game from:\n  - `Game`: returned directly.\n  - `string`: a FEN string representing a board position.\n  - `object`: a set of game parameters (e.g., initial position, options).\n### Returns\n- `Game`: the existing game (if `value` was a `Game`) or a new game created from the value.\n\n## new Game(config)\n\n**Creating a New Game**\n\nA new game is created using the `Game` constructor with a `config` parameter.\n\nThe `config` parameter can be:\n\n- **A string** — a FEN string representing the starting position.\n- **An object** — with detailed configuration options.\n- **An instance of `Game`** — another game object. In this case, the constructor creates a **clone of the current state** of that game in *editing mode*.  \n  Unlike a full copy, it does not duplicate the move history, but only transfers the **current board state** and related parameters.\n\n### config.board\n\n- Board instance (`Board`)\n- Object `{ width, height }`\n- Array `[width, height]`  \nSee: [`Board.from(value)`](#boardfromvalue)\n\n### config.bestiary\n\n- Bestiary instance (`Bestiary`)\n- Identifier of a built-in piece class or bestiary\n- Piece subclass (custom piece class)\n- Iterator of any of the above  \nSee: [`Bestiary.from(value)`](#bestiaryfromvalue)\n\n### config.tags\n\n- Iterator of key-value string pairs\n- Object of tags\n\n### config.rules\n\n- EngineRules subclass instance  \nSee: [`EngineRules`](#enginerules)\n\n### config.fen (default: null)\n- `null` / omitted — the field is ignored; `config.position`, `config.color`, `config.enPassant`, etc. are used individually as given.\n- FEN string — sets the complete game state (position, side to move, en passant target, halfmove/fullmove counters, etc.). All other config fields related to game state (`position`, `color`, `enPassant`, ...) are ignored.\nException — metadata fields, which are still applied independently: `config.board`, `config.bestiary`, `config.tags`, `config.rules`.\n\n### config.position\n\n- FEN string of the starting position\n- Position instance (`Position`)\n- Iterator of `[square, piece]` pairs\n- An object in the form `{a1: 'Q', ...}` where keys are square names and values are pieces\nSee: [new Position(game, position)](#new-positiongame-position)\n\n### config.color (default: Color.white)\n\n- String values: `'white'`, `'black'`, `'w'`, `'b'`\n- Numeric codes: `0` (white), `1` (black)\n- Color instance: `Color.white`, `Color.black`  \nSee: [Color.from(value)](#colorfromvalue)\n\n### config.enPassant (default: null)\n\n- `null`\n- String — square name\n- Number — square ID\n- Square instance (`Square`)\nSee: [board.get(value)](#boardgetvalue)\n\n### config.fullmoveNumber (default: 1)\n- Positive integer\n\n### config.halfmoveClock (default: 0)\n- Non-negative integer\n\n### config.wk / config.wq / config.bk / config.bq\n- Boolean flags for castling rights\n- Ignored if `config.castling` is provided\n\n### config.castling\n- String — FEN castling rights\n- Castling or SetupCastling instance\n- Object `{ wk, wq, bk, bq }`\n- Iterator of custom castlings, where each castling can be:\n  - Array of squares `[kingFrom, kingTo, rookFrom, rookTo]`\n  - Object of squares `{ kingFrom, kingTo, rookFrom, rookTo }`  \nSee: [SetupCastling.from(game, value)](#setupcastlingfromgame-value)\n\n**Notes:**\n\n- Immediately after creation, the game is in **setup mode** (`game.isSetup = true`).  \n- No move history exists at this point.  \n- You can freely edit the position, castling rights, and other parameters before starting the game.  \n- To start the game, call `game.play()`.  \n- Once the game is started, **it is impossible to return to setup mode**.  \n- In game mode, all state changes are governed by **game logic**, and manual editing of parameters is disabled.\n\n## game.board\n\n- Represents the chessboard of the game.\n- Instance of `Board`.\n- Provides access to squares, files, ranks, and board dimensions.\n- Use `game.board.at(x, y)` or `game.board.get(value)` to access individual squares.\n- See: [Board](#board)\n\n## game.bestiary\n\n- Contains the pieces used in the game.\n- Instance of `Bestiary`.\n- Defines piece types, promotions, and custom piece rules.\n- You can check if a piece type is supported or get a random piece of a given color.\n- See: [Bestiary](#bestiary)\n\n## game.rules\n\n- Holds the rules engine for the game.\n- Instance of `RuleEngine` or subclass.\n- Determines valid moves, checks, repetitions, dead positions, and game results.\n- Provides methods like `rules.moves(state)` or `rules.repetitionCount(state)`.\n- See: [RuleEngine](#ruleengine)\n\n## game.tags\n\n- Stores game metadata (e.g., players, event, date).\n- Can be an object of key-value pairs or an iterator of string pairs.\n- Example: `{ White: \"Alice\", Black: \"Bob\", Event: \"Friendly Match\" }`\n\n## game.current\n\n- Represents the **current event** in the game.\n- Points to the event at the current position of the **game cursor** in the event chain.\n- Used for navigating, inspecting, or applying moves relative to the current game state.\n- In **game mode**, it always points to a specific event, allowing methods like `game.goEvent(offset)` or `game.gotoEvent(eventID)` to navigate the history.\n\n## game.first\n\n- Represents the **first event** in the game history.\n- Useful for rewinding or iterating from the beginning of the game.\n- In **setup mode**, `game.first` is `null` because no events exist yet.\n- In **game mode**, it always points to the very first move or event played.\n\n## game.last\n\n- Represents the **last event** in the game history.\n- Useful for checking the most recent move or appending new events.\n- In **setup mode**, `game.last` is `null` since no moves have been made.\n- In **game mode**, it points to the latest event in the event chain.\n\n## game.time\n\n- Represents the **timestamp** or **sequence number** of the current event in the game.\n- Indicates the chronological order of events.\n- In **setup mode**, `game.time` is typically `null` because no events have occurred.\n- In **game mode**, it updates automatically as new moves or events are applied.\n- Can be used to compare the relative timing of events or for logging purposes.\n\n## game.prevEvent\n\n- Represents the **previous event** relative to the current position (`game.current`) in the event chain.\n- Returns `null` if `game.current` is the first event or if in setup mode.\n- Useful for navigating backward in the game's history or undoing moves.\n\n## game.nextEvent\n\n- Represents the **next event** relative to the current position (`game.current`) in the event chain.\n- Returns `null` if `game.current` is the last event or if in setup mode.\n- Useful for navigating forward in the game's history or redoing moves.\n\n## game.eventID\n\n- Unique identifier of the **current event** (`game.current`) in the event chain.\n- Can be used to reference, navigate to, or log specific events.\n- In **setup mode**, usually `null` because no events exist yet.\n\n## game.status\n\n- Represents the **status of the current event** (`game.current`) as a string.\n- Indicates the type or phase of the event, e.g., `'move'`, `'promotion'`, `'draw-offer'`, `'gameover'`.\n- Useful for identifying what kind of action or outcome the current event represents.\n- In **setup mode**, `game.status` is usually `'setup'`.\n\n## game.state\n\n- Represents the **current state** of the game at the event pointed to by `game.current`.\n- Includes all relevant parameters: position, active color, castling rights, en passant, move counters, etc.\n- In **setup mode**, reflects the manually configured setup.\n- In **game mode**, reflects the state determined by game logic and event history.\n\n## game.ply\n\n- Represents the **last completed ply** (half-move) or the **initial game state** corresponding to the current event (`game.current`).\n- Provides the reference point for the game state at that moment.\n- Returns `null` in **setup mode**, because no moves have been made yet.\n- Useful for inspecting the state of the board, move history, or for performing navigations relative to completed plies.\n\n## game.result\n\n- Instance of the `Result` class representing the outcome of the game for the **current event** (`game.current`).\n- Contains:\n  - `reason` — the reason the game ended (e.g., checkmate, resignation, draw).\n  - `winner` — color of the winning side (`Color.white` or `Color.black`), if applicable.\n  - `loser` — color of the losing side, if applicable.\n  - `pgn` — PGN string representing the game conclusion.\n- If the game is **not finished**, `game.result` contains a placeholder object `NoResult`.\n- Updated automatically based on game logic and event outcomes.\n\n## game.prev\n\n- Represents the **previous ply event** relative to `game.current`.\n- Returns `null` if the current event is the first in the history or if in setup mode.\n- Useful for navigating backward through the sequence of completed plies in the game.\n\n## game.next\n\n- Represents the **next ply event** relative to `game.current`.\n- Returns `null` if the current event is the last in the history or if in setup mode.\n- Useful for navigating forward through the sequence of completed plies in the game.\n\n## game.plyID\n\n- Unique identifier of the **current ply** (half-move) in the game.\n- Starts at `0` for the initial game position.\n- Corresponds to the ply associated with `game.current`.\n- Useful for navigating to a specific ply using methods like `game.goto(plyID)` or `game.go(offset)`.\n- In **setup mode**, `game.plyID` is `null` because no moves have been made yet.\n\n## game.drawOffer\n\n- Instance of the `Color` class representing the player who offered a draw.\n- Updated when a draw is proposed using `game.draw(color)`.\n- Returns `null` if **no draw offer** has been made after the last move.\n- Useful for checking if a draw offer is currently active and which player made it.\n\n## game.fen\n\n- Represents the **FEN string** of the current game state.\n- Automatically updated as moves are applied or the position changes.\n- Can be **extended** in the following cases:\n  1. The board is **not 8×8**.\n  2. The **bestiary contains additional custom pieces**.\n  3. **Custom castlings** are added via `game.castling.add(...)`.\n- In **setup mode**, the property is **writable**, allowing you to set the position manually:\n  ```js\n  game.fen = \"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1\";\n  ```\n- In **game mode**, it reflects the position determined by game logic and move history and is read-only.\n- Useful for exporting, saving, or analyzing the current board state.\n\n## game.color\n\n- Instance of the `Color` class representing the **active color** (the side to move next).\n- Indicates which player's turn it is in the current game state.\n- In **setup mode**, the property is **writable**:\n  - Can be set using string values: `'white'`, `'black'`, `'w'`, `'b'`.\n  - Can be set using numeric codes: `0` (white) or `1` (black).\n  - Can be set using [Color](#color) instances: `Color.white` or `Color.black`.\n- In **game mode**, the value is determined automatically by game logic and is **read-only**.\n- Useful for configuring the initial turn or inspecting whose move it is.\n\n## game.position\n\n- Represents the **current board position** in the game.\n- Returns different objects depending on the mode:\n  - **Setup mode:** returns a [SetupPosition](#setupposition) instance (writable, editable).\n  - **Game mode:** returns a [Position](#position) instance (immutable, read-only).\n- In **setup mode**, the property is **writable** and supports all variants of assigning a position:\n  - FEN string\n  - Position object\n  - Object of square-piece pairs, e.g., `{ a1: 'Q', b1: 'N', ... }`\n  - Iterator of `[square, piece]` pairs\n  - Another `Position` or `SetupPosition` instance\n- In **game mode**, the position is determined by game logic and the history of events, and **cannot be manually changed**.\n- Useful for configuring, inspecting, or exporting the current board state.\n\n### Example: Setting game.position in setup mode\n\n```js\n// 1. Using a FEN string\ngame.position = \"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR\";\n\n// 2. Using an object of square-piece pairs\ngame.position = {\n  a1: 'R', b1: 'N', c1: 'B', d1: 'Q', e1: 'K', f1: 'B', g1: 'N', h1: 'R',\n  a2: 'P', b2: 'P', c2: 'P', d2: 'P', e2: 'P', f2: 'P', g2: 'P', h2: 'P'\n};\n\n// 3. Using an iterator of [square, piece] pairs\ngame.position = [\n  ['a1', 'R'], ['b1', 'N'], ['c1', 'B'], ['d1', 'Q'], ['e1', 'K'], \n  ['f1', 'B'], ['g1', 'N'], ['h1', 'R']\n];\n\n// 4. Using another Position or SetupPosition instance\nconst game2 = new Game(\"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1\");\ngame.position = game2.position;\n\n// Output the current position to the console\nconsole.log(game.position.text());\n```\n\n## game.castling\n\n- Represents the **current castling rights** in the game.\n- Returns a [Castling](#castling) or [SetupCastling](#setupcastling) instance depending on the mode:\n  - **Setup mode:** writable, allows adding, modifying, or clearing castling rights.\n  - **Game mode:** read-only, determined by the position and game history.\n- Supports multiple ways to assign castling rights in setup mode:\n  1. **FEN string** (e.g., `\"KQkq\"` for standard castling rights).\n  2. **Object of flags** `{ wk, wq, bk, bq }`.\n  3. **Castling / SetupCastling instance** with custom castling definitions.\n  4. **Iterator of custom castling moves**, each defined as an array `[kingFrom, kingTo, rookFrom, rookTo]`.\n- Useful for configuring the initial castling rights or inspecting the current castling possibilities.\n\n### Example: Setting game.castling in setup mode\n\n```js\n// 1. Using a FEN string for castling rights\ngame.castling = \"KQkq\";\n\n// 2. Using an object of castling flags\ngame.castling = { wk: true, wq: true, bk: true, bq: true };\n\n// 3. Using a Castling\ngame.castling.add('e1', 'g1', 'h1', 'f1'); // custom white kingside\ngame.castling.add('e8', 'c8', 'a8', 'd8'); // custom black queenside\n\n// 4. Using an iterator of custom castlings\ngame.castling = [\n  ['e1', 'g1', 'h1', 'f1'],  // white kingside\n  ['e8', 'c8', 'a8', 'd8']   // black queenside\n];\n\n// Output current castling configuration\nconsole.log(game.castling.toArray());\n```\n\n## game.enPassant\n\n- Represents the **en passant target square** in the current game state.\n- Returns a `Square` instance, or `null` if no en passant target exists.\n- In **setup mode**, the property is **writable** and supports multiple ways to assign a square:\n  - `null` — no en passant target.\n  - String square name, e.g., `'e6'`.\n  - Numeric square ID.\n  - [Square](#square) instance from the board, e.g., `board.get('e6')`.\n- In **game mode**, the value is determined automatically by the game logic based on the last move and is **read-only**.\n- Useful for determining whether an en passant capture is possible.\n\n## game.fullmoveNumber\n\n- Represents the **fullmove number** of the game (counts complete turns, i.e., pairs of White and Black moves).\n- Starts at `1` for the initial position.\n- In **setup mode**, the property is **writable**, allowing manual configuration.\n- In **game mode**, automatically updated by the game logic after each move.\n- Useful for PGN export and move tracking.\n\n## game.halfmoveClock\n\n- Represents the **halfmove clock** used for the fifty-move rule.\n- Counts the number of half-moves (plies) since the last pawn advance or capture.\n- Starts at `0` for the initial position.\n- In **setup mode**, the property is **writable** for manual configuration.\n- In **game mode**, automatically updated by the game logic.\n- Useful for enforcing the fifty-move draw rule and analyzing game state.\n\n## game.wk\n## game.wq\n## game.bk\n## game.bq\n\n- **Shorthand properties** for individual castling rights:\n  - `game.wk` — White kingside castling\n  - `game.wq` — White queenside castling\n  - `game.bk` — Black kingside castling\n  - `game.bq` — Black queenside castling\n- In **setup mode**, all these properties are **writable**, allowing manual configuration of castling rights.\n- In **game mode**, they are **read-only** and reflect the castling possibilities determined by the game state.\n- Internally, they map directly to `game.castling.wk`, `game.castling.wq`, `game.castling.bk`, and `game.castling.bq`.\n- Useful for quickly reading or modifying individual castling permissions without interacting with the full `game.castling` object.\n\n## game.lastMove\n\n\n- Represents the **last move** played in the game as a `Move` instance.\n- Returns `null` in the following cases:\n  - **Setup mode**, because no moves have been made.\n  - At the **initial game position**, before any moves.\n- In **game mode**, updated automatically as moves are applied.\n- Useful for inspecting the most recent action, including its source and destination squares, captured pieces, promotion, or special move properties (castling, en passant, etc.).\n\n## game.moves\n\n- Represents the list of **legal moves** available for the current player.\n- Returns a [MoveList](#movelist) instance.\n- Always available, even if the list is **empty** (e.g., checkmate or stalemate).\n- In **setup mode**, not applicable; moves are determined only in **game mode**.\n- Useful for:\n  - Displaying legal moves to the player.\n  - AI or move selection.\n  - Validating player input before applying a move.\n\n## game.checkSquares\n\n- Returns an array of **squares currently under check** for the side to move.\n- Each element is a [Square](#square) instance.\n- Empty array if the king is not under check.\n- Useful for highlighting threats or detecting checks programmatically.\n\n## game.isCheck\n\n- Boolean indicating whether the **current player is in check**.\n- Returns `true` if `game.checkSquares` is non-empty, otherwise `false`.\n- Useful for enforcing rules that prevent illegal moves or for UI indicators.\n\n## game.repetitionCount\n\n- Represents the **number of times the current position has occurred** in the game history.\n- Returns a positive integer starting from `1`.\n- Useful for detecting **threefold (or fivefold) repetition** draws and other repetition-based rules.\n\n## game.isDeadPisition\n\n- Boolean indicating whether the current position is a **dead position**, i.e., a position where checkmate is impossible by any legal sequence of moves.\n- Useful for detecting automatic draws in scenarios like king vs. king or insufficient material.\n\n## game.hash\n\n- Represents a **BigInt hash** of the current game state.\n- Includes in the hash calculation:\n  - Board position\n  - Castling rights\n  - En passant target square\n  - Active color (side to move)\n- Used primarily for implementing **threefold and fivefold repetition rules**.\n- Useful for efficiently detecting repeated positions without comparing entire board states.\n\n## game.reason\n\n- Represents the **reason for the game ending** or the current game state.\n- Returns a string, one of the following values:\n\n  - `'no result'` — game is ongoing or in setup mode  \n  - `'checkmate'` — game ended by checkmate  \n  - `'forfeit'` — game ended by forfeit  \n  - `'resignation'` — game ended by resignation  \n  - `'win on time'` — game ended due to time expiration  \n  - `'stalemate'` — game ended by stalemate  \n  - `'dead position'` — game ended because checkmate is impossible  \n  - `'3-repetition'` — draw by threefold repetition  \n  - `'5-repetition'` — draw by fivefold repetition  \n  - `'50 moves'` — draw by fifty-move rule  \n  - `'75 moves'` — draw by seventy-five-move rule  \n  - `'draw by agreement'` — draw agreed by players  \n  - `'draw by resignation'` — draw due to resignation of a player  \n  - `'draw on time'` — draw because both players’ time expired\n\n## game.isSetup\n- `true` if the game is in **setup/edit mode**; `false` in game mode.\n\n## game.isPromotion\n- `true` if the **current move involves a promotion**.\n\n## game.isState\n- `true` if the **current event is a game state change** rather than a player move.\n\n## game.isMeta\n- `true` if the **current event is a meta event**, like comment, NAG, or draw offer.\n\n## game.isPly\n- `true` if the **current event represents a ply/move** in the game.\n\n## game.canMove\n\n- Boolean indicating whether **moves can currently be made**.\n- Returns `false` in the following cases:\n  - **Setup mode** (editing the game).\n  - The **current move is a promotion** that has not been completed.\n  - The **game is finished** (checkmate, draw, resignation, etc.).\n- Returns `true` only in **game mode** when a move is legally allowed for the current player.\n- Useful for validating whether a player or AI can make a move at the current point in the game.\n\n## game.canMeta\n\n- Boolean indicating whether **meta events can currently be added**.\n- Meta events are events that **do not alter the core game state**, such as:\n  - Comments\n  - NAG (Numeric Annotation Glyphs)\n  - Draw offers\n- Returns `true` in **setup mode** or in **game mode** when the current event allows meta actions.\n- Returns `false` if the current event or game state **does not allow meta events**, e.g., during an incomplete promotion or after game over.\n- Useful for determining whether you can attach annotations or auxiliary events at the current point in the game history.\n\n## game.isIrreversible\n\n- Boolean indicating whether the **current event irreversibly changes the game state**.\n- Returns `true` for moves that **cannot be undone without altering game history**, such as:\n  - Pawn advances\n  - Captures\n- The **initial game state** is also considered irreversible.\n- Used internally for enforcing rules such as:\n  - **Threefold/fivefold repetition**\n  - **Fifty-move and seventy-five-move rules**\n- Returns `false` for meta events or reversible moves that do not affect these rules.\n\n## game.isGameOver\n- `true` if the game has finished (checkmate, draw, resignation, etc.).\n\n## game.isWin\n- `true` if the game ended with a **win** for one of the players.\n\n## game.isDraw\n- `true` if the game ended in a **draw** for any reason.\n\n## game.isCheckmate\n- `true` if the **current player is checkmated**.\n\n## game.isStalemate\n- `true` if the **current position is a stalemate**.\n\n## game.winner\n- Returns the [Color](#color) of the **winning player**, or `null` if the game is not finished or ended in a draw.\n\n## game.loser\n- Returns the [Color](#color) of the **losing player**, or `null` if the game is not finished or ended in a draw.\n\n## game.stats()\n- Returns a **simple object** containing various statistics of the game\n\n## game.traceMoves(square, piece)\nReturns a map of reachable squares and the minimum number of moves required to reach them.\n### Parameters\n- **`square`** (`Square`):  \n  The starting square for the calculation.  \n- **`piece?`** (`Piece`, optional):  \n  If provided, the calculation assumes the given piece is standing on the specified square, regardless of the actual board state.  \n  If omitted, the method uses the piece currently occupying the square (if any).  \n### Behavior\n- The search is performed based on the current board state, including the positions of all pieces.  \n- The starting square itself is excluded from the results.  \n- The turn order (which side is to move) is ignored.  \n### Returns\nReturns a **TraceMap**, which is like a `Map` but specialized for board cells.  \n- Keys must be `Squares`.\n- Has an extra method `text(limit = Infinity)` that renders the board as ASCII graphics:\n  - Each cell is marked with the minimal number of moves required to reach it from `from`.  \n  - The optional `limit` parameter restricts how far (in moves) cells will be shown. For example:  \n    - `text(1)` shows only the start cell as `0` and all cells reachable in one move as `1`.  \n    - By default, `text(Infinity)` shows all reachable cells.\n#### Examples\n```js\nconst trace = game.traceMoves('D4', 'N');\n\nconsole.log(trace.text(1));\n\n//    a   b   c   d   e   f   g   h  \n//   ┌───┬───┬───┬───┬───┬───┬───┬───┐\n// 8 │   │   │   │   │   │   │   │   │ 8 \n//   ├───┼───┼───┼───┼───┼───┼───┼───┤\n// 7 │   │   │   │   │   │   │   │   │ 7 \n//   ├───┼───┼───┼───┼───┼───┼───┼───┤\n// 6 │   │   │ 1 │   │ 1 │   │   │   │ 6 \n//   ├───┼───┼───┼───┼───┼───┼───┼───┤\n// 5 │   │ 1 │   │   │   │ 1 │   │   │ 5 \n//   ├───┼───┼───┼───┼───┼───┼───┼───┤\n// 4 │   │   │   │ 0 │   │   │   │   │ 4 \n//   ├───┼───┼───┼───┼───┼───┼───┼───┤\n// 3 │   │ 1 │   │   │   │ 1 │   │   │ 3 \n//   ├───┼───┼───┼───┼───┼───┼───┼───┤\n// 2 │   │   │ 1 │   │ 1 │   │   │   │ 2 \n//   ├───┼───┼───┼───┼───┼───┼───┼───┤\n// 1 │   │   │   │   │   │   │   │   │ 1 \n//   └───┴───┴───┴───┴───┴───┴───┴───┘\n//     a   b   c   d   e   f   g   h  \n```\n\n## game.play()\n\nStarts the game execution.  \nThis method is **irreversible**: once the game is switched from *setup mode* to *play mode*, it cannot go back.  \n\n### Behavior\n  - On the first call, the game leaves *setup mode* and enters *play mode*.  \n  - On repeated calls, the method does nothing and returns `false`.  \n  - While entering play mode, the game validates and applies editing state options:  \n\n    1. **Castling flags** (`wk`, `wq`, `bk`, `bq`):  \n       - The engine searches for a valid pair of pieces on the same rank: a \"king\" (`isCastlingActor`) and a \"rook\" (`isCastlingPartner`).  \n       - On an 8×8 board, final castling squares are determined according to **Chess960** rules.  \n       - On non-standard boards, the king jumps two squares, and the rook is placed on the other side.  \n       - If no valid pair is found, the flag is ignored.  \n\n    2. **Custom castling rules** (`config.castling`):  \n       - For each defined castling, the engine checks whether the required pieces are present on the specified squares.  \n       - If not, the castling option is ignored.  \n\n    3. **En passant square** (`enPassant`):  \n       - The target square must be empty.  \n       - A pawn must exist in front of it in the correct position.  \n       - If conditions are not satisfied, the en passant option is ignored.  \n\n### Returns\n  - `true` — if this is the first call (setup → play mode).  \n  - `false` — if the game was already in play mode.\n\n## game.move(query)\n\nPerforms a move in **game mode** if it is valid.  \nThrows an error if the move is not allowed.\n\n### Parameters\n- **query**  \n  Can be one of:\n  1. A **string** — the move in **SAN format**.  \n  2. An existing [Move](#move) object – will be matched against the moves in the list.\n  3. A **number** representing the numeric move code, unique for the combination of start and end squares.\n\t4. An **object** — a move search template with possible properties:\n     - `piece` — piece type (e.g., `\"N\"`, `\"Q\"`, etc.)\n     - `from` — starting square\n     - `to` — destination square\n     - `fromFile` — originating file\n     - `fromRank` — originating rank\n     - `promoteTo` — piece type to promote to\n     - `qc` — queenside castling indicator\n     - `kc` — kingside castling indicator  \n     > ⚠️ The list of properties may be extended for **custom moves**.\n\t5. If omitted, the call is only valid when there is **exactly one legal move** available.\n\n### Behavior\n- If **exactly one move** matches the query, it is executed and returned.  \n- If **multiple moves** match, an **ambiguity error** is thrown.  \n- If **no move** matches, a **not found error** is thrown.  \n- If the move **requires promotion** but no promotion piece is provided,  \n  the game enters **promotion state** (`game.isPromotion = true`),  \n  and expects a further call to:  \n  ```js\n  game.promote(piece)\n  ```\n\n### Returns\n- The **found move** (instance of class [Move](#move)) if the move is successfully executed.\n\n### Using\n\n```js\n// Using a SAN string\nconst move1 = game.move(\"e4\");\n\n// Using a search template object\nconst move2 = game.move({\n  piece: \"N\",\n  from: \"g1\",\n  to: \"f3\"\n});\n\n// Custom property example for extended moves\nconst move3 = game.move({\n  piece: \"P\",\n  from: \"e7\",\n  to: \"e8\",\n  promoteTo: \"Q\"\n});\n```\n\n## game.promote(piece)\n\nCompletes a pawn promotion move.\nThis method can **only** be called while the game is in **promotion state** (`game.isPromotion = true`).  \nCalling it outside this state will throw an error.\n\n#### Parameters\n- **piece** — the piece to promote to. Can be one of:\n  1. An **instance of [Piece](#piece)**.  \n  2. A **string identifier** of a piece type; the piece color will be determined automatically according to `game.color`.  \n\n> ⚠️ The chosen piece must be among those allowed for promotion (`game.lastMove.promotes`).  \n> The color must match the current player's color; otherwise, an error is thrown.\n\n### Behavior\n- Completes the promotion move.  \n- Updates the game state accordingly.  \n- Exits promotion state (`game.isPromotion = false`).\n\n### Returns\n- The completed **[Move](#move) object** representing the promotion.\n\n### Using\n\n```js\n// Assuming the game is in promotion state after moving a pawn to the last rank\ngame.isPromotion; // true\n\n// Promoting by piece instance\nconst queenPiece = game.bestiary.from(\"Q\", game.color);\nconst move = game.promote(queenPiece);\n\n// Promoting by piece identifier string\nconst move2 = game.promote(\"Q\");\n\n// After promotion, promotion state ends\ngame.isPromotion; // false\n```\n\n## game.forfeit(color)\n\nForfeits the game for the specified player.  \nThis method **can only be called in game mode**.  \n\n### Parameters\n- **color** — the color of the player who wants to forfeit:  \n  - `Color.white`, `Color.black`  \n  - or any value accepted by [Color.from(value)](#colorfromvalue)\n\n### Behavior\n- Immediately ends the game.  \n- Sets the **winner** to the opposite color.  \n- Updates `game.result` with the reason `\"forfeit\"`.  \n- Can be called at any point during play.  \n\n### Returns\n- The **final `Result` object** representing the game's outcome.\n\n## game.resign(color)\n\nRegisters a resignation for the specified player.  \nThis method **can only be called in game mode**.  \n\n### Parameters\n- **color** — the color of the player who resigns:  \n  - `Color.white`, `Color.black`  \n  - or any value accepted by [Color.from(value)](#colorfromvalue)\n\n### Behavior\n- Ends the game immediately.  \n- Sets the **winner** to the opposite color.  \n- Updates `game.result` with the reason `\"resignation\"` or `\"draw by resignation\"`.  \n- Can be called at any point during play.\n\n## game.flagFall()\n\nRegisters a time forfeit (flag fall) for the current player.  \nThis method **can only be called in game mode**.  \n\n### Behavior\n- Ends the game immediately.  \n- Sets the **winner** to the opposite color of the player whose time ran out.  \n- Updates `game.result` with the reason `\"win on time\"` or `\"draw on time\"` depending on the rules.  \n- Can be called at any point during play.\n\n## game.draw(color)\n\nOffers or enforces a draw in the game, depending on the context.  \nThis method **can only be called in game mode**.  \n\n### Parameters\n- **color** — the color of the player proposing the draw:  \n  - `Color.white`, `Color.black`  \n  - or any value accepted by [Color.from(value)](#colorfromvalue)\n\n### Behavior\n- **Immediate draw** occurs if any of the following conditions are met:\n  1. The **opposite player** already proposed a draw (`game.drawOffer` is set to the opposite color) **after the last move**.  \n  2. A draw is allowed according to the **50-move rule**.  \n  3. A draw is allowed according to the **threefold repetition rule**.  \n\n- **Otherwise**, a **DrawOffer event** is added to the game history:  \n  - `game.drawOffer` is set to the color of the player who proposed the draw.  \n  - The offer remains active until the **next move** or until the **method is called again** by another color.  \n\n## game.nag(value)\n\nAdds a **Numeric Annotation Glyph (NAG)** to the current move in the game.  \nThis method **can only be called in game mode**.  \n\n#### Parameters\n- **value** — the NAG to add. Can be:\n  - A **number** representing the NAG code  \n  - A **string** such as `\"!\"`, `\"!!\"`, `\"?\"`, `\"!?\"`, `\"??\"`, etc.\n\n#### Behavior\n- Attaches the NAG to the **current move** (`game.current`).  \n- Can be used to annotate the game with standard chess commentary symbols.  \n\n## game.comment(comment)\n\nAdds a **text comment** to the current move in the game.  \nThis method **can only be called in game mode**.  \n\n### Parameters\n- **comment** — a string containing the text of the comment.\n\n### Behavior\n- Attaches the comment to the **current move** (`game.current`).  \n- Comments are preserved when exporting the game to **PGN**.  \n\n## game.undo()\n\nMoves the game **game.current** to the previous completed ply.  \nThis method is used to navigate **backward in game history**.  \n\n### Behavior\n- Returns to the **previous ply** state.  \n- If the current state is a **promotion**, it returns to the **last completed ply before the promotion** (since promotion itself is not a full ply).  \n- In **edit mode** or if the current ply is the **first ply**, the method **does nothing**.  \n- Updates `game.current` to reflect the new cursor position.  \n\n### Returns\n- `true` if the undo successfully moved the cursor.  \n- `false` if no movement was possible (edit mode or first ply).\n\n## game.redo()\n\nMoves the game **game.current** to the next completed ply.  \nThis method is used to navigate **forward in game history**.  \n\n### Behavior\n- Advances to the **next ply** state.  \n- In **edit mode** or if the current ply is the **last ply**, the method **does nothing**.  \n- Updates `game.current` to reflect the new cursor position. \n\n### Returns\n- `true` if the redo successfully moved the cursor.  \n- `false` if no movement was possible (edit mode or last ply).\n\n## game.go(offset)\n\nMoves the game **game.current** by a specified number of completed plies.  \nUsed to jump forward or backward in game history.  \n\n### Parameters\n- **offset** — a signed integer representing the number of plies to move:  \n  - Positive: move forward  \n  - Negative: move backward  \n  - `0`: does not move\n\n### Behavior\n- Moves the cursor by up to **`offset` plies**.  \n- If the offset exceeds the **available history**, it stops at the **first** or **last** ply.  \n- In **edit mode** or if `offset` is `0`, the method does **nothing**.\n- Updates `game.current` to reflect the new cursor position.  \n\n### Returns\n- `true` if the cursor moved.  \n- `false` if no movement was possible (edit mode, offset 0, or at the bounds of history).\n\n## game.goto(plyID)\n\nMoves the game **game.current** to a specific ply by its ID.  \n\n### Parameters\n- **plyID** — integer representing the target ply ID:  \n  - `0` — first ply  \n  - `-1` or any negative value — first ply  \n  - Values greater than the last ply ID — moves to the **last ply**  \n\n### Behavior\n- Sets `game.current` to the specified ply.  \n- If `plyID` is out of bounds, clamps to the **first** or **last** ply.  \n- In **edit mode**, the cursor cannot move and the method does nothing.  \n\n### Returns\n- `true` if the cursor moved.  \n- `false` if no movement was possible (edit mode or already at the target ply).\n\n## game.rewind()\n\nMoves the game **game.current** back to the **first ply** (beginning of the game).  \n\n### Behavior\n- Sets `game.current` to the **initial state**.  \n- In **edit mode**, the cursor cannot move and the method does nothing.  \n\n### Returns\n- `true` if the cursor moved.  \n- `false` if already at the first ply or in edit mode.\n\n## game.end()\n\nMoves the game **game.current** to the **last event** (most recent ply).  \n\n### Behavior\n- Sets `game.current` to the **last completed move** or **event**.  \n- In **edit mode**, the cursor cannot move and the method does nothing.  \n\n### Returns\n- `true` if the cursor moved.  \n- `false` if already at the last event or in edit mode.\n\n## game.undoEvent()\n\nMoves the game **game.current** back by **one event** in the history chain.  \n\n### Behavior\n- Advances to the **previous event**, regardless of ply boundaries.  \n- In **edit mode**, the cursor cannot move and the method does nothing.  \n\n### Returns\n- `true` if the cursor moved.  \n- `false` if already at the first event or in edit mode.\n\n## game.redoEvent()\n\nMoves the game **game.current** forward by **one event** in the history chain.  \n\n### Behavior\n- Advances to the **next event**, regardless of ply boundaries.  \n- In **edit mode**, the cursor cannot move and the method does nothing.  \n\n### Returns\n- `true` if the cursor moved.  \n- `false` if already at the last event or in edit mode.\n\n## game.goEvent(offset)\n\nMoves the game **game.current** by a specified number of **events** in the history chain.  \n\n### Parameters\n- **offset** — a signed integer representing the number of events ","readmeFilename":"readme.md"}