{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "draw": {
      "description": "The draw that selected this retrace.",
      "properties": {
        "beaconRound": {
          "description": "drand quicknet round of the epoch's beacon.",
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "beaconRound"
      ],
      "type": "object"
    },
    "main": {
      "description": "A signed claim at a site. A retrace is a stone at a site that already has one. A stone that amends another and has no result withdraws it.",
      "key": "tid",
      "record": {
        "properties": {
          "amends": {
            "description": "An earlier stone by the same author at the same site.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "draw": {
            "ref": "#draw",
            "type": "ref"
          },
          "evidence": {
            "closed": true,
            "refs": [
              "org.cairnsproto.draft.defs#blobPayload",
              "org.cairnsproto.draft.defs#externalPayload"
            ],
            "type": "union"
          },
          "inputs": {
            "description": "Exact input stones of a derived stone, or the segment stones of a stacked null in canonical order. The input graph is acyclic.",
            "items": {
              "ref": "com.atproto.repo.strongRef",
              "type": "ref"
            },
            "maxLength": 10000,
            "type": "array"
          },
          "method": {
            "ref": "org.cairnsproto.draft.defs#method",
            "type": "ref"
          },
          "payload": {
            "closed": true,
            "description": "Validated against site.schema. Required unless the stone is a withdrawal.",
            "refs": [
              "org.cairnsproto.draft.defs#inlinePayload",
              "org.cairnsproto.draft.defs#blobPayload",
              "org.cairnsproto.draft.defs#externalPayload",
              "org.cairnsproto.draft.defs#sealedPayload"
            ],
            "type": "union"
          },
          "result": {
            "description": "null only in closed-bound courses. attempt never counts as coverage. split reads the site as too large for one stone; its inline payload is an org.cairnsproto.draft.defs#split, and only a course with a composer takes one. converted reads the site's source through a transform; its inline payload is an org.cairnsproto.draft.defs#conversion, and only a site on a source takes one. Required unless the stone is a withdrawal.",
            "knownValues": [
              "found",
              "null",
              "attempt",
              "split",
              "converted"
            ],
            "maxLength": 32,
            "type": "string"
          },
          "site": {
            "ref": "org.cairnsproto.draft.defs#site",
            "type": "ref"
          },
          "state": {
            "ref": "#segmentState",
            "type": "ref"
          }
        },
        "required": [
          "site",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "segmentState": {
      "description": "Start and end state of a computation segment, so a sampled segment can be re-run from its published start.",
      "properties": {
        "endHash": {
          "ref": "org.cairnsproto.draft.defs#hash",
          "type": "ref"
        },
        "startHash": {
          "ref": "org.cairnsproto.draft.defs#hash",
          "type": "ref"
        },
        "urls": {
          "items": {
            "format": "uri",
            "type": "string"
          },
          "maxLength": 32,
          "type": "array"
        }
      },
      "required": [
        "startHash",
        "endHash"
      ],
      "type": "object"
    }
  },
  "id": "org.cairnsproto.draft.stone",
  "lexicon": 1
}
