pics.2bit.challenge.join

2bit.pics

Documentation

The author taking part in a challenge. Joining is how a challenge comes to be offered wherever the author posts - nobody is signed up for a challenge they didn't join - and it's public, like a follow, so a challenge can show who's taking part before anyone has entered. Entering a prompt joins too. One join per person per challenge is enforced by this app's AppView rather than the record key: its write path won't write a second, and where another client leaves several, they count once. Leaving deletes the join and nothing else - entries already made stay.

main record

The author taking part in a challenge. Joining is how a challenge comes to be offered wherever the author posts - nobody is signed up for a challenge they didn't join - and it's public, like a follow, so a challenge can show who's taking part before anyone has entered. Entering a prompt joins too. One join per person per challenge is enforced by this app's AppView rather than the record key: its write path won't write a second, and where another client leaves several, they count once. Leaving deletes the join and nothing else - entries already made stay.

Record Key tid Timestamp-based ID

Properties

createdAt string datetime Required

An RFC 3339 formatted timestamp.

subject ref com.atproto.repo.strongRef Required

Strong ref to the pics.2bit.challenge.list being joined. Matched by uri alone, like pics.2bit.challenge.entry#challenge, so an organizer's edit to the list doesn't undo anyone's join; a strongRef carries no type, so the collection is enforced by the AppView.

View raw schema
{
  "description": "The author taking part in a challenge. Joining is how a challenge comes to be offered wherever the author posts - nobody is signed up for a challenge they didn't join - and it's public, like a follow, so a challenge can show who's taking part before anyone has entered. Entering a prompt joins too. One join per person per challenge is enforced by this app's AppView rather than the record key: its write path won't write a second, and where another client leaves several, they count once. Leaving deletes the join and nothing else - entries already made stay.",
  "key": "tid",
  "record": {
    "properties": {
      "createdAt": {
        "format": "datetime",
        "type": "string"
      },
      "subject": {
        "description": "Strong ref to the pics.2bit.challenge.list being joined. Matched by uri alone, like pics.2bit.challenge.entry#challenge, so an organizer's edit to the list doesn't undo anyone's join; a strongRef carries no type, so the collection is enforced by the AppView.",
        "ref": "com.atproto.repo.strongRef",
        "type": "ref"
      }
    },
    "required": [
      "subject",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@