Goal: define and implement the canonical Workshop WIR/emitter contract for OverPy min= and max= modifications.
Context: PR #54 / opy-rs Issue #46 identifies these as a Workshop-owned contract gap. opy-rs must not duplicate operation semantics.
Scope: specify operation identity, WIR representation, catalog linkage, validation, locale emission, and oracle-backed tests for applicable global/player/indexed forms.
Consumer linkage: wrightkit/opy-rs#42 owns the downstream catalog-backed consumer path; after this contract is published, the opy-rs mutation follow-up can consume it without a provider-local semantic copy.
Non-goals: no OPY parser/compiler aliases in opy-rs, unrelated catalog/member closure, or control flow.
Acceptance: published workshop-rs contract, canonical parser/WIR/emitter tests, and explicit rejection for unsupported forms.
Follow-up from wrightkit/opy-rs#54 review; not part of opy-rs Issue #46 completion.
Goal: define and implement the canonical Workshop WIR/emitter contract for OverPy min= and max= modifications.
Context: PR #54 / opy-rs Issue #46 identifies these as a Workshop-owned contract gap. opy-rs must not duplicate operation semantics.
Scope: specify operation identity, WIR representation, catalog linkage, validation, locale emission, and oracle-backed tests for applicable global/player/indexed forms.
Consumer linkage: wrightkit/opy-rs#42 owns the downstream catalog-backed consumer path; after this contract is published, the opy-rs mutation follow-up can consume it without a provider-local semantic copy.
Non-goals: no OPY parser/compiler aliases in opy-rs, unrelated catalog/member closure, or control flow.
Acceptance: published workshop-rs contract, canonical parser/WIR/emitter tests, and explicit rejection for unsupported forms.
Follow-up from wrightkit/opy-rs#54 review; not part of opy-rs Issue #46 completion.