Workspace instructions and references:
../AGENTS.md,../FSHARP.md,../WORKFLOW.mdLibrary sync contract: whenEVENT_MODELING.mdchanges, update## Event Modelingin workspaceAGENTS.md.
This is the NEXUS ecosystem-wide base library for Event Modeling in F#.
Source of truth for:
- The
EventModelingcore library (Actor, Command, Event, View, Slice, Path, Grouping types) - The
EventModeling.Testinglibrary — GWT adapters, grouping runner, Hedgehog generators, full testing stack
- Language: F# on .NET 10.0
- Test framework: Expecto + Hedgehog + CsCheck
- Solution:
EventModeling.slnx
EventModeling/ Core library — domain types only
EventModeling.Testing/ Test utility library — GWT adapters, grouping runner, Hedgehog generators
EventModeling.Tests/ Framework validation tests — abstract types, no domain
These apply specifically to this library's implementation:
SliceRefdecouples the Grouping/Path hierarchy from the internal generic types of each sliceMap(F# immutable map) is the correct type forSliceRegistry- Use
DateTimeOffset.MinValueas sentinel in GWT example data — runtime timestamp is not part of the spec - Test adapters strip
OccurredAtbefore comparing events — onlyNameandDataare asserted - Generators for core EventModeling types live in
EventModeling.Testing.Generators