# @suaveplan/events-schema - Runtime schema-validation companion for @suaveplan/events: validates event payloads at dispatch boundaries via Zod schemas with strict/warn/sample modes and sensitive field redaction. ## Summary Runtime schema-validation companion for `@suaveplan/events`. Validates event payloads at dispatch boundaries via Zod schemas with strict/warn/sample modes and sensitive field redaction. ## Documentation tree - [attach-event-schemas](./src/core/attach-event-schemas/attach-event-schemas.md) — _(no submodules)_ - [attach-event-schemas](./src/core/attach-event-schemas/attach-event-schemas.md) — _(no submodules)_ - [attach-event-schemas](./src/core/attach-event-schemas/attach-event-schemas.md) — _(no submodules)_- [attach-event-schemas](./src/core/attach-event-schemas/attach-event-schemas.md) — _(no submodules)_- [attach-event-schemas](./src/core/attach-event-schemas/attach-event-schemas.md) — _(no submodules)_- [attach-event-schemas](./src/core/attach-event-schemas/attach-event-schemas.md) — _(no submodules)_ ## Quick Start ```ts import { EventBus } from "@suaveplan/events"; import { attachEventSchemas } from "@suaveplan/events-schema"; import z from "zod"; const bus = new EventBus(); const handle = attachEventSchemas(bus, { mode: "strict" }); handle.registerSchema("user.created", z.object({ id: z.string() })); await bus.emitAsync("user.created", { id: "u-1" }); // passes await bus.emitAsync("user.created", { id: 123 }); // throws EventsSchemaError handle.detach(); ``` ## Modules - [`src/core/attach-event-schemas/attach-event-schemas`](src/core/attach-event-schemas/attach-event-schemas.md) — `attachEventSchemas`, `registerEventSchema`, `EventSchemasHandle`