Update parseFen to return Either[String, GameContext] with specific error messages for each validation failure:
- Invalid parts count: reports expected 6 fields
- Invalid board: clear message about board position
- Invalid color: explains expected 'w' or 'b'
- Invalid castling, en passant, and move counts with clear descriptions
Simplify importGameContext to delegate directly to parseFen.
Keep helper methods (parseColor, parseCastling, parseEnPassant, etc.) returning Option as before.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update GameContextExport trait to use Scala 3 syntax (colon-based) to match GameContextImport
- Add test coverage for FenParser.importGameContext method:
* Valid FEN string returns Right[GameContext] with correct context data
* Invalid FEN string returns Left[String] with error message
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update GameContextImport trait to return Either[String, GameContext] instead of
Option[GameContext] to provide better error context during parsing. Update FenParser
implementation to convert Option to Either using toRight().
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>