Description
A code audit shows multiple unwrap()/expect() calls in the session, puzzle, and persistence modules that can cause panics on malformed input or I/O failure instead of returning recoverable errors. Replace these with a consistent Result-based error type.
Acceptance Criteria
Description
A code audit shows multiple
unwrap()/expect()calls in the session, puzzle, and persistence modules that can cause panics on malformed input or I/O failure instead of returning recoverable errors. Replace these with a consistentResult-based error type.Acceptance Criteria
GameErrorenum introduced (usingthiserror)unwrap()/expect()insession,puzzle,scoring, andpersistencemodules replaced with?-propagated errors, except where panics are truly unreachable and documented as suchResult<T, GameError>instead of panickingclippy::unwrap_usedlint enabled in CI for the affected modules