From 0ecc1a92fd5de1c1e2dcfa88aad8f88d877c55cd Mon Sep 17 00:00:00 2001 From: funman300 Date: Sun, 17 May 2026 21:22:54 -0700 Subject: [PATCH] refactor(core): add missing derives to AchievementContext (M-20) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add PartialEq, Eq, Serialize, Deserialize to AchievementContext per CLAUDE.md ยง5.3 derive order. The struct holds only primitive types (u32, u64, i32, bool, Option) so all four derives apply without complications. Co-Authored-By: Claude Sonnet 4.6 --- solitaire_core/src/achievement.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/solitaire_core/src/achievement.rs b/solitaire_core/src/achievement.rs index 2faec2a..e96721b 100644 --- a/solitaire_core/src/achievement.rs +++ b/solitaire_core/src/achievement.rs @@ -8,9 +8,11 @@ //! walks `ALL_ACHIEVEMENTS`, evaluates each `condition`, and emits an //! unlock event for any `AchievementDef` whose record is not yet unlocked. +use serde::{Deserialize, Serialize}; + /// Fields needed by achievement conditions. Constructed by the engine from /// `StatsSnapshot`, the final `GameState`, and wall-clock time. -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct AchievementContext { /// Total number of games played (after this win has been recorded). pub games_played: u32,