# org.anthers.comment

> Published by [anthers.org](https://lexicon.garden/identity/did:plc:75xx6l27mt7a3uxoga5ka4qt)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:75xx6l27mt7a3uxoga5ka4qt/org.anthers.comment)
- [Documentation](https://lexicon.garden/lexicon/did:plc:75xx6l27mt7a3uxoga5ka4qt/org.anthers.comment/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:75xx6l27mt7a3uxoga5ka4qt/org.anthers.comment/examples)

## Definitions

### `org.anthers.comment`

**Type**: `record`

A comment somebody wrote about a work, a post, or another comment. It lives in the commenter's own repository, which is the honest answer to who wrote it: the words are theirs, they travel with them, and they go when the commenter goes. A comment whose subject is another comment is a REPLY — the distinction is hierarchy rather than kind, so there is one record type and not two. A service displaying these may decline to show one; it cannot unsay it.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `subject` | `ref` → `#subject` | Yes |  |
| `text` | `string` | Yes | What the commenter wrote. Plain text, never markup, so that every consumer can render it safely without a sanitizer — which is also how Anthers itself stores and renders a comment. Required and never empty: a comment with nothing in it is not a comment. The limit is deliberately well above what Anthers itself accepts, because a length limit can never be raised once published — new data must stay valid under the old schema — so a limit set to today's product rule would become tomorrow's ceiling. |

### `org.anthers.comment#subject`

**Type**: `object`

What this record is about, named by the address of a record on the network. An OBJECT rather than a bare string, deliberately: a published field's type can never change, so a bare address would close the door on ever carrying anything beside it — a content identifier pinning the subject to one version being the obvious candidate. What KIND of thing the subject is needs no field of its own, because the collection segment of the address already says it.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `uri` | `string` (at-uri) | Yes | The address of the record this is about. Version pinning is deliberately absent rather than forgotten: a work's listing is rewritten whenever its creator edits the title or the description, so a subject pinned to the version that existed on the day would come to point at something gone, through no act of the person who wrote this. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A comment somebody wrote about a work, a post, or another comment. It lives in the commenter's own repository, which is the honest answer to who wrote it: the words are theirs, they travel with them, and they go when the commenter goes. A comment whose subject is another comment is a REPLY — the distinction is hierarchy rather than kind, so there is one record type and not two. A service displaying these may decline to show one; it cannot unsay it.",
      "key": "tid",
      "record": {
        "properties": {
          "subject": {
            "ref": "#subject",
            "type": "ref"
          },
          "text": {
            "description": "What the commenter wrote. Plain text, never markup, so that every consumer can render it safely without a sanitizer — which is also how Anthers itself stores and renders a comment. Required and never empty: a comment with nothing in it is not a comment. The limit is deliberately well above what Anthers itself accepts, because a length limit can never be raised once published — new data must stay valid under the old schema — so a limit set to today's product rule would become tomorrow's ceiling.",
            "maxGraphemes": 25000,
            "maxLength": 250000,
            "type": "string"
          }
        },
        "required": [
          "subject",
          "text"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "subject": {
      "description": "What this record is about, named by the address of a record on the network. An OBJECT rather than a bare string, deliberately: a published field's type can never change, so a bare address would close the door on ever carrying anything beside it — a content identifier pinning the subject to one version being the obvious candidate. What KIND of thing the subject is needs no field of its own, because the collection segment of the address already says it.",
      "properties": {
        "uri": {
          "description": "The address of the record this is about. Version pinning is deliberately absent rather than forgotten: a work's listing is rewritten whenever its creator edits the title or the description, so a subject pinned to the version that existed on the day would come to point at something gone, through no act of the person who wrote this.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri"
      ],
      "type": "object"
    }
  },
  "id": "org.anthers.comment",
  "lexicon": 1
}
```
