Skip to content

Release v4.180.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 08:10
d5b3dbc

Screenplay declares sample-data packs and the ui profile chooses the active one for the whole application. Closes part of #762 (epic Cratis/Scene#96).

Added

  • Top-level sample data <Name> block: optional title, optional BCP 47 locale, and shape <ReadModel> blocks of row blocks with <field> = <literal> lines (string, number, true, false, null). Design and preview time only: binding reports it as deferred (PLAY0269), it adds nothing to the executable model or ESM output and is never part of a production build.
  • The ui profile gains an optional sample data block: active <Pack> or active blueprint <id>, the rare shape <Shape> maps to <ReadModel> and bind <ReadModel> to <Pack>. The active pack is chosen once, there, for the whole application; there is no per-screen, per-slice or per-component selector (decision 0081, which supersedes the spec's per-screen placement).
  • Diagnostics PLAY0702-PLAY0715: invalid or duplicate pack, repeated title, locale, shape, field or selection line, a shape naming no read model (warning), a field that is not a property of the read model, a literal that does not fit the property type, an active, mapped or bound pack or read model the document does not declare.
  • The canonical printer, the syntax walker and index, the folder merge, the typed JSON schema, the contract catalogue (sample construct, admission probe), the MCP read-ast/propose-ast typed nodes (SampleDataPackSyntax, SampleDataSelectionSyntax, SampleDataSetSyntax, SampleDataRowSyntax, SampleDataFieldSyntax, ...) and the canonical screen composition corpus all carry sample data.
  • Monaco (highlighting, hover, completion in the root, the pack, its shapes and the profile block) and the VS Code grammar and spelling dictionary know the new words; the TypeScript compiler skips the block whole.
  • Documentation page sample-data.md (grammar, ui-profile.md, diagnostics.md), the Invoicing sample and decision 0081.