org.cairnsproto.draft.project

Maintainers, a scope, a stack of courses and a policy.

Repository @cairnsproto.org did:plc:np7ezqujtsry4bkogisaabul namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authoritydraft.cairnsproto.org
Indexed

Showing version bafyreibwnyotcexaws6jiycmrdmepek4r4oik4uyowffcc4dcfno2j6zvu. Show the latest

cid bafyreibwnyotcexaws6jiycmrdmepek4r4oik4uyowffcc4dcfno2j6zvu

Checks

Valid
  • large-string defs.main.record.properties.descriptionmaxLength is over 20 KB. Use a blob for content that large.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "builtinComposer": {
      "description": "A composer every client implements. concat: every array field is the parts' arrays joined in part order, and every other field must be equal in all parts.",
      "properties": {
        "name": {
          "knownValues": [
            "concat"
          ],
          "maxLength": 64,
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "checkComposer": {
      "description": "A WASM check that rebuilds a split site's value from its parts' values, in part order.",
      "properties": {
        "check": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        }
      },
      "required": [
        "check"
      ],
      "type": "object"
    },
    "course": {
      "properties": {
        "bounds": {
          "description": "closed allows null stones; open allows only attempts.",
          "knownValues": [
            "closed",
            "open"
          ],
          "maxLength": 32,
          "type": "string"
        },
        "compose": {
          "description": "How a split site's value is rebuilt from its parts' values. Absent means the course is atomic, and its sites can't be split.",
          "refs": [
            "#checkComposer",
            "#builtinComposer"
          ],
          "type": "union"
        },
        "id": {
          "maxLength": 128,
          "type": "string"
        },
        "markType": {
          "description": "Mark def reference, such as org.cairnsproto.draft.mark#pdfRegion.",
          "maxLength": 512,
          "type": "string"
        },
        "minMark": {
          "description": "The finest mark the course accepts. Its type matches markType.",
          "refs": [
            "org.cairnsproto.draft.mark#pdfRegion",
            "org.cairnsproto.draft.mark#imageRegion",
            "org.cairnsproto.draft.mark#sheetRange",
            "org.cairnsproto.draft.mark#tableRange",
            "org.cairnsproto.draft.mark#textQuote",
            "org.cairnsproto.draft.mark#cssSelector",
            "org.cairnsproto.draft.mark#textPosition",
            "org.cairnsproto.draft.mark#gitPath",
            "org.cairnsproto.draft.mark#jsonPointer",
            "org.cairnsproto.draft.mark#archiveMember",
            "org.cairnsproto.draft.mark#mediaTime",
            "org.cairnsproto.draft.mark#spaceRange"
          ],
          "type": "union"
        },
        "parent": {
          "description": "Id of the course below. Absent for course 0.",
          "maxLength": 128,
          "type": "string"
        },
        "procedure": {
          "description": "The procedure for this course's sites.",
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "schema": {
          "description": "Hash of the payload schema's definition. Part of every site key in the course.",
          "ref": "org.cairnsproto.draft.defs#hash",
          "type": "ref"
        },
        "schemaRecord": {
          "description": "An org.cairnsproto.draft.schema record whose definition has the schema hash, in any repo.",
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "split": {
          "description": "How a parent value breaks down into this course's sites: a JSON pointer to an array in the parent value, with one site per element, marked by a jsonPointer to that element (`/contests/0`, `/contests/1`, ...). Only for a course with a parent and markType jsonPointer. A site opens when the parent value clears the open-children bar. Without a split, a course opens one unmarked site on each parent conversion that clears the bar, and none on other values.",
          "maxLength": 512,
          "type": "string"
        }
      },
      "required": [
        "id",
        "markType",
        "schema",
        "schemaRecord",
        "bounds"
      ],
      "type": "object"
    },
    "enumeratedScope": {
      "description": "The course-0 sites are a fixed list.",
      "properties": {
        "sites": {
          "description": "Optional explicit list of course-0 site keys, one hex key per line.",
          "ref": "org.cairnsproto.draft.defs#external",
          "type": "ref"
        },
        "sources": {
          "description": "Source hashes the project covers.",
          "items": {
            "ref": "org.cairnsproto.draft.defs#hash",
            "type": "ref"
          },
          "maxLength": 10000,
          "type": "array"
        }
      },
      "required": [
        "sources"
      ],
      "type": "object"
    },
    "main": {
      "description": "Maintainers, a scope, a stack of courses and a policy.",
      "key": "tid",
      "record": {
        "properties": {
          "courses": {
            "items": {
              "ref": "#course",
              "type": "ref"
            },
            "maxLength": 64,
            "minLength": 1,
            "type": "array"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "maxGraphemes": 3000,
            "maxLength": 30000,
            "type": "string"
          },
          "forkedFrom": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "maintainers": {
            "items": {
              "format": "did",
              "type": "string"
            },
            "maxLength": 32,
            "minLength": 1,
            "type": "array"
          },
          "mounts": {
            "items": {
              "ref": "#mount",
              "type": "ref"
            },
            "maxLength": 64,
            "type": "array"
          },
          "name": {
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          },
          "outputSchema": {
            "description": "Hash of the export's schema definition.",
            "ref": "org.cairnsproto.draft.defs#hash",
            "type": "ref"
          },
          "policy": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "publish": {
            "ref": "#publish",
            "type": "ref"
          },
          "scope": {
            "refs": [
              "#enumeratedScope",
              "#openScope"
            ],
            "type": "union"
          },
          "status": {
            "knownValues": [
              "active",
              "complete",
              "archived"
            ],
            "maxLength": 32,
            "type": "string"
          },
          "succeededBy": {
            "description": "Set together with status archived when adopting another fork.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "tags": {
            "description": "Discovery tags, lowercase kebab-case.",
            "items": {
              "maxLength": 64,
              "type": "string"
            },
            "maxLength": 10,
            "type": "array"
          },
          "transforms": {
            "description": "Transform records the maintainer vouches for. Clients run them, and their output needs no reads.",
            "items": {
              "ref": "com.atproto.repo.strongRef",
              "type": "ref"
            },
            "maxLength": 64,
            "type": "array"
          }
        },
        "required": [
          "maintainers",
          "status",
          "scope",
          "courses",
          "policy",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "mount": {
      "description": "Builds on another project's snapshot.",
      "properties": {
        "course": {
          "maxLength": 128,
          "type": "string"
        },
        "project": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "snapshot": {
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        }
      },
      "required": [
        "project",
        "snapshot",
        "course"
      ],
      "type": "object"
    },
    "openScope": {
      "description": "Anyone may open new course-0 sites, such as hypothesis sites.",
      "properties": {},
      "type": "object"
    },
    "publish": {
      "description": "The official repo the project's output feeds, and how values become its files.",
      "properties": {
        "branch": {
          "maxLength": 256,
          "type": "string"
        },
        "format": {
          "description": "Output format, such as csv.",
          "maxLength": 64,
          "type": "string"
        },
        "import": {
          "description": "Check that maps the repo's published files back to site keys and values.",
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "license": {
          "description": "SPDX expression or URL for the output.",
          "maxLength": 512,
          "type": "string"
        },
        "path": {
          "description": "Directory in the repo the files go in.",
          "maxLength": 4096,
          "type": "string"
        },
        "render": {
          "description": "Check that renders a snapshot's exported values into files.",
          "ref": "com.atproto.repo.strongRef",
          "type": "ref"
        },
        "repo": {
          "description": "Git URL.",
          "maxLength": 2048,
          "type": "string"
        }
      },
      "required": [
        "repo",
        "branch",
        "path",
        "format",
        "render",
        "license"
      ],
      "type": "object"
    }
  },
  "id": "org.cairnsproto.draft.project",
  "lexicon": 1
}