Adds the textual PDL grammar for Cratis/Chronicle's read model variants: a variant <Name>
block declares one of several mutually exclusive named read models sharing a projection's
logical identity, and enters on <EventType> declares the event that activates it. A block
declared at the projection level, outside every variant, is a shared handler applied to every
variant that has the mapped property. No kernel/engine changes are needed on the Chronicle
side for this — it maps onto the same From/Join/RemovedWith shape the Fluent and
ModelBound authoring styles already produce.
Added
variant <Name>andenters on <EventType>grammar in the Projection Declaration Language (#185)- Five new diagnostics (
PLAY0277-PLAY0281) for invalid/missing/nested/duplicate variant declarations - Monaco language support for
variant/enters on— syntax highlighting, completions, hover
text, and property/event validation scoped per variant — consumed by Chronicle's Workbench
ProjectionEditorvia@cratis/screenplay-language/projection
Changed
- A projection with
variantblocks now builds one read model per variant (named after the
variant) instead of one named after the projection's own identity, so a command'sreads
and other read-model references resolve variant names correctly