## Description Centralise all custom error types and handling logic into a dedicated `errors` module. ## Acceptance Criteria - [ ] An `errors` module exists under `src/errors/mod.rs` - [ ] A top-level `AppError` enum covers all major error categories (puzzle, player, nft, io) - [ ] All modules use `AppError` instead of ad-hoc error strings - [ ] Errors implement `std::fmt::Display` and `std::error::Error` - [ ] Unit tests confirm correct error variants are returned per scenario
Description
Centralise all custom error types and handling logic into a dedicated
errorsmodule.Acceptance Criteria
errorsmodule exists undersrc/errors/mod.rsAppErrorenum covers all major error categories (puzzle, player, nft, io)AppErrorinstead of ad-hoc error stringsstd::fmt::Displayandstd::error::Error