Skip to content

[v0.2 workshop-rs] Establish the canonical multi-locale Workshop core #138

Description

@Teakowa

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions