Parent: #135
Roadmap: #134
Related foundation: #96
Goal
Extract and complete the Workshop implementation as a separately versioned canonical semantic core for the Wright ecosystem and for standalone Workshop tooling.
Scope
- Move canonical Workshop ownership out of the Wright tooling repository boundary into
workshop-rs.
- Separate Workshop IR from source-language-specific HIR/models.
- Own the canonical Workshop catalog: actions, values, events, enums, heroes, maps, game modes, settings, localization metadata, signatures, availability/version metadata, and provenance.
- Use catalog-driven/allowlisted semantic recognition: supported definitions are explicit; unknown/unsupported language constructs fail deterministically rather than being guessed.
- Complete raw Workshop parsing/validation/emission for the declared supported surface, including settings.
- Add localized raw Workshop input and output with locale-independent canonical semantic identities.
- Make raw Workshop locale conversion a first-class standalone capability, with the first release gate covering complete
en-US <-> zh-CN semantic conversion for the declared catalog surface.
- Preserve user-authored identifiers/strings/comments according to a documented policy; only Blizzard-defined Workshop language/content tokens are localized by default.
- Add catalog/content version identity and a reproducible update/provenance pipeline so new game content can be added as data where semantics permit.
- Provide a library and standalone CLI suitable for use without Wright.
Non-goals
- Guaranteeing every Overwatch client locale in the first extraction release.
- OPY/OSTW source-language semantics.
- Wright-specific lint/agent/tool orchestration.
- Guessing unknown future Workshop syntax as valid semantics.
Acceptance criteria
workshop-rs has no dependency on Wright tooling crates or OPY/OSTW provider internals.
- Canonical Workshop IDs are locale-independent and are the semantic identity used by parser/emitter/catalog APIs.
- The supported raw Workshop surface round-trips through parse -> canonical semantics -> emit.
en-US -> zh-CN and zh-CN -> en-US raw Workshop conversion are corpus-tested for the declared surface, including settings and representative actions/values/events/enums/content identifiers.
- Missing target-locale mappings fail explicitly by default rather than silently emitting mixed-locale source; any fallback mode is opt-in and documented.
- Catalog provenance/version identity is machine-readable and reproducible.
- Standalone
workshop CLI/library usage is documented and tested.
Parent: #135
Roadmap: #134
Related foundation: #96
Goal
Extract and complete the Workshop implementation as a separately versioned canonical semantic core for the Wright ecosystem and for standalone Workshop tooling.
Scope
workshop-rs.en-US<->zh-CNsemantic conversion for the declared catalog surface.Non-goals
Acceptance criteria
workshop-rshas no dependency on Wright tooling crates or OPY/OSTW provider internals.en-US->zh-CNandzh-CN->en-USraw Workshop conversion are corpus-tested for the declared surface, including settings and representative actions/values/events/enums/content identifiers.workshopCLI/library usage is documented and tested.