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
Keep the 1.x catalog API focused on canonical Workshop facts and consumer-facing queries instead of freezing implementation-oriented semantic metadata that consumers do not need to manipulate directly.
Context
CatalogEntry currently exposes several public fields that describe signatures, defaults, semantic types, parameter domains, and coercion behavior. Some of these are durable catalog facts; others may be internal inputs used by typed Rust parsing/validation behavior.
The current architecture contract distinguishes large declarative Workshop facts from behavior/invariants that belong in typed Rust code, and explicitly treats existing metadata-driven semantics as implementation reality to audit rather than precedent for expanding the model.
If implementation-oriented metadata remains directly public in 1.0, moving semantic behavior behind typed APIs later can become an unnecessary breaking change. The goal is not to hide useful data, but to freeze only the contract that real consumers need.
Scope
Inventory the public Catalog, CatalogEntry, signature/domain/default/type/coercion fields and related public accessors against current consumers.
Classify each exposed field as a durable canonical Workshop fact, a useful stable query, or an internal semantic implementation detail.
Keep direct public data access where consumers genuinely need the fact as data.
Prefer stable query methods over exposing representation details when consumers need an answer rather than the metadata encoding used to derive it.
Move implementation-only semantic metadata behind the crate boundary when no supported consumer contract requires direct access.
Preserve deterministic catalog identity, locale resolution, canonical IDs, signatures/domains that are genuine public facts, and existing parser/validator correctness.
Non-goals
Converting all catalog data into typed Rust code.
Hiding canonical Workshop facts merely to minimize item count.
Building a new schema/DSL for catalog semantics.
Redesigning parser/validator behavior unrelated to the public surface.
Removing dynamic catalog queries needed by tooling consumers.
Acceptance criteria
Current WrightKit consumers of public catalog fields are identified from live code before fields are narrowed.
Every directly exposed catalog metadata field in the 1.0 candidate has a demonstrated durable consumer/data contract.
Semantic implementation details that consumers only need as behavior are accessed through stable behavior/query APIs or kept private.
Owner:workshop-rs catalog and Workshop semantic behavior.
Downstream repositories may require migration if they currently inspect representation details directly; those migrations remain owned by the consumers.
Parent: #252
Goal
Keep the 1.x catalog API focused on canonical Workshop facts and consumer-facing queries instead of freezing implementation-oriented semantic metadata that consumers do not need to manipulate directly.
Context
CatalogEntrycurrently exposes several public fields that describe signatures, defaults, semantic types, parameter domains, and coercion behavior. Some of these are durable catalog facts; others may be internal inputs used by typed Rust parsing/validation behavior.The current architecture contract distinguishes large declarative Workshop facts from behavior/invariants that belong in typed Rust code, and explicitly treats existing metadata-driven semantics as implementation reality to audit rather than precedent for expanding the model.
If implementation-oriented metadata remains directly public in 1.0, moving semantic behavior behind typed APIs later can become an unnecessary breaking change. The goal is not to hide useful data, but to freeze only the contract that real consumers need.
Scope
Catalog,CatalogEntry, signature/domain/default/type/coercion fields and related public accessors against current consumers.Non-goals
Acceptance criteria
Dependencies / ownership
workshop-rscatalog and Workshop semantic behavior.