# town.muni.arbiter.defs

> Published by [zicklag.dev](https://lexicon.garden/identity/did:plc:ulg2bzgrgs7ddjjlmhtegk3v)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:ulg2bzgrgs7ddjjlmhtegk3v/town.muni.arbiter.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:ulg2bzgrgs7ddjjlmhtegk3v/town.muni.arbiter.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:ulg2bzgrgs7ddjjlmhtegk3v/town.muni.arbiter.defs/examples)

## Definitions

### `town.muni.arbiter.defs#memberDid`

**Type**: `object`

A member specified directly by their DID.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `did` | `string` (did) | Yes | The DID of the member. |

### `town.muni.arbiter.defs#didDocConfig`

**Type**: `object`

Configurable fields for a DID PLC document.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `services` | `object` | Yes | Map from service ID to service endpoint configuration. The ID should not include a `#` prefix; it will be added when rendering the DID document. |
| `alsoKnownAs` | `array` | Yes | Priority-ordered list of URIs indicating other names or aliases associated with the DID. For atproto, this should include an `at://` URI for the account's handle. |
| `rotationKeys` | `array` | Yes | Priority-ordered list of public keys in `did:key` encoding. At least 1 and at most 5 keys, with no duplication. These keys control the DID identifier (can sign rotation operations). |
| `verificationMethods` | `object` | Yes | Map from verification method ID to public key in `did:key` encoding. The ID should not include a `#` prefix; it will be added when rendering the DID document. These keys do **not** have control over the DID. |

### `town.muni.arbiter.defs#serviceEndpoint`

**Type**: `object`

A service endpoint entry within a DID document's `services` field.

Maps a service ID (e.g. `atproto_pds`) to its type and URL.
Per the DID PLC spec, the service ID should not include a `#` prefix;
the `#` will be added when rendering the DID document.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `type` | `string` | Yes | The type of the service (e.g. `AtprotoPersonalDataServer`). |
| `endpoint` | `string` | Yes | The endpoint URL (e.g. `https://pds.example.com`). |

### `town.muni.arbiter.defs#memberLocalSpace`

**Type**: `object`

A member representing all of the members of another space that is on this arbiter.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `spaceKey` | `string` | Yes | The key of the space on this arbiter. |

### `town.muni.arbiter.defs#memberRemoteSpace`

**Type**: `object`

A member representing all of the members of another space on another arbiter.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `spaceKey` | `string` | Yes | The key of the space on the remote arbiter. |
| `arbiterDid` | `string` (did) | Yes | The DID of the remote arbiter. |

## Raw Schema

```json
{
  "id": "town.muni.arbiter.defs",
  "defs": {
    "memberDid": {
      "type": "object",
      "required": [
        "did"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "The DID of the member."
        }
      },
      "description": "A member specified directly by their DID."
    },
    "didDocConfig": {
      "type": "object",
      "required": [
        "rotationKeys",
        "verificationMethods",
        "alsoKnownAs",
        "services"
      ],
      "properties": {
        "services": {
          "type": "object",
          "properties": {},
          "description": "Map from service ID to service endpoint configuration.\nThe ID should not include a `#` prefix; it will be added when rendering\nthe DID document."
        },
        "alsoKnownAs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Priority-ordered list of URIs indicating other names or aliases\nassociated with the DID. For atproto, this should include an `at://`\nURI for the account's handle."
        },
        "rotationKeys": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Priority-ordered list of public keys in `did:key` encoding.\nAt least 1 and at most 5 keys, with no duplication.\nThese keys control the DID identifier (can sign rotation operations)."
        },
        "verificationMethods": {
          "type": "object",
          "properties": {},
          "description": "Map from verification method ID to public key in `did:key` encoding.\nThe ID should not include a `#` prefix; it will be added when rendering\nthe DID document. These keys do **not** have control over the DID."
        }
      },
      "description": "Configurable fields for a DID PLC document."
    },
    "serviceEndpoint": {
      "type": "object",
      "required": [
        "type",
        "endpoint"
      ],
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of the service (e.g. `AtprotoPersonalDataServer`)."
        },
        "endpoint": {
          "type": "string",
          "description": "The endpoint URL (e.g. `https://pds.example.com`)."
        }
      },
      "description": "A service endpoint entry within a DID document's `services` field.\n\nMaps a service ID (e.g. `atproto_pds`) to its type and URL.\nPer the DID PLC spec, the service ID should not include a `#` prefix;\nthe `#` will be added when rendering the DID document."
    },
    "memberLocalSpace": {
      "type": "object",
      "required": [
        "spaceKey"
      ],
      "properties": {
        "spaceKey": {
          "type": "string",
          "maxLength": 1024,
          "description": "The key of the space on this arbiter."
        }
      },
      "description": "A member representing all of the members of another space that is on this arbiter."
    },
    "memberRemoteSpace": {
      "type": "object",
      "required": [
        "arbiterDid",
        "spaceKey"
      ],
      "properties": {
        "spaceKey": {
          "type": "string",
          "maxLength": 1024,
          "description": "The key of the space on the remote arbiter."
        },
        "arbiterDid": {
          "type": "string",
          "format": "did",
          "description": "The DID of the remote arbiter."
        }
      },
      "description": "A member representing all of the members of another space on another arbiter."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
