diff --git a/Documentation/index.md b/Documentation/index.md index 753ebe5..3060de2 100644 --- a/Documentation/index.md +++ b/Documentation/index.md @@ -1,3 +1,8 @@ +--- +title: Screenplay +description: A model-first declarative language for event-sourced, CQRS systems — commands, events, projections, and screens in one .play file, rendered by Stage into a Cratis Arc + Chronicle application. +--- + # Documentation Welcome to the Screenplay documentation. diff --git a/README.md b/README.md index 53327c8..e01fba2 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,13 @@ every line, so the director, the actors, and the crew all put on the *same* show Screenplay `.play` file is the script for an information system: its concepts, events, commands, queries, projections, specifications, automations, and the rules that govern them — top to bottom, in one place. -Screenplay owns that language and its portable meaning; it does not prescribe the runtime. Downstream tools -can interpret the same model: **Stage** is being built to run and render it, while **Studio** visualizes and -edits it. The goal is one script with explicit capability checks, not a claim that every downstream surface -already performs every construct. +Screenplay owns that language and its portable meaning; it does not prescribe the runtime. It is a +model-first language for event-sourced, CQRS systems — commands, events, projections, and the screens they +feed — and it is part of the experimental Cratis model-first layer. Downstream tools can interpret the same +model: [**Stage**](https://github.com/Cratis/Stage) is being built to render it into a running +[Cratis Arc](https://github.com/Cratis/Arc) + [Chronicle](https://github.com/Cratis/Chronicle) application, +while [**Studio**](https://github.com/Cratis/Studio) visualizes and edits it. The goal is one script with +explicit capability checks, not a claim that every downstream surface already performs every construct. ## 🎬 Why "Screenplay"? @@ -197,6 +200,21 @@ dotnet build Screenplay.slnx --configuration Release # zero errors, zero warni dotnet test Screenplay.slnx # all specs pass ``` +## The Cratis ecosystem + +This project is part of [Cratis](https://www.cratis.io) — free, MIT-licensed tools for building event-sourced and CQRS applications. + +- **[Chronicle](https://github.com/Cratis/Chronicle)** — event-sourcing database and runtime. Orleans-based kernel, pluggable storage (MongoDB default; PostgreSQL, SQL Server, SQLite, in-memory), language-agnostic gRPC contracts. [Docs](https://www.cratis.io/chronicle/) +- **Chronicle clients** — first-class [.NET SDK](https://github.com/Cratis/Chronicle), plus [TypeScript](https://github.com/Cratis/Chronicle.TypeScript), [Kotlin/Java](https://github.com/Cratis/Chronicle.Kotlin), and [Elixir](https://github.com/Cratis/Chronicle.Elixir); [Python](https://github.com/Cratis/Chronicle.Python) coming soon (pre-alpha). AI agents connect through the [Chronicle MCP server](https://github.com/Cratis/Chronicle.Mcp). +- **[Arc](https://github.com/Cratis/Arc)** — opinionated CQRS framework for ASP.NET Core with commands, queries, validation, authorization, and TypeScript proxy generation. Works without event sourcing. [Docs](https://www.cratis.io/arc/) +- **[Components](https://github.com/Cratis/Components)** — React components aligned with Arc patterns. [Docs](https://www.cratis.io/components/) +- **[CLI](https://github.com/Cratis/cli) + Workbench** — inspect and diagnose Chronicle from the terminal or the browser. [Docs](https://www.cratis.io/cli/) +- **Model-first layer (experimental)** — [Studio](https://github.com/Cratis/Studio), Screenplay (this repository), [Stage](https://github.com/Cratis/Stage), [Scene](https://github.com/Cratis/Scene), [Prologue](https://github.com/Cratis/Prologue) +- **Supporting** — [Fundamentals](https://github.com/Cratis/Fundamentals), [Specifications](https://github.com/Cratis/Specifications), [Synopsis](https://github.com/Cratis/Synopsis), [Lens](https://github.com/Cratis/Lens), [Narrator](https://github.com/Cratis/Narrator), and free [AI tooling](https://github.com/Cratis/AI) (preview); [Ensemble](https://github.com/Cratis/Ensemble) coming soon (pre-release) +- **[Samples](https://github.com/Cratis/Samples)** — runnable event sourcing and CQRS samples for the whole stack + +Everything Cratis publishes today is MIT licensed and free to use. + ---
diff --git a/Source/DotNET/Screenplay/Screenplay.csproj b/Source/DotNET/Screenplay/Screenplay.csproj index 9583115..52c5ad6 100644 --- a/Source/DotNET/Screenplay/Screenplay.csproj +++ b/Source/DotNET/Screenplay/Screenplay.csproj @@ -4,6 +4,7 @@ Cratis.Screenplay true Compiler for the Cratis Screenplay language - parsing, syntax tree and visitor contracts + cratis;event-sourcing;event-modeling;cqrs;screenplay;dsl;compiler diff --git a/Source/DotNET/Tool/Tool.csproj b/Source/DotNET/Tool/Tool.csproj index 80e3152..cc6a148 100644 --- a/Source/DotNET/Tool/Tool.csproj +++ b/Source/DotNET/Tool/Tool.csproj @@ -11,6 +11,7 @@ true screenplay Command-line tool for compiling and verifying Cratis Screenplay (.play) files + cratis;event-sourcing;event-modeling;cqrs;screenplay;dsl;compiler;dotnet-tool $(NoWarn);CS7022 diff --git a/Source/Screenplay/Monaco/screenplay-language/package.json b/Source/Screenplay/Monaco/screenplay-language/package.json index be9c222..f61878a 100644 --- a/Source/Screenplay/Monaco/screenplay-language/package.json +++ b/Source/Screenplay/Monaco/screenplay-language/package.json @@ -2,6 +2,16 @@ "name": "@cratis/screenplay-language", "version": "0.0.0", "description": "Monaco language service for the Cratis Screenplay DSL — syntax highlighting, IntelliSense, hover and diagnostics for .play files", + "keywords": [ + "cratis", + "screenplay", + "event-sourcing", + "event-modeling", + "cqrs", + "monaco", + "dsl", + "language-service" + ], "license": "MIT", "repository": { "type": "git", diff --git a/Source/Screenplay/VSCodeExtension/package.json b/Source/Screenplay/VSCodeExtension/package.json index e5552fc..374a6ec 100644 --- a/Source/Screenplay/VSCodeExtension/package.json +++ b/Source/Screenplay/VSCodeExtension/package.json @@ -2,6 +2,14 @@ "name": "screenplay", "displayName": "Screenplay Language", "description": "Language support for the Cratis Screenplay DSL (.play) — syntax highlighting, IntelliSense, hover documentation, and diagnostics", + "keywords": [ + "cratis", + "screenplay", + "event-sourcing", + "event-modeling", + "cqrs", + "dsl" + ], "version": "0.1.0", "publisher": "cratis", "repository": {