OpenWyrd MOP — Governance Charter

This document governs the MOP wire specification and its surrounding documents (RFC series, conformance suite, canary policy). It does not govern individual implementations — those are governed by their own maintainers under their own licenses. The spec belongs to no company, no foundation, no board. It belongs to the people running code that conforms to it.

Stewardship

The current steward of MOP is DeltaClimbs, BDFL-for-now. This is a transitional posture, not an end state. The steward holds tie-break authority over spec decisions and merges accepted RFCs.

Stewardship transitions to a multi-maintainer model when both of the following are true:

  1. At least two independent implementations exist — independent meaning separate codebases, separate maintainers, neither a fork of the other — and both pass the conformance suite at the latest accepted spec version.
  2. At least two contributors other than the BDFL have shipped substantial RFC-grade contributions (a new MOP-NNN doc accepted, or a non-trivial revision to an existing one).

When both conditions are met, the BDFL relinquishes tie-break authority and the maintainer set becomes the active stewards. Decisions thereafter follow rough consensus among maintainers; in the rare case of deadlock, the spec stays as-is. There is no foundation. There is no legal entity. There is no board. There is a list of people with merge rights and a process they have agreed to follow.

RFC process

Spec evolution happens through numbered MOP documents: MOP-001 (the wire spec), MOP-002, and onward. Anyone may propose an RFC by opening a pull request adding a new MOP-NNN file in the mop/spec/ directory.

An RFC is acceptable when it has:

  1. Running code. A working implementation, in any language, demonstrating the proposed change.
  2. Interop test. A test case added to the conformance suite that exercises the proposed behavior across at least two implementations.
  3. Rough consensus. No outstanding strong objection from an active maintainer after a 14-day comment window. "Strong" means an objection grounded in a technical or capture-resistance argument, not aesthetic preference.

Rough consensus at this scale means: the people doing the work agree, and the people not doing the work do not get a veto. Lazy consensus applies to non-controversial editorial fixes — typo, clarification, broken link — which any maintainer may merge directly.

Versioning

Each MOP-NNN document is independently versioned under semver:

Once any MOP-NNN reaches 1.0, the deprecation cycle for breaking behavior in that document is minimum twelve months between obsolescence announcement and removal of conformance-suite coverage.

Implementation neutrality

SendWyrd is the canonical reference implementation. SendWyrd is one host among many. SendWyrd has no veto over the spec. A reference implementation is a role — it tracks the spec closely, ships first, and serves as a known-good bring-up target. It is not a master copy. It is not the spec.

If a non-reference implementation diverges from the spec, exactly two outcomes are admissible: the implementation patches itself to conform, or the implementation proposes an RFC to change the spec. There is no third option. There is no carve-out for a popular fork, a well-funded vendor, or an early adopter.

Conformance

The cross-implementation conformance suite at mop-conformance/ is the gate. An implementation is MOP-compliant at version X if and only if it passes the suite at version X. That is the only meaning of compliance.

Marketing claims of MOP compliance without a passing conformance run are a bug, and will be called bugs. The badge is the badge. There is no honor system.

Hostility to capture

This project is built to be inconvenient to capture. The following are policy:

Permanent commitments

The following commitments are precedents, not preferences. They cannot be amended out of this charter. A future maintainer set that wishes to break them must do so under a new project name, not under the name MOP.

Trademarks

The names OpenWyrd, MOP, SendWyrd, Wyrd, and the project marks are governed by the trademark policy at governance/TRADEMARK.md. The trademark layer exists to keep the brand from being captured even where the license cannot reach. It permits good-faith nominative use and forbids implication of endorsement. Read the policy before naming a fork, a hosted service, or a derivative product.

Plugin boundary

Any code that interacts with an MOP server only via documented APIs — HTTP endpoints, capability URLs, declared IPC channels, configuration files, conformance-suite-stable wire formats — is a separate work for the purposes of the AGPL §5 combined-work test. The maintainers will not assert that documented-API consumers are derivative works of the server. This is a public commitment to plugin authors, not a legal opinion they can rely on against third parties.

The boundary does not extend to in-process linkage. Code that links into a server binary, imports server-internal symbols, or reaches behind the API surface is bound by the server's license. If a plugin author needs to cross that line, they must license under AGPL or upstream the change.

Premium and commercial posture

A maintainer may operate a hosted service (sendwyrd.com is the canonical reference deployment) and may charge for it. A maintainer may ship a separate proprietary product — a desktop client, a mobile app, a custody tool — that consumes the protocol via documented APIs. A maintainer may sell support, deployment automation, and integration services.

What a maintainer may not do, while remaining a maintainer of MOP under this charter:

The intent is straightforward. A maintainer can build a business around stewarding MOP. A maintainer cannot build a business by hollowing out MOP.

Succession and resilience

This project is built to outlive any single steward. The following provisions attach automatically, without further action:

These provisions are not amendable in a way that weakens them. They are amendable in directions that strengthen them.

Conduct

Ship code, not drama. Attack ideas, not people. Don't be tedious. You'll know when the line is crossed; don't be the one to cross it.

The maintainers reserve the right to remove contributors whose behavior makes the project worse to work on. This will be done transparently, in writing, with reference to specific incidents. Persistent bad-faith engagement is itself a security issue, and will be treated as one.

Warrant canary

Every host operator running an MOP server in production MUST publish a warrant canary at /canary per MOP-001 §10. This requirement is normative, not advisory, and it attaches at the moment a host accepts traffic from anyone other than its own operator. A host that ceases publishing a valid canary is signaling a state change to its users; clients SHOULD surface that signal.

Pre-launch projects without a hosted production deployment are exempt from the active-canary requirement. They MUST publish the canary policy (the affirmations, the mechanism, the cadence) before they begin accepting outside traffic, and the first signed attestation MUST land no later than the date production opens.

The project itself maintains its own canary at openwyrd.org/canary once production launches, signed with the project's maintainer key, refreshed on a published cadence. Loss of canary on the project domain carries the same meaning it carries everywhere else. No further comment will be made.