Boundary parsing, defaults, unions, refinements, mutation compatibility, migrations, tests, and consumer verification.
Zod parsing can reject, normalize, default, or transform input. A schema edit is therefore a runtime behavior change, not just a TypeScript declaration change.
.strict() where unknown transport fields must be rejected, and make
that choice explicit rather than assuming every object behaves identically;Transport contracts carry operational guarantees as well as shape. Mutation control requires a bounded idempotency key and optional expected revision. Accepted mutations expose only queued or running status, a canonical operation status URL, and a bounded retry delay. Terminal operation variants pair their status with a matching outcome.
Before changing a contract, identify all producers, consumers, fixtures, published records, and documentation:
Test the smallest schema rule directly, then the domain composition, public API exports, and affected producer/consumer behavior. Run package lint, production and test typechecks, tests, and build. For transport changes, also update API contracts; for public records, update the schema reference and public-data docs.
Schema ownership and exports
What belongs in the shared schema package, how domains are arranged, and how producers and consumers import its public API.
UI package internals
Maintainer guide to shared shadcn primitives, source exports, semantic theme tokens, theme initialization, and accessibility contracts.