pics.2bit.challenge.list
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A photo challenge: a named set of prompts, published by its organizer, that anyone can enter by writing a pics.2bit.challenge.entry for one of their own photos. The record key is a short readable slug (e.g. `gbcamtober-2026`) and is only unique within the organizer's repo, so a challenge is always named by organizer and key together - in URLs as `<organizer handle>/<rkey>`, in records by its at-uri.",
"key": "any",
"record": {
"properties": {
"createdAt": {
"format": "datetime",
"type": "string"
},
"description": {
"description": "The rules or intro text, shown on the challenge page.",
"maxGraphemes": 1000,
"maxLength": 10000,
"type": "string"
},
"endsAt": {
"description": "When the challenge closes, exclusive. Must be after `startsAt`.",
"format": "datetime",
"type": "string"
},
"hashtag": {
"description": "The challenge's hashtag, without the leading `#`, e.g. `GBCamtober2026`. Clients add it to the caption of a photo entered into the challenge, so entries also reach the tag's page and feed. Must be a tag under this app's hashtag grammar (see pics.2bit.feed.photo#caption); a list whose hashtag isn't one is indexed as if it had none.",
"maxLength": 64,
"type": "string"
},
"name": {
"description": "Display name, e.g. \"GBCamtober 2026\".",
"maxGraphemes": 64,
"maxLength": 640,
"minLength": 1,
"type": "string"
},
"prompts": {
"description": "The prompts, in display order. Keys must be unique within the list.",
"items": {
"ref": "#prompt",
"type": "ref"
},
"maxLength": 64,
"minLength": 1,
"type": "array"
},
"startsAt": {
"description": "When the challenge opens. Together with `endsAt` this decides whether the challenge is active and which prompt is today's; it never limits when an entry can be written - entering late is allowed.",
"format": "datetime",
"type": "string"
}
},
"required": [
"name",
"startsAt",
"endsAt",
"prompts",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"prompt": {
"properties": {
"key": {
"description": "Stable identifier that entries point at, e.g. `6`. Letters, digits, `-` and `_` only - this app's AppView skips a list with any other key. No padding is needed for order: the array order is the display order, and numeric keys compare naturally. Keep keys fixed once entries exist; titles can change freely.",
"maxLength": 32,
"minLength": 1,
"type": "string"
},
"title": {
"description": "The prompt as shown, e.g. \"Duck\".",
"maxGraphemes": 64,
"maxLength": 640,
"minLength": 1,
"type": "string"
}
},
"required": [
"key",
"title"
],
"type": "object"
}
},
"id": "pics.2bit.challenge.list",
"lexicon": 1
}
Metadata
- DID
-
did:plc:sbmntiflmknij2axeck3w6u7 - CID
-
bafyreic4iqmtl5robiqkcpb5jnq37yqpuhux7rnn4enhkn5otgcernrwa4 - Indexed At
- 2026-09-27 21:14 UTC
- AT-URI
-
at://did:plc:sbmntiflmknij2axeck3w6u7/com.atproto.lexicon.schema/pics.2bit.challenge.list
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
pics.2bit.challenge.entry record
One of the author's own photos entered into a challenge for one of its prompts. One entry per person per prompt is enforced by this app's AppView rather than the record key: its write path deletes an author's earlier en…