DSL Format (.dcs.yaml)
Reference for the DCS domain-specific language.
DCS uses .dcs.yaml files as the single source of truth for lab setup data.
Files are plain text, git-friendly, and validated by the built-in linter.
File types
Device (type: device)
version: 1
type: device
id: pump-01
name: HPLC Pump
category: analytics
deviceType: hplc_pump
ports:
- id: outlet
direction: output
signalType: fluid
label: Outlet
parameters:
- key: flow_rate
value: 0.3
unit: mL/min
min: 0
max: 10
notes: "Shimadzu LC-20AD. Installed 2022."
Preset (type: preset)
Entry point. Imports devices and connections, sets node positions.
version: 1
type: preset
name: LC-MS Setup
imports:
- ./devices/pump.dcs.yaml
- ./connections/flow-path.dcs.yaml
nodes:
- deviceRef: pump-01
position: { x: 100, y: 200 }
Connections (type: connections)
version: 1
type: connections
connections:
- id: pump-to-oven
sourceNodeId: pump-01
sourcePortId: outlet
targetNodeId: oven-01
targetPortId: inlet
connectionType: tube
isActive: true
Signal types
electrical · optical · fluid · gas · data · thermal · mechanical
Lint rules
Run dcs-lint setup.dcs.yaml to validate. Rules: DCS001–DCS010 cover missing fields,
type mismatches, direction violations, duplicate IDs, and circular imports.