org.cairnsproto.draft.project
Maintainers, a scope, a stack of courses and a policy.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | draft.cairnsproto.org |
| Indexed |
Showing version bafyreigv3rbrutbo5cuksazgxdol6wfrto2qnmsygroa6zpnlfkqyoijsu. Show the latest
Checks
Validlarge-stringdefs.main.record.properties.descriptionmaxLength is over 20 KB. Use a blob for content that large.
{
"$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. The indexer runs them itself, 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
}