# tech.manos.racecalls.call

> Structured data for one race call posted by the unofficial racecalls bot. Stored at the same rkey as its post.

- Kind: record
- Record key: tid
- Authority: racecalls.manos.tech
- Lexicon: 1
- Published by [manos.lol](https://lexicon.garden/identity/did:plc:ffhsvgvnjwkbbhoi62pezi4x), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:ffhsvgvnjwkbbhoi62pezi4x/tech.manos.racecalls.call)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:ffhsvgvnjwkbbhoi62pezi4x/tech.manos.racecalls.call/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:ffhsvgvnjwkbbhoi62pezi4x/tech.manos.racecalls.call/analytics)

## Record (`tech.manos.racecalls.call`)

Type: record · key tid

### Properties

- `apLastUpdated` (string · datetime, required)
- `botVersion` (string, required)
- `callKind` (string, required)
  - Constraints: knownValues: win | runoff_advancement | general_advancement
- `calledAt` (string · datetime, required)
- `candidateId` (string, required)
- `createdAt` (string · datetime, required)
- `electionDate` (string, required): YYYY-MM-DD. Lexicon has no date-only format.
- `fetchedAt` (string · datetime, required)
- `generation` (integer): The call's generation; absent means 0. Written on call records from generation 1 on, and on every retraction record.
  - Constraints: minimum: 0
- `idempotencyKey` (string, required)
- `kind` (string, required)
  - Constraints: knownValues: call | retraction
- `metadataSha256` (string, required): Lowercase hex SHA-256 digest.
  - Constraints: minLength: 64, maxLength: 64
- `observation` (string): On a retraction record: the observation that qualified it.
  - Constraints: knownValues: no_winner
- `office` (string, required)
  - Constraints: knownValues: H | S | G
- `post` (ref, required): The post this record describes.
  - Reference: `com.atproto.repo.strongRef`
- `progressSha256` (string, required): Lowercase hex SHA-256 digest.
  - Constraints: minLength: 64, maxLength: 64
- `raceCallStatus` (string): On a retraction record: the observed AP raceCallStatus.
- `raceClass` (string, required)
  - Constraints: knownValues: general | general_runoff | special_general | party_primary | open_primary | rcv_general | nonpartisan | nonpartisan_runoff | all_party_primary
- `raceId` (string, required)
- `retracts` (ref): On a retraction record: the original call post.
  - Reference: `com.atproto.repo.strongRef`
- `scope` (string, required)
- `winner` (string, required)
  - Constraints: knownValues: X | R

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Structured data for one race call posted by the unofficial racecalls bot. Stored at the same rkey as its post.",
      "key": "tid",
      "record": {
        "properties": {
          "apLastUpdated": {
            "format": "datetime",
            "type": "string"
          },
          "botVersion": {
            "type": "string"
          },
          "callKind": {
            "knownValues": [
              "win",
              "runoff_advancement",
              "general_advancement"
            ],
            "type": "string"
          },
          "calledAt": {
            "format": "datetime",
            "type": "string"
          },
          "candidateId": {
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "electionDate": {
            "description": "YYYY-MM-DD. Lexicon has no date-only format.",
            "type": "string"
          },
          "fetchedAt": {
            "format": "datetime",
            "type": "string"
          },
          "generation": {
            "description": "The call's generation; absent means 0. Written on call records from generation 1 on, and on every retraction record.",
            "minimum": 0,
            "type": "integer"
          },
          "idempotencyKey": {
            "type": "string"
          },
          "kind": {
            "knownValues": [
              "call",
              "retraction"
            ],
            "type": "string"
          },
          "metadataSha256": {
            "description": "Lowercase hex SHA-256 digest.",
            "maxLength": 64,
            "minLength": 64,
            "type": "string"
          },
          "observation": {
            "description": "On a retraction record: the observation that qualified it.",
            "knownValues": [
              "no_winner"
            ],
            "type": "string"
          },
          "office": {
            "knownValues": [
              "H",
              "S",
              "G"
            ],
            "type": "string"
          },
          "post": {
            "description": "The post this record describes.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "progressSha256": {
            "description": "Lowercase hex SHA-256 digest.",
            "maxLength": 64,
            "minLength": 64,
            "type": "string"
          },
          "raceCallStatus": {
            "description": "On a retraction record: the observed AP raceCallStatus.",
            "type": "string"
          },
          "raceClass": {
            "knownValues": [
              "general",
              "general_runoff",
              "special_general",
              "party_primary",
              "open_primary",
              "rcv_general",
              "nonpartisan",
              "nonpartisan_runoff",
              "all_party_primary"
            ],
            "type": "string"
          },
          "raceId": {
            "type": "string"
          },
          "retracts": {
            "description": "On a retraction record: the original call post.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "scope": {
            "type": "string"
          },
          "winner": {
            "knownValues": [
              "X",
              "R"
            ],
            "type": "string"
          }
        },
        "required": [
          "post",
          "kind",
          "idempotencyKey",
          "raceId",
          "candidateId",
          "winner",
          "callKind",
          "raceClass",
          "office",
          "calledAt",
          "apLastUpdated",
          "fetchedAt",
          "metadataSha256",
          "progressSha256",
          "electionDate",
          "scope",
          "botVersion",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "tech.manos.racecalls.call",
  "lexicon": 1
}
```
