# social.respawn.feed.gate

> Published by [respawn.social](https://lexicon.garden/identity/did:plc:hiabolqnnpdnrb5grmdaaepg)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:hiabolqnnpdnrb5grmdaaepg/social.respawn.feed.gate)
- [Documentation](https://lexicon.garden/lexicon/did:plc:hiabolqnnpdnrb5grmdaaepg/social.respawn.feed.gate/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:hiabolqnnpdnrb5grmdaaepg/social.respawn.feed.gate/examples)

## Definitions

### `social.respawn.feed.gate`

**Type**: `record`

Interaction settings for a log or list, analogous to app.bsky.feed.threadgate/postgate. The record key (rkey) must match the rkey of the gated record. Absence of a gate record means everyone can interact.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `allow` | `array` | No | Rules for who can comment. Absent means everyone; an empty array or a nobody rule means no one. |
| `subject` | `string` (at-uri) | Yes | The log or list this gate applies to. |
| `createdAt` | `string` (datetime) | Yes |  |
| `disableLikes` | `boolean` | No |  |
| `hiddenComments` | `array` | No | AT-URIs of comments the author has hidden. |

### `social.respawn.feed.gate#nobodyRule`

**Type**: `object`

Disallow comments from everyone.

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `social.respawn.feed.gate#followerRule`

**Type**: `object`

Allow comments from actors who follow the author.

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `social.respawn.feed.gate#followingRule`

**Type**: `object`

Allow comments from actors the author follows.

| Property | Type | Required | Description |
|----------|------|----------|-------------|

## Raw Schema

```json
{
  "id": "social.respawn.feed.gate",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "subject",
          "createdAt"
        ],
        "properties": {
          "allow": {
            "type": "array",
            "items": {
              "refs": [
                "#nobodyRule",
                "#followingRule",
                "#followerRule"
              ],
              "type": "union"
            },
            "maxLength": 5,
            "description": "Rules for who can comment. Absent means everyone; an empty array or a nobody rule means no one."
          },
          "subject": {
            "type": "string",
            "format": "at-uri",
            "description": "The log or list this gate applies to."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "disableLikes": {
            "type": "boolean"
          },
          "hiddenComments": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "at-uri"
            },
            "maxLength": 50,
            "description": "AT-URIs of comments the author has hidden."
          }
        }
      },
      "description": "Interaction settings for a log or list, analogous to app.bsky.feed.threadgate/postgate. The record key (rkey) must match the rkey of the gated record. Absence of a gate record means everyone can interact."
    },
    "nobodyRule": {
      "type": "object",
      "properties": {},
      "description": "Disallow comments from everyone."
    },
    "followerRule": {
      "type": "object",
      "properties": {},
      "description": "Allow comments from actors who follow the author."
    },
    "followingRule": {
      "type": "object",
      "properties": {},
      "description": "Allow comments from actors the author follows."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
