What compiles
Leaseline’s build artifacts, and the eleven things that change when its definition gains one Verb.
A Startup’s definition compiles to every file it serves. Leaseline’s are published here, and one added Verb shows what moves with it.
The artifacts
A build of leaseline.app serves these files. The copies here are rebuilt from the registry on every build of these docs.
| Artifact | Holds | Size |
|---|---|---|
openapi.json | Every route, 167 operations, with request and response schemas | 571 KB |
sdk/ | The types of $: one interface per Noun, one method per Verb | 94 KB |
mcp-tools.json | The three MCP tools and the do program for each Verb | 16 KB |
agents.json | The card an agent reads first: Interfaces, Offers and Verbs | 4 KB |
app-routes.json | Every App screen: a list and a record per Noun, a form per Verb | 12 KB |
dataset-schema.json | The JSON Schema of every record Leaseline holds | 29 KB |
One line in the definition
Leaseline declares a Lease Noun in nouns/. Its founder asks for a way to add months to a Lease without a renewal notice, and the agent adds one line:
verbs:
renew: { months: integer, increase? : number }
notify: {}
+ extend: { months: integer }Eleven things change
| What | After the Change |
|---|---|
| API route | POST / |
| OpenAPI path | /, operationId Lease.extend |
| SDK method | $.Lease.extend(input), typed by LeaseExtendInput |
| CLI command | npx startup-builder do Lease.extend |
| MCP program | do: |
| App form | /, the button on every Lease screen |
| VerbSheet | <VerbSheet verb= renders its fields and button |
| Event | Lease.extended, with the Lease |
| Watch selector | Lease.extended subscribes a webhook |
| Reference row | Lease.extend in the parity matrix and each Interface reference |
| Changelog note | Written from the merged Change that adds it |
The diff
Each tab is the lines the build adds to one artifact. dataset-schema.json does not change, because the Verb adds no field.
+ "/leases/ {lease}/ extend": {
+ "post": {
+ "operationId": "Lease.extend",
+ "description": "Extend adds months to a Lease’s end date without starting a new term.",
+ "x-event": "Lease.extended"
+ }
+ }