{"manifestVersion":"1","app":{"name":"school","version":"0.18.3","status":"live"},"actions":[{"id":"system.school.exam-class-roll-rules.create.v1","title":"A new version of a year’s class-roll rule: which exams count and their weights, the basis (total, or GPA then total), the ordered tie-breaking subjects, and the scope positions are counted in.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"basis":{"type":"string","enum":["total","gpa_then_total"]},"scope":{"type":"string","enum":["class","section","group"]},"exams":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"weightPercent":{"type":"integer","minimum":1,"maximum":100}},"required":["examId","weightPercent"],"additionalProperties":false}},"tieBreakerSubjectIds":{"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["orgId","actingUserId","requestId","academicYearId","basis","scope","exams","tieBreakerSubjectIds"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ruleId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["ruleId","version"],"additionalProperties":false}},{"id":"system.school.exam-fourth-subjects.get.v1","title":"The fourth subject each of up to 200 students has in a year; a student without one is absent from the reply.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonIds":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["orgId","actingUserId","academicYearId","studentPersonIds"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"choices":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["studentPersonId","subjectId"],"additionalProperties":false}}},"required":["choices"],"additionalProperties":false}},{"id":"system.school.exam-fourth-subjects.update.v1","title":"Which optional subject counts as each student’s fourth subject in a year; null clears it.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"choices":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["studentPersonId","subjectId"],"additionalProperties":false}}},"required":["orgId","actingUserId","requestId","academicYearId","choices"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["updated"],"additionalProperties":false}},{"id":"system.school.exam-grading-scales.create.v1","title":"A new version of a year’s grading scale. Published results keep the version they were computed under.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"bands":{"minItems":2,"maxItems":20,"type":"array","items":{"type":"object","properties":{"minPercentCenti":{"type":"integer","minimum":0,"maximum":10000},"letter":{"type":"string","minLength":1,"maxLength":4},"gradePointCenti":{"type":"integer","minimum":0,"maximum":500}},"required":["minPercentCenti","letter","gradePointCenti"],"additionalProperties":false}},"note":{"type":"string","maxLength":500}},"required":["orgId","actingUserId","requestId","academicYearId","bands","note"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"scaleId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["scaleId","version"],"additionalProperties":false}},{"id":"system.school.exam-mark-revisions.create.v1","title":"Change a mark on a live published paper, with a reason; the previous value is kept and the result is republished as a new version. Only the subject teacher, as school answers; a paper whose result is not live is refused.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"componentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"obtainedCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["orgId","actingUserId","requestId","componentId","studentPersonId","obtainedCenti","reason"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revisionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"publicationVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["revisionId","publicationVersion"],"additionalProperties":false}},{"id":"system.school.exam-marks.update.v1","title":"Enter up to 200 marks for one paper; each is written on its own, so a batch cut off half way keeps what arrived and a repeat writes the same values. Refused while mark entry is not open, once the result is published, above a component’s maximum, and for a student school does not place in the section.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"entries":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"componentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"obtainedCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]}},"required":["componentId","studentPersonId","obtainedCenti"],"additionalProperties":false}}},"required":["orgId","actingUserId","requestId","paperId","entries"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"saved":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unchanged":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["saved","unchanged"],"additionalProperties":false}},{"id":"system.school.exam-merit-orders.create.v1","title":"Rank a year’s students under the newest class-roll rule and keep the order with its rule version, so a later rule change never alters a rollover that used it. school sends the students with their scope keys. Unavailable is an error, never a stale order.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"students":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"object","properties":{"personId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"scopeKey":{"type":"string","minLength":1,"maxLength":120}},"required":["personId","scopeKey"],"additionalProperties":false}}},"required":["orgId","actingUserId","requestId","academicYearId","students"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orderId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ruleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ranked":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["orderId","ruleVersion","ranked"],"additionalProperties":false}},{"id":"system.school.exam-merit-orders.get.v1","title":"A page of a kept merit order, by scope and position: the one named, or the newest kept for a year. authz because the yearly rollover assigns rolls from it: unavailable is an error, never a stale order, and a year with no kept order is not_found.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"orderId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orderId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"keptAt":{"type":"string"},"ruleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"places":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"personId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"scopeKey":{"type":"string","maxLength":120},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["personId","scopeKey","position"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["orderId","keptAt","ruleVersion","places","nextCursor"],"additionalProperties":false}},{"id":"system.school.exam-my-papers.get.v1","title":"The papers of the offerings school says the acting user teaches, across the year’s exams that are not drafts, with each exam’s mark-entry status and whether the paper’s result is published.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["orgId","actingUserId","on"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"papers":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectOfferingId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"className":{"type":"string","maxLength":120},"sectionName":{"type":"string","maxLength":120},"isOptional":{"type":"boolean"},"heldOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"components":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"componentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["written","mcq","practical","continuous"]},"maxCenti":{"type":"integer","minimum":0,"maximum":100000},"passCenti":{"type":"integer","minimum":0,"maximum":100000}},"required":["componentId","kind","maxCenti","passCenti"],"additionalProperties":false}},"examName":{"type":"string","maxLength":120},"examStatus":{"type":"string","enum":["draft","marks_open","marks_closed"]},"published":{"type":"boolean"}},"required":["paperId","examId","sectionId","subjectOfferingId","subjectId","subjectName","className","sectionName","isOptional","heldOn","components","examName","examStatus","published"],"additionalProperties":false}}},"required":["papers"],"additionalProperties":false}},{"id":"system.school.exam-paper-marks.get.v1","title":"A paper’s components and the marks entered for it, and whether its result is published (a published paper changes only by revision). School must answer that the user is the subject teacher of the paper; unavailable is unavailable.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","paperId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paper":{"type":"object","properties":{"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectOfferingId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"className":{"type":"string","maxLength":120},"sectionName":{"type":"string","maxLength":120},"isOptional":{"type":"boolean"},"heldOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"components":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"componentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["written","mcq","practical","continuous"]},"maxCenti":{"type":"integer","minimum":0,"maximum":100000},"passCenti":{"type":"integer","minimum":0,"maximum":100000}},"required":["componentId","kind","maxCenti","passCenti"],"additionalProperties":false}}},"required":["paperId","examId","sectionId","subjectOfferingId","subjectId","subjectName","className","sectionName","isOptional","heldOn","components"],"additionalProperties":false},"published":{"type":"boolean"},"examStatus":{"type":"string","enum":["draft","marks_open","marks_closed"]},"marks":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"markId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"componentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"obtainedCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"revision":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["markId","componentId","studentPersonId","obtainedCenti","revision"],"additionalProperties":false}}},"required":["paper","published","examStatus","marks"],"additionalProperties":false}},{"id":"system.school.exam-papers.create.v1","title":"The papers of an exam, one per section’s subject offering, with their components; a pass mark not given is the year’s component pass percent. An offering already on the exam is left as it is.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"papers":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectOfferingId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","minLength":1,"maxLength":120},"className":{"type":"string","minLength":1,"maxLength":120},"sectionName":{"type":"string","minLength":1,"maxLength":120},"isOptional":{"type":"boolean"},"heldOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"components":{"minItems":1,"maxItems":4,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["written","mcq","practical","continuous"]},"maxCenti":{"type":"integer","minimum":1,"maximum":100000},"passCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]}},"required":["kind","maxCenti","passCenti"],"additionalProperties":false}}},"required":["sectionId","subjectOfferingId","subjectId","subjectName","className","sectionName","isOptional","heldOn","components"],"additionalProperties":false}}},"required":["orgId","actingUserId","requestId","examId","papers"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"existing":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["created","existing"],"additionalProperties":false}},{"id":"system.school.exam-papers.list.v1","title":"An exam’s papers with their components, per section, for the exam manager.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","examId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"papers":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectOfferingId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"className":{"type":"string","maxLength":120},"sectionName":{"type":"string","maxLength":120},"isOptional":{"type":"boolean"},"heldOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"components":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"componentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["written","mcq","practical","continuous"]},"maxCenti":{"type":"integer","minimum":0,"maximum":100000},"passCenti":{"type":"integer","minimum":0,"maximum":100000}},"required":["componentId","kind","maxCenti","passCenti"],"additionalProperties":false}}},"required":["paperId","examId","sectionId","subjectOfferingId","subjectId","subjectName","className","sectionName","isOptional","heldOn","components"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["papers","nextCursor"],"additionalProperties":false}},{"id":"system.school.exam-publications.create.v1","title":"Publish a section’s result: the computation is frozen with the scale and rules versions used, the previous version is superseded, and the event goes out with the commit. Refused while a mark is missing.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"students":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"personId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":200},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]}},"required":["personId","name","rollNumber"],"additionalProperties":false}},"note":{"type":"string","maxLength":500}},"required":["orgId","actingUserId","requestId","examId","sectionId","students","note"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["published","unpublished","superseded"]},"publishedAt":{"type":"string"},"unpublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"unpublishReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"scaleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rulesVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["publicationId","examId","sectionId","version","status","publishedAt","unpublishedAt","unpublishReason","scaleVersion","rulesVersion"],"additionalProperties":false}},{"id":"system.school.exam-publications.list.v1","title":"Every publication version of an exam, per section, newest first.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","examId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"publications":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["published","unpublished","superseded"]},"publishedAt":{"type":"string"},"unpublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"unpublishReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"scaleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rulesVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["publicationId","examId","sectionId","version","status","publishedAt","unpublishedAt","unpublishReason","scaleVersion","rulesVersion"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["publications","nextCursor"],"additionalProperties":false}},{"id":"system.school.exam-publications.update.v1","title":"Unpublish a section’s result with a reason; nothing is deleted, and students and guardians stop seeing it.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["orgId","actingUserId","requestId","publicationId","reason"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["published","unpublished","superseded"]},"publishedAt":{"type":"string"},"unpublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"unpublishReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"scaleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rulesVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["publicationId","examId","sectionId","version","status","publishedAt","unpublishedAt","unpublishReason","scaleVersion","rulesVersion"],"additionalProperties":false}},{"id":"system.school.exam-result-previews.get.v1","title":"What publishing a section’s result would show, computed from the marks and the year’s newest rules — nothing is stored. Lists the students with a mark missing.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"students":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"personId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":200},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]}},"required":["personId","name","rollNumber"],"additionalProperties":false}}},"required":["orgId","actingUserId","examId","sectionId","students"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"results":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"totalObtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalMaxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"gpaCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"passed":{"type":"boolean"},"position":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"subjects":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"isFourthSubject":{"type":"boolean"},"obtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"percentCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"gradePointCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"passed":{"type":"boolean"},"failedComponents":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":20}}},"required":["subjectId","subjectName","isFourthSubject","obtainedCenti","maxCenti","percentCenti","letter","gradePointCenti","passed","failedComponents"],"additionalProperties":false}}},"required":["studentPersonId","studentName","rollNumber","totalObtainedCenti","totalMaxCenti","gpaCenti","letter","passed","position","subjects"],"additionalProperties":false}},"missing":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120}},"required":["studentPersonId","subjectName"],"additionalProperties":false}}},"required":["results","missing"],"additionalProperties":false}},{"id":"system.school.exam-result-rules.create.v1","title":"A new version of a year’s result rules. Published results keep the version they were computed under.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rules":{"type":"object","properties":{"componentPassPercent":{"type":"integer","minimum":1,"maximum":100},"fourthSubjectDeductionCenti":{"type":"integer","minimum":0,"maximum":500},"gpaCapCenti":{"type":"integer","minimum":100,"maximum":500},"compulsoryFailZeroesGpa":{"type":"boolean"}},"required":["componentPassPercent","fourthSubjectDeductionCenti","gpaCapCenti","compulsoryFailZeroesGpa"],"additionalProperties":false},"note":{"type":"string","maxLength":500}},"required":["orgId","actingUserId","requestId","academicYearId","rules","note"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ruleSetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["ruleSetId","version"],"additionalProperties":false}},{"id":"system.school.exam-results.get.v1","title":"A publication’s frozen results for the whole section.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","publicationId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"publication":{"type":"object","properties":{"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["published","unpublished","superseded"]},"publishedAt":{"type":"string"},"unpublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"unpublishReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"scaleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rulesVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["publicationId","examId","sectionId","version","status","publishedAt","unpublishedAt","unpublishReason","scaleVersion","rulesVersion"],"additionalProperties":false},"results":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"totalObtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalMaxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"gpaCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"passed":{"type":"boolean"},"position":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"subjects":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"isFourthSubject":{"type":"boolean"},"obtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"percentCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"gradePointCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"passed":{"type":"boolean"},"failedComponents":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":20}}},"required":["subjectId","subjectName","isFourthSubject","obtainedCenti","maxCenti","percentCenti","letter","gradePointCenti","passed","failedComponents"],"additionalProperties":false}}},"required":["studentPersonId","studentName","rollNumber","totalObtainedCenti","totalMaxCenti","gpaCenti","letter","passed","position","subjects"],"additionalProperties":false}}},"required":["publication","results"],"additionalProperties":false}},{"id":"system.school.exam-review-policies.create.v1","title":"A new version of a year’s review policy: free, or a fee per paper charged through fees, and how many days after publication a request is taken.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mode":{"type":"string","enum":["free","fee"]},"windowDays":{"type":"integer","minimum":1,"maximum":365}},"required":["orgId","actingUserId","requestId","academicYearId","mode","windowDays"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["version"],"additionalProperties":false}},{"id":"system.school.exam-review-requests.create.v1","title":"Ask for a paper of a published result to be reviewed, one request per paper. Under a fee policy fees raises the charge and the request waits for payment. A student asks for themselves, a guardian for their ward (school answers both); outside the policy window, or on a result not live, it is refused.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperIds":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["orgId","actingUserId","requestId","publicationId","studentPersonId","paperIds","reason"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requests":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"status":{"type":"string","enum":["requested","awaiting_payment","accepted","in_review","upheld","rejected","withdrawn"]},"reason":{"type":"string","maxLength":500},"feeMode":{"type":"string","enum":["free","fee"]},"resolution":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"events":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"toStatus":{"type":"string","enum":["requested","awaiting_payment","accepted","in_review","upheld","rejected","withdrawn"]},"note":{"type":"string","maxLength":500},"at":{"type":"string"}},"required":["toStatus","note","at"],"additionalProperties":false}}},"required":["requestId","publicationId","paperId","subjectName","studentPersonId","studentName","status","reason","feeMode","resolution","createdAt","events"],"additionalProperties":false}}},"required":["requests"],"additionalProperties":false}},{"id":"system.school.exam-review-requests.list.v1","title":"Review requests with their history: one student’s (student and guardian portals, as school answers), or those on the papers the teacher teaches, optionally for one exam. A request awaiting payment is accepted here once fees reports its charge paid.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"status":{"type":"string","enum":["requested","awaiting_payment","accepted","in_review","upheld","rejected","withdrawn"]},"reason":{"type":"string","maxLength":500},"feeMode":{"type":"string","enum":["free","fee"]},"resolution":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"events":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"toStatus":{"type":"string","enum":["requested","awaiting_payment","accepted","in_review","upheld","rejected","withdrawn"]},"note":{"type":"string","maxLength":500},"at":{"type":"string"}},"required":["toStatus","note","at"],"additionalProperties":false}}},"required":["requestId","publicationId","paperId","subjectName","studentPersonId","studentName","status","reason","feeMode","resolution","createdAt","events"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requests","nextCursor"],"additionalProperties":false}},{"id":"system.school.exam-review-requests.update.v1","title":"Move a review request: withdraw (the requester, before it is accepted — withdrawing one awaiting payment withdraws every paper on that charge, and one whose charge is already paid is accepted instead), start review, uphold with the corrected marks and a reason (a revision per changed mark and a republished result), or reject an accepted or in-review request with a reason (the paper’s teacher).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"reviewRequestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"action":{"type":"string","enum":["withdraw","start","uphold","reject"]},"reason":{"type":"string","maxLength":500},"corrections":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"componentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"obtainedCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]}},"required":["componentId","obtainedCenti"],"additionalProperties":false}}},"required":["orgId","actingUserId","requestId","reviewRequestId","action","reason","corrections"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"status":{"type":"string","enum":["requested","awaiting_payment","accepted","in_review","upheld","rejected","withdrawn"]},"reason":{"type":"string","maxLength":500},"feeMode":{"type":"string","enum":["free","fee"]},"resolution":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"events":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"toStatus":{"type":"string","enum":["requested","awaiting_payment","accepted","in_review","upheld","rejected","withdrawn"]},"note":{"type":"string","maxLength":500},"at":{"type":"string"}},"required":["toStatus","note","at"],"additionalProperties":false}}},"required":["requestId","publicationId","paperId","subjectName","studentPersonId","studentName","status","reason","feeMode","resolution","createdAt","events"],"additionalProperties":false}},{"id":"system.school.exam-seat-plans.create.v1","title":"A new version of an exam’s seat plan: rooms filled in order with sections interleaved round-robin by roll, absentees left out, and every student who does not fit listed as overflow rather than dropped.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rooms":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"roomId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"capacity":{"type":"integer","minimum":1,"maximum":1000}},"required":["roomId","name","capacity"],"additionalProperties":false}},"students":{"minItems":1,"maxItems":5000,"type":"array","items":{"type":"object","properties":{"personId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":200},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionLabel":{"type":"string","minLength":1,"maxLength":240}},"required":["personId","name","rollNumber","sectionId","sectionLabel"],"additionalProperties":false}},"absentPersonIds":{"maxItems":5000,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["orgId","actingUserId","requestId","examId","rooms","students","absentPersonIds"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overflow":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["version","seated","overflow"],"additionalProperties":false}},{"id":"system.school.exam-seat-plans.get.v1","title":"A page of one version of an exam’s seat plan (the newest when no version is given), overflow last.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["orgId","actingUserId","examId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"versions":{"maxItems":1000,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"seats":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"roomId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"roomName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"seatNumber":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"sectionLabel":{"type":"string","maxLength":240},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]}},"required":["roomId","roomName","seatNumber","studentPersonId","studentName","sectionLabel","rollNumber"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["version","versions","seats","nextCursor"],"additionalProperties":false}},{"id":"system.school.exam-setup.get.v1","title":"One academic year’s exam setup for the school’s exam manager: the newest grading scale and result rules (the BD defaults are written on first read), the exams, the review-fee policy and the class-roll rule. school decides the manager holds school:exams:view before it asks.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","academicYearId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"scale":{"type":"object","properties":{"scaleId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bands":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"minPercentCenti":{"type":"integer","minimum":0,"maximum":10000},"letter":{"type":"string","minLength":1,"maxLength":4},"gradePointCenti":{"type":"integer","minimum":0,"maximum":500}},"required":["minPercentCenti","letter","gradePointCenti"],"additionalProperties":false}}},"required":["scaleId","version","bands"],"additionalProperties":false},"rules":{"type":"object","properties":{"componentPassPercent":{"type":"integer","minimum":1,"maximum":100},"fourthSubjectDeductionCenti":{"type":"integer","minimum":0,"maximum":500},"gpaCapCenti":{"type":"integer","minimum":100,"maximum":500},"compulsoryFailZeroesGpa":{"type":"boolean"},"ruleSetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["componentPassPercent","fourthSubjectDeductionCenti","gpaCapCenti","compulsoryFailZeroesGpa","ruleSetId","version"],"additionalProperties":false},"exams":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","maxLength":120},"kind":{"type":"string","enum":["term","final","grand_final"]},"status":{"type":"string","enum":["draft","marks_open","marks_closed"]},"startsOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"endsOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"grandFinalParts":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"sourceExamId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"weightPercent":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["sourceExamId","weightPercent"],"additionalProperties":false}}},"required":["examId","name","kind","status","startsOn","endsOn","grandFinalParts"],"additionalProperties":false}},"reviewPolicy":{"type":"object","properties":{"mode":{"type":"string","enum":["free","fee"]},"windowDays":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["mode","windowDays"],"additionalProperties":false},"classRollRule":{"anyOf":[{"type":"object","properties":{"ruleId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"basis":{"type":"string","enum":["total","gpa_then_total"]},"scope":{"type":"string","enum":["class","section","group"]},"exams":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"weightPercent":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["examId","weightPercent"],"additionalProperties":false}},"tieBreakerSubjectIds":{"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["ruleId","version","basis","scope","exams","tieBreakerSubjectIds"],"additionalProperties":false},{"type":"null"}]}},"required":["scale","rules","exams","reviewPolicy","classRollRule"],"additionalProperties":false}},{"id":"system.school.exam-student-results.get.v1","title":"One student’s published results in a year, newest first, each with the version it replaced, the student’s mark revisions, and — while the school’s review window is open on a live result — the review fee mode, when the window closes and the papers a review can be asked for. From the student and guardian portals only live publications are returned — never a draft, an unpublished or a superseded version; school answers whether the user is this student or their guardian, and unavailable is unavailable.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","studentPersonId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"results":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"publication":{"type":"object","properties":{"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["published","unpublished","superseded"]},"publishedAt":{"type":"string"},"unpublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"unpublishReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"scaleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rulesVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["publicationId","examId","sectionId","version","status","publishedAt","unpublishedAt","unpublishReason","scaleVersion","rulesVersion"],"additionalProperties":false},"examName":{"type":"string","maxLength":120},"examKind":{"type":"string","enum":["term","final","grand_final"]},"result":{"type":"object","properties":{"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"totalObtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalMaxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"gpaCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"passed":{"type":"boolean"},"position":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"subjects":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"isFourthSubject":{"type":"boolean"},"obtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"percentCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"gradePointCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"passed":{"type":"boolean"},"failedComponents":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":20}}},"required":["subjectId","subjectName","isFourthSubject","obtainedCenti","maxCenti","percentCenti","letter","gradePointCenti","passed","failedComponents"],"additionalProperties":false}}},"required":["studentPersonId","studentName","rollNumber","totalObtainedCenti","totalMaxCenti","gpaCenti","letter","passed","position","subjects"],"additionalProperties":false},"replacedVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"review":{"anyOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["free","fee"]},"closesAt":{"type":"string"},"papers":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["paperId","subjectId"],"additionalProperties":false}}},"required":["mode","closesAt","papers"],"additionalProperties":false},{"type":"null"}]},"revisions":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"revisionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"componentKind":{"type":"string","enum":["written","mcq","practical","continuous"]},"previousCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"newCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"reason":{"type":"string","maxLength":500},"source":{"type":"string","enum":["correction","review_request"]},"revisedAt":{"type":"string"}},"required":["revisionId","paperId","subjectName","componentKind","previousCenti","newCenti","reason","source","revisedAt"],"additionalProperties":false}}},"required":["publication","examName","examKind","result","replacedVersion","review","revisions"],"additionalProperties":false}}},"required":["results"],"additionalProperties":false}},{"id":"system.school.exam-student-revisions.get.v1","title":"Every revision of one student’s marks in an exam on the papers the teacher teaches, with its reason. Students and guardians read revisions inside student-results.get.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","studentPersonId","examId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revisions":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"revisionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"componentKind":{"type":"string","enum":["written","mcq","practical","continuous"]},"previousCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"newCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"reason":{"type":"string","maxLength":500},"source":{"type":"string","enum":["correction","review_request"]},"revisedAt":{"type":"string"}},"required":["revisionId","paperId","subjectName","componentKind","previousCenti","newCenti","reason","source","revisedAt"],"additionalProperties":false}}},"required":["revisions"],"additionalProperties":false}},{"id":"system.school.exams.create.v1","title":"An exam in a year; a grand final names the exams it weighs and their weights, which add to 100.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["term","final","grand_final"]},"startsOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"endsOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"grandFinalParts":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"sourceExamId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"weightPercent":{"type":"integer","minimum":1,"maximum":100}},"required":["sourceExamId","weightPercent"],"additionalProperties":false}}},"required":["orgId","actingUserId","requestId","academicYearId","name","kind","startsOn","endsOn","grandFinalParts"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["examId"],"additionalProperties":false}},{"id":"system.school.exams.update.v1","title":"Open or close mark entry for an exam, or change its dates. Status only moves forward.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["draft","marks_open","marks_closed"]},"startsOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"endsOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]}},"required":["orgId","actingUserId","requestId","examId","status","startsOn","endsOn"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["draft","marks_open","marks_closed"]}},"required":["examId","status"],"additionalProperties":false}},{"id":"system.school.fee-invoices.list.v1","title":"A page of one student’s fee invoices for the student and guardian portals. fees decides per request that the acting user may see this student: from the student portal, school must answer that the user is this student; from the guardian portal, people must answer that the user is signed in as this student’s guardian AND school’s own guardian_links must record that guardian against a current student, exactly as ward-day requires — people alone is not enough, or detaching a guardian in school would not revoke their fee access. A user who is neither is not_found, any other caller is forbidden, and either answer being unavailable is unavailable — never a cached grant (D36).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","studentPersonId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoices":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"invoiceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"string","maxLength":32},"period":{"type":"string","maxLength":32},"status":{"type":"string","enum":["issued","paid","cancelled"]},"issuedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"dueOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"totalPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"paidPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"creditedPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"outstandingPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"items":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"description":{"type":"string","maxLength":200},"netPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"waivedPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"}},"required":["description","netPaisa","waivedPaisa"],"additionalProperties":false}}},"required":["invoiceId","number","period","status","issuedOn","dueOn","totalPaisa","paidPaisa","creditedPaisa","outstandingPaisa","items"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["invoices","nextCursor"],"additionalProperties":false}},{"id":"system.school.my-history-invoices.list.v1","title":"A page of the acting user’s own fee statement at one school, read-only, current or former. Authorised through the student record whose sign-in is the acting user — never through an invoice’s person id alone.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":20},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoices":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"invoiceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"string","maxLength":32},"period":{"type":"string","maxLength":32},"status":{"type":"string","enum":["issued","paid","cancelled"]},"issuedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"dueOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"totalPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"paidPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"creditedPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"outstandingPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"items":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"description":{"type":"string","maxLength":200},"netPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"waivedPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"}},"required":["description","netPaisa","waivedPaisa"],"additionalProperties":false}}},"required":["invoiceId","number","period","status","issuedOn","dueOn","totalPaisa","paidPaisa","creditedPaisa","outstandingPaisa","items"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["invoices","nextCursor"],"additionalProperties":false}},{"id":"system.school.my-history-record.get.v1","title":"The acting user’s own record at one school, read-only: their placements across every year (student) and their employment dates and designation (staff), current or former. Authorised by the record’s sign-in being the acting user — never by org membership and never by an id in the request. A school where the user holds no record, and a school that does not exist, answer the same not_found.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"student":{"anyOf":[{"type":"object","properties":{"joinedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"leftOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"admissionNumber":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"placements":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"enrolmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"yearLabel":{"type":"string","maxLength":64},"className":{"type":"string","maxLength":120},"sectionName":{"type":"string","maxLength":120},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"status":{"type":"string","enum":["active","transferred","completed","promoted","retained","withdrawn","suspended"]},"startsOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endsOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]}},"required":["enrolmentId","academicYearId","yearLabel","className","sectionName","rollNumber","status","startsOn","endsOn"],"additionalProperties":false}}},"required":["joinedOn","leftOn","admissionNumber","placements"],"additionalProperties":false},{"type":"null"}]},"staff":{"anyOf":[{"type":"object","properties":{"joinedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"leftOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"employeeNumber":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"designation":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["joinedOn","leftOn","employeeNumber","designation"],"additionalProperties":false},{"type":"null"}]}},"required":["student","staff"],"additionalProperties":false}},{"id":"system.school.my-history-results.get.v1","title":"The acting user’s live published results in one academic year at one school, read-only — no review window, no review request. The year must be one the user was placed in; any other is not_found. Authorised exactly as my-history-record.get.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","academicYearId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"results":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"publication":{"type":"object","properties":{"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["published","unpublished","superseded"]},"publishedAt":{"type":"string"},"unpublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"unpublishReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"scaleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rulesVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["publicationId","examId","sectionId","version","status","publishedAt","unpublishedAt","unpublishReason","scaleVersion","rulesVersion"],"additionalProperties":false},"examName":{"type":"string","maxLength":120},"examKind":{"type":"string","enum":["term","final","grand_final"]},"result":{"type":"object","properties":{"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"totalObtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalMaxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"gpaCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"passed":{"type":"boolean"},"position":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"subjects":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"isFourthSubject":{"type":"boolean"},"obtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"percentCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"gradePointCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"passed":{"type":"boolean"},"failedComponents":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":20}}},"required":["subjectId","subjectName","isFourthSubject","obtainedCenti","maxCenti","percentCenti","letter","gradePointCenti","passed","failedComponents"],"additionalProperties":false}}},"required":["studentPersonId","studentName","rollNumber","totalObtainedCenti","totalMaxCenti","gpaCenti","letter","passed","position","subjects"],"additionalProperties":false},"replacedVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"revisions":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"revisionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"componentKind":{"type":"string","enum":["written","mcq","practical","continuous"]},"previousCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"newCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"reason":{"type":"string","maxLength":500},"source":{"type":"string","enum":["correction","review_request"]},"revisedAt":{"type":"string"}},"required":["revisionId","paperId","subjectName","componentKind","previousCenti","newCenti","reason","source","revisedAt"],"additionalProperties":false}}},"required":["publication","examName","examKind","result","replacedVersion","revisions"],"additionalProperties":false}}},"required":["results"],"additionalProperties":false}},{"id":"system.school.my-history.get.v1","title":"Every school where the acting user holds a student or staff record, current or former, with the dates of each — the one read across schools, because a person’s past belongs to them after they leave. The subject is always the records whose sign-in is the acting user; the request carries no person or record id. No org membership is asked: a former member is, by definition, not a member (#1715).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["actingUserId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schools":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"student":{"anyOf":[{"type":"object","properties":{"joinedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"leftOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]}},"required":["joinedOn","leftOn"],"additionalProperties":false},{"type":"null"}]},"staff":{"anyOf":[{"type":"object","properties":{"joinedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"leftOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"designation":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["joinedOn","leftOn","designation"],"additionalProperties":false},{"type":"null"}]}},"required":["orgId","student","staff"],"additionalProperties":false}}},"required":["schools"],"additionalProperties":false}},{"id":"system.school.section-roster.list.v1","title":"A page of the students currently placed in one section, for a teacher assigned to that section in the running year. Anyone else — another teacher, a non-member, a section of another school — gets not_found. Person ids and roll numbers only; names come from people.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200}},"required":["orgId","actingUserId","sectionId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"students":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"enrolmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"personId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]}},"required":["enrolmentId","personId","rollNumber"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["students","nextCursor"],"additionalProperties":false}},{"id":"system.school.section-routine.get.v1","title":"A section's week of routine slots as of a date, for a current student placed in that section in the running year. Anyone else gets not_found. Teacher person ids only — names come from people.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["orgId","actingUserId","sectionId","on"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"week":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"weekday":{"type":"integer","minimum":1,"maximum":7},"periodName":{"type":"string","maxLength":120},"startsAt":{"type":"string","maxLength":8},"endsAt":{"type":"string","maxLength":8},"subjectName":{"type":"string","maxLength":120},"teacherPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["weekday","periodName","startsAt","endsAt","subjectName","teacherPersonId"],"additionalProperties":false}}},"required":["week"],"additionalProperties":false}},{"id":"system.school.student-of-user.get.v1","title":"The student record behind the acting user, and their open placement in the running academic year. The user is matched to a student by the sign-in their student invite linked — never by a person id in the request, which has none. Anyone who is not a current student gets studentId null and nothing else. Asked afresh every request: it decides whose placement, week and results the student portal shows (D36).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"studentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"personId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"placement":{"anyOf":[{"type":"object","properties":{"enrolmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"yearLabel":{"type":"string","maxLength":64},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"className":{"type":"string","maxLength":120},"sectionName":{"type":"string","maxLength":120},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"startsOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["enrolmentId","yearLabel","sectionId","className","sectionName","rollNumber","startsOn"],"additionalProperties":false},{"type":"null"}]}},"required":["studentId","personId","placement"],"additionalProperties":false}},{"id":"system.school.teaching.get.v1","title":"What the acting user teaches in the running academic year: the sections they are assigned to (class teacher or subject teacher) and their week of routine slots as of a date. The acting user is matched to a staff record by the sign-in their staff invite linked; anyone else gets staffId null and nothing else. Asked afresh every request — it decides which rosters the teacher portal offers (D36).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["orgId","actingUserId","on"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"staffId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"yearLabel":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"sections":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"className":{"type":"string","maxLength":120},"sectionName":{"type":"string","maxLength":120},"roles":{"maxItems":2,"type":"array","items":{"type":"string","enum":["class_teacher","subject_teacher"]}},"subjects":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"offeringId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120}},"required":["offeringId","subjectName"],"additionalProperties":false}}},"required":["sectionId","className","sectionName","roles","subjects"],"additionalProperties":false}},"week":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"weekday":{"type":"integer","minimum":1,"maximum":7},"periodName":{"type":"string","maxLength":120},"startsAt":{"type":"string","maxLength":8},"endsAt":{"type":"string","maxLength":8},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120}},"required":["weekday","periodName","startsAt","endsAt","sectionId","subjectName"],"additionalProperties":false}}},"required":["staffId","yearLabel","sections","week"],"additionalProperties":false}},{"id":"system.school.ward-day.get.v1","title":"One ward's open placement in the running year and their section's week as of a date, for a guardian. School asks people, per request, whether the acting user is linked to a guardian of that student in this org — never org membership, which a guardian does not have. Anyone else, and a ward who is not a student here, gets not_found; people unavailable is unavailable, never an answer (D36). Teacher person ids only; there are no names a guardian may resolve.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"wardPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["orgId","actingUserId","wardPersonId","on"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"placement":{"anyOf":[{"type":"object","properties":{"enrolmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"yearLabel":{"type":"string","maxLength":64},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"className":{"type":"string","maxLength":120},"sectionName":{"type":"string","maxLength":120},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"startsOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["enrolmentId","yearLabel","sectionId","className","sectionName","rollNumber","startsOn"],"additionalProperties":false},{"type":"null"}]},"week":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"weekday":{"type":"integer","minimum":1,"maximum":7},"periodName":{"type":"string","maxLength":120},"startsAt":{"type":"string","maxLength":8},"endsAt":{"type":"string","maxLength":8},"subjectName":{"type":"string","maxLength":120},"teacherPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["weekday","periodName","startsAt","endsAt","subjectName","teacherPersonId"],"additionalProperties":false}}},"required":["placement","week"],"additionalProperties":false}},{"id":"system.school.ward-history-invoices.list.v1","title":"A page of one ward’s fee statement at one school, read-only, for their guardian — authorised as ward-history-record.get, never by the person id alone.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":20},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"wardPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","wardPersonId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoices":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"invoiceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"string","maxLength":32},"period":{"type":"string","maxLength":32},"status":{"type":"string","enum":["issued","paid","cancelled"]},"issuedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"dueOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"totalPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"paidPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"creditedPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"outstandingPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"items":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"description":{"type":"string","maxLength":200},"netPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"},"waivedPaisa":{"type":"string","pattern":"^-?\\d{1,18}$"}},"required":["description","netPaisa","waivedPaisa"],"additionalProperties":false}}},"required":["invoiceId","number","period","status","issuedOn","dueOn","totalPaisa","paidPaisa","creditedPaisa","outstandingPaisa","items"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["invoices","nextCursor"],"additionalProperties":false}},{"id":"system.school.ward-history-record.get.v1","title":"One ward’s record at one school for their guardian, read-only, whether the ward is still a student there or has left. Authorised per request as ward-day is — people must answer that the acting user is signed in as this child’s guardian AND school’s own guardian_links must record that guardian — but without requiring the student to be current. It ends when the guardian link is removed. Anyone else is not_found; people unavailable is unavailable.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"wardPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","wardPersonId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"student":{"type":"object","properties":{"joinedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"leftOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"admissionNumber":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"placements":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"enrolmentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"yearLabel":{"type":"string","maxLength":64},"className":{"type":"string","maxLength":120},"sectionName":{"type":"string","maxLength":120},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"status":{"type":"string","enum":["active","transferred","completed","promoted","retained","withdrawn","suspended"]},"startsOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endsOn":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]}},"required":["enrolmentId","academicYearId","yearLabel","className","sectionName","rollNumber","status","startsOn","endsOn"],"additionalProperties":false}}},"required":["joinedOn","leftOn","admissionNumber","placements"],"additionalProperties":false}},"required":["student"],"additionalProperties":false}},{"id":"system.school.ward-history-results.get.v1","title":"One ward’s live published results in one of the years they were placed in, read-only, for their guardian — authorised as ward-history-record.get. No review window and no review request.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"actingUserId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"wardPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["orgId","actingUserId","wardPersonId","academicYearId"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"results":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"publication":{"type":"object","properties":{"publicationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"examId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["published","unpublished","superseded"]},"publishedAt":{"type":"string"},"unpublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"unpublishReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"scaleVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rulesVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["publicationId","examId","sectionId","version","status","publishedAt","unpublishedAt","unpublishReason","scaleVersion","rulesVersion"],"additionalProperties":false},"examName":{"type":"string","maxLength":120},"examKind":{"type":"string","enum":["term","final","grand_final"]},"result":{"type":"object","properties":{"studentPersonId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"studentName":{"type":"string","maxLength":200},"rollNumber":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"totalObtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalMaxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"gpaCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"passed":{"type":"boolean"},"position":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"subjects":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"isFourthSubject":{"type":"boolean"},"obtainedCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"percentCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"letter":{"type":"string","maxLength":4},"gradePointCenti":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"passed":{"type":"boolean"},"failedComponents":{"maxItems":40,"type":"array","items":{"type":"string","maxLength":20}}},"required":["subjectId","subjectName","isFourthSubject","obtainedCenti","maxCenti","percentCenti","letter","gradePointCenti","passed","failedComponents"],"additionalProperties":false}}},"required":["studentPersonId","studentName","rollNumber","totalObtainedCenti","totalMaxCenti","gpaCenti","letter","passed","position","subjects"],"additionalProperties":false},"replacedVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"revisions":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"revisionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"paperId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectName":{"type":"string","maxLength":120},"componentKind":{"type":"string","enum":["written","mcq","practical","continuous"]},"previousCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"newCenti":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"reason":{"type":"string","maxLength":500},"source":{"type":"string","enum":["correction","review_request"]},"revisedAt":{"type":"string"}},"required":["revisionId","paperId","subjectName","componentKind","previousCenti","newCenti","reason","source","revisedAt"],"additionalProperties":false}}},"required":["publication","examName","examKind","result","replacedVersion","revisions"],"additionalProperties":false}}},"required":["results"],"additionalProperties":false}},{"id":"system.school.wellknown.capabilities.v1","title":"The school capabilities manifest: metadata, callable actions with schemas, public routes, emitted events, and model field catalogs. Public metadata only — a manifest never carries tenant rows.","route":"/.well-known/capabilities","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"manifestVersion":{"type":"string","const":"1"},"app":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"version":{"type":"string","minLength":1},"status":{"type":"string","enum":["live","degraded"]}},"required":["name","version","status"],"additionalProperties":false},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^system\\.[a-z0-9]+(-[a-z0-9]+)*\\.[a-z0-9]+(-[a-z0-9]+)*\\.[a-z0-9]+(-[a-z0-9]+)*\\.v[1-9][0-9]*$"},"title":{"type":"string","minLength":1},"route":{"type":"string","pattern":"^\\/"},"inputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"outputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","title","inputSchema","outputSchema"],"additionalProperties":false}},"functionalities":{"type":"object","properties":{"publicRoutes":{"type":"array","items":{"type":"string","pattern":"^\\/"}},"auth":{"type":"object","properties":{"issuer":{"type":"string","format":"uri"},"authorizationEndpoint":{"type":"string","format":"uri"},"tokenEndpoint":{"type":"string","format":"uri"},"jwksUri":{"type":"string","format":"uri"}},"required":["issuer"],"additionalProperties":false},"webhooks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["publicRoutes","webhooks"],"additionalProperties":false},"events":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9][a-z0-9.-]*[a-z0-9]$"},"title":{"type":"string","minLength":1},"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["name","title","schema"],"additionalProperties":false}},"models":{"type":"object","propertyNames":{"type":"string","minLength":1},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","minLength":1},"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"excluded":{"type":"array","items":{"type":"string","minLength":1}}},"required":["title","schema","excluded"],"additionalProperties":false}}},"required":["manifestVersion","app","actions","functionalities","events"],"additionalProperties":false}}],"functionalities":{"publicRoutes":[],"webhooks":[]},"events":[{"name":"school.academic-year.changed","title":"school: academic year changed","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"yearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"change":{"type":"string","enum":["created","status-changed","edited"]},"status":{"type":"string","enum":["draft","active","closed"]},"changedAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["orgId","yearId","change","status","changedAt"],"additionalProperties":false}},{"name":"school.member-usage.recorded","title":"school: member usage recorded","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","minLength":1,"maxLength":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"chunk":{"type":"integer","minimum":0,"maximum":9007199254740991},"personIds":{"maxItems":1000,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["eventId","orgId","day","chunk","personIds"],"additionalProperties":false}},{"name":"school.audit.recorded","title":"school: audit recorded","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"orgId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"actorUserId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"actorKind":{"type":"string","enum":["user","api_key","service","system"]},"action":{"type":"string","minLength":1,"maxLength":160},"targetKind":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"targetId":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]},"outcome":{"type":"string","enum":["success","failure"]},"ip":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"requestId":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},{"type":"null"}]}},"required":["eventId","occurredAt","orgId","actorUserId","actorKind","action","targetKind","targetId","outcome","ip","userAgent","requestId","metadata"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}],"models":{"academic-year":{"title":"Academic-year fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"label":{"type":"string"},"startsOn":{"type":"string"},"endsOn":{"type":"string"},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","label","startsOn","endsOn","status","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId"]},"class":{"title":"Class fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"displayOrder":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","displayOrder","isActive","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","nameEn","nameBn"]},"academic-group":{"title":"Academic-group fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","isActive","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","nameEn","nameBn"]},"subject":{"title":"Subject fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"code":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"category":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","code","name","category","isActive","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","nameEn","nameBn"]},"classroom":{"title":"Classroom fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"capacity":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","capacity","isActive","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","nameEn","nameBn"]},"section":{"title":"Section fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"classId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"groupId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"name":{"type":"string"},"capacity":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"classroomId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","academicYearId","classId","groupId","name","capacity","classroomId","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","nameEn","nameBn"]},"subject-offering":{"title":"Subject-offering fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"subjectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"isMandatory":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","sectionId","subjectId","isMandatory","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId"]},"period":{"title":"Routine period fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"startsAt":{"type":"string"},"endsAt":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","academicYearId","name","startsAt","endsAt","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","nameEn","nameBn"]},"exam":{"title":"Exam fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"academicYearId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"startsOn":{"anyOf":[{"type":"string"},{"type":"null"}]},"endsOn":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","academicYearId","name","kind","status","startsOn","endsOn","createdAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","createdBy"]}}}