Skip to content

Complete the user-facing forward OverPy language support contract #326

Description

@Teakowa

Parent: #1
Related: #314, #319, #333
Canonical locale dependency: wrightkit/workshop-rs#237
Historical rationale: ADR-0002

Goal

Make opy-rs language support a user-facing OverPy support contract, remove parallel shadow support databases, and close the pinned forward OverPy core language surface for the declared forward compiler scope.

Context

docs/language-support.md is read by OverPy users to answer practical questions such as whether dictionaries, macros, member functions, translations, settings, compiler directives, or specific control-flow forms are supported.

The current support system mixes that user-facing purpose with maintainer-oriented audit machinery. Human-readable Markdown, feature-contracts.json, pinned-overpy-audit.json, and conformance-manifest.json duplicate overlapping support state and can drift from code and from one another.

Compatibility checks must remain independent of the native implementation and grounded in pinned upstream behavior, representative projects, ordinary tests, and canonical Workshop contracts. That does not require a machine-readable shadow support database.

Bastion has already served as a real-project convergence gate through #319. Remaining forward-language closure should now be driven by owner tests, pinned reference comparisons, the broader structural work in #366, and other representative projects rather than reopening Bastion-specific fixes.

Scope

  • Redesign docs/language-support.md as the canonical human-readable support index for OverPy users.
  • Organize the support surface using OverPy concepts and source spellings rather than compiler/audit terminology.
  • Use a small user-facing status vocabulary:
    • ✅ Supported
    • 🚧 Partial
    • ❌ Unsupported
  • Cover the forward OverPy core surface explicitly, including:
    • syntax and expressions;
    • variables and assignments;
    • rules and annotations;
    • control flow;
    • arrays, dictionaries, and lambdas;
    • functions and member functions;
    • enums and constants;
    • project composition / multiple files;
    • preprocessing and macros;
    • JavaScript macros;
    • strings and translations;
    • custom-game settings;
    • Workshop output-language compatibility;
    • compiler directives and hooks;
    • OPY -> Workshop compilation.
  • Keep Workshop -> OPY reconstruction as a separately stated capability; it does not gate forward-language completion.
  • Remove feature-contracts.json, pinned-overpy-audit.json, conformance-manifest.json, and tooling/checks whose sole purpose is maintaining those duplicate support databases.
  • Preserve the behavior through tests, differential probes, source-attributed fixtures/projects, and pinned upstream comparisons rather than duplicating test state as support-state JSON.
  • Reconcile support claims against current code, tests, pinned upstream behavior, and representative workflows; do not preserve stale Markdown claims merely to keep the documentation green.
  • Identify forward-language rows that remain 🚧 Partial and resolve them through focused owner-local implementation work.
  • Treat pinned upstream core behavior as presumptively in scope unless an explicit product/compatibility decision marks a capability unsupported.
  • Keep Bastion convergence already established by Converge Bastion compilation structurally on pinned OverPy #319 protected while resolving remaining forward-core gaps through their owning tests and compatibility work.

Non-goals

  • Replacing executable tests or differential verification with documentation.
  • Treating Markdown alone as proof that implementation is correct.
  • Reproducing upstream internal architecture or data structures.
  • Introducing a new machine-readable support database under another name.
  • Requiring Workshop -> OPY reconstruction to be complete before forward OPY -> Workshop validation.
  • Folding Bastion-specific compiler residuals into generic language-support implementation when they are genuinely project-level convergence issues.
  • Duplicating canonical Workshop semantics owned by workshop-rs.

Acceptance criteria

  • docs/language-support.md gives an OverPy user a direct, readable answer for every major language/compiler feature area without requiring knowledge of HIR, WIR, registry leaves, audit branches, coverage states, or internal manifests.
  • Detailed support pages use real OverPy syntax/names and explain limitations in user terms.
  • Public support status uses only Supported, Partial, and Unsupported.
  • The JSON shadow support databases and their maintenance-only validation paths are removed.
  • Remaining support claims are consistent with current executable evidence and code reality.
  • Every pinned forward OverPy core feature is either ✅ Supported or explicitly ❌ Unsupported by an approved scope decision; no unresolved 🚧 Partial forward-core rows remain.
  • The completion check uses independent tests or pinned reference/workflow validation appropriate to the capability.
  • Bastion Use Bastion as a real-project compiler convergence gate #314/Converge Bastion compilation structurally on pinned OverPy #319 are completed real-project/compiler-convergence validation and are not the primary mechanism for filling ordinary language-surface gaps.

Ownership

  • OverPy language surface, support contract, and forward compiler behavior: opy-rs.
  • Canonical Workshop actions, values, enums, settings, validation, representation, and emission: workshop-rs.
  • Wright consumes proven owner capability and must not compensate for missing OPY semantics.

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