{
  "contract_version": "0.1.0",
  "id": "synthetic-policy",
  "version": "0.1.0",
  "description": "Synthetic contract fixture. Not hardware-qualified; numeric values are not recommended bench limits.",
  "domains": [
    {
      "id": "dut",
      "max_abs_voltage_v": 6,
      "max_abs_current_a": 0.1,
      "max_power_w": 0.6,
      "max_stored_energy_j": 0.01,
      "max_energised_ms": 10000
    }
  ],
  "allow_rules": [
    {
      "device_id": "psu",
      "kind": "invoke",
      "action_id": "otdp.dc_psu.configure/1.0.0",
      "input_constraints": {
        "type": "object",
        "properties": {
          "channel": {
            "const": "ch1"
          },
          "voltage_v": {
            "minimum": 0,
            "maximum": 5
          },
          "current_limit_a": {
            "maximum": 0.1
          },
          "ovp_v": {
            "maximum": 6
          },
          "ocp_a": {
            "maximum": 0.1
          }
        }
      }
    },
    {
      "device_id": "psu",
      "kind": "invoke",
      "action_id": "otdp.dc_psu.output/1.0.0",
      "input_constraints": {
        "properties": {
          "channel": {
            "const": "ch1"
          }
        }
      }
    }
  ],
  "continuous_conditions": [
    {
      "id": "door-closed",
      "kind": "boolean",
      "signal": "door",
      "expected": true
    },
    {
      "id": "dut-bounds",
      "kind": "numeric",
      "signal": "dut-voltage",
      "unit": "V",
      "minimum": -0.1,
      "maximum": 6
    }
  ],
  "independent_protection": {
    "required": true,
    "assessment": {
      "id": "synthetic-protection-assessment",
      "version": "0.1.0",
      "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
    },
    "mechanism_ids": [
      "independent-inhibit"
    ]
  },
  "safe_transition": {
    "max_duration_ms": 2000,
    "actions": [
      {
        "id": "disable",
        "device_id": "psu",
        "kind": "invoke",
        "action_id": "otdp.dc_psu.output/1.0.0",
        "input": {
          "channel": "ch1",
          "enabled": false
        },
        "timeout_ms": 500
      }
    ],
    "verify": [
      {
        "id": "voltage-safe",
        "kind": "numeric",
        "signal": "dut-voltage",
        "unit": "V",
        "minimum": -0.1,
        "maximum": 0.1
      }
    ],
    "stable_for_ms": 100
  }
}
