···11+{
22+ "lexicon": 1,
33+ "id": "app.bsky.feed.postgate",
44+ "defs": {
55+ "main": {
66+ "key": "tid",
77+ "type": "record",
88+ "record": {
99+ "type": "object",
1010+ "required": [
1111+ "post",
1212+ "createdAt"
1313+ ],
1414+ "properties": {
1515+ "post": {
1616+ "type": "string",
1717+ "format": "at-uri",
1818+ "description": "Reference (AT-URI) to the post record."
1919+ },
2020+ "createdAt": {
2121+ "type": "string",
2222+ "format": "datetime"
2323+ },
2424+ "embeddingRules": {
2525+ "type": "array",
2626+ "items": {
2727+ "refs": [
2828+ "#disableRule"
2929+ ],
3030+ "type": "union"
3131+ },
3232+ "maxLength": 5,
3333+ "description": "List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed."
3434+ },
3535+ "detachedEmbeddingUris": {
3636+ "type": "array",
3737+ "items": {
3838+ "type": "string",
3939+ "format": "at-uri"
4040+ },
4141+ "maxLength": 50,
4242+ "description": "List of AT-URIs embedding this post that the author has detached from."
4343+ }
4444+ }
4545+ },
4646+ "description": "Record defining interaction rules for a post. The record key (rkey) of the postgate record must match the record key of the post, and that record must be in the same repository."
4747+ },
4848+ "disableRule": {
4949+ "type": "object",
5050+ "properties": {},
5151+ "description": "Disables embedding of this post."
5252+ }
5353+ }
5454+}
+80
lexicons/app/bsky/feed/threadgate.json
···11+{
22+ "lexicon": 1,
33+ "id": "app.bsky.feed.threadgate",
44+ "defs": {
55+ "main": {
66+ "key": "tid",
77+ "type": "record",
88+ "record": {
99+ "type": "object",
1010+ "required": [
1111+ "post",
1212+ "createdAt"
1313+ ],
1414+ "properties": {
1515+ "post": {
1616+ "type": "string",
1717+ "format": "at-uri",
1818+ "description": "Reference (AT-URI) to the post record."
1919+ },
2020+ "allow": {
2121+ "type": "array",
2222+ "items": {
2323+ "refs": [
2424+ "#mentionRule",
2525+ "#followerRule",
2626+ "#followingRule",
2727+ "#listRule"
2828+ ],
2929+ "type": "union"
3030+ },
3131+ "maxLength": 5,
3232+ "description": "List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply."
3333+ },
3434+ "createdAt": {
3535+ "type": "string",
3636+ "format": "datetime"
3737+ },
3838+ "hiddenReplies": {
3939+ "type": "array",
4040+ "items": {
4141+ "type": "string",
4242+ "format": "at-uri"
4343+ },
4444+ "maxLength": 50,
4545+ "description": "List of hidden reply URIs."
4646+ }
4747+ }
4848+ },
4949+ "description": "Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository."
5050+ },
5151+ "listRule": {
5252+ "type": "object",
5353+ "required": [
5454+ "list"
5555+ ],
5656+ "properties": {
5757+ "list": {
5858+ "type": "string",
5959+ "format": "at-uri"
6060+ }
6161+ },
6262+ "description": "Allow replies from actors on a list."
6363+ },
6464+ "mentionRule": {
6565+ "type": "object",
6666+ "properties": {},
6767+ "description": "Allow replies from actors mentioned in your post."
6868+ },
6969+ "followerRule": {
7070+ "type": "object",
7171+ "properties": {},
7272+ "description": "Allow replies from actors who follow you."
7373+ },
7474+ "followingRule": {
7575+ "type": "object",
7676+ "properties": {},
7777+ "description": "Allow replies from actors you follow."
7878+ }
7979+ }
8080+}