{
  "contract_version": "0.1.0",
  "id": "synthetic-voltage-check",
  "version": "0.1.0",
  "description": "Synthetic contract fixture. Not hardware-qualified; numeric values are not recommended bench limits.",
  "mode": "gateway_owned",
  "safety_policy": {
    "id": "synthetic-policy",
    "version": "0.1.0"
  },
  "roles": [
    {
      "id": "supply",
      "required_profiles": [
        "otdp.dc_psu/1.0.0"
      ],
      "channels": [
        "output"
      ]
    }
  ],
  "max_body_ms": 4000,
  "max_protection_ms": 2000,
  "steps": [
    {
      "id": "configure",
      "kind": "invoke",
      "role": "supply",
      "action_id": "otdp.dc_psu.configure/1.0.0",
      "input": {
        "configuration_id": {
          "$stg_issue": "configuration_id"
        },
        "channel": {
          "$stg_channel": "output"
        },
        "voltage_v": 5,
        "current_limit_a": 0.1,
        "ovp_v": 6,
        "ocp_a": 0.1
      },
      "timeout_ms": 500
    },
    {
      "id": "enable",
      "kind": "invoke",
      "role": "supply",
      "action_id": "otdp.dc_psu.output/1.0.0",
      "input": {
        "channel": {
          "$stg_channel": "output"
        },
        "enabled": true,
        "configuration_id": {
          "$stg_ref": {
            "step": "configure",
            "pointer": "/configuration_id"
          }
        }
      },
      "timeout_ms": 500
    },
    {
      "id": "settle",
      "kind": "delay",
      "duration_ms": 100
    },
    {
      "id": "measure",
      "kind": "invoke",
      "role": "supply",
      "action_id": "otdp.dc_psu.measure/1.0.0",
      "input": {
        "channels": [
          {
            "$stg_channel": "output"
          }
        ]
      },
      "timeout_ms": 500
    },
    {
      "id": "voltage",
      "kind": "sample",
      "source_step": "measure",
      "variable_id": "voltage",
      "unit": "V",
      "max_age_ms": 500,
      "require_known_uncertainty": false
    },
    {
      "id": "check",
      "kind": "assert",
      "predicate": {
        "sample": "voltage",
        "minimum": 4.9,
        "maximum": 5.1
      }
    }
  ]
}
