{
"id": "pub.quizzy.quiz",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"rounds",
"locales",
"timestamp"
],
"properties": {
"title": {
"type": "string",
"description": "A title for the quiz"
},
"rounds": {
"type": "array",
"items": {
"ref": "#round",
"type": "ref"
},
"maxLength": 50,
"minLength": 1,
"description": "Ordered list of rounds in this quiz"
},
"locales": {
"type": "array",
"items": {
"type": "string",
"format": "language"
},
"maxLength": 10,
"minLength": 1,
"description": "Dominant language(s) of the quiz"
},
"hasAudio": {
"type": "boolean",
"default": false,
"description": "This quiz includes questions with audio, eg. a music round"
},
"timestamp": {
"type": "string",
"format": "datetime",
"description": "When this quiz was created"
},
"hasVisuals": {
"type": "boolean",
"default": false,
"description": "This quiz includes questions with visuals, eg. a picture round"
},
"revisionOf": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "If this is an edit or revision of a previous quiz, link that previous version here."
},
"description": {
"type": "string",
"maxLength": 300,
"description": "A short description about the quiz, and what to expect from it",
"maxGraphemes": 3000
}
}
},
"description": "A quiz containing one or more rounds of questions"
},
"round": {
"type": "object",
"required": [
"questions"
],
"properties": {
"title": {
"type": "string",
"maxLength": 1000,
"description": "Optional title for this round (requires locale if set)",
"maxGraphemes": 100
},
"questions": {
"type": "array",
"items": {
"ref": "#questionRef",
"type": "ref"
},
"maxLength": 100,
"minLength": 1,
"description": "Ordered list of questions in this round"
}
},
"description": "A round within a quiz"
},
"questionRef": {
"type": "object",
"required": [
"question"
],
"properties": {
"name": {
"type": "string",
"maxLength": 16,
"description": "A custom name for this question, as opposed to its number",
"maxGraphemes": 160
},
"points": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Points awarded for complete correctness"
},
"question": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
}
},
"description": "Reference to a question with its point value"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}