Specification · section 15
Conformance
| Level | Requirements |
|---|---|
| MHP Core | initialize, ping, device/describe (all three tiers and select), resources/*, signals/read, settings/write with limit enforcement, error codes in §12. |
| MHP Actions | Core + actions/invoke, jobs/*, notifications/jobs/*, interlocks and approval gates, and methods/* as specified in §4.5 (answering empty and refusing save when no action is method-driven). |
| MHP Safe | Actions + safety/estop that never waits behind ordinary requests, verified safety/reset, watchdog, fail-closed state machine with unknown-outcome faults, per-session session/* leases with renewal. |
| MHP Directory (server role) | initialize with role: "directory", directory/search, directory/get, directory/stats; indexes cards only. |
Devices that carry stored energy or can move SHOULD NOT be exposed below MHP Safe. All device levels MUST support detail and select on device/describe (§3.1).
Conformance is behavioural. The reference suite tests/test_safety_gates.py exercises typed limits, ownership, watchdog silence, rejected approvals, blocked I/O, backend aborts and plan-mode isolation; a conformant implementation should pass equivalent tests.