pics.2bit.challenge.entry

2bit.pics

Documentation

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 entry for a prompt before writing the new one, and where another client leaves several, the newest counts.

main 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 entry for a prompt before writing the new one, and where another client leaves several, the newest counts.

Record Key tid Timestamp-based ID

Properties

challenge ref com.atproto.repo.strongRef Required

Strong ref to the pics.2bit.challenge.list being entered. The AppView matches entries to their challenge by uri alone, so an organizer's later edit to the list (a fixed typo, a new prompt) doesn't detach the entries already made; the cid only records which version of the list the entry was made against.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

prompt string Required

Which prompt this entry answers, given as that prompt's `key` - one of the challenge list's `prompts[].key` values (pics.2bit.challenge.list#prompt), e.g. `6` - never its title, so the organizer can reword a title without detaching entries. An entry whose key the list doesn't have is skipped.

maxLength: 32 bytesminLength: 1 bytes
subject ref com.atproto.repo.strongRef Required

Strong ref to the photo being entered: a pics.2bit.feed.photo in the same repo as this entry. A strongRef carries no type, so both are enforced by the AppView, which skips an entry for anyone else's photo. A photo that is later deleted or can't be shown leaves its prompt empty.

View raw schema
{
  "description": "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 entry for a prompt before writing the new one, and where another client leaves several, the newest counts.",
  "key": "tid",
  "record": {
    "properties": {
      "challenge": {
        "description": "Strong ref to the pics.2bit.challenge.list being entered. The AppView matches entries to their challenge by uri alone, so an organizer's later edit to the list (a fixed typo, a new prompt) doesn't detach the entries already made; the cid only records which version of the list the entry was made against.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      },
      "createdAt": {
        "format": "datetime",
        "type": "string"
      },
      "prompt": {
        "description": "Which prompt this entry answers, given as that prompt's `key` - one of the challenge list's `prompts[].key` values (pics.2bit.challenge.list#prompt), e.g. `6` - never its title, so the organizer can reword a title without detaching entries. An entry whose key the list doesn't have is skipped.",
        "maxLength": 32,
        "minLength": 1,
        "type": "string"
      },
      "subject": {
        "description": "Strong ref to the photo being entered: a pics.2bit.feed.photo in the same repo as this entry. A strongRef carries no type, so both are enforced by the AppView, which skips an entry for anyone else's photo. A photo that is later deleted or can't be shown leaves its prompt empty.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      }
    },
    "required": [
      "subject",
      "challenge",
      "prompt",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@