Build a Scala 3 chess engine with these files: CoreTypes.scala, BitboardUtils.scala, MagicBitboards.scala, AttackTables.scala, GameState.scala, MoveGenerator.scala, ZobristHash.scala, AlphaBetaSearch.scala, Evaluation.scala, UciEngine.scala.

Requirements:

Use bitboards and magic bitboards for sliding pieces.
Implement negamax alpha-beta search with transposition table, quiescence search, and MVV-LVA move ordering.
Maintain Zobrist hashing for positions.
Separate concerns: move generation, evaluation, search, and UCI handling.
Produce a functional, efficient UCI engine in idiomatic Scala 3.