# NowChessSystems — AI Context Map > **Stack:** raw-http | none | unknown | scala > 0 routes | 0 models | 0 components | 63 lib files | 1 env vars | 1 middleware > **Token savings:** this file is ~0 tokens. Without it, AI exploration would cost ~0 tokens. **Saves ~0 tokens per conversation.** --- # Libraries - `jacoco-reporter/scoverage_coverage_gaps.py` - function parse_scoverage_xml: (xml_path) -> tuple[dict, list[ClassGap]] - function format_agent: (project_stats, classes) -> str - function format_json: (project_stats, classes) -> str - function format_markdown: (project_stats, classes) -> str - function format_module_gaps: (module_name, classes, stmt_pct) -> str - function run_scan_modules: (modules_dir, package_filter, min_coverage) -> None - _...4 more_ - `jacoco-reporter/test_gaps.py` - function parse_suite_xml: (xml_path) -> SuiteResult - function load_module: (module_dir, results_subdir) -> Optional[ModuleResult] - function format_module: (mod) -> str - function run: (modules_dir, results_subdir, module_filter) -> None - function main: () -> None - class TestCase - _...2 more_ - `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` - class Board - function apply - function pieceAt - function updated - function removed - function withMove - _...2 more_ - `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` - function hasAnyRights - function hasRights - function revokeColor - function revokeKingSide - function revokeQueenSide - class CastlingRights - `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — function opposite, function label - `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — class Piece - `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — function label - `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` - class Square - function fromAlgebraic - function offset - `modules/api/src/main/scala/de/nowchess/api/bot/Bot.scala` - class Bot - function name - function nextMove - `modules/api/src/main/scala/de/nowchess/api/dto/ErrorEventDto.scala` — class ErrorEventDto, function apply - `modules/api/src/main/scala/de/nowchess/api/dto/GameFullEventDto.scala` — class GameFullEventDto, function apply - `modules/api/src/main/scala/de/nowchess/api/dto/GameStateEventDto.scala` — class GameStateEventDto, function apply - `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` - function kingSquare - function withBoard - function withTurn - function withCastlingRights - function withEnPassantSquare - function withHalfMoveClock - _...4 more_ - `modules/api/src/main/scala/de/nowchess/api/player/PlayerInfo.scala` — class PlayerId, function apply - `modules/api/src/main/scala/de/nowchess/api/response/ApiResponse.scala` - class ApiResponse - function error - function totalPages - `modules/bot/python/nnue.py` - function get_weights_dir: () - function get_data_dir: () - function list_checkpoints: () - function migrate_legacy_data: () - function show_header: () - function show_checkpoints_table: () - _...10 more_ - `modules/bot/python/src/dataset.py` - function get_datasets_dir: () -> Path - function next_dataset_version: () -> int - function list_datasets: () -> List[Tuple[int, Dict]] - function load_dataset_metadata: (version) -> Optional[Dict] - function save_dataset_metadata: (version, metadata) -> None - function create_dataset: (version, labeled_jsonl_path, sources, stockfish_depth) -> Path - _...4 more_ - `modules/bot/python/src/export.py` — function export_to_nbai: (weights_file, output_file, trained_by, train_loss) - `modules/bot/python/src/generate.py` — function play_random_game_and_collect_positions: (output_file, total_positions, samples_per_game, min_move, max_move, num_workers) - `modules/bot/python/src/label.py` — function normalize_evaluation: (cp_value, method, scale), function label_positions_with_stockfish: (positions_file, output_file, stockfish_path, batch_size, depth, verbose, normalize, num_workers) - `modules/bot/python/src/lichess_importer.py` — function import_lichess_evals: (input_path, output_file, max_positions, min_depth, verbose) -> int - `modules/bot/python/src/tactical_positions_extractor.py` - function download_and_extract_puzzle_db: (url, output_dir) - function extract_puzzle_positions: (puzzle_csv, max_puzzles) -> Set[str] - function load_positions_from_file: (file_path) -> Set[str] - function merge_positions: (tactical, other, output_file) - function extract_tactical_only: (puzzle_csv, output_file, max_puzzles) -> int - function interactive_merge_positions: (puzzle_csv, output_file, max_puzzles) - `modules/bot/python/src/train.py` - function fen_to_features: (fen) - function find_next_version: (base_name) - function save_metadata: (weights_file, metadata) - function train_nnue: (data_file, output_file, epochs, batch_size, lr, checkpoint, stockfish_depth, use_versioning, early_stopping_patience, weight_decay, subsample_ratio, hidden_sizes) - function burst_train: (data_file, output_file, duration_minutes, epochs_per_season, early_stopping_patience, batch_size, lr, initial_checkpoint, stockfish_depth, use_versioning, weight_decay, subsample_ratio, hidden_sizes) - class NNUEDataset - _...1 more_ - `modules/bot/src/main/scala/de/nowchess/bot/BotController.scala` - class BotController - function getBot - function listBots - `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala` - class BotMoveRepetition - function blockedMoves - function repeatedMove - function filterAllowed - `modules/bot/src/main/scala/de/nowchess/bot/Config.scala` — class Config - `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala` - class Evaluation - class CHECKMATE_SCORE - class DRAW_SCORE - function evaluate - function initAccumulator - function copyAccumulator - _...2 more_ - `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` - class EvaluationClassic - function evaluate - function countRay - `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/EvaluationNNUE.scala` — class EvaluationNNUE, function evaluate - `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala` - class NNUE - function initAccumulator - function pushAccumulator - function copyAccumulator - function recomputeAccumulator - function validateAccumulator - _...4 more_ - `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiLoader.scala` - class NbaiLoader - function load - function loadDefault - `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiMigrator.scala` — class NbaiMigrator, function migrateFromBin - `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiModel.scala` - function toJson - class NbaiMetadata - function fromJson - function str - function num - `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NbaiWriter.scala` — class NbaiWriter, function write - `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala` - function bestMove - function bestMove - function bestMoveWithTime - function bestMoveWithTime - function loop - function loop - `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala` - class MoveOrdering - class OrderingContext - function addKillerMove - function getKillerMoves - function addHistory - function getHistory - _...3 more_ - `modules/bot/src/main/scala/de/nowchess/bot/logic/TranspositionTable.scala` - function advance - function probe - function store - function clear - `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — function probe, function select - `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala` — class PolyglotHash, function hash - `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala` - class ZobristHash - function hash - function nextHash - `modules/core/src/main/scala/de/nowchess/chess/command/Command.scala` - class Command - function execute - function undo - function description - class MoveResult - `modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala` - class CommandInvoker - function execute - function undo - function redo - function history - function getCurrentIndex - _...3 more_ - `modules/core/src/main/scala/de/nowchess/chess/config/JacksonConfig.scala` — class JacksonConfig, function customize - `modules/core/src/main/scala/de/nowchess/chess/controller/Parser.scala` — class Parser, function parseMove - `modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala` - class GameEngine - function board - function turn - function context - function canUndo - function canRedo - _...11 more_ - `modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala` - function context - class Observer - function onGameEvent - class Observable - function subscribe - function unsubscribe - _...1 more_ - `modules/core/src/main/scala/de/nowchess/chess/registry/GameRegistry.scala` - class GameRegistry - function store - function get - function update - function generateId - `modules/core/src/main/scala/de/nowchess/chess/registry/GameRegistryImpl.scala` - class GameRegistryImpl - function store - function get - function update - function generateId - `modules/core/src/main/scala/de/nowchess/chess/resource/GameResource.scala` - function onGameEvent - function createGame - function getGame - function streamGame - function onGameEvent - function resignGame - _...9 more_ - `modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala` — class GameContextExport, function exportGameContext - `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — class GameContextImport, function importGameContext - `modules/io/src/main/scala/de/nowchess/io/GameFileService.scala` - class GameFileService - function saveGameToFile - function loadGameFromFile - class FileSystemGameService - function saveGameToFile - function loadGameFromFile - `modules/io/src/main/scala/de/nowchess/io/fen/FenExporter.scala` - class FenExporter - function boardToFen - function gameContextToFen - function exportGameContext - `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` - class FenParser - function parseFen - function importGameContext - function parseBoard - `modules/io/src/main/scala/de/nowchess/io/fen/FenParserCombinators.scala` - class FenParserCombinators - function parseFen - function parseBoard - function importGameContext - `modules/io/src/main/scala/de/nowchess/io/fen/FenParserFastParse.scala` - class FenParserFastParse - function parseFen - function parseBoard - function importGameContext - `modules/io/src/main/scala/de/nowchess/io/fen/FenParserSupport.scala` — function buildSquares - `modules/io/src/main/scala/de/nowchess/io/json/JsonExporter.scala` — class JsonExporter, function exportGameContext - `modules/io/src/main/scala/de/nowchess/io/json/JsonParser.scala` — class JsonParser, function importGameContext - `modules/io/src/main/scala/de/nowchess/io/pgn/PgnExporter.scala` - class PgnExporter - function exportGameContext - function exportGame - `modules/io/src/main/scala/de/nowchess/io/pgn/PgnParser.scala` - class PgnParser - function validatePgn - function importGameContext - function parsePgn - function parseAlgebraicMove - `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` - class RuleSet - function candidateMoves - function legalMoves - function allLegalMoves - function isCheck - function isCheckmate - _...5 more_ - `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` - class DefaultRules - function positionOf - function loop - function toMoves - function loop --- # Config ## Environment Variables - `STOCKFISH_PATH` **required** — modules/bot/python/nnue.py --- # Middleware ## custom - generate — `modules/bot/python/src/generate.py` --- # Dependency Graph ## Most Imported Files (change these carefully) - `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` — imported by **64** files - `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` — imported by **44** files - `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` — imported by **40** files - `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` — imported by **35** files - `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` — imported by **19** files - `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` — imported by **18** files - `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` — imported by **17** files - `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` — imported by **17** files - `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` — imported by **11** files - `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` — imported by **10** files - `modules/api/src/main/scala/de/nowchess/api/board/CastlingRights.scala` — imported by **9** files - `modules/api/src/main/scala/de/nowchess/api/game/DrawReason.scala` — imported by **7** files - `modules/io/src/main/scala/de/nowchess/io/GameContextImport.scala` — imported by **7** files - `modules/api/src/main/scala/de/nowchess/api/bot/Bot.scala` — imported by **6** files - `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala` — imported by **6** files - `modules/api/src/main/scala/de/nowchess/api/player/PlayerInfo.scala` — imported by **5** files - `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotBook.scala` — imported by **5** files - `modules/api/src/main/scala/de/nowchess/api/game/GameResult.scala` — imported by **4** files - `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala` — imported by **4** files - `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` — imported by **4** files ## Import Map (who imports what) - `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala` ← `modules/api/src/main/scala/de/nowchess/api/bot/Bot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala`, `modules/bot/src/main/scala/de/nowchess/bot/ai/Evaluation.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala` +59 more - `modules/api/src/main/scala/de/nowchess/api/move/Move.scala` ← `modules/api/src/main/scala/de/nowchess/api/bot/Bot.scala`, `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/board/BoardTest.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/BotMoveRepetition.scala` +39 more - `modules/api/src/main/scala/de/nowchess/api/board/Square.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/move/Move.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/api/src/test/scala/de/nowchess/api/move/MoveTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala` +35 more - `modules/api/src/main/scala/de/nowchess/api/board/Color.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/main/scala/de/nowchess/api/game/GameResult.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala` +30 more - `modules/api/src/main/scala/de/nowchess/api/board/Board.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/api/src/test/scala/de/nowchess/api/game/GameContextTest.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +14 more - `modules/api/src/main/scala/de/nowchess/api/board/Piece.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/PolyglotHash.scala`, `modules/bot/src/main/scala/de/nowchess/bot/util/ZobristHash.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +13 more - `modules/api/src/main/scala/de/nowchess/api/board/PieceType.scala` ← `modules/api/src/main/scala/de/nowchess/api/game/GameContext.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/classic/EvaluationClassic.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/nnue/NNUE.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/MoveOrdering.scala` +12 more - `modules/rule/src/main/scala/de/nowchess/rules/sets/DefaultRules.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +12 more - `modules/rule/src/main/scala/de/nowchess/rules/RuleSet.scala` ← `modules/bot/src/main/scala/de/nowchess/bot/bots/ClassicalBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/HybridBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/bots/NNUEBot.scala`, `modules/bot/src/main/scala/de/nowchess/bot/logic/AlphaBetaSearch.scala`, `modules/bot/src/test/scala/de/nowchess/bot/AlphaBetaSearchTest.scala` +6 more - `modules/io/src/main/scala/de/nowchess/io/fen/FenParser.scala` ← `modules/bot/src/test/scala/de/nowchess/bot/PolyglotHashTest.scala`, `modules/core/src/main/scala/de/nowchess/chess/resource/GameResource.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/EngineTestHelpers.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineLoadGameTest.scala`, `modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineNotationTest.scala` +5 more --- _Generated by [codesight](https://github.com/Houseofmvps/codesight) — see your codebase clearly_