Skip to content

Complete OverPy translations and custom-game settings support #331

Description

@Teakowa

Parent: #326

Goal

Complete the pinned OverPy translation and custom-game-settings source surface required for forward compilation.

Context

The current user-facing support contract still marks translation declarations / .po lifecycle and settings { ... } as partial. These are distinct user-visible OverPy capabilities but share project/preprocessing and final Workshop-output boundaries.

opy-rs owns OverPy translation/settings syntax, project state, source semantics, diagnostics, and OPY-specific lowering. Canonical Workshop settings schemas, localization identities, validation, and emission remain owned by workshop-rs.

Scope

  • Complete pinned upstream translation declaration behavior and the supported #!translations project flow.
  • Complete the upstream-defined translation call/output lifecycle needed by ordinary compiler usage, including .po interactions where they are part of the public compiler workflow.
  • Complete the public OverPy custom-game-settings syntax instead of accepting only a schema slice.
  • Support the public external settings-file form (settings "...", including the documented settings.opy.json workflow) in addition to inline settings { ... }.
  • Cover main-file and included-file behavior, maps/heroes/modes, enum values, numeric ranges, extensions, and source diagnostics where upstream defines them.
  • Preserve canonical validation and localized Workshop emission through workshop-rs.
  • Route missing canonical settings/localization capability to workshop-rs and integrate it after the owner contract is available.
  • Update the user-facing language support pages when behavior changes.

Non-goals

  • Reimplementing the Workshop settings schema or localization catalog in opy-rs.
  • Completing Workshop output-language locale coverage; that is tracked separately by Support the full pinned OverPy Workshop output locale set #333 and its canonical owner dependency wrightkit/workshop-rs#237.
  • Reproducing editor-only UX that is not part of the compiler/project contract.
  • Using Bastion-specific settings as the semantic specification.
  • Treating a source file parsing successfully as proof that settings/localization semantics are complete.

Acceptance criteria

  • Pinned upstream translation declarations and ordinary compiler translation workflows in scope are supported with equivalent source semantics.
  • The public pinned OverPy inline and external-file settings source forms are accepted, validated, and lowered through canonical Workshop ownership.
  • Invalid translation/settings forms fail at a meaningful source boundary with provenance-preserving diagnostics.
  • Required Workshop schema/localization gaps are fixed in workshop-rs rather than duplicated locally.
  • Independent upstream/differential or provenance-linked evidence demonstrates completed translation/settings behavior.
  • Independent ablation of substantive implementation logic makes the corresponding evidence fail again.
  • Translation and custom-game-settings rows no longer remain 🚧 Partial because of missing pinned core compiler behavior.

Ownership

  • OverPy translation/settings syntax, project semantics, diagnostics, and OPY-specific lowering: opy-rs.
  • Canonical Workshop settings schema, localization, validation, representation, and emission: workshop-rs.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions