Project · process and licensing

How the standard changes, and how it is licensed

OpenMHS is a draft with a versioned change process. The rules are intentionally boring: one concern per proposal, testable requirements, no silent edits, and licences that let vendors and labs implement without asking permission.

1.0 protocol CC BY 4.0 specification text MIT code and schemas CC BY 4.0 registry data
Read MHS-010 · Governance

RFC process

From proposal to amendment

The schemas win over the core, the core over the chapters, and a conflict is fixed by an erratum or an accepted RFC. A change that touches behaviour must touch requirements, schemas and tests in the same proposal.

  1. 01

    Proposal

    A written problem statement, the affected requirements, and the proposed change. One concern per RFC; no bundling.

  2. 02

    Discussion

    The editors publish the proposal with a review window. Implementers test the change against real endpoints and the conformance suite.

  3. 03

    Decision

    Accepted, rejected or returned for revision, with the rationale recorded. Silence is not acceptance.

  4. 04

    Amendment

    An accepted RFC amends the normative text, bumps the affected version, and updates schemas, capability classes and tests together.

What belongs in an RFC

Wire behaviour, capability classes, safety semantics, conformance tests, registry fields, versioning or licensing. Editorial fixes can be handled as errata, but they never change meaning silently.

What does not

Product announcements, driver-specific quirks that belong in an adapter manifest, or changes that make a safety claim without a test. Implementations belong in the registry, not in the standard.

Review evidence

A proposal that changes a requirement should include a failing test, an endpoint transcript, or a concrete adapter that cannot be expressed today. “It would be convenient” is not evidence.

Participation

Driver authors, instrument vendors, simulation maintainers, lab integrators and host authors are the reviewers that matter. The process is open; no membership tier buys a vote.

Versioning

Three clocks that must not be confused

The wire protocol, capability classes and registry schemas version independently. That is what lets the vocabulary grow without breaking a host.

ArtefactVersionChanges whenCompatibility rule
Wire protocol1.0Framing, method semantics, error model, transport requirements change incompatibly.MAJOR mismatch fails closed with MHS.PROTOCOL.VERSION_UNSUPPORTED. MINOR additions are negotiated.
Capability classcap.*.v1An input is removed, retyped, made required; a unit or meaning changes; the verb changes.The id carries its MAJOR. Additive changes keep the id; a new MAJOR is a new class.
Registry schema1.0.0Record fields or validation rules change.Records validate against the version they cite; the registry publishes its index digest.
Conformance suite1.0.0Tests are added or corrected; a requirement's check changes.A claim cites the suite version; a report cannot be recomputed with a different suite.

Deprecation windows are stated in the RFC that deprecates an artefact. Of the 63 core classes, 44 stable, 13 experimental, 6 deprecated. A deprecated class stays valid and callable; its notes name the protocol method that replaces it.

Licensing

Implement without asking

The licences are chosen so a vendor can ship an adapter, a lab can mirror the registry, and a host can embed the schemas without a commercial negotiation.

ArtefactCoversLicenceWhat it means
Specification textthe core, the driver profile, MHS-000 to MHS-010 and the appendicesCC BY 4.0Share and adapt with attribution; no endorsement.
Schemas and codeJSON Schemas, examples, reference SDK, bridges, site sourceMIT LicensePermissive; redistribution with notice; no trademark grant.
Registry dataPackage records, index files and claimsCC BY 4.0Attribution to the OpenMHS registry; preserve trust labels.

Attribution

When you cite the specification, name “OpenMHS 0.9 (independent draft), The OpenMHS Authors” and link to the source repository. When you reuse registry data, preserve the trust level and evidence state; do not present an unsigned record as verified.

No trademark licence

Neither licence grants rights to any name or mark, including those of third parties such as Anthropic. Quoted third-party text, such as the Anthropic quotations in appendix D, is not licensed by this project. A conformance claim must be accurate; it is not an endorsement.

Contributions

Contributions to specification text, schemas or code are accepted under the inbound licence of the file being changed (CC BY 4.0 or MIT). No separate CLA is intended.

Decision log

Ten choices that shape the standard

Alternatives were considered and recorded. They are part of the normative context, not marketing.

D1

JSON-RPC 2.0 rather than REST, gRPC-only or MCP-only. It embeds in stdio, HTTP and WebSocket and maps natively to MCP.

D2

Sessions as leases rather than stateless calls. Simulators are stateful and cancellation needs a scope.

D3

Receipts, revisions and state hashes rather than ok:true. Without them, an agent cannot distinguish “not done” from “unknown”.

D4

Endpoint-enforced safety, not host policy. A host is the wrong trust boundary for a laser.

D5

Simulation and hardware in one model, with explicit mode and fidelity. Two standards would double the work; silent conflation is unsafe.

D6

Declarative adapters plus generic bridges, not a generated driver per repository.

D7

Capability classes versioned separately from the wire. Vocabulary evolves faster than framing.

D8

Executable self-conformance rather than a certification body as gatekeeper.

D9

Natural-language tags attached to typed capabilities, not documentation alone.

D10

A static, signed registry rather than a central live broker. Air-gapped labs need a mirror, not a dependency.