Skip to content

v1.0.0

Choose a tag to compare

@Dblike Dblike released this 24 Mar 01:08
· 8 commits to main since this release

Added

  • GameSource enum — Replaces stringly-typed Source properties on GameJson, MoveStreamEvent, and OngoingGame with a strongly-typed enum (13 values: Lobby, Friend, Ai, Api, Tournament, Position, Import, ImportLive, Simul, Relay, Pool, Arena, Swiss)
  • JudgmentName enum — Replaces Judgment.Name string with Inaccuracy, Mistake, Blunder enum values
  • StreamingService enum — Replaces StreamInfo.Service string with Twitch, YouTube enum values
  • Rate-limit-aware integration test framework — LichessTestFixture with 1.5s request throttling and sequential test execution via xUnit [Collection]

Changed

  • BREAKING: Stringly-typed response properties replaced with enums — All Title, Color, and Source properties on response models now use strongly-typed enums instead of string?. This affects 30+ properties across all API contracts. Consumers must update string comparisons (e.g., game.Source == "pool" → game.Source == GameSource.Pool, player.Title == "GM" → player.Title == Title.GM)
  • ChallengeJson.Color now uses ChallengeColor enum — Supports Random, White, and Black values (previously string?)
  • ChallengeColor enum now has [JsonConverter] — Enables lowercase JSON deserialization
  • Integration tests run sequentially — All tests share LichessTestFixture via [Collection("Lichess API")], eliminating parallel rate limit collisions
  • Integration test timeout reduced — From 10 minutes to 60 seconds per test (throttling prevents rate limits)