namespace BaseGames.Core.Events { /// /// 游戏状态 ID(值类型,替代旧版 GameState 枚举)。 /// 具体实例由 GameStates 静态工厂创建。 /// public readonly struct GameStateId : System.IEquatable { public readonly string Id; public GameStateId(string id) => Id = id; public bool Equals(GameStateId other) => Id == other.Id; public override bool Equals(object obj) => obj is GameStateId g && Equals(g); public override int GetHashCode() => Id?.GetHashCode() ?? 0; public override string ToString() => Id ?? ""; public static bool operator ==(GameStateId a, GameStateId b) => a.Equals(b); public static bool operator !=(GameStateId a, GameStateId b) => !a.Equals(b); } }