Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Documentation/index.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
26 changes: 22 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"?

Expand Down Expand Up @@ -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.

---

<div align="center">
Expand Down
1 change: 1 addition & 0 deletions Source/DotNET/Screenplay/Screenplay.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<RootNamespace>Cratis.Screenplay</RootNamespace>
<IsPackable>true</IsPackable>
<Description>Compiler for the Cratis Screenplay language - parsing, syntax tree and visitor contracts</Description>
<PackageTags>cratis;event-sourcing;event-modeling;cqrs;screenplay;dsl;compiler</PackageTags>
</PropertyGroup>

<ItemGroup>
Expand Down
1 change: 1 addition & 0 deletions Source/DotNET/Tool/Tool.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<PackAsTool>true</PackAsTool>
<ToolCommandName>screenplay</ToolCommandName>
<Description>Command-line tool for compiling and verifying Cratis Screenplay (.play) files</Description>
<PackageTags>cratis;event-sourcing;event-modeling;cqrs;screenplay;dsl;compiler;dotnet-tool</PackageTags>
<NoWarn>$(NoWarn);CS7022</NoWarn>
</PropertyGroup>

Expand Down
10 changes: 10 additions & 0 deletions Source/Screenplay/Monaco/screenplay-language/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
8 changes: 8 additions & 0 deletions Source/Screenplay/VSCodeExtension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
Loading