# town.delve.graph.defs

> Published by [delve.town](https://lexicon.garden/identity/did:plc:qzqct2rrq4u2gmy5g3mjxske)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:qzqct2rrq4u2gmy5g3mjxske/town.delve.graph.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:qzqct2rrq4u2gmy5g3mjxske/town.delve.graph.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:qzqct2rrq4u2gmy5g3mjxske/town.delve.graph.defs/examples)

## Definitions

### `town.delve.graph.defs#curatelist`

**Type**: `token`

A list of actors used for curation purposes such as list feeds or interaction gating.

A list of actors used for curation purposes such as list feeds or interaction gating.

### `town.delve.graph.defs#listItemView`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `subject` | `ref` → `town.delve.actor.defs#profileView` | Yes |  |
| `subjectOptedOut` | `boolean` | No | Set to true when the subject has opted out of appearing in the reference list. Only set when the viewer owns the list. |
| `uri` | `string` (at-uri) | Yes |  |

### `town.delve.graph.defs#listPurpose`

**Type**: `string`

**Known Values**:
- `town.delve.graph.defs#modlist`
- `town.delve.graph.defs#curatelist`
- `town.delve.graph.defs#referencelist`

### `town.delve.graph.defs#listView`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `avatar` | `string` (uri) | No |  |
| `cid` | `string` (cid) | Yes |  |
| `creator` | `ref` → `town.delve.actor.defs#profileView` | Yes |  |
| `description` | `string` | No |  |
| `descriptionFacets` | `array` | No |  |
| `indexedAt` | `string` (datetime) | Yes |  |
| `labels` | `array` | No |  |
| `listItemCount` | `integer` | No |  |
| `name` | `string` | Yes |  |
| `purpose` | `ref` → `#listPurpose` | Yes |  |
| `uri` | `string` (at-uri) | Yes |  |
| `viewer` | `ref` → `#listViewerState` | No |  |

### `town.delve.graph.defs#listViewBasic`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `avatar` | `string` (uri) | No |  |
| `cid` | `string` (cid) | Yes |  |
| `indexedAt` | `string` (datetime) | No |  |
| `labels` | `array` | No |  |
| `listItemCount` | `integer` | No |  |
| `name` | `string` | Yes |  |
| `purpose` | `ref` → `#listPurpose` | Yes |  |
| `uri` | `string` (at-uri) | Yes |  |
| `viewer` | `ref` → `#listViewerState` | No |  |

### `town.delve.graph.defs#listViewerState`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `blocked` | `string` (at-uri) | No |  |
| `muted` | `boolean` | No |  |
| `referenceListOptOut` | `string` (at-uri) | No | The authenticated viewer's app.bsky.graph.referencelistoptout record URI for this reference list. Only set for reference lists. A client can delete this record to undo the opt-out. |

### `town.delve.graph.defs#modlist`

**Type**: `token`

A list of actors to apply an aggregate moderation action (mute/block) on.

A list of actors to apply an aggregate moderation action (mute/block) on.

### `town.delve.graph.defs#notFoundActor`

**Type**: `object`

indicates that a handle or DID could not be resolved

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `actor` | `string` (at-identifier) | Yes |  |
| `notFound` | `boolean` | Yes |  |

### `town.delve.graph.defs#referencelist`

**Type**: `token`

A list of actors used for only for reference purposes such as within a starter pack.

A list of actors used for only for reference purposes such as within a starter pack.

### `town.delve.graph.defs#relationship`

**Type**: `object`

lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `blockedBy` | `string` (at-uri) | No | if the actor is blocked by this DID, contains the AT-URI of the block record |
| `blockedByList` | `string` (at-uri) | No | if the actor is blocked by this DID via a block list, contains the AT-URI of the listblock record |
| `blocking` | `string` (at-uri) | No | if the actor blocks this DID, this is the AT-URI of the block record |
| `blockingByList` | `string` (at-uri) | No | if the actor blocks this DID via a block list, this is the AT-URI of the listblock record |
| `did` | `string` (did) | Yes |  |
| `followedBy` | `string` (at-uri) | No | if the actor is followed by this DID, contains the AT-URI of the follow record |
| `following` | `string` (at-uri) | No | if the actor follows this DID, this is the AT-URI of the follow record |

### `town.delve.graph.defs#starterPackView`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cid` | `string` (cid) | Yes |  |
| `creator` | `ref` → `town.delve.actor.defs#profileViewBasic` | Yes |  |
| `feeds` | `array` | No |  |
| `indexedAt` | `string` (datetime) | Yes |  |
| `joinedAllTimeCount` | `integer` | No |  |
| `joinedWeekCount` | `integer` | No |  |
| `labels` | `array` | No |  |
| `list` | `ref` → `#listViewBasic` | No |  |
| `listItemsSample` | `array` | No |  |
| `record` | `unknown` | Yes |  |
| `uri` | `string` (at-uri) | Yes |  |

### `town.delve.graph.defs#starterPackViewBasic`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cid` | `string` (cid) | Yes |  |
| `creator` | `ref` → `town.delve.actor.defs#profileViewBasic` | Yes |  |
| `indexedAt` | `string` (datetime) | Yes |  |
| `joinedAllTimeCount` | `integer` | No |  |
| `joinedWeekCount` | `integer` | No |  |
| `labels` | `array` | No |  |
| `listItemCount` | `integer` | No |  |
| `record` | `unknown` | Yes |  |
| `uri` | `string` (at-uri) | Yes |  |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "curatelist": {
      "description": "A list of actors used for curation purposes such as list feeds or interaction gating.",
      "type": "token"
    },
    "listItemView": {
      "properties": {
        "subject": {
          "ref": "town.delve.actor.defs#profileView",
          "type": "ref"
        },
        "subjectOptedOut": {
          "const": true,
          "description": "Set to true when the subject has opted out of appearing in the reference list. Only set when the viewer owns the list.",
          "type": "boolean"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "subject"
      ],
      "type": "object"
    },
    "listPurpose": {
      "knownValues": [
        "town.delve.graph.defs#modlist",
        "town.delve.graph.defs#curatelist",
        "town.delve.graph.defs#referencelist"
      ],
      "type": "string"
    },
    "listView": {
      "properties": {
        "avatar": {
          "format": "uri",
          "type": "string"
        },
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "creator": {
          "ref": "town.delve.actor.defs#profileView",
          "type": "ref"
        },
        "description": {
          "maxGraphemes": 300,
          "maxLength": 3000,
          "type": "string"
        },
        "descriptionFacets": {
          "items": {
            "ref": "town.delve.richtext.facet",
            "type": "ref"
          },
          "type": "array"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "labels": {
          "items": {
            "ref": "com.atproto.label.defs#label",
            "type": "ref"
          },
          "type": "array"
        },
        "listItemCount": {
          "minimum": 0,
          "type": "integer"
        },
        "name": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "purpose": {
          "ref": "#listPurpose",
          "type": "ref"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        },
        "viewer": {
          "ref": "#listViewerState",
          "type": "ref"
        }
      },
      "required": [
        "uri",
        "cid",
        "creator",
        "name",
        "purpose",
        "indexedAt"
      ],
      "type": "object"
    },
    "listViewBasic": {
      "properties": {
        "avatar": {
          "format": "uri",
          "type": "string"
        },
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "labels": {
          "items": {
            "ref": "com.atproto.label.defs#label",
            "type": "ref"
          },
          "type": "array"
        },
        "listItemCount": {
          "minimum": 0,
          "type": "integer"
        },
        "name": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "purpose": {
          "ref": "#listPurpose",
          "type": "ref"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        },
        "viewer": {
          "ref": "#listViewerState",
          "type": "ref"
        }
      },
      "required": [
        "uri",
        "cid",
        "name",
        "purpose"
      ],
      "type": "object"
    },
    "listViewerState": {
      "properties": {
        "blocked": {
          "format": "at-uri",
          "type": "string"
        },
        "muted": {
          "type": "boolean"
        },
        "referenceListOptOut": {
          "description": "The authenticated viewer's app.bsky.graph.referencelistoptout record URI for this reference list. Only set for reference lists. A client can delete this record to undo the opt-out.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "type": "object"
    },
    "modlist": {
      "description": "A list of actors to apply an aggregate moderation action (mute/block) on.",
      "type": "token"
    },
    "notFoundActor": {
      "description": "indicates that a handle or DID could not be resolved",
      "properties": {
        "actor": {
          "format": "at-identifier",
          "type": "string"
        },
        "notFound": {
          "const": true,
          "type": "boolean"
        }
      },
      "required": [
        "actor",
        "notFound"
      ],
      "type": "object"
    },
    "referencelist": {
      "description": "A list of actors used for only for reference purposes such as within a starter pack.",
      "type": "token"
    },
    "relationship": {
      "description": "lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)",
      "properties": {
        "blockedBy": {
          "description": "if the actor is blocked by this DID, contains the AT-URI of the block record",
          "format": "at-uri",
          "type": "string"
        },
        "blockedByList": {
          "description": "if the actor is blocked by this DID via a block list, contains the AT-URI of the listblock record",
          "format": "at-uri",
          "type": "string"
        },
        "blocking": {
          "description": "if the actor blocks this DID, this is the AT-URI of the block record",
          "format": "at-uri",
          "type": "string"
        },
        "blockingByList": {
          "description": "if the actor blocks this DID via a block list, this is the AT-URI of the listblock record",
          "format": "at-uri",
          "type": "string"
        },
        "did": {
          "format": "did",
          "type": "string"
        },
        "followedBy": {
          "description": "if the actor is followed by this DID, contains the AT-URI of the follow record",
          "format": "at-uri",
          "type": "string"
        },
        "following": {
          "description": "if the actor follows this DID, this is the AT-URI of the follow record",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "did"
      ],
      "type": "object"
    },
    "starterPackView": {
      "properties": {
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "creator": {
          "ref": "town.delve.actor.defs#profileViewBasic",
          "type": "ref"
        },
        "feeds": {
          "items": {
            "ref": "town.delve.feed.defs#generatorView",
            "type": "ref"
          },
          "maxLength": 3,
          "type": "array"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "joinedAllTimeCount": {
          "minimum": 0,
          "type": "integer"
        },
        "joinedWeekCount": {
          "minimum": 0,
          "type": "integer"
        },
        "labels": {
          "items": {
            "ref": "com.atproto.label.defs#label",
            "type": "ref"
          },
          "type": "array"
        },
        "list": {
          "ref": "#listViewBasic",
          "type": "ref"
        },
        "listItemsSample": {
          "items": {
            "ref": "#listItemView",
            "type": "ref"
          },
          "maxLength": 12,
          "type": "array"
        },
        "record": {
          "type": "unknown"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "cid",
        "record",
        "creator",
        "indexedAt"
      ],
      "type": "object"
    },
    "starterPackViewBasic": {
      "properties": {
        "cid": {
          "format": "cid",
          "type": "string"
        },
        "creator": {
          "ref": "town.delve.actor.defs#profileViewBasic",
          "type": "ref"
        },
        "indexedAt": {
          "format": "datetime",
          "type": "string"
        },
        "joinedAllTimeCount": {
          "minimum": 0,
          "type": "integer"
        },
        "joinedWeekCount": {
          "minimum": 0,
          "type": "integer"
        },
        "labels": {
          "items": {
            "ref": "com.atproto.label.defs#label",
            "type": "ref"
          },
          "type": "array"
        },
        "listItemCount": {
          "minimum": 0,
          "type": "integer"
        },
        "record": {
          "type": "unknown"
        },
        "uri": {
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "cid",
        "record",
        "creator",
        "indexedAt"
      ],
      "type": "object"
    }
  },
  "id": "town.delve.graph.defs",
  "lexicon": 1
}
```
