changedInput schema / properties / artifact / oneOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "content": {
- "additionalProperties": false,
- "description": "Quiz content.",
- "properties": {
- "course_id": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "questions": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "answers": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "answer": {
- "description": "Answer option text.",
- "minLength": 1,
- "type": "string"
- },
- "is_correct": {
- "description": "True for the correct option or options.",
- "type": "boolean"
- }
- },
- "required": [
- "answer",
- "is_correct"
- ],
- "type": "object"
- },
- "minItems": 2,
- "type": "array"
- },
- "difficulty": {
- "enum": [
- "EASY",
- "MEDIUM",
- "HARD"
- ],
- "type": "string"
- },
- "explanation": {
- "description": "Required explanation for the correct answer (Core quiz API requires it, max 255 characters).",
- "maxLength": 255,
- "minLength": 1,
- "type": "string"
- },
- "question": {
- "description": "Question prompt shown to the learner.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "question",
- "answers",
- "explanation"
- ],
- "type": "object"
- },
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "questions"
- ],
- "type": "object"
- },
- "description": {
- "description": "Optional description stored on the creation record.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "creation",
- "description": "Artifact kind. Only creation is writable in this MVP.",
- "type": "string"
- },
- "title": {
- "description": "Human-readable quiz title (Core Labs API requires 20-255 characters).",
- "maxLength": 255,
- "minLength": 20,
- "type": "string"
- },
- "type": {
- "const": "quiz",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "title",
- "type",
- "content"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "content": {
- "additionalProperties": false,
- "description": "Lesson content.",
- "properties": {
- "lesson_json": {
- "additionalProperties": false,
- "properties": {
- "description": {
- "type": "string"
- },
- "exercises": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "concept_explanation": {
- "additionalProperties": false,
- "properties": {
- "paragraph1": {
- "minLength": 1,
- "type": "string"
- },
- "paragraph2": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "paragraph1",
- "paragraph2"
- ],
- "type": "object"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "mcq": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "correct_option_id": {
- "enum": [
- "A",
- "B",
- "C",
- "D"
- ],
- "type": "string"
- },
- "options": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "id": {
- "description": "Frontend-supported answer option id.",
- "enum": [
- "A",
- "B",
- "C",
- "D"
- ],
- "type": "string"
- },
- "rationale": {
- "description": "Rationale shown for this option.",
- "minLength": 1,
- "type": "string"
- },
- "text": {
- "description": "Option text.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "id",
- "text",
- "rationale"
- ],
- "type": "object"
- },
- "minItems": 2,
- "type": "array"
- },
- "question": {
- "minLength": 1,
- "type": "string"
- },
- "rationale": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "question",
- "options",
- "correct_option_id",
- "rationale"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "open_ended": {
- "additionalProperties": false,
- "properties": {
- "expected_points": {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "minItems": 1,
- "type": "array"
- },
- "model_answer": {
- "minLength": 1,
- "type": "string"
- },
- "question": {
- "minLength": 1,
- "type": "string"
- },
- "rubric": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "question",
- "expected_points",
- "model_answer",
- "rubric"
- ],
- "type": "object"
- },
- "position": {
- "maximum": 9007199254740991,
- "minimum": 1,
- "type": "integer"
- },
- "title": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "id",
- "position",
- "title",
- "concept_explanation",
- "mcq",
- "open_ended"
- ],
- "type": "object"
- },
- "minItems": 1,
- "type": "array"
- },
- "outline": {
- "additionalProperties": false,
- "properties": {
- "exercises": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "exercise_id": {
- "minLength": 1,
- "type": "string"
- },
- "title": {
- "minLength": 1,
- "type": "string"
- },
- "topic_id": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "exercise_id",
- "topic_id",
- "title"
- ],
- "type": "object"
- },
- "minItems": 1,
- "type": "array"
- },
- "learning_goal": {
- "minLength": 1,
- "type": "string"
- },
- "title": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "learning_goal",
- "title",
- "exercises"
- ],
- "type": "object"
- },
- "title": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "title",
- "outline",
- "exercises"
- ],
- "type": "object"
- }
- },
- "required": [
- "lesson_json"
- ],
- "type": "object"
- },
- "description": {
- "description": "Optional description stored on the creation record.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "creation",
- "description": "Artifact kind. Only creation is writable in this MVP.",
- "type": "string"
- },
- "title": {
- "description": "Human-readable title for the created artifact.",
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "lesson",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "title",
- "type",
- "content"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "content": {
- "additionalProperties": false,
- "description": "Mock exam content.",
- "properties": {
- "exam_json": {
- "additionalProperties": false,
- "properties": {
- "content": {
- "items": {
- "oneOf": [
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "instructions": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "section",
- "type": "string"
- },
- "question_type": {
- "description": "Frontend-supported KnowledgeTest question type. Use mcq, not multiple_choice.",
- "enum": [
- "mcq",
- "multi_select",
- "true_false",
- "fill_in_blank",
- "text_answer_short",
- "text_answer_long"
- ],
- "type": "string"
- },
- "title": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "kind",
- "id",
- "question_type"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "stimulus",
- "type": "string"
- },
- "stimulus_markdown": {
- "minLength": 1,
- "type": "string"
- },
- "title": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "kind",
- "id",
- "stimulus_markdown"
- ],
- "type": "object"
- },
- {
- "oneOf": [
- {
- "additionalProperties": false,
- "properties": {
- "grading": {
- "additionalProperties": false,
- "properties": {
- "correct_answer": {
- "type": "string"
- },
- "correct_answer_ids": {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- "key_points": {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- "model_answer": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "model_answer"
- ],
- "type": "object"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "question",
- "type": "string"
- },
- "marks": {
- "minimum": 0,
- "type": "number"
- },
- "options": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "id": {
- "description": "Stable option id.",
- "minLength": 1,
- "type": "string"
- },
- "text": {
- "description": "Option text.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "id",
- "text"
- ],
- "type": "object"
- },
- "minItems": 2,
- "type": "array"
- },
- "question_markdown": {
- "minLength": 1,
- "type": "string"
- },
- "section_id": {
- "minLength": 1,
- "type": "string"
- },
- "stimulus_id_refs": {
- "anyOf": [
- {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "topics": {
- "anyOf": [
- {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "type": {
- "enum": [
- "mcq",
- "multi_select",
- "true_false"
- ],
- "type": "string"
- }
- },
- "required": [
- "kind",
- "id",
- "section_id",
- "type",
- "marks",
- "question_markdown",
- "options"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "blanks": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "label": {
- "type": "string"
- }
- },
- "required": [
- "id"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "grading": {
- "additionalProperties": false,
- "properties": {
- "correct_answer": {
- "type": "string"
- },
- "correct_answer_ids": {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- "key_points": {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- "model_answer": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "model_answer"
- ],
- "type": "object"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "question",
- "type": "string"
- },
- "marks": {
- "minimum": 0,
- "type": "number"
- },
- "question_markdown": {
- "minLength": 1,
- "type": "string"
- },
- "section_id": {
- "minLength": 1,
- "type": "string"
- },
- "stimulus_id_refs": {
- "anyOf": [
- {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "template_markdown": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "topics": {
- "anyOf": [
- {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "type": {
- "const": "fill_in_blank",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "id",
- "section_id",
- "type",
- "marks",
- "question_markdown"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "grading": {
- "additionalProperties": false,
- "properties": {
- "correct_answer": {
- "type": "string"
- },
- "correct_answer_ids": {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- "key_points": {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- "model_answer": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "model_answer"
- ],
- "type": "object"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "question",
- "type": "string"
- },
- "marks": {
- "minimum": 0,
- "type": "number"
- },
- "question_markdown": {
- "minLength": 1,
- "type": "string"
- },
- "section_id": {
- "minLength": 1,
- "type": "string"
- },
- "stimulus_id_refs": {
- "anyOf": [
- {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "topics": {
- "anyOf": [
- {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "type": {
- "enum": [
- "text_answer_short",
- "text_answer_long"
- ],
- "type": "string"
- }
- },
- "required": [
- "kind",
- "id",
- "section_id",
- "type",
- "marks",
- "question_markdown"
- ],
- "type": "object"
- }
- ]
- }
- ]
- },
- "minItems": 1,
- "type": "array"
- },
- "front_matter": {
- "additionalProperties": false,
- "properties": {
- "instructions_markdown": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "schema_version": {
- "const": "0.8",
- "type": "string"
- },
- "title": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "schema_version",
- "title",
- "content"
- ],
- "type": "object"
- }
- },
- "required": [
- "exam_json"
- ],
- "type": "object"
- },
- "description": {
- "description": "Optional description stored on the creation record.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "creation",
- "description": "Artifact kind. Only creation is writable in this MVP.",
- "type": "string"
- },
- "title": {
- "description": "Human-readable title for the created artifact.",
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "mockExam",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "title",
- "type",
- "content"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "content": {
- "additionalProperties": false,
- "description": "Note content.",
- "properties": {
- "html": {
- "description": "Complete HTML document for the note body (max 1 MiB UTF-8).",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "html"
- ],
- "type": "object"
- },
- "kind": {
- "const": "creation",
- "description": "Artifact kind. Only creation is writable in this MVP.",
- "type": "string"
- },
- "title": {
- "description": "Human-readable note title (Alpha creation store max 255 characters).",
- "maxLength": 255,
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "note",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "title",
- "type",
- "content"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "content": {
- "additionalProperties": false,
- "description": "Flashcard set content.",
- "properties": {
- "flashcards_json": {
- "additionalProperties": false,
- "properties": {
- "description": {
- "type": "string"
- },
- "flashcards": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "back": {
- "minLength": 1,
- "type": "string"
- },
- "front": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "front",
- "back"
- ],
- "type": "object"
- },
- "maxItems": 200,
- "minItems": 1,
- "type": "array"
- },
- "title": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "title",
- "description",
- "flashcards"
- ],
- "type": "object"
- }
- },
- "required": [
- "flashcards_json"
- ],
- "type": "object"
- },
- "description": {
- "description": "Optional description stored on the creation record.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "creation",
- "description": "Artifact kind. Only creation is writable in this MVP.",
- "type": "string"
- },
- "title": {
- "description": "Human-readable title for the created artifact.",
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "flashcard",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "title",
- "type",
- "content"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "additionalProperties": false,
+ "description": "Quiz content.",
+ "properties": {
+ "course_id": {
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "questions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "answer": {
+ "description": "Answer option text.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "is_correct": {
+ "description": "True for the correct option or options.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "answer",
+ "is_correct"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ },
+ "difficulty": {
+ "enum": [
+ "EASY",
+ "MEDIUM",
+ "HARD"
+ ],
+ "type": "string"
+ },
+ "explanation": {
+ "description": "Required explanation for the correct answer (Core quiz API requires it, max 255 characters).",
+ "maxLength": 255,
+ "minLength": 1,
+ "type": "string"
+ },
+ "question": {
+ "description": "Question prompt shown to the learner.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "question",
+ "answers",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "questions"
+ ],
+ "type": "object"
+ },
+ "description": {
+ "description": "Optional description stored on the creation record.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "creation",
+ "description": "Artifact kind. Only creation is writable in this MVP.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Human-readable quiz title (Core Labs API requires 20-255 characters).",
+ "maxLength": 255,
+ "minLength": 20,
+ "type": "string"
+ },
+ "type": {
+ "const": "quiz",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "title",
+ "type",
+ "content"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "additionalProperties": false,
+ "description": "Mock exam content.",
+ "properties": {
+ "exam_json": {
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "items": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "instructions": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "section",
+ "type": "string"
+ },
+ "question_type": {
+ "description": "Frontend-supported KnowledgeTest question type. Use mcq, not multiple_choice.",
+ "enum": [
+ "mcq",
+ "multi_select",
+ "true_false",
+ "fill_in_blank",
+ "text_answer_short",
+ "text_answer_long"
+ ],
+ "type": "string"
+ },
+ "title": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "id",
+ "question_type"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "stimulus",
+ "type": "string"
+ },
+ "stimulus_markdown": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "title": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "id",
+ "stimulus_markdown"
+ ],
+ "type": "object"
+ },
+ {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "grading": {
+ "additionalProperties": false,
+ "properties": {
+ "correct_answer": {
+ "type": "string"
+ },
+ "correct_answer_ids": {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "key_points": {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "model_answer": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "model_answer"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "question",
+ "type": "string"
+ },
+ "marks": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "options": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "description": "Stable option id.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "text": {
+ "description": "Option text.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "text"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ },
+ "question_markdown": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "section_id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "stimulus_id_refs": {
+ "anyOf": [
+ {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "topics": {
+ "anyOf": [
+ {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "enum": [
+ "mcq",
+ "multi_select",
+ "true_false"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "id",
+ "section_id",
+ "type",
+ "marks",
+ "question_markdown",
+ "options"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "blanks": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "grading": {
+ "additionalProperties": false,
+ "properties": {
+ "correct_answer": {
+ "type": "string"
+ },
+ "correct_answer_ids": {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "key_points": {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "model_answer": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "model_answer"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "question",
+ "type": "string"
+ },
+ "marks": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "question_markdown": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "section_id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "stimulus_id_refs": {
+ "anyOf": [
+ {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "template_markdown": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "topics": {
+ "anyOf": [
+ {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "const": "fill_in_blank",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "id",
+ "section_id",
+ "type",
+ "marks",
+ "question_markdown"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "grading": {
+ "additionalProperties": false,
+ "properties": {
+ "correct_answer": {
+ "type": "string"
+ },
+ "correct_answer_ids": {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "key_points": {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "model_answer": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "model_answer"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "question",
+ "type": "string"
+ },
+ "marks": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "question_markdown": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "section_id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "stimulus_id_refs": {
+ "anyOf": [
+ {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "topics": {
+ "anyOf": [
+ {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "enum": [
+ "text_answer_short",
+ "text_answer_long"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "id",
+ "section_id",
+ "type",
+ "marks",
+ "question_markdown"
+ ],
+ "type": "object"
+ }
+ ]
+ }
+ ]
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "front_matter": {
+ "additionalProperties": false,
+ "properties": {
+ "instructions_markdown": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "schema_version": {
+ "const": "0.8",
+ "type": "string"
+ },
+ "title": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "schema_version",
+ "title",
+ "content"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "exam_json"
+ ],
+ "type": "object"
+ },
+ "description": {
+ "description": "Optional description stored on the creation record.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "creation",
+ "description": "Artifact kind. Only creation is writable in this MVP.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Human-readable title for the created artifact.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "mockExam",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "title",
+ "type",
+ "content"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "additionalProperties": false,
+ "description": "Note content.",
+ "properties": {
+ "html": {
+ "description": "Complete HTML document for the note body (max 1 MiB UTF-8).",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "html"
+ ],
+ "type": "object"
+ },
+ "kind": {
+ "const": "creation",
+ "description": "Artifact kind. Only creation is writable in this MVP.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Human-readable note title (Alpha creation store max 255 characters).",
+ "maxLength": 255,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "note",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "title",
+ "type",
+ "content"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "content": {
+ "additionalProperties": false,
+ "description": "Flashcard set content.",
+ "properties": {
+ "flashcards_json": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "flashcards": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "back": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "front": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "front",
+ "back"
+ ],
+ "type": "object"
+ },
+ "maxItems": 200,
+ "minItems": 1,
+ "type": "array"
+ },
+ "title": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "title",
+ "description",
+ "flashcards"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "flashcards_json"
+ ],
+ "type": "object"
+ },
+ "description": {
+ "description": "Optional description stored on the creation record.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "creation",
+ "description": "Artifact kind. Only creation is writable in this MVP.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Human-readable title for the created artifact.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "flashcard",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "title",
+ "type",
+ "content"
+ ],
+ "type": "object"
+ }
+]