The event payload type parse produces
The contract's four fields
The validated definition, with every field exposed unchanged
When type or topic is empty, version is not a
positive safe integer, parse is absent, or topic does not end with
the exact .v${version} suffix
Defines a versioned integration-event contract and validates it eagerly.
The versioned-topic rollout policy is enforced here rather than documented: the
topicmust end with the exact string.v${version}(for exampleorders.placed.v2for version2), so a version bump that leaves the topic unchanged is refused at definition time — at module load, loudly — instead of silently breaking every deployed consumer of the previous version. A pre-existing topic that predates this policy has no versioned suffix by design; keep using the rawbroker.publish/broker.subscribesurface for it, which this milestone does not change.