Repository navigation
Release v4.147.0
Summary
Concepts can now declare how their values are generated. Time-ordered UUIDs, ULIDs, TypeIDs, NanoIDs and random byte tokens reach the executable model as ESM v15, with exact fixture checks and protection against reusing a generated identifier.
Added
- A concept can declare
generate uuid,uuidv7,ulid,typeid "<prefix>",nanoid [size]orbytes <count> base64url|hex|base32, with theprefix,caseandalphabetmodifiers;generatedproperties now accept any generatable concept, not onlyUuidconcepts (part of #616) - Concepts with a declared strategy bind into the executable model as ESM v15, as an optional
generationmember on the concept; models without one, including an unmodifiedgenerate uuidon aUuidconcept, keep their exact executable-model bytes and revision (part of #616) - From ESM v15 the reference evaluator checks every generated fixture against its strategy's exact shape, and rejects a command that appends to a generated identifier whose event source already has events, with the new
Concurrencyrejection (part of #616) - Entropy diagnostics: a generated value below 64 random bits warns with the number of values at a 1% collision probability, unless a unique constraint covers it, and a generated identifier below 64 bits is refused (part of #616)
generate pattern,randomandruleparse and print in both compilers but are not yet executable, andgenerate sequenceis reserved (part of #616)- New diagnostics PLAY0672 to PLAY0684 for malformed strategies, modifiers, prefixes, alphabets and sizes, in both compilers (part of #616)
- Editor completion, hover with entropy and strategy notes, and syntax highlighting for
generate(part of #616) - Documentation: generated values, choosing a strategy and a strategy reference, plus ESM v15 in the interoperability table, golden vector and canonical corpus (part of #616)