{
"id": "app.atmobb.forum.board",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 1000,
"maxGraphemes": 100
},
"order": {
"type": "integer",
"minimum": 0,
"description": "Sort position within the parent (or the forum root)."
},
"topic": {
"type": "string",
"maxLength": 640,
"description": "Normalized topic slug (lowercase, hyphen-separated). Boards across the atmosphere sharing a topic merge their threads; appviews do the joining.",
"maxGraphemes": 64
},
"access": {
"refs": [
"#public",
"#space"
],
"type": "union",
"description": "Who can read this board. Defaults to public when absent."
},
"parent": {
"type": "string",
"format": "at-uri",
"description": "Parent board for subforums. Must reference an app.atmobb.forum.board in the same repo."
},
"category": {
"type": "string",
"format": "at-uri",
"description": "Category this board is grouped under on the index. Must reference an app.atmobb.forum.category in the same repo."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"topicAllow": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"maxLength": 100,
"description": "Allowlist mode: forums whose same-topic boards merge here."
},
"description": {
"type": "string",
"maxLength": 10000,
"maxGraphemes": 1000
},
"topicFederation": {
"type": "string",
"maxLength": 64,
"description": "Whose boards merge into this board's topic window. Absent means open.",
"knownValues": [
"open",
"allowlist"
]
}
}
},
"description": "A board within a forum. Lives in the forum account's repo. Subforums reference their parent board."
},
"space": {
"type": "object",
"required": [
"space"
],
"properties": {
"space": {
"type": "string",
"maxLength": 1000,
"description": "The ats:// URI of the permissioned space backing this board."
}
},
"description": "Members-only board. Threads and replies live in the referenced permissioned space rather than public repos."
},
"public": {
"type": "object",
"properties": {},
"description": "Anyone can read; threads and replies are public repo records."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}