at.eptss.candidateLedger

eptss.at

Documentation

The round's ballot sheet, revealed as one atomic record when signups close. Published by the round organizer. The candidate list itself lives in an at.atjam.playlist of at.eptss.track records — this record pins that playlist by CID and adds only what a playlist must never carry: round attribution and who nominated what. Ballots strong-ref this ledger, so the pin chain runs ballot → ledger → playlist → tracks, and a post-hoc edit anywhere is detectable. Attribution keys on the track's AT-URI, never on its position — a positional array desyncs silently on one reorder. The organizer honors un-naming requests by editing nominations in place.

main record

The round's ballot sheet, revealed as one atomic record when signups close. Published by the round organizer. The candidate list itself lives in an at.atjam.playlist of at.eptss.track records — this record pins that playlist by CID and adds only what a playlist must never carry: round attribution and who nominated what. Ballots strong-ref this ledger, so the pin chain runs ballot → ledger → playlist → tracks, and a post-hoc edit anywhere is detectable. Attribution keys on the track's AT-URI, never on its position — a positional array desyncs silently on one reorder. The organizer honors un-naming requests by editing nominations in place.

Record Key any Any valid record key

Properties

nominations array of ref #nomination Required

Who put what in the hat. Empty when every candidate was organizer-carried. Tracks absent here are carried candidates, unattributed by design.

maxLength: 256 items
publishedAt string datetime Required

An RFC 3339 formatted timestamp.

View raw schema
{
  "key": "any",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "round",
      "playlist",
      "nominations",
      "publishedAt"
    ],
    "properties": {
      "round": {
        "ref": "com.atproto.repo.strongRef",
        "type": "ref",
        "description": "The at.atjam.round this ledger belongs to."
      },
      "playlist": {
        "ref": "com.atproto.repo.strongRef",
        "type": "ref",
        "description": "The at.atjam.playlist holding the candidates, in ballot order, CID-pinned."
      },
      "nominations": {
        "type": "array",
        "items": {
          "ref": "#nomination",
          "type": "ref"
        },
        "maxLength": 256,
        "description": "Who put what in the hat. Empty when every candidate was organizer-carried. Tracks absent here are carried candidates, unattributed by design."
      },
      "publishedAt": {
        "type": "string",
        "format": "datetime"
      }
    }
  },
  "description": "The round's ballot sheet, revealed as one atomic record when signups close. Published by the round organizer. The candidate list itself lives in an at.atjam.playlist of at.eptss.track records — this record pins that playlist by CID and adds only what a playlist must never carry: round attribution and who nominated what. Ballots strong-ref this ledger, so the pin chain runs ballot → ledger → playlist → tracks, and a post-hoc edit anywhere is detectable. Attribution keys on the track's AT-URI, never on its position — a positional array desyncs silently on one reorder. The organizer honors un-naming requests by editing nominations in place."
}
nomination object

No description available.

Properties

by string did Required

DID of the member who nominated it.

track string at-uri Required

The at.eptss.track this attribution is about. A URI and not an index: identity, not position.

View raw schema
{
  "type": "object",
  "required": [
    "track",
    "by"
  ],
  "properties": {
    "by": {
      "type": "string",
      "format": "did",
      "description": "DID of the member who nominated it."
    },
    "track": {
      "type": "string",
      "format": "at-uri",
      "description": "The at.eptss.track this attribution is about. A URI and not an index: identity, not position."
    }
  }
}

Lexicon Garden

@