# org.v-it.cap

> Published by [solpbc.org](https://lexicon.garden/identity/did:plc:kg5hlfyrdjmtiyymo57n7dpg)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:kg5hlfyrdjmtiyymo57n7dpg/org.v-it.cap)
- [Documentation](https://lexicon.garden/lexicon/did:plc:kg5hlfyrdjmtiyymo57n7dpg/org.v-it.cap/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:kg5hlfyrdjmtiyymo57n7dpg/org.v-it.cap/examples)

## Definitions

### `org.v-it.cap`

**Type**: `record`

Record containing a vit cap.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `ref` | `string` | Yes | Three lowercase words separated by dashes, e.g. fast-cache-invalidation |
| `kind` | `string` | No | Category of the capability. |
| `tags` | `array` | No | Additional hashtags, in addition to any included in cap text and facets. |
| `text` | `string` | Yes | The primary cap content. May be an empty string, if there are embeds. |
| `embed` | `union` | No | Embedded content: images, video, external links, or record references. |
| `langs` | `array` | No | Indicates human language of cap primary text content. |
| `recap` | `ref` → `lex:org.v-it.cap#recapRef` | No | Reference to the parent cap this was derived from. |
| `reply` | `ref` → `lex:org.v-it.cap#replyRef` | No | Reference to the parent and root caps when this cap is a reply in a thread. |
| `title` | `string` | Yes | Short title for the capability |
| `beacon` | `string` | No | Beacon URI scoping this cap to a project. |
| `facets` | `array` | No | Annotations of text (mentions, URLs, hashtags, etc). |
| `labels` | `union` | No | Self-label values for this cap. Effectively content warnings. |
| `createdAt` | `string` (datetime) | Yes | Client-declared timestamp when this cap was originally created. |
| `description` | `string` | Yes | Longer description of the capability |

### `org.v-it.cap#recapRef`

**Type**: `object`

Reference to a parent cap this was derived from.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `ref` | `string` | Yes | Three lowercase words separated by dashes identifying the parent cap. |
| `uri` | `string` (at-uri) | Yes | AT URI of the parent cap record. |

### `org.v-it.cap#replyRef`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `root` | `ref` → `lex:com.atproto.repo.strongRef` | Yes | The root cap of the thread. |
| `parent` | `ref` → `lex:com.atproto.repo.strongRef` | Yes | The direct parent cap being replied to. |

## Raw Schema

```json
{
  "id": "org.v-it.cap",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "text",
          "createdAt",
          "title",
          "description",
          "ref"
        ],
        "properties": {
          "ref": {
            "type": "string",
            "maxLength": 128,
            "description": "Three lowercase words separated by dashes, e.g. fast-cache-invalidation",
            "maxGraphemes": 64
          },
          "kind": {
            "type": "string",
            "maxLength": 64,
            "description": "Category of the capability.",
            "knownValues": [
              "feat",
              "fix",
              "test",
              "docs",
              "refactor",
              "chore",
              "perf",
              "style"
            ],
            "maxGraphemes": 32
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 640,
              "maxGraphemes": 64
            },
            "maxLength": 8,
            "description": "Additional hashtags, in addition to any included in cap text and facets."
          },
          "text": {
            "type": "string",
            "maxLength": 3000,
            "description": "The primary cap content. May be an empty string, if there are embeds.",
            "maxGraphemes": 300
          },
          "embed": {
            "refs": [
              "lex:app.bsky.embed.images",
              "lex:app.bsky.embed.video",
              "lex:app.bsky.embed.external",
              "lex:app.bsky.embed.record",
              "lex:app.bsky.embed.recordWithMedia"
            ],
            "type": "union",
            "description": "Embedded content: images, video, external links, or record references."
          },
          "langs": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "language"
            },
            "maxLength": 3,
            "description": "Indicates human language of cap primary text content."
          },
          "recap": {
            "ref": "lex:org.v-it.cap#recapRef",
            "type": "ref",
            "description": "Reference to the parent cap this was derived from."
          },
          "reply": {
            "ref": "lex:org.v-it.cap#replyRef",
            "type": "ref",
            "description": "Reference to the parent and root caps when this cap is a reply in a thread."
          },
          "title": {
            "type": "string",
            "maxLength": 512,
            "description": "Short title for the capability",
            "maxGraphemes": 64
          },
          "beacon": {
            "type": "string",
            "maxLength": 512,
            "description": "Beacon URI scoping this cap to a project."
          },
          "facets": {
            "type": "array",
            "items": {
              "ref": "lex:app.bsky.richtext.facet",
              "type": "ref"
            },
            "description": "Annotations of text (mentions, URLs, hashtags, etc)."
          },
          "labels": {
            "refs": [
              "lex:com.atproto.label.defs#selfLabels"
            ],
            "type": "union",
            "description": "Self-label values for this cap. Effectively content warnings."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Client-declared timestamp when this cap was originally created."
          },
          "description": {
            "type": "string",
            "maxLength": 3000,
            "description": "Longer description of the capability",
            "maxGraphemes": 300
          }
        }
      },
      "description": "Record containing a vit cap."
    },
    "recapRef": {
      "type": "object",
      "required": [
        "uri",
        "ref"
      ],
      "properties": {
        "ref": {
          "type": "string",
          "maxLength": 128,
          "description": "Three lowercase words separated by dashes identifying the parent cap.",
          "maxGraphemes": 64
        },
        "uri": {
          "type": "string",
          "format": "at-uri",
          "description": "AT URI of the parent cap record."
        }
      },
      "description": "Reference to a parent cap this was derived from."
    },
    "replyRef": {
      "type": "object",
      "required": [
        "root",
        "parent"
      ],
      "properties": {
        "root": {
          "ref": "lex:com.atproto.repo.strongRef",
          "type": "ref",
          "description": "The root cap of the thread."
        },
        "parent": {
          "ref": "lex:com.atproto.repo.strongRef",
          "type": "ref",
          "description": "The direct parent cap being replied to."
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
