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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//! Itihas — Structured World History
//!
//! **Itihas** (Sanskrit: इतिहास — "thus it was", history, chronicle) provides
//! structured, queryable world history data. Civilizations, eras, events,
//! historical figures, and calendar system metadata as Rust types.
//!
//! # Architecture
//!
//! Eight modules:
//!
//! - [`era`] — Historical periods with date ranges and civilizational phases.
//! 25 pre-built eras (8 global + 17 regional), `eras_containing(year)` lookup
//! - [`civilization`] — Major civilizations with geographic extent, peak period,
//! key traits. 52 pre-built civilizations, `by_region()` and `active_at()` lookups
//! - [`event`] — Structured historical events with category, era, significance,
//! and civilizations involved. 105 pre-built world events
//! - [`causality`] — Causal links between events with strength ratings.
//! `causes_of()`, `effects_of()`, and `chain()` traversal
//! - [`interaction`] — Civilization interaction graph (trade, war, diplomacy).
//! Influence scoring and geographic proximity analysis
//! - [`calendar`] — Calendar system metadata: type, epoch, months, leap rules
//! (not computation — that belongs in sankhya). 8 pre-built calendar systems
//! - [`figure`] — Historical figures with era/civilization context and domain
//! classification. 52 pre-built figures
//! - [`error`] — `ItihasError` with variants for unknown entities and invalid lookups
//!
//! # Relationship to Other Crates
//!
//! ```text
//! itihas (this) — structured world history data
//! ↓ provides historical context
//! sankhya — ancient mathematical systems (calendar math, era arithmetic)
//! ↓ computation layer
//! avatara — historical simulation (era transitions, civilization dynamics)
//! ↓ simulation engine
//! kiran — game engine (historical scenarios, timeline rendering)
//! ```
//!
//! Also feeds:
//! - **joshua** — strategy game (historical civilizations, events)
//! - **jnana** — knowledge system (historical facts, timeline queries)
//! - **lipi** — linguistics (historical script/language context)
//! - **vidya** — programming reference (history of computing)
extern crate alloc;
pub use ItihasError;