# community.gifthood.reply

> Published by [gifthood.community](https://lexicon.garden/identity/did:plc:7prvtl4j6wsfmkrfrnwknuxj)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:7prvtl4j6wsfmkrfrnwknuxj/community.gifthood.reply)
- [Documentation](https://lexicon.garden/lexicon/did:plc:7prvtl4j6wsfmkrfrnwknuxj/community.gifthood.reply/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:7prvtl4j6wsfmkrfrnwknuxj/community.gifthood.reply/examples)

## Definitions

### `community.gifthood.reply`

**Type**: `record`

A public note on a listing — appreciation, a question, a joke; the front porch. Thread-native: root is ALWAYS the listing; parent is the listing for top-level notes or another reply once threaded rendering exists. Mirrors app.bsky.feed.post's reply-ref semantics. Public, like the interest record.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `root` | `ref` → `com.atproto.repo.strongRef` | Yes | Strong reference (URI + CID) to the listing this note belongs to. Always the listing — one query on root fetches a whole thread family. |
| `text` | `string` | Yes | The note. Keep pickup logistics in private messages. |
| `langs` | `array` | No |  |
| `facets` | `array` | No | Annotations over `text` (mentions, links) keyed by UTF-8 byte range. Reuses app.bsky.richtext.facet. Author-asserted display hints; clients re-validate ranges. Addresses and phone numbers are deliberately NOT faceted here. |
| `labels` | `union` | No | Self-labels set by the author (e.g. the global 'sexual' value), gated by the AppView like listing self-labels. |
| `parent` | `ref` → `com.atproto.repo.strongRef` | Yes | What this note replies to: the listing itself for top-level notes, or another reply. parent's root MUST equal this record's root; indexers enforce that at read time. |
| `createdAt` | `string` (datetime) | Yes |  |

## Raw Schema

```json
{
  "id": "community.gifthood.reply",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "root",
          "parent",
          "text",
          "createdAt"
        ],
        "properties": {
          "root": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Strong reference (URI + CID) to the listing this note belongs to. Always the listing — one query on root fetches a whole thread family."
          },
          "text": {
            "type": "string",
            "maxLength": 600,
            "minLength": 1,
            "description": "The note. Keep pickup logistics in private messages.",
            "maxGraphemes": 300,
            "minGraphemes": 1
          },
          "langs": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "language"
            },
            "maxLength": 3
          },
          "facets": {
            "type": "array",
            "items": {
              "ref": "app.bsky.richtext.facet",
              "type": "ref"
            },
            "description": "Annotations over `text` (mentions, links) keyed by UTF-8 byte range. Reuses app.bsky.richtext.facet. Author-asserted display hints; clients re-validate ranges. Addresses and phone numbers are deliberately NOT faceted here."
          },
          "labels": {
            "refs": [
              "com.atproto.label.defs#selfLabels"
            ],
            "type": "union",
            "description": "Self-labels set by the author (e.g. the global 'sexual' value), gated by the AppView like listing self-labels."
          },
          "parent": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "What this note replies to: the listing itself for top-level notes, or another reply. parent's root MUST equal this record's root; indexers enforce that at read time."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          }
        }
      },
      "description": "A public note on a listing — appreciation, a question, a joke; the front porch. Thread-native: root is ALWAYS the listing; parent is the listing for top-level notes or another reply once threaded rendering exists. Mirrors app.bsky.feed.post's reply-ref semantics. Public, like the interest record."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
