Skip to content

Preserve specification event-source context separately from payload values #52

Description

@woksin

Learning

Screenplay #167 adds explicit typed event-source identity to Given/When/Then command/event occurrences. Generation specification facts currently carry only artifact and payload value paths, so Arc recovery cannot preserve the stream identity separately and may be tempted to reconstruct it as an event property.

Scope

  • Add optional typed specification event-source identity/value references to neutral scenario/step/value facts.
  • Preserve exact literal/type evidence and source location.
  • Extend admission, freezing, canonicalization, structural equality, conflicts, derivation lineage, lowering coverage and dispositions.
  • Lower to Screenplay #167 for <value> syntax when exact.
  • Keep payload values and stream context distinct.

Acceptance criteria

  • Given event, When state-changing command and Then event can carry exact typed event-source values separately from payload paths.
  • Correct payload on a different stream is a distinct specification occurrence/outcome.
  • Missing/computed/conditional/random/ambiguous identities fail closed with typed located diagnostics.
  • No event payload property is synthesized.
  • Direct and derived facts retain exact input/evidence lineage and final disposition.
  • Adapter/project/fact/order/relocation permutations are byte-identical.
  • Arc generated success/rejection/projection vectors preserve exact source context.
  • Existing specification facts and legacy consumers remain source/binary compatible.

Depends on public Screenplay #167 contracts; related to #25, #24, Cratis/Arc#2461, Cratis/Screenplay#148.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions