Skip to content

Language Reference

SODL has six top-level constructs: template, system, interface, module, policy, and pipeline.

All constructs support nested blocks for configuration, constraints, and documentation.

ConstructPurpose
templateReusable base with shared stack and policies
systemMain system definition; extends a template
interfaceData contracts and method signatures
moduleGroups related functionality with ownership
policyEnforceable rules with severity levels
pipelineOrdered steps for code generation or deployment

step is a block nested inside pipeline, not a top-level construct.

A SODL file typically follows this order:

# 1. Templates (reusable bases)
template "Base":
stack: ...
policy ...: ...
# 2. Interfaces (contracts)
interface MyInterface:
method render() -> str
# 3. System definition
system "MySystem" extends "Base":
version = "1.0.0"
stack: ...
intent: ...
# 4. Nested interfaces (scoped to system)
interface InnerInterface extends MyInterface:
...
# 5. Modules (within system)
module MyModule:
...
# 6. Pipelines
pipeline "Production":
step Build: ...

See the detailed pages for each construct: