Summary
A play session accepted commands and echoed the payload back, but never appended anything — so the event log stayed empty, the read models could never populate, and there was nothing to inspect in the Workbench. Commands now append the events their produces declarations describe.
Added
- Commands append the events their
producesdeclarations describe. The guardingwhencondition is evaluated against the incoming payload, and each event property is resolved from a command property, a constant, the occurred time, the calling identity, an environment variable, or an interpolated template. - The event model intermediate format carries a command's
producesdeclarations, so any consumer of the format — not just the host — can see which events a command appends and under what condition. - The model's event types are registered with Chronicle at startup, so a play session's event types are listed in the Workbench and the projections reference types the kernel knows about.
Fixed
- Read models populate again. The sink the read models project into was identified by an invented GUID; Chronicle identifies sink types by well-known name, so every projection write was rejected as an unknown sink — surfacing as a failed observer partition rather than a registration error.
Changed
- Each command execution appends to its own event source. Screenplay does not declare which command value identifies the event source, so events cannot yet be correlated across commands; that needs the language to say which property is the identity.