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
//! The canonical multi-locale Overwatch Workshop semantic core.
//!
//! `workshop-rs` owns the Workshop-language foundation of the WrightKit
//! ecosystem: canonical Workshop semantics, the catalog of Workshop-defined
//! content, the raw Workshop frontend, validation, deterministic emission,
//! and Workshop IR. It is standalone and MIT-licensed; it has no dependency on
//! Wright tooling crates or on any source-language provider implementation.
//!
//! * [`catalog`] — the canonical Workshop catalog: stable, locale-independent
//! semantic identities, kinds, parameters, and locale tables binding
//! identities to client spellings; catalog version/digest identity and
//! per-locale coverage;
//! * `lexer`/`parser` — the native localized Workshop frontend producing
//! validated Workshop IR;
//! * [`wir`] — the Workshop IR model (locale-independent semantic
//! representation) with its arena/source/settings support;
//! * [`emitter`] — deterministic localized Workshop emission and canonical
//! native action-layout queries, failing
//! explicitly on missing target-locale mappings (opt-in fallback);
//! * [`detect`] — Workshop client-language detection and explicit override;
//! * [`validate`] — catalog-backed validation of canonical builtin references;
//! * [`roundtrip`] — cross-locale round-trip validation;
//! * [`convert`] — raw Workshop locale conversion (parse -> canonical
//! semantics -> emit).
//! * [`live_capture`] — offline validation and structured comparison contracts
//! for manually recorded client evidence; it never controls a client.
//!
//! The catalog is locale-independent at the identity layer: analyzer and WIR
//! APIs never need locale-specific strings to identify a builtin. Locale
//! coverage is data, declared in the catalog dataset
//! ([`catalog::Catalog`], [`docs/adr/0001-catalog-boundaries.md`](https://github.com/wrightkit/workshop-rs/blob/main/docs/adr/0001-catalog-boundaries.md)).
pub use ;