{
"id": "org.hypercerts.collection",
"defs": {
"item": {
"type": "object",
"required": [
"itemIdentifier"
],
"properties": {
"itemWeight": {
"type": "string",
"maxLength": 100,
"description": "Optional weight for this item (positive numeric value stored as string). Weights do not need to sum to a specific total; normalization can be performed by the consuming application as needed."
},
"itemIdentifier": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection)."
}
},
"description": "An item in a collection, with an identifier and optional weight."
},
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"createdAt"
],
"properties": {
"type": {
"type": "string",
"maxLength": 64,
"description": "The type of this collection. Values beyond the known set are permitted.",
"knownValues": [
"favorites",
"project",
"portfolio",
"program"
]
},
"items": {
"type": "array",
"items": {
"ref": "#item",
"type": "ref"
},
"maxLength": 1000,
"description": "Array of items in this collection with optional weights."
},
"title": {
"type": "string",
"maxLength": 800,
"description": "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
"maxGraphemes": 80
},
"avatar": {
"refs": [
"org.hypercerts.defs#uri",
"org.hypercerts.defs#smallImage"
],
"type": "union",
"description": "The collection's avatar/profile image as a URI or image blob."
},
"banner": {
"refs": [
"org.hypercerts.defs#uri",
"org.hypercerts.defs#largeImage"
],
"type": "union",
"description": "Larger horizontal image to display behind the collection view."
},
"location": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "A strong reference to the location where this collection's activities were performed. The record referenced must conform with the lexicon app.certified.location."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was originally created"
},
"description": {
"refs": [
"org.hypercerts.defs#descriptionString",
"pub.leaflet.pages.linearDocument",
"com.atproto.repo.strongRef"
],
"type": "union",
"description": "Long-form description of the collection. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record."
},
"shortDescription": {
"type": "string",
"maxLength": 3000,
"description": "Short summary of this collection, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
"maxGraphemes": 300
},
"shortDescriptionFacets": {
"type": "array",
"items": {
"ref": "app.bsky.richtext.facet",
"type": "ref"
},
"description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc)."
}
}
},
"description": "A collection/group of items (activities and/or other collections). Collections support recursive nesting."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}