Esdl
Event-sourcing Schema Definition Language
Install / Use
npx skills add thalo-rs/esdlInstalls into whichever agent you are using.
README
ESDL
Event-sourcing Schema Definition Language
Schema definition language for defining aggregates, commands, events & custom types.
Heavily inspired by GraphQL syntax, you can describe aggregates which can be used for codegen in different languages.
Install
esdl = "*"
Example
version = "0.1.0"
aggregate BankAccount {
open_account(initial_balance: Float) -> OpenedAccount
deposit_funds(amount: Float) -> ReceivedFunds
withdraw_funds(amount: Float) -> SentFunds
send_funds(amount: Float, user: User) -> (SentFunds? | ReceivedFunds?)
}
event OpenedAccount {
initial_balance: Float
}
event SentFunds {
amount: Float
user: User?
}
event ReceivedFunds {
amount: Float
user: User?
}
type User {
id: String
name: String?
}
Scalar Types
| Scalar | Rust Type | TypeScript Type |
| -------- | ----------- | --------------- |
| String | String | string |
| Int | i32 | number |
| Long | i64 | number |
| Float | f32 | number |
| Double | f64 | number |
| Bool | bool | boolean |
| Bytes | Vec<u8> | string |
Optional & Required
Types can be marked as optional by adding the ? suffix.
| Type | Syntax | Example |
| -------- | ------ | --------- |
| Required | T | String |
| Optional | T? | String? |
Repeating Types
Types can be repeated by wrapping them in [].
| Type | Syntax | Example |
| ------ | ------ | ---------- |
| Single | T | String |
| Array | [T] | [String] |
Remember, we can mark types as optional, even in arrays.
| Type | Syntax | Example |
| -------------------- | ------- | ------------ |
| Optional Array | [T?]? | [String?]? |
| Required Array | [T?] | [String?] |
| Required Array Items | [T]? | [String]? |
| Required Array Items | [T] | [String] |
Integrates with Thalo to generate Rust code.
Related Skills
clawhub
385.5kSearch ClawHub for skills when a requested capability is not already available; install, verify, update, uninstall, publish, or sync skills.
coding-agent
385.5kDelegate coding work to Codex, Claude Code, or OpenCode as background workers; not simple edits or read-only code lookup.
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
taskflow
385.5kCoordinate multi-step detached tasks as one durable TaskFlow job with owner context, state, waits, and child tasks.
