# Interface: AccessState

Defined in: [packages/core/src/space/roles.ts:246](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L246)

Who holds what, at one point in the history

## Properties

| Property | Modifier | Type | Description | Defined in |
| ------ | ------ | ------ | ------ | ------ |
| <a id="property-assigned"></a> `assigned` | `readonly` | `ReadonlyMap`\<`string`, `ReadonlyMap`\<`string`, `string`\>\> | Account DID → the roles assigned to it → the assignment's id | [packages/core/src/space/roles.ts:252](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L252) |
| <a id="property-contested"></a> `contested` | `readonly` | `ReadonlyMap`\<`string`, readonly `string`[]\> | Collections whose rival first definitions no later one settles → their ids, lowest first (02 §6.3) | [packages/core/src/space/roles.ts:267](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L267) |
| <a id="property-copies"></a> `copies` | `readonly` | `number` \| `null` | How many keepers a write should reach; null for whatever each node defaults to | [packages/core/src/space/roles.ts:275](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L275) |
| <a id="property-definitions"></a> `definitions` | `readonly` | `ReadonlyMap`\<`string`, \{ `definedBy`: `string` \| `null`; `event`: `string`; \}\> | Collection name → the definition in force, and who first defined it (null for rivals' different accounts) | [packages/core/src/space/roles.ts:265](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L265) |
| <a id="property-founders"></a> `founders` | `readonly` | `ReadonlySet`\<`string`\> | They hold every command, and only each founder itself takes its place or its roles | [packages/core/src/space/roles.ts:248](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L248) |
| <a id="property-invites"></a> `invites` | `readonly` | `ReadonlyMap`\<`string`, \{ `by`: readonly `string`[]; `event`: `string`; `open`: `boolean`; `role`: `string`; \}\> | Invite public key → its role, whether open, and who opened it: a join is judged as their assignment | [packages/core/src/space/roles.ts:254](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L254) |
| <a id="property-keepers"></a> `keepers` | `readonly` | readonly [`Keeper`](https://minca.dev/api/core/interfaces/Keeper.md)[] | - | [packages/core/src/space/roles.ts:273](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L273) |
| <a id="property-keydue"></a> `keyDue` | `readonly` | `boolean` | Whether someone lost their place since the current key, so a new one is due: the current state's only | [packages/core/src/space/roles.ts:271](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L271) |
| <a id="property-keys"></a> `keys` | `readonly` | readonly `SpaceKeyEpoch`[] | A private space's keys, oldest first; the last is current. Empty in a public space. | [packages/core/src/space/roles.ts:269](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L269) |
| <a id="property-relays"></a> `relays` | `readonly` | readonly `string`[] | - | [packages/core/src/space/roles.ts:272](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L272) |
| <a id="property-roles"></a> `roles` | `readonly` | `ReadonlyMap`\<`string`, readonly [`RoleDefinition`](https://minca.dev/api/core/interfaces/RoleDefinition.md)[]\> | Role name → its current definitions: one, or rivals, which hold only the grants they share | [packages/core/src/space/roles.ts:250](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L250) |
| <a id="property-successors"></a> `successors` | `readonly` | `ReadonlyMap`\<`string`, readonly `string`[]\> | Spaces named as successors → the accounts that named each, sorted. Every one stands. | [packages/core/src/space/roles.ts:277](https://github.com/leifriksheim/minca/blob/main/core/src/space/roles.ts#L277) |
