1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Game history recording and YAML/JSON serialization.
//!
//! Requires the `history` feature (enabled by default).
//!
//! # Overview
//!
//! - [`TurnRecord`] — one player's turn: events emitted, book counts, and
//! optionally the actions taken (enables replay).
//! - [`GameRecord`] — full game record with UUID, timestamp, players, turns, winner.
//! - [`GameCollection`] — versioned, ordered list of [`GameRecord`]s with
//! round-trip serialization and file-save support.
//! - [`AuditResult`] — structural invariant check result from [`GameRecord::audit`].
//! - [`ReplayResult`] — engine-replay check result from [`GameRecord::replay`].
//!
//! # Examples
//!
//! ```
//! use gfcore::history::{GameCollection, GameRecord, TurnRecord};
//!
//! let record = GameRecord::new("Standard", vec!["Alice".to_string(), "Bob".to_string()]);
//! let yaml = record.to_yaml().expect("serialize");
//! let parsed = GameRecord::from_yaml(&yaml).expect("deserialize");
//! assert_eq!(record, parsed);
//!
//! let mut col = GameCollection::new();
//! col.push(record);
//! assert_eq!(col.len(), 1);
//!
//! let results = col.audit_all();
//! assert!(results[0].is_consistent);
//! ```
pub use AuditResult;
pub use ;
pub use ReplayResult;