🎮 Game

A Lichess client library for s&box that lets a game connect to lichess.org, queue for matches, stream game events, make moves, and fetch user, puzzle, and tournament data. It wraps Sandbox.Http with a LichessApiClient, adds a rate limit controller, and parses JSON and NDJSON into many plain data types. Two smoke-test components exercise the APIs and a minimal gameplay layer adapts moves to a simple IChessBoardAdapter.

🔧 Editor

An editor extension that adds a menu item under Editor > LichessNET Port. Selecting it opens a dialog via EditorUtility.DisplayDialog. It is a small helper for LichessNET tooling entry points in the editor.

🧪 Unit Test

Unit tests for the library. The test assembly boots Sandbox.TestAppSystem in a test context, then a test creates a Scene, pushes it, spawns a GameObject, and asserts the scene directory reports one object.

🐞 Possible Bugs

API/TablebaseAPI.cs
The variant validation uses `!=` combined with `||`, so the condition is always true and always throws ArgumentException, making GetTablebaseLookupAsync unusable.
Code/API/TablebaseAPI.cs
The variant validation uses OR with != so the condition is always true and the method always throws ArgumentException for any variant.
Code/Extensions/LongExtensions.cs
For numbers with exponent 0 (|number| < 1000), Prefixes[0] is empty but the format string still inserts a space, so the result has a trailing space like "123 " or "-45 ".