town.laugh.user.list
A user-curated list of events, venues, and/or comedians. The favorites list is the one with purpose "favorites".
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | user.laugh.town |
| Indexed |
Checks
Validunlimited-stringdefs.main.record.properties.collabNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.itemOrder.items.properties.orderNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.purposeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.sortNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A user-curated list of events, venues, and/or comedians. The favorites list is the one with purpose \"favorites\".",
"key": "tid",
"record": {
"properties": {
"blockedContributors": {
"description": "DIDs the owner has blocked from contributing; applies in \"open\" mode (and harmlessly in \"invite\" mode too)",
"items": {
"format": "did",
"type": "string"
},
"maxLength": 200,
"type": "array"
},
"calendar": {
"description": "Show a derived calendar of upcoming shows for the list's items. Off by default.",
"type": "boolean"
},
"collab": {
"description": "Who can add items to this list: \"owner\" (only the list owner, the default when absent), \"invite\" (DIDs on `contributors`), or \"open\" (anyone signed in)",
"knownValues": [
"owner",
"invite",
"open"
],
"type": "string"
},
"contributors": {
"description": "DID allowlist for collab \"invite\". Kept (but ignored) when collab is \"open\"/\"owner\", so toggling modes doesn't lose the list",
"items": {
"format": "did",
"type": "string"
},
"maxLength": 50,
"type": "array"
},
"createdAt": {
"description": "Timestamp of when the list was created",
"format": "datetime",
"type": "string"
},
"description": {
"description": "Optional list description",
"maxLength": 2048,
"type": "string"
},
"forkedFrom": {
"description": "AT-URI of the town.laugh.user.list record this list was duplicated from",
"format": "at-uri",
"type": "string"
},
"itemOrder": {
"description": "Owner-set positions for contributed items only (a contributor's own listitem `order` field is ignored)",
"items": {
"properties": {
"item": {
"description": "AT-URI of the contributed town.laugh.user.listitem record",
"format": "at-uri",
"type": "string"
},
"order": {
"description": "Fractional-index position key",
"type": "string"
}
},
"required": [
"item",
"order"
],
"type": "object"
},
"maxLength": 500,
"type": "array"
},
"name": {
"description": "Display name",
"maxLength": 256,
"type": "string"
},
"numbered": {
"description": "Show items as a ranked, numbered list",
"type": "boolean"
},
"place": {
"description": "laugh.town place slug (e.g. \"los-angeles\") the list is about. When set, the derived calendar is fixed to this place and its descendants; when absent, viewers pick the place themselves.",
"maxLength": 64,
"type": "string"
},
"purpose": {
"description": "Advisory list purpose; \"favorites\" marks the singular favorites list",
"knownValues": [
"curated",
"favorites"
],
"type": "string"
},
"removedItems": {
"description": "AT-URIs of town.laugh.user.listitem records the owner suppressed from a contributor's contribution",
"items": {
"format": "at-uri",
"type": "string"
},
"maxLength": 500,
"type": "array"
},
"slug": {
"description": "URL slug, lowercase alphanumeric with single-hyphen separators (e.g. \"best-of-2026\"). Derived from the name at creation and frozen thereafter; unique per did.",
"maxLength": 64,
"type": "string"
},
"sort": {
"description": "Default item ordering for viewers; \"manual\" (the default when absent) uses each listitem's fractional order",
"knownValues": [
"manual",
"alpha",
"added",
"date"
],
"type": "string"
}
},
"required": [
"name",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"id": "town.laugh.user.list",
"lexicon": 1
}