You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ensure every legacy or migration-oriented public compatibility facade is either deliberately supported as part of the 1.x Rust contract or removed before workshop-rs 1.0.
Context
The canonical consumer boundary is the public Workshop Program model plus domain-oriented parsing, validation, analysis, catalog, settings, gameplay, and emission APIs.
Historical compatibility modules and #[doc(hidden)] exports are still semver-relevant when they remain public. Keeping implementation-shaped APIs accidentally would make internal WIR, storage, parser, or layout details part of the 1.x maintenance contract.
Because this work happens before 1.0, removing compatibility-only public APIs is an intentional breaking change. Downstream WrightKit repositories migrate when they adopt the breaking workshop-rs release; their migration is not a prerequisite for owner-side removal.
Scope
Re-check the current public facade/export inventory against main.
Remove legacy or hidden public paths that expose WIR, storage, parser implementation, or other migration-only details without an intentional long-term Workshop-domain contract.
Keep a public surface only when its semantics are intentionally supported independently of its historical implementation role.
Preserve genuinely useful domain-oriented aliases when removing them would only create churn without reducing accidental contract surface.
Keep internal storage and implementation freedom behind the public Program and domain APIs.
Keep public API documentation aligned with the actual exported 1.x candidate surface.
Non-goals
Preserving consumer builds across this pre-1.0 breaking change.
Migrating Wright, OPY, or DEL/OSTW consumers inside this repository.
Removing every re-export or alias for aesthetic consistency.
Rewriting WIR or parser/emitter internals.
Creating a second public compatibility layer to replace the first one.
Moving OPY, DEL/OSTW, or Wright-specific semantics into workshop-rs.
Acceptance criteria
The current public facade/export inventory matches live code.
Every remaining public item has an intentional durable 1.x purpose; migration-only or implementation-shaped facades are no longer ordinary public API.
Ordinary consumers do not need WIR arena/storage identities or parser implementation modules to use the supported Workshop API.
No replacement abstraction is added unless a concrete supported Workshop-domain contract requires it.
Public API documentation describes the actual retained surface and does not list retired compatibility paths as public.
Existing public API, semantic, compatibility, and real-project tests remain meaningful and pass.
Parent: #252
Goal
Ensure every legacy or migration-oriented public compatibility facade is either deliberately supported as part of the 1.x Rust contract or removed before
workshop-rs1.0.Context
The canonical consumer boundary is the public Workshop
Programmodel plus domain-oriented parsing, validation, analysis, catalog, settings, gameplay, and emission APIs.Historical compatibility modules and
#[doc(hidden)]exports are still semver-relevant when they remain public. Keeping implementation-shaped APIs accidentally would make internal WIR, storage, parser, or layout details part of the 1.x maintenance contract.Because this work happens before 1.0, removing compatibility-only public APIs is an intentional breaking change. Downstream WrightKit repositories migrate when they adopt the breaking
workshop-rsrelease; their migration is not a prerequisite for owner-side removal.Scope
main.Programand domain APIs.Non-goals
workshop-rs.Acceptance criteria
Dependencies / ownership
workshop-rsfor its public exports and compatibility promises.workshop-rsrelease.