---
title: "Charter"
description: "The charter of the board that oversees the MainSDK open contracts: who sits on it, how it decides and how community SDKs earn the conformance label."
section: "community"
status: "Planned for 1.6"
spec: "open-foundation"
canonical: "https://mainsdk.dev/docs/community/charter"
updated: "2026-10-28"
---

# Charter

> The charter of the board that oversees the MainSDK open contracts: who sits on it, how it decides and how community SDKs earn the conformance label.

Status: Planned for 1.6 · Canonical: https://mainsdk.dev/docs/community/charter · Updated: 2026-10-28

The open contracts belong to a neutral foundation, so anyone can build on them without depending on one company. This charter says who oversees them. It takes effect when the contracts move, after 1.0. The foundation and the board's members are the owner's decisions and are recorded in `docs/community/foundation.yaml` when they are made.

## What the board oversees

- The TypeSpec sources of every interface, the error codes and the conformance vectors.
- The telemetry contract, the Main mark and `/.well-known/mainsdk.json`.
- The conformance label for SDKs, official and community-led.

The SDK stays Apache-2.0. MainSDK Cloud stays HubXero's.

## Who sits on the board

- At least one member comes from outside HubXero. The chair is external.
- HubXero holds at most two maintainer seats.
- One seat is for the community, held by a person with a merged contribution.
- A seat holder can be replaced by a vote of the others with the chair's agreement.

## How the board decides

- A change to a contract starts as a public RFC and stays open for at least 7 days.
- The board accepts or declines it in public, and writes the reason in the RFC.
- Every decision is public: the RFC, the vote and the reason live in `docs/rfcs/`, and meeting notes are published within 7 days.
- A contract keeps its version history across the transfer. The old repository links to the new one.

## Community SDKs and the conformance label

An SDK in another language earns the label by passing the same conformance suite as the official SDKs: the current suite version, every test run, none failed. Send the run's result with a pull request to `docs/community/sdks.yaml`. If it passes, it is listed with the label. If a later suite version fails it, the label lapses until a new passing run is listed.
