Skip to main content

workshop_rs/
lib.rs

1//! The canonical multi-locale Overwatch Workshop semantic core.
2//!
3//! `workshop-rs` owns the Workshop-language foundation of the WrightKit
4//! ecosystem: canonical Workshop semantics, the catalog of Workshop-defined
5//! content, the raw Workshop frontend, validation, deterministic emission,
6//! and Workshop IR. It is standalone and MIT-licensed; it has no dependency on
7//! Wright tooling crates or on any source-language provider implementation.
8//!
9//! * [`catalog`] — the canonical Workshop catalog: stable, locale-independent
10//!   semantic identities, kinds, parameters, and locale tables binding
11//!   identities to client spellings; catalog version/digest identity and
12//!   per-locale coverage;
13//! * `lexer`/`parser` — the native localized Workshop frontend producing
14//!   validated Workshop IR;
15//! * [`wir`] — the Workshop IR model (locale-independent semantic
16//!   representation) with its arena/source/settings support;
17//! * [`emitter`] — deterministic localized Workshop emission and canonical
18//!   native action-layout queries, failing
19//!   explicitly on missing target-locale mappings (opt-in fallback);
20//! * [`detect`] — Workshop client-language detection and explicit override;
21//! * [`validate`] — catalog-backed validation of canonical builtin references;
22//! * [`roundtrip`] — cross-locale round-trip validation;
23//! * [`convert`] — raw Workshop locale conversion (parse -> canonical
24//!   semantics -> emit).
25//! * [`live_capture`] — offline validation and structured comparison contracts
26//!   for manually recorded client evidence; it never controls a client.
27//!
28//! The catalog is locale-independent at the identity layer: analyzer and WIR
29//! APIs never need locale-specific strings to identify a builtin. Locale
30//! coverage is data, declared in the catalog dataset
31//! ([`catalog::Catalog`], [`docs/adr/0001-catalog-boundaries.md`](https://github.com/wrightkit/workshop-rs/blob/main/docs/adr/0001-catalog-boundaries.md)).
32
33pub mod arena;
34pub mod catalog;
35pub mod census;
36pub mod conformance;
37pub mod convert;
38pub mod detect;
39pub mod element_count;
40pub mod emitter;
41mod error;
42pub mod format;
43pub mod gameplay;
44pub mod gameplay_data;
45pub mod gameplay_query;
46pub mod ids;
47pub mod lexer;
48pub mod live_capture;
49pub mod parser;
50pub mod real_projects;
51pub mod roundtrip;
52pub mod semantic;
53pub mod settings;
54pub mod signatures;
55pub mod source;
56pub mod validate;
57pub mod wir;
58
59pub use error::{CatalogError, WorkshopError};