/* PROJECT CHECK full validator v1.4.22. Includes base schema, hard rules and common-review extension. */

// web/checklist-core/common-review-validator.js
var COMMON_REVIEW_VERSION = "PROJECT-CHECK-COMMON-REVIEW-v1.1-20261026";
var REVIEW_DOMAINS = ["LAYOUT", "REFERENCES", "CAPTIONS", "MATHEMATICS", "EXPERT_SOUNDNESS"];
function validateCommonReviewChecks(checks, pageCount) {
  const errors = [], add = (m) => errors.push({ code: "COMMON_REVIEW_COVERAGE", message: m });
  if (!Array.isArray(checks) || checks.length !== REVIEW_DOMAINS.length) {
    add("Five explicit common-review domain checks are required");
    return errors;
  }
  for (let i = 0; i < REVIEW_DOMAINS.length; i++) {
    const c = checks[i];
    if (c.domain !== REVIEW_DOMAINS[i]) add("Review domains must occur exactly once in the required order");
    if (c.inspected_pages.some((p) => p > pageCount)) add("Inspected page exceeds original PDF page count");
    if (["INSPECTED", "NOT_PRESENT"].includes(c.review_status) && !c.inspected_pages.length) add("Inspection or domain absence requires inspected pages");
    if (c.domain === "LAYOUT" && c.review_status === "NOT_PRESENT") add("A PDF always has a layout to inspect");
    if (c.domain === "LAYOUT" && c.review_status === "INSPECTED" && c.inspected_pages.length !== pageCount) add("Full layout inspection requires every physical page");
  }
  return errors;
}

// web/schema-validators.js
var Cr = (r, i) => () => (i || r((i = { exports: {} }).exports, i), i.exports);
var Ur = Cr((Nr) => {
  "use strict";
  Object.defineProperty(Nr, "__esModule", { value: true });
  function $r(r) {
    let i = r.length, B = 0, $ = 0, H;
    for (; $ < i; ) B++, H = r.charCodeAt($++), H >= 55296 && H <= 56319 && $ < i && (H = r.charCodeAt($), (H & 64512) === 56320 && $++);
    return B;
  }
  Nr.default = $r;
  $r.code = 'require("ajv/dist/runtime/ucs2length").default';
});
var Br = Cr((we) => {
  "use strict";
  Object.defineProperty(we, "__esModule", { value: true });
  we.formatNames = we.fastFormats = we.fullFormats = void 0;
  function Pe(r, i) {
    return { validate: r, compare: i };
  }
  we.fullFormats = { date: Pe(zr, xr), time: Pe(jr(true), Fr), "date-time": Pe(Dr(true), Hr), "iso-time": Pe(jr(), Jr), "iso-date-time": Pe(Dr(), Wr), duration: /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/, uri: yi, "uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i, "uri-template": /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i, url: /^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu, email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, hostname: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i, ipv4: /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/, ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i, regex: Oi, uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i, "json-pointer": /^(?:\/(?:[^~/]|~0|~1)*)*$/, "json-pointer-uri-fragment": /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i, "relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/, byte: hi, int32: { type: "number", validate: Pi }, int64: { type: "number", validate: wi }, float: { type: "number", validate: Gr }, double: { type: "number", validate: Gr }, password: true, binary: true };
  we.fastFormats = { ...we.fullFormats, date: Pe(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, xr), time: Pe(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, Fr), "date-time": Pe(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, Hr), "iso-time": Pe(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, Jr), "iso-date-time": Pe(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, Wr), uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i, "uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i };
  we.formatNames = Object.keys(we.fullFormats);
  function fi(r) {
    return r % 4 === 0 && (r % 100 !== 0 || r % 400 === 0);
  }
  var pi = /^(\d\d\d\d)-(\d\d)-(\d\d)$/, mi = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  function zr(r) {
    let i = pi.exec(r);
    if (!i) return false;
    let B = +i[1], $ = +i[2], H = +i[3];
    return $ >= 1 && $ <= 12 && H >= 1 && H <= ($ === 2 && fi(B) ? 29 : mi[$]);
  }
  function xr(r, i) {
    if (r && i) return r > i ? 1 : r < i ? -1 : 0;
  }
  var Sr = /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;
  function jr(r) {
    return function(B) {
      let $ = Sr.exec(B);
      if (!$) return false;
      let H = +$[1], ae = +$[2], e = +$[3], t = $[4], K = $[5] === "-" ? -1 : 1, X = +($[6] || 0), b = +($[7] || 0);
      if (X > 23 || b > 59 || r && !t) return false;
      if (H <= 23 && ae <= 59 && e < 60) return true;
      let I = ae - b * K, N = H - X * K - (I < 0 ? 1 : 0);
      return (N === 23 || N === -1) && (I === 59 || I === -1) && e < 61;
    };
  }
  function Fr(r, i) {
    if (!(r && i)) return;
    let B = (/* @__PURE__ */ new Date("2020-01-01T" + r)).valueOf(), $ = (/* @__PURE__ */ new Date("2020-01-01T" + i)).valueOf();
    if (B && $) return B - $;
  }
  function Jr(r, i) {
    if (!(r && i)) return;
    let B = Sr.exec(r), $ = Sr.exec(i);
    if (B && $) return r = B[1] + B[2] + B[3], i = $[1] + $[2] + $[3], r > i ? 1 : r < i ? -1 : 0;
  }
  var Mr = /t|\s/i;
  function Dr(r) {
    let i = jr(r);
    return function($) {
      let H = $.split(Mr);
      return H.length === 2 && zr(H[0]) && i(H[1]);
    };
  }
  function Hr(r, i) {
    if (!(r && i)) return;
    let B = new Date(r).valueOf(), $ = new Date(i).valueOf();
    if (B && $) return B - $;
  }
  function Wr(r, i) {
    if (!(r && i)) return;
    let [B, $] = r.split(Mr), [H, ae] = i.split(Mr), e = xr(B, H);
    if (e !== void 0) return e || Fr($, ae);
  }
  var di = /\/|:/, _i = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
  function yi(r) {
    return di.test(r) && _i.test(r);
  }
  var Vr = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;
  function hi(r) {
    return Vr.lastIndex = 0, Vr.test(r);
  }
  var gi = -(2 ** 31), vi = 2 ** 31 - 1;
  function Pi(r) {
    return Number.isInteger(r) && r <= vi && r >= gi;
  }
  function wi(r) {
    return Number.isInteger(r);
  }
  function Gr() {
    return true;
  }
  var Ai = /[^\\]\\Z/;
  function Oi(r) {
    if (Ai.test(r)) return false;
    try {
      return new RegExp(r), true;
    } catch {
      return false;
    }
  }
});
var Ni = Ft;
var ke = { $schema: "https://json-schema.org/draft/2020-12/schema", $id: "urn:project-check:request-json-contract:v1", title: "PROJECT-REVIEW-REQUEST-v1 Frozen Request Contract", description: "Frozen request contract for PROJECT CHECK v1. Exactly one primary PDF artifact is reviewed; SHA-256 exact match is the authoritative identity check.", type: "object", additionalProperties: false, required: ["request_protocol_version", "request_id", "created_at", "artifact_type", "selected_profile", "checkpoint", "academic_stage", "master_prompt_version", "result_protocol_version", "json_contract_version", "output_language", "artifact", "execution_contract"], properties: { request_protocol_version: { const: "PROJECT-REVIEW-REQUEST-v1" }, request_id: { type: "string", minLength: 1 }, created_at: { type: "string", format: "date-time" }, artifact_type: { type: "string", enum: ["PPT_SEMINAR", "PPT_RM", "PPT_PROGRESSION", "PPT_FINAL", "FULL_REPORT_SEMINAR", "FULL_REPORT_RM", "FULL_REPORT_PROJECT_PROGRESSION", "FULL_REPORT_FINAL_PROJECT", "REPORT_MANUAL", "POSTER_PROJECT"] }, selected_profile: { type: "string", enum: ["profile-ppt-seminar-v1", "profile-ppt-rm-v1", "profile-ppt-progression-v1", "profile-ppt-final-v1", "profile-full-report-seminar-v1", "profile-full-report-rm-v1", "profile-full-report-project-progression-v1", "profile-full-report-final-project-v1", "profile-report-manual-v1", "profile-poster-project-v1"] }, master_prompt_version: { const: "master-project-prompt-v1" }, result_protocol_version: { const: "PROJECT-REVIEW-COMMENTS-v1" }, json_contract_version: { const: "shared-project-review-json-contract-v1" }, output_language: { type: "string", minLength: 2 }, artifact: { type: "object", additionalProperties: false, required: ["file_name", "mime_type", "size_bytes", "sha256", "page_count"], properties: { file_name: { type: "string", minLength: 5, pattern: "\\.[pP][dD][fF]$" }, mime_type: { const: "application/pdf" }, size_bytes: { type: "integer", minimum: 1 }, sha256: { type: "string", pattern: "^[A-Fa-f0-9]{64}$", description: "Authoritative artifact identity. Must exactly match SHA-256 computed from the separately attached PDF." }, page_count: { type: "integer", minimum: 1, description: "Frozen physical PDF page count determined from the PDF page tree before invocation. Includes blank and duplicate physical pages. For PPT_* exported PDFs, this physical page count is the authoritative slide-unit count for slide_audit. Parser-visible/nonblank page counts must not replace it." } } }, execution_contract: { type: "object", additionalProperties: false, required: ["treat_request_as_frozen", "original_pdf_must_be_attached_separately", "use_exact_selected_profile", "artifact_identity_check", "filename_is_metadata_only", "size_bytes_is_metadata_only", "output_must_conform_to", "comments_are_artifact_issues_only", "pure_verification_limitations_are_separate", "audit_coverage_required", "no_grade_or_accept_reject_output", "no_artifact_repair", "page_count_is_frozen_structural_metadata"], properties: { treat_request_as_frozen: { const: true }, original_pdf_must_be_attached_separately: { const: true }, use_exact_selected_profile: { const: true }, artifact_identity_check: { const: "SHA256_EXACT_MATCH" }, filename_is_metadata_only: { const: true }, size_bytes_is_metadata_only: { const: true }, output_must_conform_to: { const: "shared-project-review-json-contract-v1" }, comments_are_artifact_issues_only: { const: true }, pure_verification_limitations_are_separate: { const: true }, audit_coverage_required: { const: true }, no_grade_or_accept_reject_output: { const: true }, no_artifact_repair: { const: true }, page_count_is_frozen_structural_metadata: { const: true }, common_review_policy_version: { const: "PROJECT-CHECK-COMMON-REVIEW-v1.1-20261026" } } }, academic_stage: { type: "string", enum: ["PROGRESS", "PROPOSAL", "PROGRESS_1", "PROGRESS_2", "FINAL_REPORT", "MANUAL", "POSTER"], description: "Frozen academic/display stage selected by the site. Do not infer from filename, course name, or document title." }, checkpoint: { type: "string", enum: ["MIDTERM", "FINAL", "NOT_APPLICABLE"], description: "Frozen checkpoint within the academic stage. Stage/checkpoint compatibility is schema-enforced." } }, allOf: [{ if: { properties: { artifact_type: { const: "PPT_SEMINAR" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-ppt-seminar-v1" } } } }, { if: { properties: { artifact_type: { const: "PPT_RM" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-ppt-rm-v1" } } } }, { if: { properties: { artifact_type: { const: "PPT_PROGRESSION" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-ppt-progression-v1" } } } }, { if: { properties: { artifact_type: { const: "PPT_FINAL" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-ppt-final-v1" } } } }, { if: { properties: { artifact_type: { const: "FULL_REPORT_SEMINAR" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-full-report-seminar-v1" } } } }, { if: { properties: { artifact_type: { const: "FULL_REPORT_RM" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-full-report-rm-v1" } } } }, { if: { properties: { artifact_type: { const: "FULL_REPORT_PROJECT_PROGRESSION" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-full-report-project-progression-v1" } } } }, { if: { properties: { artifact_type: { const: "FULL_REPORT_FINAL_PROJECT" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-full-report-final-project-v1" } } } }, { if: { properties: { artifact_type: { const: "REPORT_MANUAL" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-report-manual-v1" } } } }, { if: { properties: { artifact_type: { const: "POSTER_PROJECT" } }, required: ["artifact_type"] }, then: { properties: { selected_profile: { const: "profile-poster-project-v1" } } } }, { "x-stage-checkpoint-rule": "seminar-progress", if: { properties: { artifact_type: { enum: ["PPT_SEMINAR", "FULL_REPORT_SEMINAR"] } }, required: ["artifact_type"] }, then: { properties: { academic_stage: { const: "PROGRESS" }, checkpoint: { const: "NOT_APPLICABLE" } } } }, { "x-stage-checkpoint-rule": "rm-proposal", if: { properties: { artifact_type: { enum: ["PPT_RM", "FULL_REPORT_RM"] } }, required: ["artifact_type"] }, then: { properties: { academic_stage: { const: "PROPOSAL" }, checkpoint: { enum: ["MIDTERM", "FINAL"] } } } }, { "x-stage-checkpoint-rule": "project-progression", if: { properties: { artifact_type: { enum: ["PPT_PROGRESSION", "FULL_REPORT_PROJECT_PROGRESSION"] } }, required: ["artifact_type"] }, then: { oneOf: [{ properties: { academic_stage: { const: "PROGRESS_1" }, checkpoint: { enum: ["MIDTERM", "FINAL"] } } }, { properties: { academic_stage: { const: "PROGRESS_2" }, checkpoint: { const: "MIDTERM" } } }] } }, { "x-stage-checkpoint-rule": "final-report", if: { properties: { artifact_type: { enum: ["PPT_FINAL", "FULL_REPORT_FINAL_PROJECT"] } }, required: ["artifact_type"] }, then: { properties: { academic_stage: { const: "FINAL_REPORT" }, checkpoint: { const: "FINAL" } } } }, { "x-stage-checkpoint-rule": "manual", if: { properties: { artifact_type: { enum: ["REPORT_MANUAL"] } }, required: ["artifact_type"] }, then: { properties: { academic_stage: { const: "MANUAL" }, checkpoint: { const: "NOT_APPLICABLE" } } } }, { "x-stage-checkpoint-rule": "poster", if: { properties: { artifact_type: { enum: ["POSTER_PROJECT"] } }, required: ["artifact_type"] }, then: { properties: { academic_stage: { const: "POSTER" }, checkpoint: { const: "NOT_APPLICABLE" } } } }], "x-runtime-validation-required": ["Reject duplicate JSON object member names during parsing.", "Compute SHA-256 of the separately attached PDF before substantive review and require exact equality with artifact.sha256.", "SHA-256 equality is the sole authoritative artifact-identity check; filename and size_bytes are metadata only.", "Reject non-PDF primary artifacts; MIME type must be application/pdf.", "Echo request_id, artifact_type, selected_profile, output_language, master_prompt_version, result_protocol_version, and json_contract_version exactly into the result meta as required by the result contract.", "Reject artifact_type/selected_profile mismatch.", "Changing artifact bytes/hash, artifact.page_count, artifact_type, selected_profile, academic_stage, checkpoint, output_language, master/result/contract version invalidates the frozen request and requires a new request_id.", "academic_stage and checkpoint are frozen request semantics and must not be inferred or changed from filename, course title, or document body.", "artifact.page_count is frozen physical-PDF structural metadata derived before model invocation; it includes blank and duplicate physical pages.", "For FULL_REPORT_SEMINAR, FULL_REPORT_RM, FULL_REPORT_PROJECT_PROGRESSION, FULL_REPORT_FINAL_PROJECT, and REPORT_MANUAL, result audit_coverage.total_units must exactly equal artifact.page_count.", "Changing artifact.page_count, academic_stage, or checkpoint invalidates the frozen request and requires a new request_id.", "For PPT_SEMINAR, PPT_RM, PPT_PROGRESSION, and PPT_FINAL, artifact.page_count is the authoritative physical slide-unit count because each exported PDF page is reviewed as one slide.", "Optional combined RM+Seminar teaching does not create a new artifact type: route combined-course MIDTERM to RM/PROPOSAL and combined-course FINAL to Seminar/PROGRESS."], "x-consumer-expectations": ["For PPT_*, FULL_REPORT_*, and REPORT_MANUAL, the normal result must include both physical-unit audit ledger(s) and requirement_audit according to the result contract registry."] };
var Et = Object.prototype.hasOwnProperty;
var M = Ur().default;
var Xr = Br().fullFormats["date-time"];
var Ri = new RegExp("\\.[pP][dD][fF]$", "u");
var bi = new RegExp("^[A-Fa-f0-9]{64}$", "u");
function Ft(r, { instancePath: i = "", parentData: B, parentDataProperty: $, rootData: H = r, dynamicAnchors: ae = {} } = {}) {
  let e = null, t = 0, K = Ft.evaluated;
  K.dynamicProps && (K.props = void 0), K.dynamicItems && (K.items = void 0);
  let X = t, b = true, I = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "PPT_SEMINAR") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var N = I === t;
  if (t = X, e !== null && (X ? e.length = X : e = null), N) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-ppt-seminar-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/0/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-ppt-seminar-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var N = o === t;
    if (b = N, b) {
      var c = {};
      c.selected_profile = true, c.artifact_type = true;
    }
  }
  if (!b) {
    let o = { instancePath: i, schemaPath: "#/allOf/0/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  let T = t, F = true, Z = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "PPT_RM") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var m = Z === t;
  if (t = T, e !== null && (T ? e.length = T : e = null), m) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-ppt-rm-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/1/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-ppt-rm-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var m = o === t;
    if (F = m, F) {
      var h = {};
      h.selected_profile = true, h.artifact_type = true;
    }
  }
  if (!F) {
    let o = { instancePath: i, schemaPath: "#/allOf/1/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && h !== void 0 && (h === true ? c = true : (c = c || {}, Object.assign(c, h)));
  let v = t, R = true, _ = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "PPT_PROGRESSION") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var w = _ === t;
  if (t = v, e !== null && (v ? e.length = v : e = null), w) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-ppt-progression-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/2/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-ppt-progression-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var w = o === t;
    if (R = w, R) {
      var y = {};
      y.selected_profile = true, y.artifact_type = true;
    }
  }
  if (!R) {
    let o = { instancePath: i, schemaPath: "#/allOf/2/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && y !== void 0 && (y === true ? c = true : (c = c || {}, Object.assign(c, y)));
  let W = t, re = true, Ae = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "PPT_FINAL") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var x = Ae === t;
  if (t = W, e !== null && (W ? e.length = W : e = null), x) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-ppt-final-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/3/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-ppt-final-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var x = o === t;
    if (re = x, re) {
      var oe = {};
      oe.selected_profile = true, oe.artifact_type = true;
    }
  }
  if (!re) {
    let o = { instancePath: i, schemaPath: "#/allOf/3/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && oe !== void 0 && (oe === true ? c = true : (c = c || {}, Object.assign(c, oe)));
  let qe = t, Te = true, $t = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "FULL_REPORT_SEMINAR") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var Le = $t === t;
  if (t = qe, e !== null && (qe ? e.length = qe : e = null), Le) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-full-report-seminar-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/4/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-full-report-seminar-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var Le = o === t;
    if (Te = Le, Te) {
      var le = {};
      le.selected_profile = true, le.artifact_type = true;
    }
  }
  if (!Te) {
    let o = { instancePath: i, schemaPath: "#/allOf/4/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && le !== void 0 && (le === true ? c = true : (c = c || {}, Object.assign(c, le)));
  let Ie = t, Ne = true, Ut = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "FULL_REPORT_RM") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var Se = Ut === t;
  if (t = Ie, e !== null && (Ie ? e.length = Ie : e = null), Se) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-full-report-rm-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/5/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-full-report-rm-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var Se = o === t;
    if (Ne = Se, Ne) {
      var ue = {};
      ue.selected_profile = true, ue.artifact_type = true;
    }
  }
  if (!Ne) {
    let o = { instancePath: i, schemaPath: "#/allOf/5/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && ue !== void 0 && (ue === true ? c = true : (c = c || {}, Object.assign(c, ue)));
  let je = t, Me = true, Dt = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "FULL_REPORT_PROJECT_PROGRESSION") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var xe = Dt === t;
  if (t = je, e !== null && (je ? e.length = je : e = null), xe) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-full-report-project-progression-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/6/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-full-report-project-progression-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var xe = o === t;
    if (Me = xe, Me) {
      var ce = {};
      ce.selected_profile = true, ce.artifact_type = true;
    }
  }
  if (!Me) {
    let o = { instancePath: i, schemaPath: "#/allOf/6/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && ce !== void 0 && (ce === true ? c = true : (c = c || {}, Object.assign(c, ce)));
  let Fe = t, Ce = true, Vt = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "FULL_REPORT_FINAL_PROJECT") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var $e = Vt === t;
  if (t = Fe, e !== null && (Fe ? e.length = Fe : e = null), $e) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-full-report-final-project-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/7/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-full-report-final-project-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var $e = o === t;
    if (Ce = $e, Ce) {
      var fe = {};
      fe.selected_profile = true, fe.artifact_type = true;
    }
  }
  if (!Ce) {
    let o = { instancePath: i, schemaPath: "#/allOf/7/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && fe !== void 0 && (fe === true ? c = true : (c = c || {}, Object.assign(c, fe)));
  let Ue = t, De = true, Gt = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "REPORT_MANUAL") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var Ve = Gt === t;
  if (t = Ue, e !== null && (Ue ? e.length = Ue : e = null), Ve) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-report-manual-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/8/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-report-manual-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var Ve = o === t;
    if (De = Ve, De) {
      var pe = {};
      pe.selected_profile = true, pe.artifact_type = true;
    }
  }
  if (!De) {
    let o = { instancePath: i, schemaPath: "#/allOf/8/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && pe !== void 0 && (pe === true ? c = true : (c = c || {}, Object.assign(c, pe)));
  let Ge = t, ze = true, zt = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "POSTER_PROJECT") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var Je = zt === t;
  if (t = Ge, e !== null && (Ge ? e.length = Ge : e = null), Je) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.selected_profile !== void 0 && r.selected_profile !== "profile-poster-project-v1") {
      let P = { instancePath: i + "/selected_profile", schemaPath: "#/allOf/9/then/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-poster-project-v1" }, message: "must be equal to constant" };
      e === null ? e = [P] : e.push(P), t++;
    }
    var Je = o === t;
    if (ze = Je, ze) {
      var me = {};
      me.selected_profile = true, me.artifact_type = true;
    }
  }
  if (!ze) {
    let o = { instancePath: i, schemaPath: "#/allOf/9/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && me !== void 0 && (me === true ? c = true : (c = c || {}, Object.assign(c, me)));
  let He = t, We = true, Jt = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0) {
      let l = r.artifact_type;
      if (!(l === "PPT_SEMINAR" || l === "FULL_REPORT_SEMINAR")) {
        let P = {};
        e === null ? e = [P] : e.push(P), t++;
      }
    }
  }
  var Be = Jt === t;
  if (t = He, e !== null && (He ? e.length = He : e = null), Be) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.academic_stage !== void 0 && r.academic_stage !== "PROGRESS") {
        let P = { instancePath: i + "/academic_stage", schemaPath: "#/allOf/10/then/properties/academic_stage/const", keyword: "const", params: { allowedValue: "PROGRESS" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
      if (r.checkpoint !== void 0 && r.checkpoint !== "NOT_APPLICABLE") {
        let P = { instancePath: i + "/checkpoint", schemaPath: "#/allOf/10/then/properties/checkpoint/const", keyword: "const", params: { allowedValue: "NOT_APPLICABLE" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
    }
    var Be = o === t;
    if (We = Be, We) {
      var ie = {};
      ie.academic_stage = true, ie.checkpoint = true, ie.artifact_type = true;
    }
  }
  if (!We) {
    let o = { instancePath: i, schemaPath: "#/allOf/10/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && ie !== void 0 && (ie === true ? c = true : (c = c || {}, Object.assign(c, ie)));
  let Ke = t, Ye = true, Ht = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0) {
      let l = r.artifact_type;
      if (!(l === "PPT_RM" || l === "FULL_REPORT_RM")) {
        let P = {};
        e === null ? e = [P] : e.push(P), t++;
      }
    }
  }
  var Xe = Ht === t;
  if (t = Ke, e !== null && (Ke ? e.length = Ke : e = null), Xe) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.academic_stage !== void 0 && r.academic_stage !== "PROPOSAL") {
        let P = { instancePath: i + "/academic_stage", schemaPath: "#/allOf/11/then/properties/academic_stage/const", keyword: "const", params: { allowedValue: "PROPOSAL" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
      if (r.checkpoint !== void 0) {
        let P = r.checkpoint;
        if (!(P === "MIDTERM" || P === "FINAL")) {
          let te = { instancePath: i + "/checkpoint", schemaPath: "#/allOf/11/then/properties/checkpoint/enum", keyword: "enum", params: { allowedValues: ke.allOf[11].then.properties.checkpoint.enum }, message: "must be equal to one of the allowed values" };
          e === null ? e = [te] : e.push(te), t++;
        }
      }
    }
    var Xe = o === t;
    if (Ye = Xe, Ye) {
      var se = {};
      se.academic_stage = true, se.checkpoint = true, se.artifact_type = true;
    }
  }
  if (!Ye) {
    let o = { instancePath: i, schemaPath: "#/allOf/11/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && se !== void 0 && (se === true ? c = true : (c = c || {}, Object.assign(c, se)));
  let Ze = t, Qe = true, Wt = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0) {
      let l = r.artifact_type;
      if (!(l === "PPT_PROGRESSION" || l === "FULL_REPORT_PROJECT_PROGRESSION")) {
        let P = {};
        e === null ? e = [P] : e.push(P), t++;
      }
    }
  }
  var et = Wt === t;
  if (t = Ze, e !== null && (Ze ? e.length = Ze : e = null), et) {
    let o = t, l = t, P = false, te = null, gt = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.academic_stage !== void 0 && r.academic_stage !== "PROGRESS_1") {
        let Q = { instancePath: i + "/academic_stage", schemaPath: "#/allOf/12/then/oneOf/0/properties/academic_stage/const", keyword: "const", params: { allowedValue: "PROGRESS_1" }, message: "must be equal to constant" };
        e === null ? e = [Q] : e.push(Q), t++;
      }
      if (r.checkpoint !== void 0) {
        let Q = r.checkpoint;
        if (!(Q === "MIDTERM" || Q === "FINAL")) {
          let Oe = { instancePath: i + "/checkpoint", schemaPath: "#/allOf/12/then/oneOf/0/properties/checkpoint/enum", keyword: "enum", params: { allowedValues: ke.allOf[12].then.oneOf[0].properties.checkpoint.enum }, message: "must be equal to one of the allowed values" };
          e === null ? e = [Oe] : e.push(Oe), t++;
        }
      }
    }
    var Ee = gt === t;
    if (Ee) {
      P = true, te = 0;
      var Y = {};
      Y.academic_stage = true, Y.checkpoint = true;
    }
    let vt = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.academic_stage !== void 0 && r.academic_stage !== "PROGRESS_2") {
        let Q = { instancePath: i + "/academic_stage", schemaPath: "#/allOf/12/then/oneOf/1/properties/academic_stage/const", keyword: "const", params: { allowedValue: "PROGRESS_2" }, message: "must be equal to constant" };
        e === null ? e = [Q] : e.push(Q), t++;
      }
      if (r.checkpoint !== void 0 && r.checkpoint !== "MIDTERM") {
        let Q = { instancePath: i + "/checkpoint", schemaPath: "#/allOf/12/then/oneOf/1/properties/checkpoint/const", keyword: "const", params: { allowedValue: "MIDTERM" }, message: "must be equal to constant" };
        e === null ? e = [Q] : e.push(Q), t++;
      }
    }
    var Ee = vt === t;
    if (Ee && P ? (P = false, te = [te, 1]) : Ee && (P = true, te = 1, Y !== true && (Y = Y || {}, Y.academic_stage = true, Y.checkpoint = true)), P) t = l, e !== null && (l ? e.length = l : e = null);
    else {
      let Q = { instancePath: i, schemaPath: "#/allOf/12/then/oneOf", keyword: "oneOf", params: { passingSchemas: te }, message: "must match exactly one schema in oneOf" };
      e === null ? e = [Q] : e.push(Q), t++;
    }
    var et = o === t;
    Qe = et, Qe && Y !== true && (Y = Y || {}, Y.artifact_type = true);
  }
  if (!Qe) {
    let o = { instancePath: i, schemaPath: "#/allOf/12/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && Y !== void 0 && (Y === true ? c = true : (c = c || {}, Object.assign(c, Y)));
  let tt = t, pt = true, mt = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0) {
      let l = r.artifact_type;
      if (!(l === "PPT_FINAL" || l === "FULL_REPORT_FINAL_PROJECT")) {
        let P = {};
        e === null ? e = [P] : e.push(P), t++;
      }
    }
  }
  var de = mt === t;
  if (t = tt, e !== null && (tt ? e.length = tt : e = null), de) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.academic_stage !== void 0 && r.academic_stage !== "FINAL_REPORT") {
        let P = { instancePath: i + "/academic_stage", schemaPath: "#/allOf/13/then/properties/academic_stage/const", keyword: "const", params: { allowedValue: "FINAL_REPORT" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
      if (r.checkpoint !== void 0 && r.checkpoint !== "FINAL") {
        let P = { instancePath: i + "/checkpoint", schemaPath: "#/allOf/13/then/properties/checkpoint/const", keyword: "const", params: { allowedValue: "FINAL" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
    }
    var de = o === t;
    if (pt = de, pt) {
      var _e = {};
      _e.academic_stage = true, _e.checkpoint = true, _e.artifact_type = true;
    }
  }
  if (!pt) {
    let o = { instancePath: i, schemaPath: "#/allOf/13/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && _e !== void 0 && (_e === true ? c = true : (c = c || {}, Object.assign(c, _e)));
  let rt = t, dt = true, _t = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "REPORT_MANUAL") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var ye = _t === t;
  if (t = rt, e !== null && (rt ? e.length = rt : e = null), ye) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.academic_stage !== void 0 && r.academic_stage !== "MANUAL") {
        let P = { instancePath: i + "/academic_stage", schemaPath: "#/allOf/14/then/properties/academic_stage/const", keyword: "const", params: { allowedValue: "MANUAL" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
      if (r.checkpoint !== void 0 && r.checkpoint !== "NOT_APPLICABLE") {
        let P = { instancePath: i + "/checkpoint", schemaPath: "#/allOf/14/then/properties/checkpoint/const", keyword: "const", params: { allowedValue: "NOT_APPLICABLE" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
    }
    var ye = o === t;
    if (dt = ye, dt) {
      var he = {};
      he.academic_stage = true, he.checkpoint = true, he.artifact_type = true;
    }
  }
  if (!dt) {
    let o = { instancePath: i, schemaPath: "#/allOf/14/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  c !== true && he !== void 0 && (he === true ? c = true : (c = c || {}, Object.assign(c, he)));
  let it = t, yt = true, ht = t;
  if (r && typeof r == "object" && !Array.isArray(r)) {
    let o;
    if (r.artifact_type === void 0 && (o = "artifact_type")) {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    } else if (r.artifact_type !== void 0 && r.artifact_type !== "POSTER_PROJECT") {
      let l = {};
      e === null ? e = [l] : e.push(l), t++;
    }
  }
  var ge = ht === t;
  if (t = it, e !== null && (it ? e.length = it : e = null), ge) {
    let o = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.academic_stage !== void 0 && r.academic_stage !== "POSTER") {
        let P = { instancePath: i + "/academic_stage", schemaPath: "#/allOf/15/then/properties/academic_stage/const", keyword: "const", params: { allowedValue: "POSTER" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
      if (r.checkpoint !== void 0 && r.checkpoint !== "NOT_APPLICABLE") {
        let P = { instancePath: i + "/checkpoint", schemaPath: "#/allOf/15/then/properties/checkpoint/const", keyword: "const", params: { allowedValue: "NOT_APPLICABLE" }, message: "must be equal to constant" };
        e === null ? e = [P] : e.push(P), t++;
      }
    }
    var ge = o === t;
    if (yt = ge, yt) {
      var ve = {};
      ve.academic_stage = true, ve.checkpoint = true, ve.artifact_type = true;
    }
  }
  if (!yt) {
    let o = { instancePath: i, schemaPath: "#/allOf/15/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [o] : e.push(o), t++;
  }
  if (c !== true && ve !== void 0 && (ve === true ? c = true : (c = c || {}, Object.assign(c, ve))), r && typeof r == "object" && !Array.isArray(r)) {
    if (r.request_protocol_version === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "request_protocol_version" }, message: "must have required property 'request_protocol_version'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.request_id === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "request_id" }, message: "must have required property 'request_id'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.created_at === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "created_at" }, message: "must have required property 'created_at'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.artifact_type === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "artifact_type" }, message: "must have required property 'artifact_type'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.selected_profile === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "selected_profile" }, message: "must have required property 'selected_profile'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.checkpoint === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "checkpoint" }, message: "must have required property 'checkpoint'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.academic_stage === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "academic_stage" }, message: "must have required property 'academic_stage'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.master_prompt_version === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "master_prompt_version" }, message: "must have required property 'master_prompt_version'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.result_protocol_version === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "result_protocol_version" }, message: "must have required property 'result_protocol_version'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.json_contract_version === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "json_contract_version" }, message: "must have required property 'json_contract_version'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.output_language === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "output_language" }, message: "must have required property 'output_language'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.artifact === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "artifact" }, message: "must have required property 'artifact'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.execution_contract === void 0) {
      let o = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "execution_contract" }, message: "must have required property 'execution_contract'" };
      e === null ? e = [o] : e.push(o), t++;
    }
    for (let o in r) if (!Et.call(ke.properties, o)) {
      let l = { instancePath: i, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: o }, message: "must NOT have additional properties" };
      e === null ? e = [l] : e.push(l), t++;
    }
    if (r.request_protocol_version !== void 0 && r.request_protocol_version !== "PROJECT-REVIEW-REQUEST-v1") {
      let o = { instancePath: i + "/request_protocol_version", schemaPath: "#/properties/request_protocol_version/const", keyword: "const", params: { allowedValue: "PROJECT-REVIEW-REQUEST-v1" }, message: "must be equal to constant" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.request_id !== void 0) {
      let o = r.request_id;
      if (typeof o == "string") {
        if (M(o) < 1) {
          let l = { instancePath: i + "/request_id", schemaPath: "#/properties/request_id/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [l] : e.push(l), t++;
        }
      } else {
        let l = { instancePath: i + "/request_id", schemaPath: "#/properties/request_id/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
    if (r.created_at !== void 0) {
      let o = r.created_at;
      if (typeof o == "string") {
        if (!Xr.validate(o)) {
          let l = { instancePath: i + "/created_at", schemaPath: "#/properties/created_at/format", keyword: "format", params: { format: "date-time" }, message: 'must match format "date-time"' };
          e === null ? e = [l] : e.push(l), t++;
        }
      } else {
        let l = { instancePath: i + "/created_at", schemaPath: "#/properties/created_at/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
    if (r.artifact_type !== void 0) {
      let o = r.artifact_type;
      if (typeof o != "string") {
        let l = { instancePath: i + "/artifact_type", schemaPath: "#/properties/artifact_type/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [l] : e.push(l), t++;
      }
      if (!(o === "PPT_SEMINAR" || o === "PPT_RM" || o === "PPT_PROGRESSION" || o === "PPT_FINAL" || o === "FULL_REPORT_SEMINAR" || o === "FULL_REPORT_RM" || o === "FULL_REPORT_PROJECT_PROGRESSION" || o === "FULL_REPORT_FINAL_PROJECT" || o === "REPORT_MANUAL" || o === "POSTER_PROJECT")) {
        let l = { instancePath: i + "/artifact_type", schemaPath: "#/properties/artifact_type/enum", keyword: "enum", params: { allowedValues: ke.properties.artifact_type.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
    if (r.selected_profile !== void 0) {
      let o = r.selected_profile;
      if (typeof o != "string") {
        let l = { instancePath: i + "/selected_profile", schemaPath: "#/properties/selected_profile/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [l] : e.push(l), t++;
      }
      if (!(o === "profile-ppt-seminar-v1" || o === "profile-ppt-rm-v1" || o === "profile-ppt-progression-v1" || o === "profile-ppt-final-v1" || o === "profile-full-report-seminar-v1" || o === "profile-full-report-rm-v1" || o === "profile-full-report-project-progression-v1" || o === "profile-full-report-final-project-v1" || o === "profile-report-manual-v1" || o === "profile-poster-project-v1")) {
        let l = { instancePath: i + "/selected_profile", schemaPath: "#/properties/selected_profile/enum", keyword: "enum", params: { allowedValues: ke.properties.selected_profile.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
    if (r.master_prompt_version !== void 0 && r.master_prompt_version !== "master-project-prompt-v1") {
      let o = { instancePath: i + "/master_prompt_version", schemaPath: "#/properties/master_prompt_version/const", keyword: "const", params: { allowedValue: "master-project-prompt-v1" }, message: "must be equal to constant" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.result_protocol_version !== void 0 && r.result_protocol_version !== "PROJECT-REVIEW-COMMENTS-v1") {
      let o = { instancePath: i + "/result_protocol_version", schemaPath: "#/properties/result_protocol_version/const", keyword: "const", params: { allowedValue: "PROJECT-REVIEW-COMMENTS-v1" }, message: "must be equal to constant" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.json_contract_version !== void 0 && r.json_contract_version !== "shared-project-review-json-contract-v1") {
      let o = { instancePath: i + "/json_contract_version", schemaPath: "#/properties/json_contract_version/const", keyword: "const", params: { allowedValue: "shared-project-review-json-contract-v1" }, message: "must be equal to constant" };
      e === null ? e = [o] : e.push(o), t++;
    }
    if (r.output_language !== void 0) {
      let o = r.output_language;
      if (typeof o == "string") {
        if (M(o) < 2) {
          let l = { instancePath: i + "/output_language", schemaPath: "#/properties/output_language/minLength", keyword: "minLength", params: { limit: 2 }, message: "must NOT have fewer than 2 characters" };
          e === null ? e = [l] : e.push(l), t++;
        }
      } else {
        let l = { instancePath: i + "/output_language", schemaPath: "#/properties/output_language/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
    if (r.artifact !== void 0) {
      let o = r.artifact;
      if (o && typeof o == "object" && !Array.isArray(o)) {
        if (o.file_name === void 0) {
          let l = { instancePath: i + "/artifact", schemaPath: "#/properties/artifact/required", keyword: "required", params: { missingProperty: "file_name" }, message: "must have required property 'file_name'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.mime_type === void 0) {
          let l = { instancePath: i + "/artifact", schemaPath: "#/properties/artifact/required", keyword: "required", params: { missingProperty: "mime_type" }, message: "must have required property 'mime_type'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.size_bytes === void 0) {
          let l = { instancePath: i + "/artifact", schemaPath: "#/properties/artifact/required", keyword: "required", params: { missingProperty: "size_bytes" }, message: "must have required property 'size_bytes'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.sha256 === void 0) {
          let l = { instancePath: i + "/artifact", schemaPath: "#/properties/artifact/required", keyword: "required", params: { missingProperty: "sha256" }, message: "must have required property 'sha256'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.page_count === void 0) {
          let l = { instancePath: i + "/artifact", schemaPath: "#/properties/artifact/required", keyword: "required", params: { missingProperty: "page_count" }, message: "must have required property 'page_count'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        for (let l in o) if (!(l === "file_name" || l === "mime_type" || l === "size_bytes" || l === "sha256" || l === "page_count")) {
          let P = { instancePath: i + "/artifact", schemaPath: "#/properties/artifact/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: l }, message: "must NOT have additional properties" };
          e === null ? e = [P] : e.push(P), t++;
        }
        if (o.file_name !== void 0) {
          let l = o.file_name;
          if (typeof l == "string") {
            if (M(l) < 5) {
              let P = { instancePath: i + "/artifact/file_name", schemaPath: "#/properties/artifact/properties/file_name/minLength", keyword: "minLength", params: { limit: 5 }, message: "must NOT have fewer than 5 characters" };
              e === null ? e = [P] : e.push(P), t++;
            }
            if (!Ri.test(l)) {
              let P = { instancePath: i + "/artifact/file_name", schemaPath: "#/properties/artifact/properties/file_name/pattern", keyword: "pattern", params: { pattern: "\\.[pP][dD][fF]$" }, message: 'must match pattern "\\.[pP][dD][fF]$"' };
              e === null ? e = [P] : e.push(P), t++;
            }
          } else {
            let P = { instancePath: i + "/artifact/file_name", schemaPath: "#/properties/artifact/properties/file_name/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [P] : e.push(P), t++;
          }
        }
        if (o.mime_type !== void 0 && o.mime_type !== "application/pdf") {
          let l = { instancePath: i + "/artifact/mime_type", schemaPath: "#/properties/artifact/properties/mime_type/const", keyword: "const", params: { allowedValue: "application/pdf" }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.size_bytes !== void 0) {
          let l = o.size_bytes;
          if (!(typeof l == "number" && !(l % 1) && !isNaN(l))) {
            let P = { instancePath: i + "/artifact/size_bytes", schemaPath: "#/properties/artifact/properties/size_bytes/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
            e === null ? e = [P] : e.push(P), t++;
          }
          if (typeof l == "number" && (l < 1 || isNaN(l))) {
            let P = { instancePath: i + "/artifact/size_bytes", schemaPath: "#/properties/artifact/properties/size_bytes/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
            e === null ? e = [P] : e.push(P), t++;
          }
        }
        if (o.sha256 !== void 0) {
          let l = o.sha256;
          if (typeof l == "string") {
            if (!bi.test(l)) {
              let P = { instancePath: i + "/artifact/sha256", schemaPath: "#/properties/artifact/properties/sha256/pattern", keyword: "pattern", params: { pattern: "^[A-Fa-f0-9]{64}$" }, message: 'must match pattern "^[A-Fa-f0-9]{64}$"' };
              e === null ? e = [P] : e.push(P), t++;
            }
          } else {
            let P = { instancePath: i + "/artifact/sha256", schemaPath: "#/properties/artifact/properties/sha256/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [P] : e.push(P), t++;
          }
        }
        if (o.page_count !== void 0) {
          let l = o.page_count;
          if (!(typeof l == "number" && !(l % 1) && !isNaN(l))) {
            let P = { instancePath: i + "/artifact/page_count", schemaPath: "#/properties/artifact/properties/page_count/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
            e === null ? e = [P] : e.push(P), t++;
          }
          if (typeof l == "number" && (l < 1 || isNaN(l))) {
            let P = { instancePath: i + "/artifact/page_count", schemaPath: "#/properties/artifact/properties/page_count/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
            e === null ? e = [P] : e.push(P), t++;
          }
        }
      } else {
        let l = { instancePath: i + "/artifact", schemaPath: "#/properties/artifact/type", keyword: "type", params: { type: "object" }, message: "must be object" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
    if (r.execution_contract !== void 0) {
      let o = r.execution_contract;
      if (o && typeof o == "object" && !Array.isArray(o)) {
        if (o.treat_request_as_frozen === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "treat_request_as_frozen" }, message: "must have required property 'treat_request_as_frozen'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.original_pdf_must_be_attached_separately === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "original_pdf_must_be_attached_separately" }, message: "must have required property 'original_pdf_must_be_attached_separately'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.use_exact_selected_profile === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "use_exact_selected_profile" }, message: "must have required property 'use_exact_selected_profile'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.artifact_identity_check === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "artifact_identity_check" }, message: "must have required property 'artifact_identity_check'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.filename_is_metadata_only === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "filename_is_metadata_only" }, message: "must have required property 'filename_is_metadata_only'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.size_bytes_is_metadata_only === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "size_bytes_is_metadata_only" }, message: "must have required property 'size_bytes_is_metadata_only'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.output_must_conform_to === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "output_must_conform_to" }, message: "must have required property 'output_must_conform_to'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.comments_are_artifact_issues_only === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "comments_are_artifact_issues_only" }, message: "must have required property 'comments_are_artifact_issues_only'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.pure_verification_limitations_are_separate === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "pure_verification_limitations_are_separate" }, message: "must have required property 'pure_verification_limitations_are_separate'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.audit_coverage_required === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "audit_coverage_required" }, message: "must have required property 'audit_coverage_required'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.no_grade_or_accept_reject_output === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "no_grade_or_accept_reject_output" }, message: "must have required property 'no_grade_or_accept_reject_output'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.no_artifact_repair === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "no_artifact_repair" }, message: "must have required property 'no_artifact_repair'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.page_count_is_frozen_structural_metadata === void 0) {
          let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/required", keyword: "required", params: { missingProperty: "page_count_is_frozen_structural_metadata" }, message: "must have required property 'page_count_is_frozen_structural_metadata'" };
          e === null ? e = [l] : e.push(l), t++;
        }
        for (let l in o) if (!Et.call(ke.properties.execution_contract.properties, l)) {
          let P = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: l }, message: "must NOT have additional properties" };
          e === null ? e = [P] : e.push(P), t++;
        }
        if (o.treat_request_as_frozen !== void 0 && o.treat_request_as_frozen !== true) {
          let l = { instancePath: i + "/execution_contract/treat_request_as_frozen", schemaPath: "#/properties/execution_contract/properties/treat_request_as_frozen/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.original_pdf_must_be_attached_separately !== void 0 && o.original_pdf_must_be_attached_separately !== true) {
          let l = { instancePath: i + "/execution_contract/original_pdf_must_be_attached_separately", schemaPath: "#/properties/execution_contract/properties/original_pdf_must_be_attached_separately/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.use_exact_selected_profile !== void 0 && o.use_exact_selected_profile !== true) {
          let l = { instancePath: i + "/execution_contract/use_exact_selected_profile", schemaPath: "#/properties/execution_contract/properties/use_exact_selected_profile/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.artifact_identity_check !== void 0 && o.artifact_identity_check !== "SHA256_EXACT_MATCH") {
          let l = { instancePath: i + "/execution_contract/artifact_identity_check", schemaPath: "#/properties/execution_contract/properties/artifact_identity_check/const", keyword: "const", params: { allowedValue: "SHA256_EXACT_MATCH" }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.filename_is_metadata_only !== void 0 && o.filename_is_metadata_only !== true) {
          let l = { instancePath: i + "/execution_contract/filename_is_metadata_only", schemaPath: "#/properties/execution_contract/properties/filename_is_metadata_only/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.size_bytes_is_metadata_only !== void 0 && o.size_bytes_is_metadata_only !== true) {
          let l = { instancePath: i + "/execution_contract/size_bytes_is_metadata_only", schemaPath: "#/properties/execution_contract/properties/size_bytes_is_metadata_only/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.output_must_conform_to !== void 0 && o.output_must_conform_to !== "shared-project-review-json-contract-v1") {
          let l = { instancePath: i + "/execution_contract/output_must_conform_to", schemaPath: "#/properties/execution_contract/properties/output_must_conform_to/const", keyword: "const", params: { allowedValue: "shared-project-review-json-contract-v1" }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.comments_are_artifact_issues_only !== void 0 && o.comments_are_artifact_issues_only !== true) {
          let l = { instancePath: i + "/execution_contract/comments_are_artifact_issues_only", schemaPath: "#/properties/execution_contract/properties/comments_are_artifact_issues_only/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.pure_verification_limitations_are_separate !== void 0 && o.pure_verification_limitations_are_separate !== true) {
          let l = { instancePath: i + "/execution_contract/pure_verification_limitations_are_separate", schemaPath: "#/properties/execution_contract/properties/pure_verification_limitations_are_separate/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.audit_coverage_required !== void 0 && o.audit_coverage_required !== true) {
          let l = { instancePath: i + "/execution_contract/audit_coverage_required", schemaPath: "#/properties/execution_contract/properties/audit_coverage_required/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.no_grade_or_accept_reject_output !== void 0 && o.no_grade_or_accept_reject_output !== true) {
          let l = { instancePath: i + "/execution_contract/no_grade_or_accept_reject_output", schemaPath: "#/properties/execution_contract/properties/no_grade_or_accept_reject_output/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.no_artifact_repair !== void 0 && o.no_artifact_repair !== true) {
          let l = { instancePath: i + "/execution_contract/no_artifact_repair", schemaPath: "#/properties/execution_contract/properties/no_artifact_repair/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.page_count_is_frozen_structural_metadata !== void 0 && o.page_count_is_frozen_structural_metadata !== true) {
          let l = { instancePath: i + "/execution_contract/page_count_is_frozen_structural_metadata", schemaPath: "#/properties/execution_contract/properties/page_count_is_frozen_structural_metadata/const", keyword: "const", params: { allowedValue: true }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
        if (o.common_review_policy_version !== void 0 && o.common_review_policy_version !== "PROJECT-CHECK-COMMON-REVIEW-v1.1-20261026") {
          let l = { instancePath: i + "/execution_contract/common_review_policy_version", schemaPath: "#/properties/execution_contract/properties/common_review_policy_version/const", keyword: "const", params: { allowedValue: "PROJECT-CHECK-COMMON-REVIEW-v1.1-20261026" }, message: "must be equal to constant" };
          e === null ? e = [l] : e.push(l), t++;
        }
      } else {
        let l = { instancePath: i + "/execution_contract", schemaPath: "#/properties/execution_contract/type", keyword: "type", params: { type: "object" }, message: "must be object" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
    if (r.academic_stage !== void 0) {
      let o = r.academic_stage;
      if (typeof o != "string") {
        let l = { instancePath: i + "/academic_stage", schemaPath: "#/properties/academic_stage/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [l] : e.push(l), t++;
      }
      if (!(o === "PROGRESS" || o === "PROPOSAL" || o === "PROGRESS_1" || o === "PROGRESS_2" || o === "FINAL_REPORT" || o === "MANUAL" || o === "POSTER")) {
        let l = { instancePath: i + "/academic_stage", schemaPath: "#/properties/academic_stage/enum", keyword: "enum", params: { allowedValues: ke.properties.academic_stage.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
    if (r.checkpoint !== void 0) {
      let o = r.checkpoint;
      if (typeof o != "string") {
        let l = { instancePath: i + "/checkpoint", schemaPath: "#/properties/checkpoint/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [l] : e.push(l), t++;
      }
      if (!(o === "MIDTERM" || o === "FINAL" || o === "NOT_APPLICABLE")) {
        let l = { instancePath: i + "/checkpoint", schemaPath: "#/properties/checkpoint/enum", keyword: "enum", params: { allowedValues: ke.properties.checkpoint.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [l] : e.push(l), t++;
      }
    }
  } else {
    let o = { instancePath: i, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
    e === null ? e = [o] : e.push(o), t++;
  }
  return Ft.errors = e, t === 0;
}
Ft.evaluated = { props: true, dynamicProps: false, dynamicItems: false };
var Si = Ct;
var ne = { $schema: "https://json-schema.org/draft/2020-12/schema", $id: "urn:project-check:shared-json-contract:v1", title: "PROJECT-REVIEW-COMMENTS-v1 Shared JSON Contract", description: "Canonical PROJECT CHECK v1 result contract with exhaustive physical unit ledgers plus profile requirement-dimension audit traceability.", type: "object", additionalProperties: false, required: ["meta", "audit_coverage", "comments", "verification_limitations"], properties: { meta: { type: "object", additionalProperties: false, required: ["result_protocol_version", "request_id", "artifact_type", "selected_profile", "checkpoint", "academic_stage", "master_prompt_version", "json_contract_version", "output_language", "review_timestamp", "external_verification_used"], properties: { result_protocol_version: { const: "PROJECT-REVIEW-COMMENTS-v1" }, request_id: { type: "string", minLength: 1, description: "Echo exactly from the frozen request." }, artifact_type: { type: "string", enum: ["PPT_SEMINAR", "PPT_RM", "PPT_PROGRESSION", "PPT_FINAL", "FULL_REPORT_SEMINAR", "FULL_REPORT_RM", "FULL_REPORT_PROJECT_PROGRESSION", "FULL_REPORT_FINAL_PROJECT", "REPORT_MANUAL", "POSTER_PROJECT"], description: "Echo exactly from the frozen request." }, selected_profile: { type: "string", enum: ["profile-ppt-seminar-v1", "profile-ppt-rm-v1", "profile-ppt-progression-v1", "profile-ppt-final-v1", "profile-full-report-seminar-v1", "profile-full-report-rm-v1", "profile-full-report-project-progression-v1", "profile-full-report-final-project-v1", "profile-report-manual-v1", "profile-poster-project-v1"] }, master_prompt_version: { const: "master-project-prompt-v1" }, json_contract_version: { const: "shared-project-review-json-contract-v1" }, output_language: { type: "string", minLength: 2, description: "Actual primary language used for free-text; must equal the frozen request when explicitly supplied." }, review_timestamp: { oneOf: [{ type: "string", format: "date-time" }, { type: "null" }] }, external_verification_used: { type: "boolean" }, academic_stage: { type: "string", enum: ["PROGRESS", "PROPOSAL", "PROGRESS_1", "PROGRESS_2", "FINAL_REPORT", "MANUAL", "POSTER"], description: "Echo exactly from the frozen request." }, checkpoint: { type: "string", enum: ["MIDTERM", "FINAL", "NOT_APPLICABLE"], description: "Echo exactly from the frozen request." } } }, audit_coverage: { type: "object", additionalProperties: false, required: ["unit_type", "total_units", "fully_reviewed_ranges", "partially_reviewed_ranges", "unreviewed_ranges", "object_level_review_performed", "cross_artifact_consistency_checked", "coverage_notes", "material_access_limitations"], properties: { unit_type: { type: "string", enum: ["PAGE", "SLIDE", "POSTER_SHEET"] }, total_units: { type: "integer", minimum: 1, description: "Physical PDF unit count for the reviewed artifact. In the frozen workflow this must equal request artifact.page_count; it is never null in a normal result." }, fully_reviewed_ranges: { type: "array", items: { $ref: "#/$defs/unit_range" } }, partially_reviewed_ranges: { type: "array", items: { $ref: "#/$defs/unit_range" } }, unreviewed_ranges: { type: "array", items: { $ref: "#/$defs/unit_range" } }, object_level_review_performed: { type: "boolean", description: "True only if visible figures/tables/diagrams/UI/equations/other objects were inspected as required by the profile." }, cross_artifact_consistency_checked: { const: false, description: "PROJECT CHECK v1 frozen requests contain exactly one primary PDF artifact, so cross-artifact consistency is not performed in v1." }, coverage_notes: { type: "array", items: { type: "string", minLength: 1 } }, material_access_limitations: { type: "array", items: { $ref: "#/$defs/coverage_limitation" } }, review_checks: { type: "array", minItems: 5, maxItems: 5, items: { type: "object", additionalProperties: false, required: ["domain", "review_status", "inspected_pages", "summary"], properties: { domain: { enum: ["LAYOUT", "REFERENCES", "CAPTIONS", "MATHEMATICS", "EXPERT_SOUNDNESS"] }, review_status: { enum: ["INSPECTED", "PARTIAL", "NOT_PRESENT", "NOT_CHECKABLE"] }, inspected_pages: { type: "array", uniqueItems: true, items: { type: "integer", minimum: 1 } }, summary: { type: "string", minLength: 1 } } } } } }, page_audit: { type: "array", description: "Mandatory exhaustive per-PDF-page coverage/traceability ledger for the four FULL_REPORT_* artifact types and REPORT_MANUAL; otherwise normally empty or omitted.", items: { $ref: "#/$defs/page_audit_entry" }, default: [] }, slide_audit: { type: "array", description: "Mandatory exhaustive per-slide coverage/traceability ledger for PPT_SEMINAR, PPT_RM, PPT_PROGRESSION, and PPT_FINAL in the PDF-only workflow; otherwise normally empty or omitted.", items: { $ref: "#/$defs/slide_audit_entry" }, default: [] }, comments: { type: "object", description: "Artifact issues only, keyed by stable comment IDs. Pure verification limitations must not appear here.", propertyNames: { pattern: "^C[0-9]{3,}$" }, additionalProperties: { $ref: "#/$defs/reviewer_comment" }, default: {} }, verification_limitations: { type: "object", description: "Pure external-verification or audit-environment limitations only. No issue priority/severity is allowed here.", propertyNames: { pattern: "^VL[0-9]{3,}$" }, additionalProperties: { $ref: "#/$defs/verification_limitation" }, default: {} }, requirement_audit: { type: "array", minItems: 1, description: "Coverage ledger for shared MASTER and exact selected-profile requirements. Not a grade/score/PASS-comment mechanism.", items: { $ref: "#/$defs/requirement_audit_entry" } } }, $defs: { unit_range: { type: "object", additionalProperties: false, required: ["start", "end"], properties: { start: { type: "integer", minimum: 1 }, end: { type: "integer", minimum: 1 } }, description: "Inclusive 1-based range. Runtime validation must require start <= end and valid bounds." }, reviewer_comment: { type: "object", additionalProperties: false, required: ["title", "priority", "status", "basis", "verification_limitation_refs", "category", "scope", "location", "representative_locations", "occurrences", "occurrence_note", "claim_or_element", "review_comment", "why_it_matters", "evidence_reasoning", "evidence_gap", "recommendation", "recheck_requirement", "checklist_refs", "domain_context", "external_sources", "confidence"], properties: { title: { type: "string", minLength: 1 }, priority: { type: "string", enum: ["CRITICAL", "MAJOR", "MINOR", "EDITORIAL"] }, status: { type: "string", enum: ["FAIL", "UNCERTAIN", "NOT_CHECKABLE"] }, basis: { type: "array", minItems: 1, uniqueItems: true, items: { type: "string", enum: ["CONCRETE_ARTIFACT_ERROR_OR_CONTRADICTION", "INSUFFICIENT_AUTHOR_EVIDENCE_OR_ARTIFACT_DEFICIENCY"] }, description: "Artifact-issue provenance only. Pure verification limitations are prohibited here." }, verification_limitation_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } }, category: { type: "string", minLength: 1, description: "Shared or profile-specific review category; intentionally not a closed enum." }, scope: { type: "string", enum: ["LOCAL", "SECTION_WIDE", "ARTIFACT_WIDE", "CROSS_LOCATION"] }, location: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }], description: "Most precise defensible primary artifact location; never invent." }, representative_locations: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 }, description: "Representative or cross-location positions, especially for grouped/systematic issues." }, occurrences: { type: "array", minItems: 1, description: "Structured occurrence traceability. For grouped page-first long-form comments (FULL_REPORT_* or REPORT_MANUAL), preserve every materially verified affected PDF page; multiple same-root instances on one page may be summarized only when local manifestations do not require distinct interpretation or correction.", items: { $ref: "#/$defs/comment_occurrence" } }, occurrence_note: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, claim_or_element: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, review_comment: { type: "string", minLength: 1, description: "Detailed diagnosis; no replacement text or authored repair." }, why_it_matters: { type: "string", minLength: 1 }, evidence_reasoning: { type: "string", minLength: 1 }, evidence_gap: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, recommendation: { type: "string", minLength: 1, description: "Correction direction only. Must not contain replacement wording, paste-ready text, newly designed method/experiment/architecture, or fabricated evidence." }, recheck_requirement: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, checklist_refs: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 } }, domain_context: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 } }, external_sources: { type: "array", items: { $ref: "#/$defs/external_source" } }, confidence: { type: "string", enum: ["HIGH", "MEDIUM", "LOW"] } } }, verification_limitation: { type: "object", additionalProperties: false, required: ["basis", "affected_claims_or_elements", "affected_locations", "what_cannot_be_checked", "why_verification_is_unavailable", "consequence_for_confidence_or_status", "additional_access_or_material_required", "external_sources"], properties: { basis: { type: "string", enum: ["EXTERNAL_VERIFICATION_LIMITATION", "AUDIT_ENVIRONMENT_LIMITATION"] }, affected_claims_or_elements: { type: "array", items: { type: "string", minLength: 1 } }, affected_locations: { type: "array", items: { type: "string", minLength: 1 } }, what_cannot_be_checked: { type: "string", minLength: 1 }, why_verification_is_unavailable: { type: "string", minLength: 1 }, consequence_for_confidence_or_status: { type: "string", minLength: 1 }, additional_access_or_material_required: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, external_sources: { type: "array", items: { $ref: "#/$defs/external_source" } } } }, coverage_limitation: { type: "object", additionalProperties: false, required: ["location", "reason", "verification_limitation_refs"], properties: { location: { type: "string", minLength: 1 }, reason: { type: "string", minLength: 1 }, verification_limitation_refs: { type: "array", minItems: 1, uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } } } }, external_source: { type: "object", additionalProperties: false, required: ["source_type", "title", "locator", "supports"], properties: { source_type: { type: "string", minLength: 1 }, title: { type: "string", minLength: 1 }, locator: { type: "string", minLength: 1, description: "Traceable DOI, URL, standard identifier, repository identifier, or equivalent locator." }, supports: { type: "string", minLength: 1 } } }, comment_occurrence: { type: "object", additionalProperties: false, required: ["unit_number", "location", "element", "occurrence_summary", "count_on_unit"], properties: { unit_number: { type: "integer", minimum: 1, description: "1-based PAGE/SLIDE/POSTER_SHEET unit number according to audit_coverage.unit_type." }, location: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }], description: "Most precise defensible within-unit location; never invent." }, element: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }], description: "Affected sentence/object/figure/table/section/etc. when identifiable." }, occurrence_summary: { type: "string", minLength: 1, description: "Concise page/unit-specific manifestation or evidence for this occurrence. Must add local traceability beyond the canonical comment title; generic placeholders such as same issue or see C### are invalid by runtime policy." }, count_on_unit: { oneOf: [{ type: "integer", minimum: 1 }, { type: "null" }], description: "Optional count of same-root instances on this unit when reliably established; null when not counted." } } }, page_audit_entry: { type: "object", additionalProperties: false, required: ["page_number", "review_status", "checked_elements", "finding_refs", "verification_limitation_refs", "page_note"], properties: { page_number: { type: "integer", minimum: 1 }, review_status: { type: "string", enum: ["FULLY_REVIEWED", "PARTIALLY_REVIEWED", "UNREVIEWED"] }, checked_elements: { type: "array", uniqueItems: true, items: { type: "string", enum: ["PAGE_LAYOUT", "HEADINGS_STRUCTURE", "TEXT_SENTENCES", "CITATIONS_REFERENCES", "FIGURES_IMAGES", "TABLES", "EQUATIONS", "ALGORITHMS_PSEUDOCODE", "UML_DIAGRAMS", "UI_SCREENSHOTS", "HARDWARE_OBJECTS", "CHARTS_PLOTS", "CODE_BLOCKS", "APPENDICES_FORMS", "OTHER_VISIBLE_OBJECTS"] }, description: "Element classes actually inspected on this page. For PARTIALLY_REVIEWED/UNREVIEWED pages list only what was genuinely inspectable." }, finding_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^C[0-9]{3,}$" }, description: "Canonical comment IDs affecting this page. Empty is allowed when no material issue is found." }, verification_limitation_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } }, page_note: { type: "string", minLength: 1, description: "Required factual page context/role note for page-by-page audit rendering (e.g., abstract, chapter section, results table, references, appendix). Must not be a PASS/praise verdict." }, visible_page_label: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }], description: "Optional page label visibly printed in the document (e.g., \u0E01, \u0E02, i, 1). PDF physical page_number remains the authoritative locator." } }, allOf: [{ if: { properties: { review_status: { enum: ["FULLY_REVIEWED", "PARTIALLY_REVIEWED"] } }, required: ["review_status"] }, then: { properties: { checked_elements: { minItems: 1 } } } }, { if: { properties: { review_status: { const: "UNREVIEWED" } }, required: ["review_status"] }, then: { properties: { checked_elements: { maxItems: 0 } } } }] }, slide_audit_entry: { type: "object", additionalProperties: false, required: ["slide_number", "review_status", "checked_elements", "finding_refs", "verification_limitation_refs", "slide_note"], properties: { slide_number: { type: "integer", minimum: 1 }, review_status: { type: "string", enum: ["FULLY_REVIEWED", "PARTIALLY_REVIEWED", "UNREVIEWED"] }, checked_elements: { type: "array", uniqueItems: true, items: { type: "string", enum: ["SLIDE_LAYOUT", "HEADINGS_STRUCTURE", "TEXT_BULLETS", "CITATIONS_REFERENCES", "FIGURES_IMAGES", "TABLES", "CHARTS_PLOTS", "EQUATIONS", "ALGORITHMS_PSEUDOCODE", "UML_DIAGRAMS", "UI_SCREENSHOTS", "HARDWARE_OBJECTS", "CODE_BLOCKS", "DEMO_EVIDENCE", "OTHER_VISIBLE_OBJECTS"] }, description: "Element classes actually inspected on this slide." }, finding_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^C[0-9]{3,}$" }, description: "Canonical comment IDs affecting this slide. Empty is allowed when no material issue is found." }, verification_limitation_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } }, slide_note: { type: "string", minLength: 1, description: "Required factual slide context/role note for slide-by-slide audit rendering. Must not be a PASS/praise verdict." } }, allOf: [{ if: { properties: { review_status: { enum: ["FULLY_REVIEWED", "PARTIALLY_REVIEWED"] } }, required: ["review_status"] }, then: { properties: { checked_elements: { minItems: 1 } } } }, { if: { properties: { review_status: { const: "UNREVIEWED" } }, required: ["review_status"] }, then: { properties: { checked_elements: { maxItems: 0 } } } }] }, requirement_audit_entry: { type: "object", additionalProperties: false, required: ["requirement_ref", "status", "evidence_units", "finding_refs", "verification_limitation_refs", "note"], properties: { requirement_ref: { type: "string", pattern: "^[A-Z][A-Z0-9-]{1,31}$" }, status: { type: "string", enum: ["SATISFIED", "PARTIAL", "MISSING", "NOT_APPLICABLE", "NOT_CHECKABLE"] }, evidence_units: { type: "array", uniqueItems: true, items: { type: "integer", minimum: 1 }, description: "Physical PDF page/slide unit numbers supporting the coverage assessment. May be empty for genuinely missing/N/A requirements." }, finding_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^C[0-9]{3,}$" } }, verification_limitation_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } }, note: { type: "string", minLength: 1, description: "Concise factual requirement-coverage note; do not write praise or a grade." } }, allOf: [{ if: { properties: { status: { enum: ["PARTIAL", "MISSING"] } }, required: ["status"] }, then: { properties: { finding_refs: { minItems: 1 }, verification_limitation_refs: { maxItems: 0 } } } }, { if: { properties: { status: { const: "NOT_CHECKABLE" } }, required: ["status"] }, then: { properties: { verification_limitation_refs: { minItems: 1 } } } }, { if: { properties: { status: { enum: ["SATISFIED", "NOT_APPLICABLE"] } }, required: ["status"] }, then: { properties: { finding_refs: { maxItems: 0 }, verification_limitation_refs: { maxItems: 0 } } } }, { if: { properties: { status: { const: "NOT_APPLICABLE" } }, required: ["status"] }, then: { properties: { evidence_units: { maxItems: 0 } } } }] } }, allOf: [{ if: { properties: { meta: { properties: { artifact_type: { const: "PPT_SEMINAR" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-ppt-seminar-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "PPT_RM" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-ppt-rm-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "PPT_PROGRESSION" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-ppt-progression-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "PPT_FINAL" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-ppt-final-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "FULL_REPORT_SEMINAR" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-full-report-seminar-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "FULL_REPORT_RM" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-full-report-rm-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "FULL_REPORT_PROJECT_PROGRESSION" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-full-report-project-progression-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "FULL_REPORT_FINAL_PROJECT" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-full-report-final-project-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "REPORT_MANUAL" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-report-manual-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "POSTER_PROJECT" } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { selected_profile: { const: "profile-poster-project-v1" } } } } } }, { if: { properties: { meta: { properties: { artifact_type: { const: "PPT_SEMINAR" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "SLIDE" } } }, slide_audit: { minItems: 1 } }, required: ["slide_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "PPT_RM" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "SLIDE" } } }, slide_audit: { minItems: 1 } }, required: ["slide_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "PPT_PROGRESSION" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "SLIDE" } } }, slide_audit: { minItems: 1 } }, required: ["slide_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "PPT_FINAL" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "SLIDE" } } }, slide_audit: { minItems: 1 } }, required: ["slide_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "FULL_REPORT_SEMINAR" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "PAGE" } } }, page_audit: { minItems: 1 } }, required: ["page_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "FULL_REPORT_RM" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "PAGE" } } }, page_audit: { minItems: 1 } }, required: ["page_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "FULL_REPORT_PROJECT_PROGRESSION" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "PAGE" } } }, page_audit: { minItems: 1 } }, required: ["page_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "FULL_REPORT_FINAL_PROJECT" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "PAGE" } } }, page_audit: { minItems: 1 } }, required: ["page_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "REPORT_MANUAL" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "PAGE" } } }, page_audit: { minItems: 1 } }, required: ["page_audit"] } }, { if: { properties: { meta: { properties: { artifact_type: { const: "POSTER_PROJECT" } }, required: ["artifact_type"] } } }, then: { properties: { audit_coverage: { properties: { unit_type: { const: "POSTER_SHEET" }, total_units: { const: 1 } } } } } }, { if: { properties: { meta: { properties: { external_verification_used: { const: false } }, required: ["external_verification_used"] } } }, then: { properties: { comments: { additionalProperties: { allOf: [{ $ref: "#/$defs/reviewer_comment" }, { properties: { external_sources: { maxItems: 0 } } }] } }, verification_limitations: { additionalProperties: { allOf: [{ $ref: "#/$defs/verification_limitation" }, { properties: { external_sources: { maxItems: 0 } } }] } } } } }, { "x-stage-checkpoint-rule": "seminar-progress", if: { properties: { meta: { properties: { artifact_type: { enum: ["PPT_SEMINAR", "FULL_REPORT_SEMINAR"] } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { academic_stage: { const: "PROGRESS" }, checkpoint: { const: "NOT_APPLICABLE" } } } } } }, { "x-stage-checkpoint-rule": "rm-proposal", if: { properties: { meta: { properties: { artifact_type: { enum: ["PPT_RM", "FULL_REPORT_RM"] } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { academic_stage: { const: "PROPOSAL" }, checkpoint: { enum: ["MIDTERM", "FINAL"] } } } } } }, { "x-stage-checkpoint-rule": "project-progression", if: { properties: { meta: { properties: { artifact_type: { enum: ["PPT_PROGRESSION", "FULL_REPORT_PROJECT_PROGRESSION"] } }, required: ["artifact_type"] } } }, then: { properties: { meta: { oneOf: [{ properties: { academic_stage: { const: "PROGRESS_1" }, checkpoint: { enum: ["MIDTERM", "FINAL"] } } }, { properties: { academic_stage: { const: "PROGRESS_2" }, checkpoint: { const: "MIDTERM" } } }] } } } }, { "x-stage-checkpoint-rule": "final-report", if: { properties: { meta: { properties: { artifact_type: { enum: ["PPT_FINAL", "FULL_REPORT_FINAL_PROJECT"] } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { academic_stage: { const: "FINAL_REPORT" }, checkpoint: { const: "FINAL" } } } } } }, { "x-stage-checkpoint-rule": "manual", if: { properties: { meta: { properties: { artifact_type: { enum: ["REPORT_MANUAL"] } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { academic_stage: { const: "MANUAL" }, checkpoint: { const: "NOT_APPLICABLE" } } } } } }, { "x-stage-checkpoint-rule": "poster", if: { properties: { meta: { properties: { artifact_type: { enum: ["POSTER_PROJECT"] } }, required: ["artifact_type"] } } }, then: { properties: { meta: { properties: { academic_stage: { const: "POSTER" }, checkpoint: { const: "NOT_APPLICABLE" } } } } } }, { "x-requirement-audit-rule": "ppt-report-manual-poster", if: { properties: { meta: { properties: { artifact_type: { enum: ["PPT_SEMINAR", "PPT_RM", "PPT_PROGRESSION", "PPT_FINAL", "FULL_REPORT_SEMINAR", "FULL_REPORT_RM", "FULL_REPORT_PROJECT_PROGRESSION", "FULL_REPORT_FINAL_PROJECT", "REPORT_MANUAL", "POSTER_PROJECT"] } }, required: ["artifact_type"] } } }, then: { required: ["requirement_audit"], properties: { requirement_audit: { minItems: 1 } } } }], "x-runtime-validation-required": ["Reject duplicate JSON object member names during parsing.", "meta.request_id must exactly equal the frozen request request_id.", "meta.artifact_type must exactly equal the frozen request artifact_type.", "meta.selected_profile must exactly equal the frozen request selected_profile and the artifact-to-profile mapping enforced by this schema.", "meta.master_prompt_version must exactly equal the frozen request master_prompt_version and must be master-project-prompt-v1.", "meta.result_protocol_version must equal PROJECT-REVIEW-COMMENTS-v1.", "meta.json_contract_version must equal shared-project-review-json-contract-v1.", "If the frozen request specifies output_language, meta.output_language must equal it.", "Every comments[*].verification_limitation_refs entry and every audit_coverage.material_access_limitations[*].verification_limitation_refs entry must resolve to an existing key in verification_limitations.", "For every audit_coverage range: start <= end; ranges must be within 1..total_units when total_units is known.", "When total_units is known, fully_reviewed_ranges, partially_reviewed_ranges, and unreviewed_ranges must be non-overlapping and collectively account for every unit exactly once.", "A comment with status NOT_CHECKABLE should reference at least one verification limitation whenever the non-checkability arises from unavailable material/access/tooling.", "For grouped SECTION_WIDE, ARTIFACT_WIDE, or CROSS_LOCATION comments, representative_locations should contain enough locations to make the grouping traceable when such locations are observable.", "external_verification_used must accurately reflect whether external sources were actually inspected/used.", "No model-generated severity counts, overall grade, score, readiness percentage, pass/fail, accept/reject, or overall quality verdict may be added outside this schema.", "comments must contain only material artifact issues; verification_limitations must contain only pure audit/external limitations.", "The consuming application should derive counts/groupings from canonical comments and coverage rather than asking the model to duplicate them.", "PROJECT CHECK v1 accepts exactly one primary artifact; audit_coverage.cross_artifact_consistency_checked must be false.", "For FULL_REPORT_SEMINAR, FULL_REPORT_RM, FULL_REPORT_PROJECT_PROGRESSION, FULL_REPORT_FINAL_PROJECT, and REPORT_MANUAL: page_audit is mandatory and must contain exactly audit_coverage.total_units entries when total_units is known.", "For the four FULL_REPORT_* artifact types and REPORT_MANUAL: page_audit.page_number values must be exactly the contiguous set 1..audit_coverage.total_units with no gaps or duplicates.", "For the four FULL_REPORT_* artifact types and REPORT_MANUAL: each page_audit.review_status must agree with audit_coverage fully/partially/unreviewed ranges; do not claim FULLY_REVIEWED for a page in a partial/unreviewed range.", "Every page_audit.finding_refs entry must resolve to an existing key in comments; every page_audit.verification_limitation_refs entry must resolve to an existing key in verification_limitations.", "Every comments[*].occurrences[*].unit_number must be within 1..audit_coverage.total_units when total_units is known.", "For page-first long-form comments (FULL_REPORT_* or REPORT_MANUAL), every occurrence on page N must have its comment ID present in page_audit entry N finding_refs, and every finding_refs comment on page N must have at least one matching occurrence for page N.", "For grouped SECTION_WIDE, ARTIFACT_WIDE, or CROSS_LOCATION comments in page-first long-form artifacts (FULL_REPORT_* or REPORT_MANUAL), occurrences must preserve every materially verified affected PDF page. representative_locations may be a concise subset but must not replace this exhaustive affected-page mapping.", "Multiple same-root instances on the same page-first long-form page (FULL_REPORT_* or REPORT_MANUAL) may be summarized into one comment occurrence; the contract does not require one occurrence object per repeated token/typo when page-level traceability is preserved.", "For the four FULL_REPORT_* artifact types and REPORT_MANUAL: every page_audit.page_note must be a non-empty factual page context/role note and must not be a PASS/praise quality verdict.", "For page-first long-form page_audit entries (FULL_REPORT_* or REPORT_MANUAL): FULLY_REVIEWED and PARTIALLY_REVIEWED pages must have at least one checked_elements item; UNREVIEWED pages must have an empty checked_elements array.", "For page-first long-form comments (FULL_REPORT_* or REPORT_MANUAL): occurrence_summary must be page-specific manifestation/evidence, not a generic pointer such as same issue or see C###.", "Broad category equality alone is never sufficient for comment grouping. Distinct root causes, meanings, consequences, evidential bases, or correction directions must remain separate comments.", "Multiple occurrences for the same page-first long-form page (FULL_REPORT_* or REPORT_MANUAL) are allowed and required when materially distinct local manifestations would be hidden by one summarized occurrence.", "meta.academic_stage must exactly equal the frozen request academic_stage.", "meta.checkpoint must exactly equal the frozen request checkpoint.", "For page-first long-form artifacts, audit_coverage.total_units must exactly equal frozen request artifact.page_count, including blank and duplicate physical PDF pages.", "Blank physical PDF pages and duplicate physical PDF pages must each retain their own page_audit entry; do not deduplicate or omit them.", "When PDF text extraction is corrupted but the rendered page is visually legible, use the rendered PDF page as review evidence and do not emit artifact language/spelling defects based solely on extraction corruption.", "For PPT_SEMINAR, PPT_RM, PPT_PROGRESSION, and PPT_FINAL: slide_audit is mandatory and must contain exactly audit_coverage.total_units entries.", "For PPT artifact types: audit_coverage.total_units must exactly equal frozen request artifact.page_count; each physical PDF page is one slide unit in the PDF-only workflow, including blank and duplicate exported slides.", "For PPT artifact types: slide_audit.slide_number values must be exactly the contiguous set 1..audit_coverage.total_units with no gaps or duplicates.", "For PPT artifact types: each slide_audit.review_status must agree with audit_coverage fully/partially/unreviewed ranges.", "Every slide_audit.finding_refs entry must resolve to an existing comments key; every slide_audit.verification_limitation_refs entry must resolve to an existing verification_limitations key.", "For PPT comments, every occurrence on slide N must have its comment ID present in slide_audit entry N finding_refs, and every finding_refs comment on slide N must have at least one matching occurrence for slide N.", "For grouped PPT comments, occurrences must preserve every materially verified affected slide; representative_locations may be a concise subset but must not replace exhaustive affected-slide mapping.", "For PPT slide_audit entries, FULLY_REVIEWED and PARTIALLY_REVIEWED slides must have at least one checked_elements item; UNREVIEWED slides must have an empty checked_elements array.", "Every PPT slide_audit.slide_note must be a non-empty factual slide context/role note and must not be a PASS/praise quality verdict.", "PPT occurrence_summary must be slide-specific manifestation/evidence, not a generic pointer such as same issue or see C###.", "For PPT_*, FULL_REPORT_*, REPORT_MANUAL, and POSTER_PROJECT, requirement_audit must contain exactly the shared MASTER refs plus every ref registered for meta.selected_profile, each exactly once and preferably in registry order.", "No unregistered requirement_ref is allowed.", "Every evidence_units value must be within 1..audit_coverage.total_units.", "PARTIAL/MISSING require at least one finding_ref; every such canonical comment must include the same requirement_ref in checklist_refs.", "Every comment checklist_ref that matches a registered requirement must be reciprocally listed by that requirement_audit entry when it represents a PARTIAL/MISSING finding.", "NOT_CHECKABLE requires at least one valid verification_limitation_ref.", "SATISFIED and NOT_APPLICABLE must not create PASS/praise comments."], "x-ui-derived-fields": ["Priority counts are derived from comments values.", "Status counts are derived from comments values.", "Category/page/slide/checklist groupings are derived from canonical comments, comment occurrences, and page_audit where applicable.", "Coverage percentages, if the UI chooses to display them, are derived from audit_coverage ranges and are audit-integrity metrics only, never artifact-quality/readiness scores.", "Verification-limitation counts/types are derived from verification_limitations values.", "For page-first long-form artifacts (FULL_REPORT_* or REPORT_MANUAL), the site may collapse grouped comments interactively, but downloadable full-review rendering should enumerate page_audit in page order and resolve finding_refs to occurrence-specific details.", "For page-first long-form artifacts (FULL_REPORT_* or REPORT_MANUAL), a Full Audit PDF should be rendered as Part I: a compact 1\u20132 page deterministic summary, followed by Part II: exactly one detailed audit section for every original PDF page in page order.", "The Full Audit PDF summary is derived from canonical result data; no duplicate model-authored top-level summary object is required.", "For each page-first long-form page section (FULL_REPORT_* or REPORT_MANUAL), resolve page_audit.finding_refs to the canonical comments and matching occurrence(s) for that page so page-specific manifestation and shared diagnosis/recommendation are both visible.", "For page-first long-form artifacts, display the frozen academic stage/checkpoint independently from artifact_type/profile technical identifiers.", "When page_audit.visible_page_label is present, a Full Audit PDF may display it alongside the authoritative physical PDF page number.", "For PPT artifacts, the site may collapse grouped comments interactively, but the slide-by-slide view and downloadable full-review rendering must enumerate slide_audit in slide order and resolve finding_refs to matching slide-specific occurrences.", "For PPT artifacts, a Full Audit PDF should be rendered as Part I: a compact deterministic summary, followed by Part II: exactly one detailed audit section for every original PDF slide in slide order.", "PPT stage presentation semantics follow cumulative compression: Proposal -> Progress -> Progress 1 -> Progress 2 -> Final; later decks compress repeated background/individual-related-work narrative while retaining/updating the structured comparison/gap anchor and increasing emphasis on implementation/evaluation/results.", "requirement coverage/status counts and views from requirement_audit", "requirement-to-finding and requirement-to-limitation traceability", "Poster requirement coverage is derived from MASTER-G01..G12 plus PP01..PP18; course name/code absence is not a poster defect in this completed-project workflow."], "x-prohibited-output": ["grade or letter grade", "numerical or percentage quality score", "readiness percentage or readiness label", "overall pass/fail", "accept/reject recommendation", "ranking or overall quality verdict", "replacement sentence/paragraph/slide/poster/manual text", "paste-ready correction template", "replacement caption/label/conclusion", "newly designed method/architecture/algorithm/experiment/test plan presented as the student solution", "fabricated evidence, measurements, datasets, sample sizes, results, citations, implementation status, or completion percentages"], "x-artifact-profile-map": { PPT_SEMINAR: "profile-ppt-seminar-v1", PPT_RM: "profile-ppt-rm-v1", PPT_PROGRESSION: "profile-ppt-progression-v1", PPT_FINAL: "profile-ppt-final-v1", FULL_REPORT_SEMINAR: "profile-full-report-seminar-v1", FULL_REPORT_RM: "profile-full-report-rm-v1", FULL_REPORT_PROJECT_PROGRESSION: "profile-full-report-project-progression-v1", FULL_REPORT_FINAL_PROJECT: "profile-full-report-final-project-v1", REPORT_MANUAL: "profile-report-manual-v1", POSTER_PROJECT: "profile-poster-project-v1" }, "x-profile-stage-guidance": { PPT_SEMINAR: "Post-Proposal Seminar Progress: concise Proposal anchors, retained/updated comparison-gap, design/method refinement, implementation/prototype progress, preliminary testing/evidence, current issues/remaining work, and mandatory demo; do not re-narrate all individual related works by default.", PPT_RM: "Proposal-stage presentation: establish problem/objectives/scope, representative related-work comparison and gap, proposed framework/method/design, concrete evaluation plan, resources/schedule, checkpoint-appropriate feasibility evidence, and mandatory demo.", PPT_PROGRESSION: "Progress 1/2 presentation: concise prior anchors and updated comparison-gap; strong emphasis on implemented/partial/planned/blocked state, integration, progress matrix, evidence, preliminary/executed evaluation/results, blockers, remaining work/timeline, and mandatory demo. Progress 2 is later than Progress 1.", PPT_FINAL: "Final presentation: concise contextual/comparison anchors, final implementation/integration, executed evaluation, final results, discussion/limitations, objective-result closure, conclusion, and mandatory final demo.", FULL_REPORT_SEMINAR: "Post-Proposal Seminar Progress written artifact: retain Proposal anchors and comparison-gap while documenting design/method refinement, implementation/prototype progress, preliminary testing/evidence, current issues/remaining work, and path to Progress 1.", FULL_REPORT_RM: "Proposal-stage written artifact: detailed problem/objectives/scope, related-work analysis/comparison/gap, design/method, evaluation plan, resources/schedule, and checkpoint-appropriate feasibility evidence.", FULL_REPORT_PROJECT_PROGRESSION: "Progress 1/2 written artifact: same audit breadth as final report but checkpoint-calibrated maturity; earlier narrative may be summarized while implementation/integration, progress evidence, evaluation/results, blockers, remaining work, and milestones receive increasing emphasis.", FULL_REPORT_FINAL_PROJECT: "Comprehensive final written artifact requiring final claim/evidence and objective-method/design-implementation-evaluation-result-conclusion closure for committed scope; earlier-stage narrative may be summarized when no longer needed for interpretation.", REPORT_MANUAL: "Full-report-equivalent audit discipline but manual-only scope: overview/use cases, installation files, environment/prerequisites, system/client deployment, ordered startup/operation, every delivered function/UI/interface, expected outcomes, troubleshooting as applicable.", POSTER_PROJECT: "Single-sheet A1 completed-project poster: institution/project identity, project/group/advisor/student metadata as applicable (no course name/code required), problem/objectives/scope, method/design, evaluation/results/conclusion, references, domain-adaptive technical integrity, and poster-specific visual communication." }, "x-shared-ppt-requirements": { related_work_comparison: "Required in PPT_RM, PPT_SEMINAR, PPT_PROGRESSION, and PPT_FINAL. RM Proposal establishes the comparison/gap anchor; Seminar retains/updates it; Progress 1/2 and Final may compress individual-related-work narrative but must retain/update the structured comparison anchor.", topic_assumption_for_later_stages: "After RM Proposal, Seminar Progress, Progress 1/2, and Final should avoid re-teaching unchanged background. Presentation weight shifts progressively toward implementation, evaluation, results, blockers/closure, and demo.", canonical_sequence: "RM Proposal -> Seminar Progress -> Progress 1 -> Progress 2 -> Final Report.", ppt_report_mirror: "At the same stage/checkpoint, PPT and Full Report share maturity semantics. PPT is a selective presentation extraction/synthesis of the report story; the report carries greater detail." }, "x-input-policy": { accepted_mime_type: "application/pdf", accepted_extension: ".pdf", primary_artifact_count: 1, authoritative_identity_check: "SHA-256 exact match to frozen request artifact.sha256", filename_role: "metadata_only", size_bytes_role: "metadata_only", ppt_pdf_scope: "static visible PDF content only; live demo/animation/video/audio/speaker notes are not proven by the PDF" }, "x-requirement-audit-registry": { shared_master_requirements: { "MASTER-G01": "Frozen identity, artifact/profile, academic-stage, and checkpoint semantics are respected exactly.", "MASTER-G02": "Every physical review unit is covered exactly once in the required page/slide ledger, including blank and duplicate units.", "MASTER-G03": "Every materially visible object/content class on each inspectable unit is actually inspected; inaccessible content is represented honestly.", "MASTER-G04": "Technical/content correctness is checked with domain-adaptive scrutiny rather than surface-format inspection only.", "MASTER-G05": "Artifact structure and stage-appropriate required sections/components are checked for completeness and logical role.", "MASTER-G06": "Language, terminology, spelling/grammar, notation, labels, and professional/editorial integrity are checked.", "MASTER-G07": "Figures, tables, charts, equations, diagrams/UML, UI/screenshots, code, hardware objects, and other visuals are checked for correctness and readability when present.", "MASTER-G08": "Citations, source attribution, in-text references, bibliography/reference integrity, and borrowed-material traceability are checked.", "MASTER-G09": "Cross-unit and cross-section consistency of terminology, numbers, scope, architecture/design, methods, and repeated claims is checked.", "MASTER-G10": "Claim-to-evidence and, where applicable, objective -> method/implementation -> evaluation -> result -> conclusion traceability is checked.", "MASTER-G11": "Stage maturity is applied correctly, including planned-vs-implemented-vs-evaluated separation and prevention of overclaiming.", "MASTER-G12": "Verification limitations, comment occurrences, finding references, and canonical machine-output traceability are complete and honest." }, profile_requirements: { "profile-ppt-rm-v1": ["RM-P01", "RM-P02", "RM-P03", "RM-P04", "RM-P05", "RM-P06", "RM-P07", "RM-P08", "RM-P09", "RM-P10", "RM-P11", "RM-P12", "RM-P13", "RM-P14", "RM-P15", "RM-P16", "RM-P17", "RM-P18", "RM-P19", "RM-P20", "RM-P21", "RM-P22", "RM-P23", "RM-P24", "RM-P25", "RM-P26", "RM-P27", "RM-P28", "RM-P29", "RM-P30", "RM-P31"], "profile-ppt-seminar-v1": ["SEM-P01", "SEM-P02", "SEM-P03", "SEM-P04", "SEM-P05", "SEM-P06", "SEM-P07", "SEM-P08", "SEM-P09", "SEM-P10", "SEM-P11", "SEM-P12", "SEM-P13", "SEM-P14"], "profile-ppt-progression-v1": ["PR-P01", "PR-P02", "PR-P03", "PR-P04", "PR-P05", "PR-P06", "PR-P07", "PR-P08", "PR-P09", "PR-P10", "PR-P11", "PR-P12", "PR-P13"], "profile-ppt-final-v1": ["PF-P01", "PF-P02", "PF-P03", "PF-P04", "PF-P05", "PF-P06", "PF-P07", "PF-P08", "PF-P09", "PF-P10", "PF-P11", "PF-P12", "PF-P13", "PF-P14", "PF-P15", "PF-P16", "PF-P17"], "profile-full-report-rm-v1": ["RM01", "RM02", "RM03", "RM04", "RM05", "RM06", "RM07", "RM08", "RM09", "RM10", "RM11", "RM12", "RM13", "RM14", "RM15", "RM16", "RM17", "RM18", "RM19", "RM20", "RM21", "RM22", "RM23", "RM24"], "profile-full-report-seminar-v1": ["SEM01", "SEM02", "SEM03", "SEM04", "SEM05", "SEM06", "SEM07", "SEM08", "SEM09", "SEM10", "SEM11", "SEM12", "SEM13"], "profile-full-report-project-progression-v1": ["PR01", "PR02", "PR03", "PR04", "PR05", "PR06", "PR07", "PR08", "PR09", "PR10", "PR11", "PR12", "PR13", "PR14", "PR15", "PR16"], "profile-full-report-final-project-v1": ["FR01", "FR02", "FR03", "FR04", "FR05", "FR06", "FR07", "FR08", "FR09", "FR10", "FR11", "FR12", "FR13", "FR14", "FR15"], "profile-report-manual-v1": ["MAN01", "MAN02", "MAN03", "MAN04", "MAN05", "MAN06", "MAN07", "MAN08", "MAN09", "MAN10", "MAN11", "MAN12", "MAN13", "MAN14", "MAN15", "MAN16", "MAN17", "MAN18"], "profile-poster-project-v1": ["PP01", "PP02", "PP03", "PP04", "PP05", "PP06", "PP07", "PP08", "PP09", "PP10", "PP11", "PP12", "PP13", "PP14", "PP15", "PP16", "PP17", "PP18"] }, runtime_rules: ["For PPT_*, FULL_REPORT_*, REPORT_MANUAL, and POSTER_PROJECT, requirement_audit must contain exactly the shared MASTER refs plus every ref registered for meta.selected_profile, each exactly once and preferably in registry order.", "No unregistered requirement_ref is allowed.", "Every evidence_units value must be within 1..audit_coverage.total_units.", "PARTIAL/MISSING require at least one finding_ref; every such canonical comment must include the same requirement_ref in checklist_refs.", "Every comment checklist_ref that matches a registered requirement must be reciprocally listed by that requirement_audit entry when it represents a PARTIAL/MISSING finding.", "NOT_CHECKABLE requires at least one valid verification_limitation_ref.", "SATISFIED and NOT_APPLICABLE must not create PASS/praise comments."] } };
var Kr = { type: "object", additionalProperties: false, required: ["page_number", "review_status", "checked_elements", "finding_refs", "verification_limitation_refs", "page_note"], properties: { page_number: { type: "integer", minimum: 1 }, review_status: { type: "string", enum: ["FULLY_REVIEWED", "PARTIALLY_REVIEWED", "UNREVIEWED"] }, checked_elements: { type: "array", uniqueItems: true, items: { type: "string", enum: ["PAGE_LAYOUT", "HEADINGS_STRUCTURE", "TEXT_SENTENCES", "CITATIONS_REFERENCES", "FIGURES_IMAGES", "TABLES", "EQUATIONS", "ALGORITHMS_PSEUDOCODE", "UML_DIAGRAMS", "UI_SCREENSHOTS", "HARDWARE_OBJECTS", "CHARTS_PLOTS", "CODE_BLOCKS", "APPENDICES_FORMS", "OTHER_VISIBLE_OBJECTS"] }, description: "Element classes actually inspected on this page. For PARTIALLY_REVIEWED/UNREVIEWED pages list only what was genuinely inspectable." }, finding_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^C[0-9]{3,}$" }, description: "Canonical comment IDs affecting this page. Empty is allowed when no material issue is found." }, verification_limitation_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } }, page_note: { type: "string", minLength: 1, description: "Required factual page context/role note for page-by-page audit rendering (e.g., abstract, chapter section, results table, references, appendix). Must not be a PASS/praise verdict." }, visible_page_label: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }], description: "Optional page label visibly printed in the document (e.g., \u0E01, \u0E02, i, 1). PDF physical page_number remains the authoritative locator." } }, allOf: [{ if: { properties: { review_status: { enum: ["FULLY_REVIEWED", "PARTIALLY_REVIEWED"] } }, required: ["review_status"] }, then: { properties: { checked_elements: { minItems: 1 } } } }, { if: { properties: { review_status: { const: "UNREVIEWED" } }, required: ["review_status"] }, then: { properties: { checked_elements: { maxItems: 0 } } } }] };
var Yr = { type: "object", additionalProperties: false, required: ["slide_number", "review_status", "checked_elements", "finding_refs", "verification_limitation_refs", "slide_note"], properties: { slide_number: { type: "integer", minimum: 1 }, review_status: { type: "string", enum: ["FULLY_REVIEWED", "PARTIALLY_REVIEWED", "UNREVIEWED"] }, checked_elements: { type: "array", uniqueItems: true, items: { type: "string", enum: ["SLIDE_LAYOUT", "HEADINGS_STRUCTURE", "TEXT_BULLETS", "CITATIONS_REFERENCES", "FIGURES_IMAGES", "TABLES", "CHARTS_PLOTS", "EQUATIONS", "ALGORITHMS_PSEUDOCODE", "UML_DIAGRAMS", "UI_SCREENSHOTS", "HARDWARE_OBJECTS", "CODE_BLOCKS", "DEMO_EVIDENCE", "OTHER_VISIBLE_OBJECTS"] }, description: "Element classes actually inspected on this slide." }, finding_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^C[0-9]{3,}$" }, description: "Canonical comment IDs affecting this slide. Empty is allowed when no material issue is found." }, verification_limitation_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } }, slide_note: { type: "string", minLength: 1, description: "Required factual slide context/role note for slide-by-slide audit rendering. Must not be a PASS/praise verdict." } }, allOf: [{ if: { properties: { review_status: { enum: ["FULLY_REVIEWED", "PARTIALLY_REVIEWED"] } }, required: ["review_status"] }, then: { properties: { checked_elements: { minItems: 1 } } } }, { if: { properties: { review_status: { const: "UNREVIEWED" } }, required: ["review_status"] }, then: { properties: { checked_elements: { maxItems: 0 } } } }] };
var Ei = { type: "object", additionalProperties: false, required: ["requirement_ref", "status", "evidence_units", "finding_refs", "verification_limitation_refs", "note"], properties: { requirement_ref: { type: "string", pattern: "^[A-Z][A-Z0-9-]{1,31}$" }, status: { type: "string", enum: ["SATISFIED", "PARTIAL", "MISSING", "NOT_APPLICABLE", "NOT_CHECKABLE"] }, evidence_units: { type: "array", uniqueItems: true, items: { type: "integer", minimum: 1 }, description: "Physical PDF page/slide unit numbers supporting the coverage assessment. May be empty for genuinely missing/N/A requirements." }, finding_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^C[0-9]{3,}$" } }, verification_limitation_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } }, note: { type: "string", minLength: 1, description: "Concise factual requirement-coverage note; do not write praise or a grade." } }, allOf: [{ if: { properties: { status: { enum: ["PARTIAL", "MISSING"] } }, required: ["status"] }, then: { properties: { finding_refs: { minItems: 1 }, verification_limitation_refs: { maxItems: 0 } } } }, { if: { properties: { status: { const: "NOT_CHECKABLE" } }, required: ["status"] }, then: { properties: { verification_limitation_refs: { minItems: 1 } } } }, { if: { properties: { status: { enum: ["SATISFIED", "NOT_APPLICABLE"] } }, required: ["status"] }, then: { properties: { finding_refs: { maxItems: 0 }, verification_limitation_refs: { maxItems: 0 } } } }, { if: { properties: { status: { const: "NOT_APPLICABLE" } }, required: ["status"] }, then: { properties: { evidence_units: { maxItems: 0 } } } }] };
var ct = { type: "object", additionalProperties: false, required: ["title", "priority", "status", "basis", "verification_limitation_refs", "category", "scope", "location", "representative_locations", "occurrences", "occurrence_note", "claim_or_element", "review_comment", "why_it_matters", "evidence_reasoning", "evidence_gap", "recommendation", "recheck_requirement", "checklist_refs", "domain_context", "external_sources", "confidence"], properties: { title: { type: "string", minLength: 1 }, priority: { type: "string", enum: ["CRITICAL", "MAJOR", "MINOR", "EDITORIAL"] }, status: { type: "string", enum: ["FAIL", "UNCERTAIN", "NOT_CHECKABLE"] }, basis: { type: "array", minItems: 1, uniqueItems: true, items: { type: "string", enum: ["CONCRETE_ARTIFACT_ERROR_OR_CONTRADICTION", "INSUFFICIENT_AUTHOR_EVIDENCE_OR_ARTIFACT_DEFICIENCY"] }, description: "Artifact-issue provenance only. Pure verification limitations are prohibited here." }, verification_limitation_refs: { type: "array", uniqueItems: true, items: { type: "string", pattern: "^VL[0-9]{3,}$" } }, category: { type: "string", minLength: 1, description: "Shared or profile-specific review category; intentionally not a closed enum." }, scope: { type: "string", enum: ["LOCAL", "SECTION_WIDE", "ARTIFACT_WIDE", "CROSS_LOCATION"] }, location: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }], description: "Most precise defensible primary artifact location; never invent." }, representative_locations: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 }, description: "Representative or cross-location positions, especially for grouped/systematic issues." }, occurrences: { type: "array", minItems: 1, description: "Structured occurrence traceability. For grouped page-first long-form comments (FULL_REPORT_* or REPORT_MANUAL), preserve every materially verified affected PDF page; multiple same-root instances on one page may be summarized only when local manifestations do not require distinct interpretation or correction.", items: { $ref: "#/$defs/comment_occurrence" } }, occurrence_note: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, claim_or_element: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, review_comment: { type: "string", minLength: 1, description: "Detailed diagnosis; no replacement text or authored repair." }, why_it_matters: { type: "string", minLength: 1 }, evidence_reasoning: { type: "string", minLength: 1 }, evidence_gap: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, recommendation: { type: "string", minLength: 1, description: "Correction direction only. Must not contain replacement wording, paste-ready text, newly designed method/experiment/architecture, or fabricated evidence." }, recheck_requirement: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, checklist_refs: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 } }, domain_context: { type: "array", uniqueItems: true, items: { type: "string", minLength: 1 } }, external_sources: { type: "array", items: { $ref: "#/$defs/external_source" } }, confidence: { type: "string", enum: ["HIGH", "MEDIUM", "LOW"] } } };
var ft = new RegExp("^VL[0-9]{3,}$", "u");
function Re(r, { instancePath: i = "", parentData: B, parentDataProperty: $, rootData: H = r, dynamicAnchors: ae = {} } = {}) {
  let e = null, t = 0, K = Re.evaluated;
  if (K.dynamicProps && (K.props = void 0), K.dynamicItems && (K.items = void 0), r && typeof r == "object" && !Array.isArray(r)) {
    if (r.title === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "title" }, message: "must have required property 'title'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.priority === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "priority" }, message: "must have required property 'priority'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.status === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "status" }, message: "must have required property 'status'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.basis === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "basis" }, message: "must have required property 'basis'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.verification_limitation_refs === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "verification_limitation_refs" }, message: "must have required property 'verification_limitation_refs'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.category === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "category" }, message: "must have required property 'category'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.scope === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "scope" }, message: "must have required property 'scope'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.location === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "location" }, message: "must have required property 'location'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.representative_locations === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "representative_locations" }, message: "must have required property 'representative_locations'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.occurrences === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "occurrences" }, message: "must have required property 'occurrences'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.occurrence_note === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "occurrence_note" }, message: "must have required property 'occurrence_note'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.claim_or_element === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "claim_or_element" }, message: "must have required property 'claim_or_element'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.review_comment === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "review_comment" }, message: "must have required property 'review_comment'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.why_it_matters === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "why_it_matters" }, message: "must have required property 'why_it_matters'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.evidence_reasoning === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "evidence_reasoning" }, message: "must have required property 'evidence_reasoning'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.evidence_gap === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "evidence_gap" }, message: "must have required property 'evidence_gap'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.recommendation === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "recommendation" }, message: "must have required property 'recommendation'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.recheck_requirement === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "recheck_requirement" }, message: "must have required property 'recheck_requirement'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.checklist_refs === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "checklist_refs" }, message: "must have required property 'checklist_refs'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.domain_context === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "domain_context" }, message: "must have required property 'domain_context'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.external_sources === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "external_sources" }, message: "must have required property 'external_sources'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    if (r.confidence === void 0) {
      let m = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "confidence" }, message: "must have required property 'confidence'" };
      e === null ? e = [m] : e.push(m), t++;
    }
    for (let m in r) if (!Et.call(ct.properties, m)) {
      let h = { instancePath: i, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: m }, message: "must NOT have additional properties" };
      e === null ? e = [h] : e.push(h), t++;
    }
    if (r.title !== void 0) {
      let m = r.title;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let h = { instancePath: i + "/title", schemaPath: "#/properties/title/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [h] : e.push(h), t++;
        }
      } else {
        let h = { instancePath: i + "/title", schemaPath: "#/properties/title/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.priority !== void 0) {
      let m = r.priority;
      if (typeof m != "string") {
        let h = { instancePath: i + "/priority", schemaPath: "#/properties/priority/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
      if (!(m === "CRITICAL" || m === "MAJOR" || m === "MINOR" || m === "EDITORIAL")) {
        let h = { instancePath: i + "/priority", schemaPath: "#/properties/priority/enum", keyword: "enum", params: { allowedValues: ct.properties.priority.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.status !== void 0) {
      let m = r.status;
      if (typeof m != "string") {
        let h = { instancePath: i + "/status", schemaPath: "#/properties/status/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
      if (!(m === "FAIL" || m === "UNCERTAIN" || m === "NOT_CHECKABLE")) {
        let h = { instancePath: i + "/status", schemaPath: "#/properties/status/enum", keyword: "enum", params: { allowedValues: ct.properties.status.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.basis !== void 0) {
      let m = r.basis;
      if (Array.isArray(m)) {
        if (m.length < 1) {
          let _ = { instancePath: i + "/basis", schemaPath: "#/properties/basis/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [_] : e.push(_), t++;
        }
        let h = m.length;
        for (let _ = 0; _ < h; _++) {
          let w = m[_];
          if (typeof w != "string") {
            let y = { instancePath: i + "/basis/" + _, schemaPath: "#/properties/basis/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [y] : e.push(y), t++;
          }
          if (!(w === "CONCRETE_ARTIFACT_ERROR_OR_CONTRADICTION" || w === "INSUFFICIENT_AUTHOR_EVIDENCE_OR_ARTIFACT_DEFICIENCY")) {
            let y = { instancePath: i + "/basis/" + _, schemaPath: "#/properties/basis/items/enum", keyword: "enum", params: { allowedValues: ct.properties.basis.items.enum }, message: "must be equal to one of the allowed values" };
            e === null ? e = [y] : e.push(y), t++;
          }
        }
        let v = m.length, R;
        if (v > 1) {
          let _ = {};
          for (; v--; ) {
            let w = m[v];
            if (typeof w == "string") {
              if (typeof _[w] == "number") {
                R = _[w];
                let y = { instancePath: i + "/basis", schemaPath: "#/properties/basis/uniqueItems", keyword: "uniqueItems", params: { i: v, j: R }, message: "must NOT have duplicate items (items ## " + R + " and " + v + " are identical)" };
                e === null ? e = [y] : e.push(y), t++;
                break;
              }
              _[w] = v;
            }
          }
        }
      } else {
        let h = { instancePath: i + "/basis", schemaPath: "#/properties/basis/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.verification_limitation_refs !== void 0) {
      let m = r.verification_limitation_refs;
      if (Array.isArray(m)) {
        let h = m.length;
        for (let _ = 0; _ < h; _++) {
          let w = m[_];
          if (typeof w == "string") {
            if (!ft.test(w)) {
              let y = { instancePath: i + "/verification_limitation_refs/" + _, schemaPath: "#/properties/verification_limitation_refs/items/pattern", keyword: "pattern", params: { pattern: "^VL[0-9]{3,}$" }, message: 'must match pattern "^VL[0-9]{3,}$"' };
              e === null ? e = [y] : e.push(y), t++;
            }
          } else {
            let y = { instancePath: i + "/verification_limitation_refs/" + _, schemaPath: "#/properties/verification_limitation_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [y] : e.push(y), t++;
          }
        }
        let v = m.length, R;
        if (v > 1) {
          let _ = {};
          for (; v--; ) {
            let w = m[v];
            if (typeof w == "string") {
              if (typeof _[w] == "number") {
                R = _[w];
                let y = { instancePath: i + "/verification_limitation_refs", schemaPath: "#/properties/verification_limitation_refs/uniqueItems", keyword: "uniqueItems", params: { i: v, j: R }, message: "must NOT have duplicate items (items ## " + R + " and " + v + " are identical)" };
                e === null ? e = [y] : e.push(y), t++;
                break;
              }
              _[w] = v;
            }
          }
        }
      } else {
        let h = { instancePath: i + "/verification_limitation_refs", schemaPath: "#/properties/verification_limitation_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.category !== void 0) {
      let m = r.category;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let h = { instancePath: i + "/category", schemaPath: "#/properties/category/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [h] : e.push(h), t++;
        }
      } else {
        let h = { instancePath: i + "/category", schemaPath: "#/properties/category/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.scope !== void 0) {
      let m = r.scope;
      if (typeof m != "string") {
        let h = { instancePath: i + "/scope", schemaPath: "#/properties/scope/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
      if (!(m === "LOCAL" || m === "SECTION_WIDE" || m === "ARTIFACT_WIDE" || m === "CROSS_LOCATION")) {
        let h = { instancePath: i + "/scope", schemaPath: "#/properties/scope/enum", keyword: "enum", params: { allowedValues: ct.properties.scope.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.location !== void 0) {
      let m = r.location, h = t, v = false, R = null, _ = t;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let y = { instancePath: i + "/location", schemaPath: "#/properties/location/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [y] : e.push(y), t++;
        }
      } else {
        let y = { instancePath: i + "/location", schemaPath: "#/properties/location/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var X = _ === t;
      X && (v = true, R = 0);
      let w = t;
      if (m !== null) {
        let y = { instancePath: i + "/location", schemaPath: "#/properties/location/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var X = w === t;
      if (X && v ? (v = false, R = [R, 1]) : X && (v = true, R = 1), v) t = h, e !== null && (h ? e.length = h : e = null);
      else {
        let y = { instancePath: i + "/location", schemaPath: "#/properties/location/oneOf", keyword: "oneOf", params: { passingSchemas: R }, message: "must match exactly one schema in oneOf" };
        e === null ? e = [y] : e.push(y), t++;
      }
    }
    if (r.representative_locations !== void 0) {
      let m = r.representative_locations;
      if (Array.isArray(m)) {
        let h = m.length;
        for (let _ = 0; _ < h; _++) {
          let w = m[_];
          if (typeof w == "string") {
            if (M(w) < 1) {
              let y = { instancePath: i + "/representative_locations/" + _, schemaPath: "#/properties/representative_locations/items/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
              e === null ? e = [y] : e.push(y), t++;
            }
          } else {
            let y = { instancePath: i + "/representative_locations/" + _, schemaPath: "#/properties/representative_locations/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [y] : e.push(y), t++;
          }
        }
        let v = m.length, R;
        if (v > 1) {
          let _ = {};
          for (; v--; ) {
            let w = m[v];
            if (typeof w == "string") {
              if (typeof _[w] == "number") {
                R = _[w];
                let y = { instancePath: i + "/representative_locations", schemaPath: "#/properties/representative_locations/uniqueItems", keyword: "uniqueItems", params: { i: v, j: R }, message: "must NOT have duplicate items (items ## " + R + " and " + v + " are identical)" };
                e === null ? e = [y] : e.push(y), t++;
                break;
              }
              _[w] = v;
            }
          }
        }
      } else {
        let h = { instancePath: i + "/representative_locations", schemaPath: "#/properties/representative_locations/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.occurrences !== void 0) {
      let m = r.occurrences;
      if (Array.isArray(m)) {
        if (m.length < 1) {
          let v = { instancePath: i + "/occurrences", schemaPath: "#/properties/occurrences/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [v] : e.push(v), t++;
        }
        let h = m.length;
        for (let v = 0; v < h; v++) {
          let R = m[v];
          if (R && typeof R == "object" && !Array.isArray(R)) {
            if (R.unit_number === void 0) {
              let _ = { instancePath: i + "/occurrences/" + v, schemaPath: "#/$defs/comment_occurrence/required", keyword: "required", params: { missingProperty: "unit_number" }, message: "must have required property 'unit_number'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            if (R.location === void 0) {
              let _ = { instancePath: i + "/occurrences/" + v, schemaPath: "#/$defs/comment_occurrence/required", keyword: "required", params: { missingProperty: "location" }, message: "must have required property 'location'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            if (R.element === void 0) {
              let _ = { instancePath: i + "/occurrences/" + v, schemaPath: "#/$defs/comment_occurrence/required", keyword: "required", params: { missingProperty: "element" }, message: "must have required property 'element'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            if (R.occurrence_summary === void 0) {
              let _ = { instancePath: i + "/occurrences/" + v, schemaPath: "#/$defs/comment_occurrence/required", keyword: "required", params: { missingProperty: "occurrence_summary" }, message: "must have required property 'occurrence_summary'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            if (R.count_on_unit === void 0) {
              let _ = { instancePath: i + "/occurrences/" + v, schemaPath: "#/$defs/comment_occurrence/required", keyword: "required", params: { missingProperty: "count_on_unit" }, message: "must have required property 'count_on_unit'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            for (let _ in R) if (!(_ === "unit_number" || _ === "location" || _ === "element" || _ === "occurrence_summary" || _ === "count_on_unit")) {
              let w = { instancePath: i + "/occurrences/" + v, schemaPath: "#/$defs/comment_occurrence/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: _ }, message: "must NOT have additional properties" };
              e === null ? e = [w] : e.push(w), t++;
            }
            if (R.unit_number !== void 0) {
              let _ = R.unit_number;
              if (!(typeof _ == "number" && !(_ % 1) && !isNaN(_))) {
                let w = { instancePath: i + "/occurrences/" + v + "/unit_number", schemaPath: "#/$defs/comment_occurrence/properties/unit_number/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                e === null ? e = [w] : e.push(w), t++;
              }
              if (typeof _ == "number" && (_ < 1 || isNaN(_))) {
                let w = { instancePath: i + "/occurrences/" + v + "/unit_number", schemaPath: "#/$defs/comment_occurrence/properties/unit_number/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                e === null ? e = [w] : e.push(w), t++;
              }
            }
            if (R.location !== void 0) {
              let _ = R.location, w = t, y = false, W = null, re = t;
              if (typeof _ == "string") {
                if (M(_) < 1) {
                  let x = { instancePath: i + "/occurrences/" + v + "/location", schemaPath: "#/$defs/comment_occurrence/properties/location/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [x] : e.push(x), t++;
                }
              } else {
                let x = { instancePath: i + "/occurrences/" + v + "/location", schemaPath: "#/$defs/comment_occurrence/properties/location/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [x] : e.push(x), t++;
              }
              var b = re === t;
              b && (y = true, W = 0);
              let Ae = t;
              if (_ !== null) {
                let x = { instancePath: i + "/occurrences/" + v + "/location", schemaPath: "#/$defs/comment_occurrence/properties/location/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
                e === null ? e = [x] : e.push(x), t++;
              }
              var b = Ae === t;
              if (b && y ? (y = false, W = [W, 1]) : b && (y = true, W = 1), y) t = w, e !== null && (w ? e.length = w : e = null);
              else {
                let x = { instancePath: i + "/occurrences/" + v + "/location", schemaPath: "#/$defs/comment_occurrence/properties/location/oneOf", keyword: "oneOf", params: { passingSchemas: W }, message: "must match exactly one schema in oneOf" };
                e === null ? e = [x] : e.push(x), t++;
              }
            }
            if (R.element !== void 0) {
              let _ = R.element, w = t, y = false, W = null, re = t;
              if (typeof _ == "string") {
                if (M(_) < 1) {
                  let x = { instancePath: i + "/occurrences/" + v + "/element", schemaPath: "#/$defs/comment_occurrence/properties/element/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [x] : e.push(x), t++;
                }
              } else {
                let x = { instancePath: i + "/occurrences/" + v + "/element", schemaPath: "#/$defs/comment_occurrence/properties/element/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [x] : e.push(x), t++;
              }
              var I = re === t;
              I && (y = true, W = 0);
              let Ae = t;
              if (_ !== null) {
                let x = { instancePath: i + "/occurrences/" + v + "/element", schemaPath: "#/$defs/comment_occurrence/properties/element/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
                e === null ? e = [x] : e.push(x), t++;
              }
              var I = Ae === t;
              if (I && y ? (y = false, W = [W, 1]) : I && (y = true, W = 1), y) t = w, e !== null && (w ? e.length = w : e = null);
              else {
                let x = { instancePath: i + "/occurrences/" + v + "/element", schemaPath: "#/$defs/comment_occurrence/properties/element/oneOf", keyword: "oneOf", params: { passingSchemas: W }, message: "must match exactly one schema in oneOf" };
                e === null ? e = [x] : e.push(x), t++;
              }
            }
            if (R.occurrence_summary !== void 0) {
              let _ = R.occurrence_summary;
              if (typeof _ == "string") {
                if (M(_) < 1) {
                  let w = { instancePath: i + "/occurrences/" + v + "/occurrence_summary", schemaPath: "#/$defs/comment_occurrence/properties/occurrence_summary/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [w] : e.push(w), t++;
                }
              } else {
                let w = { instancePath: i + "/occurrences/" + v + "/occurrence_summary", schemaPath: "#/$defs/comment_occurrence/properties/occurrence_summary/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [w] : e.push(w), t++;
              }
            }
            if (R.count_on_unit !== void 0) {
              let _ = R.count_on_unit, w = t, y = false, W = null, re = t;
              if (!(typeof _ == "number" && !(_ % 1) && !isNaN(_))) {
                let x = { instancePath: i + "/occurrences/" + v + "/count_on_unit", schemaPath: "#/$defs/comment_occurrence/properties/count_on_unit/oneOf/0/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                e === null ? e = [x] : e.push(x), t++;
              }
              if (typeof _ == "number" && (_ < 1 || isNaN(_))) {
                let x = { instancePath: i + "/occurrences/" + v + "/count_on_unit", schemaPath: "#/$defs/comment_occurrence/properties/count_on_unit/oneOf/0/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                e === null ? e = [x] : e.push(x), t++;
              }
              var N = re === t;
              N && (y = true, W = 0);
              let Ae = t;
              if (_ !== null) {
                let x = { instancePath: i + "/occurrences/" + v + "/count_on_unit", schemaPath: "#/$defs/comment_occurrence/properties/count_on_unit/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
                e === null ? e = [x] : e.push(x), t++;
              }
              var N = Ae === t;
              if (N && y ? (y = false, W = [W, 1]) : N && (y = true, W = 1), y) t = w, e !== null && (w ? e.length = w : e = null);
              else {
                let x = { instancePath: i + "/occurrences/" + v + "/count_on_unit", schemaPath: "#/$defs/comment_occurrence/properties/count_on_unit/oneOf", keyword: "oneOf", params: { passingSchemas: W }, message: "must match exactly one schema in oneOf" };
                e === null ? e = [x] : e.push(x), t++;
              }
            }
          } else {
            let _ = { instancePath: i + "/occurrences/" + v, schemaPath: "#/$defs/comment_occurrence/type", keyword: "type", params: { type: "object" }, message: "must be object" };
            e === null ? e = [_] : e.push(_), t++;
          }
        }
      } else {
        let h = { instancePath: i + "/occurrences", schemaPath: "#/properties/occurrences/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.occurrence_note !== void 0) {
      let m = r.occurrence_note, h = t, v = false, R = null, _ = t;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let y = { instancePath: i + "/occurrence_note", schemaPath: "#/properties/occurrence_note/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [y] : e.push(y), t++;
        }
      } else {
        let y = { instancePath: i + "/occurrence_note", schemaPath: "#/properties/occurrence_note/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var c = _ === t;
      c && (v = true, R = 0);
      let w = t;
      if (m !== null) {
        let y = { instancePath: i + "/occurrence_note", schemaPath: "#/properties/occurrence_note/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var c = w === t;
      if (c && v ? (v = false, R = [R, 1]) : c && (v = true, R = 1), v) t = h, e !== null && (h ? e.length = h : e = null);
      else {
        let y = { instancePath: i + "/occurrence_note", schemaPath: "#/properties/occurrence_note/oneOf", keyword: "oneOf", params: { passingSchemas: R }, message: "must match exactly one schema in oneOf" };
        e === null ? e = [y] : e.push(y), t++;
      }
    }
    if (r.claim_or_element !== void 0) {
      let m = r.claim_or_element, h = t, v = false, R = null, _ = t;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let y = { instancePath: i + "/claim_or_element", schemaPath: "#/properties/claim_or_element/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [y] : e.push(y), t++;
        }
      } else {
        let y = { instancePath: i + "/claim_or_element", schemaPath: "#/properties/claim_or_element/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var T = _ === t;
      T && (v = true, R = 0);
      let w = t;
      if (m !== null) {
        let y = { instancePath: i + "/claim_or_element", schemaPath: "#/properties/claim_or_element/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var T = w === t;
      if (T && v ? (v = false, R = [R, 1]) : T && (v = true, R = 1), v) t = h, e !== null && (h ? e.length = h : e = null);
      else {
        let y = { instancePath: i + "/claim_or_element", schemaPath: "#/properties/claim_or_element/oneOf", keyword: "oneOf", params: { passingSchemas: R }, message: "must match exactly one schema in oneOf" };
        e === null ? e = [y] : e.push(y), t++;
      }
    }
    if (r.review_comment !== void 0) {
      let m = r.review_comment;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let h = { instancePath: i + "/review_comment", schemaPath: "#/properties/review_comment/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [h] : e.push(h), t++;
        }
      } else {
        let h = { instancePath: i + "/review_comment", schemaPath: "#/properties/review_comment/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.why_it_matters !== void 0) {
      let m = r.why_it_matters;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let h = { instancePath: i + "/why_it_matters", schemaPath: "#/properties/why_it_matters/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [h] : e.push(h), t++;
        }
      } else {
        let h = { instancePath: i + "/why_it_matters", schemaPath: "#/properties/why_it_matters/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.evidence_reasoning !== void 0) {
      let m = r.evidence_reasoning;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let h = { instancePath: i + "/evidence_reasoning", schemaPath: "#/properties/evidence_reasoning/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [h] : e.push(h), t++;
        }
      } else {
        let h = { instancePath: i + "/evidence_reasoning", schemaPath: "#/properties/evidence_reasoning/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.evidence_gap !== void 0) {
      let m = r.evidence_gap, h = t, v = false, R = null, _ = t;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let y = { instancePath: i + "/evidence_gap", schemaPath: "#/properties/evidence_gap/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [y] : e.push(y), t++;
        }
      } else {
        let y = { instancePath: i + "/evidence_gap", schemaPath: "#/properties/evidence_gap/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var F = _ === t;
      F && (v = true, R = 0);
      let w = t;
      if (m !== null) {
        let y = { instancePath: i + "/evidence_gap", schemaPath: "#/properties/evidence_gap/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var F = w === t;
      if (F && v ? (v = false, R = [R, 1]) : F && (v = true, R = 1), v) t = h, e !== null && (h ? e.length = h : e = null);
      else {
        let y = { instancePath: i + "/evidence_gap", schemaPath: "#/properties/evidence_gap/oneOf", keyword: "oneOf", params: { passingSchemas: R }, message: "must match exactly one schema in oneOf" };
        e === null ? e = [y] : e.push(y), t++;
      }
    }
    if (r.recommendation !== void 0) {
      let m = r.recommendation;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let h = { instancePath: i + "/recommendation", schemaPath: "#/properties/recommendation/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [h] : e.push(h), t++;
        }
      } else {
        let h = { instancePath: i + "/recommendation", schemaPath: "#/properties/recommendation/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.recheck_requirement !== void 0) {
      let m = r.recheck_requirement, h = t, v = false, R = null, _ = t;
      if (typeof m == "string") {
        if (M(m) < 1) {
          let y = { instancePath: i + "/recheck_requirement", schemaPath: "#/properties/recheck_requirement/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [y] : e.push(y), t++;
        }
      } else {
        let y = { instancePath: i + "/recheck_requirement", schemaPath: "#/properties/recheck_requirement/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var Z = _ === t;
      Z && (v = true, R = 0);
      let w = t;
      if (m !== null) {
        let y = { instancePath: i + "/recheck_requirement", schemaPath: "#/properties/recheck_requirement/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
        e === null ? e = [y] : e.push(y), t++;
      }
      var Z = w === t;
      if (Z && v ? (v = false, R = [R, 1]) : Z && (v = true, R = 1), v) t = h, e !== null && (h ? e.length = h : e = null);
      else {
        let y = { instancePath: i + "/recheck_requirement", schemaPath: "#/properties/recheck_requirement/oneOf", keyword: "oneOf", params: { passingSchemas: R }, message: "must match exactly one schema in oneOf" };
        e === null ? e = [y] : e.push(y), t++;
      }
    }
    if (r.checklist_refs !== void 0) {
      let m = r.checklist_refs;
      if (Array.isArray(m)) {
        let h = m.length;
        for (let _ = 0; _ < h; _++) {
          let w = m[_];
          if (typeof w == "string") {
            if (M(w) < 1) {
              let y = { instancePath: i + "/checklist_refs/" + _, schemaPath: "#/properties/checklist_refs/items/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
              e === null ? e = [y] : e.push(y), t++;
            }
          } else {
            let y = { instancePath: i + "/checklist_refs/" + _, schemaPath: "#/properties/checklist_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [y] : e.push(y), t++;
          }
        }
        let v = m.length, R;
        if (v > 1) {
          let _ = {};
          for (; v--; ) {
            let w = m[v];
            if (typeof w == "string") {
              if (typeof _[w] == "number") {
                R = _[w];
                let y = { instancePath: i + "/checklist_refs", schemaPath: "#/properties/checklist_refs/uniqueItems", keyword: "uniqueItems", params: { i: v, j: R }, message: "must NOT have duplicate items (items ## " + R + " and " + v + " are identical)" };
                e === null ? e = [y] : e.push(y), t++;
                break;
              }
              _[w] = v;
            }
          }
        }
      } else {
        let h = { instancePath: i + "/checklist_refs", schemaPath: "#/properties/checklist_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.domain_context !== void 0) {
      let m = r.domain_context;
      if (Array.isArray(m)) {
        let h = m.length;
        for (let _ = 0; _ < h; _++) {
          let w = m[_];
          if (typeof w == "string") {
            if (M(w) < 1) {
              let y = { instancePath: i + "/domain_context/" + _, schemaPath: "#/properties/domain_context/items/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
              e === null ? e = [y] : e.push(y), t++;
            }
          } else {
            let y = { instancePath: i + "/domain_context/" + _, schemaPath: "#/properties/domain_context/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [y] : e.push(y), t++;
          }
        }
        let v = m.length, R;
        if (v > 1) {
          let _ = {};
          for (; v--; ) {
            let w = m[v];
            if (typeof w == "string") {
              if (typeof _[w] == "number") {
                R = _[w];
                let y = { instancePath: i + "/domain_context", schemaPath: "#/properties/domain_context/uniqueItems", keyword: "uniqueItems", params: { i: v, j: R }, message: "must NOT have duplicate items (items ## " + R + " and " + v + " are identical)" };
                e === null ? e = [y] : e.push(y), t++;
                break;
              }
              _[w] = v;
            }
          }
        }
      } else {
        let h = { instancePath: i + "/domain_context", schemaPath: "#/properties/domain_context/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.external_sources !== void 0) {
      let m = r.external_sources;
      if (Array.isArray(m)) {
        let h = m.length;
        for (let v = 0; v < h; v++) {
          let R = m[v];
          if (R && typeof R == "object" && !Array.isArray(R)) {
            if (R.source_type === void 0) {
              let _ = { instancePath: i + "/external_sources/" + v, schemaPath: "#/$defs/external_source/required", keyword: "required", params: { missingProperty: "source_type" }, message: "must have required property 'source_type'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            if (R.title === void 0) {
              let _ = { instancePath: i + "/external_sources/" + v, schemaPath: "#/$defs/external_source/required", keyword: "required", params: { missingProperty: "title" }, message: "must have required property 'title'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            if (R.locator === void 0) {
              let _ = { instancePath: i + "/external_sources/" + v, schemaPath: "#/$defs/external_source/required", keyword: "required", params: { missingProperty: "locator" }, message: "must have required property 'locator'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            if (R.supports === void 0) {
              let _ = { instancePath: i + "/external_sources/" + v, schemaPath: "#/$defs/external_source/required", keyword: "required", params: { missingProperty: "supports" }, message: "must have required property 'supports'" };
              e === null ? e = [_] : e.push(_), t++;
            }
            for (let _ in R) if (!(_ === "source_type" || _ === "title" || _ === "locator" || _ === "supports")) {
              let w = { instancePath: i + "/external_sources/" + v, schemaPath: "#/$defs/external_source/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: _ }, message: "must NOT have additional properties" };
              e === null ? e = [w] : e.push(w), t++;
            }
            if (R.source_type !== void 0) {
              let _ = R.source_type;
              if (typeof _ == "string") {
                if (M(_) < 1) {
                  let w = { instancePath: i + "/external_sources/" + v + "/source_type", schemaPath: "#/$defs/external_source/properties/source_type/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [w] : e.push(w), t++;
                }
              } else {
                let w = { instancePath: i + "/external_sources/" + v + "/source_type", schemaPath: "#/$defs/external_source/properties/source_type/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [w] : e.push(w), t++;
              }
            }
            if (R.title !== void 0) {
              let _ = R.title;
              if (typeof _ == "string") {
                if (M(_) < 1) {
                  let w = { instancePath: i + "/external_sources/" + v + "/title", schemaPath: "#/$defs/external_source/properties/title/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [w] : e.push(w), t++;
                }
              } else {
                let w = { instancePath: i + "/external_sources/" + v + "/title", schemaPath: "#/$defs/external_source/properties/title/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [w] : e.push(w), t++;
              }
            }
            if (R.locator !== void 0) {
              let _ = R.locator;
              if (typeof _ == "string") {
                if (M(_) < 1) {
                  let w = { instancePath: i + "/external_sources/" + v + "/locator", schemaPath: "#/$defs/external_source/properties/locator/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [w] : e.push(w), t++;
                }
              } else {
                let w = { instancePath: i + "/external_sources/" + v + "/locator", schemaPath: "#/$defs/external_source/properties/locator/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [w] : e.push(w), t++;
              }
            }
            if (R.supports !== void 0) {
              let _ = R.supports;
              if (typeof _ == "string") {
                if (M(_) < 1) {
                  let w = { instancePath: i + "/external_sources/" + v + "/supports", schemaPath: "#/$defs/external_source/properties/supports/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [w] : e.push(w), t++;
                }
              } else {
                let w = { instancePath: i + "/external_sources/" + v + "/supports", schemaPath: "#/$defs/external_source/properties/supports/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [w] : e.push(w), t++;
              }
            }
          } else {
            let _ = { instancePath: i + "/external_sources/" + v, schemaPath: "#/$defs/external_source/type", keyword: "type", params: { type: "object" }, message: "must be object" };
            e === null ? e = [_] : e.push(_), t++;
          }
        }
      } else {
        let h = { instancePath: i + "/external_sources", schemaPath: "#/properties/external_sources/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
    if (r.confidence !== void 0) {
      let m = r.confidence;
      if (typeof m != "string") {
        let h = { instancePath: i + "/confidence", schemaPath: "#/properties/confidence/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [h] : e.push(h), t++;
      }
      if (!(m === "HIGH" || m === "MEDIUM" || m === "LOW")) {
        let h = { instancePath: i + "/confidence", schemaPath: "#/properties/confidence/enum", keyword: "enum", params: { allowedValues: ct.properties.confidence.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [h] : e.push(h), t++;
      }
    }
  } else {
    let m = { instancePath: i, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
    e === null ? e = [m] : e.push(m), t++;
  }
  return Re.errors = e, t === 0;
}
Re.evaluated = { props: true, dynamicProps: false, dynamicItems: false };
var ki = { type: "object", additionalProperties: false, required: ["basis", "affected_claims_or_elements", "affected_locations", "what_cannot_be_checked", "why_verification_is_unavailable", "consequence_for_confidence_or_status", "additional_access_or_material_required", "external_sources"], properties: { basis: { type: "string", enum: ["EXTERNAL_VERIFICATION_LIMITATION", "AUDIT_ENVIRONMENT_LIMITATION"] }, affected_claims_or_elements: { type: "array", items: { type: "string", minLength: 1 } }, affected_locations: { type: "array", items: { type: "string", minLength: 1 } }, what_cannot_be_checked: { type: "string", minLength: 1 }, why_verification_is_unavailable: { type: "string", minLength: 1 }, consequence_for_confidence_or_status: { type: "string", minLength: 1 }, additional_access_or_material_required: { oneOf: [{ type: "string", minLength: 1 }, { type: "null" }] }, external_sources: { type: "array", items: { $ref: "#/$defs/external_source" } } } };
function be(r, { instancePath: i = "", parentData: B, parentDataProperty: $, rootData: H = r, dynamicAnchors: ae = {} } = {}) {
  let e = null, t = 0, K = be.evaluated;
  if (K.dynamicProps && (K.props = void 0), K.dynamicItems && (K.items = void 0), r && typeof r == "object" && !Array.isArray(r)) {
    if (r.basis === void 0) {
      let b = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "basis" }, message: "must have required property 'basis'" };
      e === null ? e = [b] : e.push(b), t++;
    }
    if (r.affected_claims_or_elements === void 0) {
      let b = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "affected_claims_or_elements" }, message: "must have required property 'affected_claims_or_elements'" };
      e === null ? e = [b] : e.push(b), t++;
    }
    if (r.affected_locations === void 0) {
      let b = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "affected_locations" }, message: "must have required property 'affected_locations'" };
      e === null ? e = [b] : e.push(b), t++;
    }
    if (r.what_cannot_be_checked === void 0) {
      let b = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "what_cannot_be_checked" }, message: "must have required property 'what_cannot_be_checked'" };
      e === null ? e = [b] : e.push(b), t++;
    }
    if (r.why_verification_is_unavailable === void 0) {
      let b = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "why_verification_is_unavailable" }, message: "must have required property 'why_verification_is_unavailable'" };
      e === null ? e = [b] : e.push(b), t++;
    }
    if (r.consequence_for_confidence_or_status === void 0) {
      let b = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "consequence_for_confidence_or_status" }, message: "must have required property 'consequence_for_confidence_or_status'" };
      e === null ? e = [b] : e.push(b), t++;
    }
    if (r.additional_access_or_material_required === void 0) {
      let b = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "additional_access_or_material_required" }, message: "must have required property 'additional_access_or_material_required'" };
      e === null ? e = [b] : e.push(b), t++;
    }
    if (r.external_sources === void 0) {
      let b = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "external_sources" }, message: "must have required property 'external_sources'" };
      e === null ? e = [b] : e.push(b), t++;
    }
    for (let b in r) if (!(b === "basis" || b === "affected_claims_or_elements" || b === "affected_locations" || b === "what_cannot_be_checked" || b === "why_verification_is_unavailable" || b === "consequence_for_confidence_or_status" || b === "additional_access_or_material_required" || b === "external_sources")) {
      let I = { instancePath: i, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: b }, message: "must NOT have additional properties" };
      e === null ? e = [I] : e.push(I), t++;
    }
    if (r.basis !== void 0) {
      let b = r.basis;
      if (typeof b != "string") {
        let I = { instancePath: i + "/basis", schemaPath: "#/properties/basis/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [I] : e.push(I), t++;
      }
      if (!(b === "EXTERNAL_VERIFICATION_LIMITATION" || b === "AUDIT_ENVIRONMENT_LIMITATION")) {
        let I = { instancePath: i + "/basis", schemaPath: "#/properties/basis/enum", keyword: "enum", params: { allowedValues: ki.properties.basis.enum }, message: "must be equal to one of the allowed values" };
        e === null ? e = [I] : e.push(I), t++;
      }
    }
    if (r.affected_claims_or_elements !== void 0) {
      let b = r.affected_claims_or_elements;
      if (Array.isArray(b)) {
        let I = b.length;
        for (let N = 0; N < I; N++) {
          let c = b[N];
          if (typeof c == "string") {
            if (M(c) < 1) {
              let T = { instancePath: i + "/affected_claims_or_elements/" + N, schemaPath: "#/properties/affected_claims_or_elements/items/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
              e === null ? e = [T] : e.push(T), t++;
            }
          } else {
            let T = { instancePath: i + "/affected_claims_or_elements/" + N, schemaPath: "#/properties/affected_claims_or_elements/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [T] : e.push(T), t++;
          }
        }
      } else {
        let I = { instancePath: i + "/affected_claims_or_elements", schemaPath: "#/properties/affected_claims_or_elements/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [I] : e.push(I), t++;
      }
    }
    if (r.affected_locations !== void 0) {
      let b = r.affected_locations;
      if (Array.isArray(b)) {
        let I = b.length;
        for (let N = 0; N < I; N++) {
          let c = b[N];
          if (typeof c == "string") {
            if (M(c) < 1) {
              let T = { instancePath: i + "/affected_locations/" + N, schemaPath: "#/properties/affected_locations/items/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
              e === null ? e = [T] : e.push(T), t++;
            }
          } else {
            let T = { instancePath: i + "/affected_locations/" + N, schemaPath: "#/properties/affected_locations/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [T] : e.push(T), t++;
          }
        }
      } else {
        let I = { instancePath: i + "/affected_locations", schemaPath: "#/properties/affected_locations/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [I] : e.push(I), t++;
      }
    }
    if (r.what_cannot_be_checked !== void 0) {
      let b = r.what_cannot_be_checked;
      if (typeof b == "string") {
        if (M(b) < 1) {
          let I = { instancePath: i + "/what_cannot_be_checked", schemaPath: "#/properties/what_cannot_be_checked/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [I] : e.push(I), t++;
        }
      } else {
        let I = { instancePath: i + "/what_cannot_be_checked", schemaPath: "#/properties/what_cannot_be_checked/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [I] : e.push(I), t++;
      }
    }
    if (r.why_verification_is_unavailable !== void 0) {
      let b = r.why_verification_is_unavailable;
      if (typeof b == "string") {
        if (M(b) < 1) {
          let I = { instancePath: i + "/why_verification_is_unavailable", schemaPath: "#/properties/why_verification_is_unavailable/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [I] : e.push(I), t++;
        }
      } else {
        let I = { instancePath: i + "/why_verification_is_unavailable", schemaPath: "#/properties/why_verification_is_unavailable/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [I] : e.push(I), t++;
      }
    }
    if (r.consequence_for_confidence_or_status !== void 0) {
      let b = r.consequence_for_confidence_or_status;
      if (typeof b == "string") {
        if (M(b) < 1) {
          let I = { instancePath: i + "/consequence_for_confidence_or_status", schemaPath: "#/properties/consequence_for_confidence_or_status/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [I] : e.push(I), t++;
        }
      } else {
        let I = { instancePath: i + "/consequence_for_confidence_or_status", schemaPath: "#/properties/consequence_for_confidence_or_status/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [I] : e.push(I), t++;
      }
    }
    if (r.additional_access_or_material_required !== void 0) {
      let b = r.additional_access_or_material_required, I = t, N = false, c = null, T = t;
      if (typeof b == "string") {
        if (M(b) < 1) {
          let Z = { instancePath: i + "/additional_access_or_material_required", schemaPath: "#/properties/additional_access_or_material_required/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
          e === null ? e = [Z] : e.push(Z), t++;
        }
      } else {
        let Z = { instancePath: i + "/additional_access_or_material_required", schemaPath: "#/properties/additional_access_or_material_required/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
        e === null ? e = [Z] : e.push(Z), t++;
      }
      var X = T === t;
      X && (N = true, c = 0);
      let F = t;
      if (b !== null) {
        let Z = { instancePath: i + "/additional_access_or_material_required", schemaPath: "#/properties/additional_access_or_material_required/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
        e === null ? e = [Z] : e.push(Z), t++;
      }
      var X = F === t;
      if (X && N ? (N = false, c = [c, 1]) : X && (N = true, c = 1), N) t = I, e !== null && (I ? e.length = I : e = null);
      else {
        let Z = { instancePath: i + "/additional_access_or_material_required", schemaPath: "#/properties/additional_access_or_material_required/oneOf", keyword: "oneOf", params: { passingSchemas: c }, message: "must match exactly one schema in oneOf" };
        e === null ? e = [Z] : e.push(Z), t++;
      }
    }
    if (r.external_sources !== void 0) {
      let b = r.external_sources;
      if (Array.isArray(b)) {
        let I = b.length;
        for (let N = 0; N < I; N++) {
          let c = b[N];
          if (c && typeof c == "object" && !Array.isArray(c)) {
            if (c.source_type === void 0) {
              let T = { instancePath: i + "/external_sources/" + N, schemaPath: "#/$defs/external_source/required", keyword: "required", params: { missingProperty: "source_type" }, message: "must have required property 'source_type'" };
              e === null ? e = [T] : e.push(T), t++;
            }
            if (c.title === void 0) {
              let T = { instancePath: i + "/external_sources/" + N, schemaPath: "#/$defs/external_source/required", keyword: "required", params: { missingProperty: "title" }, message: "must have required property 'title'" };
              e === null ? e = [T] : e.push(T), t++;
            }
            if (c.locator === void 0) {
              let T = { instancePath: i + "/external_sources/" + N, schemaPath: "#/$defs/external_source/required", keyword: "required", params: { missingProperty: "locator" }, message: "must have required property 'locator'" };
              e === null ? e = [T] : e.push(T), t++;
            }
            if (c.supports === void 0) {
              let T = { instancePath: i + "/external_sources/" + N, schemaPath: "#/$defs/external_source/required", keyword: "required", params: { missingProperty: "supports" }, message: "must have required property 'supports'" };
              e === null ? e = [T] : e.push(T), t++;
            }
            for (let T in c) if (!(T === "source_type" || T === "title" || T === "locator" || T === "supports")) {
              let F = { instancePath: i + "/external_sources/" + N, schemaPath: "#/$defs/external_source/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: T }, message: "must NOT have additional properties" };
              e === null ? e = [F] : e.push(F), t++;
            }
            if (c.source_type !== void 0) {
              let T = c.source_type;
              if (typeof T == "string") {
                if (M(T) < 1) {
                  let F = { instancePath: i + "/external_sources/" + N + "/source_type", schemaPath: "#/$defs/external_source/properties/source_type/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [F] : e.push(F), t++;
                }
              } else {
                let F = { instancePath: i + "/external_sources/" + N + "/source_type", schemaPath: "#/$defs/external_source/properties/source_type/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [F] : e.push(F), t++;
              }
            }
            if (c.title !== void 0) {
              let T = c.title;
              if (typeof T == "string") {
                if (M(T) < 1) {
                  let F = { instancePath: i + "/external_sources/" + N + "/title", schemaPath: "#/$defs/external_source/properties/title/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [F] : e.push(F), t++;
                }
              } else {
                let F = { instancePath: i + "/external_sources/" + N + "/title", schemaPath: "#/$defs/external_source/properties/title/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [F] : e.push(F), t++;
              }
            }
            if (c.locator !== void 0) {
              let T = c.locator;
              if (typeof T == "string") {
                if (M(T) < 1) {
                  let F = { instancePath: i + "/external_sources/" + N + "/locator", schemaPath: "#/$defs/external_source/properties/locator/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [F] : e.push(F), t++;
                }
              } else {
                let F = { instancePath: i + "/external_sources/" + N + "/locator", schemaPath: "#/$defs/external_source/properties/locator/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [F] : e.push(F), t++;
              }
            }
            if (c.supports !== void 0) {
              let T = c.supports;
              if (typeof T == "string") {
                if (M(T) < 1) {
                  let F = { instancePath: i + "/external_sources/" + N + "/supports", schemaPath: "#/$defs/external_source/properties/supports/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [F] : e.push(F), t++;
                }
              } else {
                let F = { instancePath: i + "/external_sources/" + N + "/supports", schemaPath: "#/$defs/external_source/properties/supports/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [F] : e.push(F), t++;
              }
            }
          } else {
            let T = { instancePath: i + "/external_sources/" + N, schemaPath: "#/$defs/external_source/type", keyword: "type", params: { type: "object" }, message: "must be object" };
            e === null ? e = [T] : e.push(T), t++;
          }
        }
      } else {
        let I = { instancePath: i + "/external_sources", schemaPath: "#/properties/external_sources/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [I] : e.push(I), t++;
      }
    }
  } else {
    let b = { instancePath: i, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
    e === null ? e = [b] : e.push(b), t++;
  }
  return be.errors = e, t === 0;
}
be.evaluated = { props: true, dynamicProps: false, dynamicItems: false };
var xt = new RegExp("^C[0-9]{3,}$", "u");
var qi = new RegExp("^[A-Z][A-Z0-9-]{1,31}$", "u");
function Ct(r, { instancePath: i = "", parentData: B, parentDataProperty: $, rootData: H = r, dynamicAnchors: ae = {} } = {}) {
  let e = null, t = 0, K = Ct.evaluated;
  K.dynamicProps && (K.props = void 0), K.dynamicItems && (K.items = void 0);
  let X = t, b = true, I = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "PPT_SEMINAR") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var N = I === t;
  if (t = X, e !== null && (X ? e.length = X : e = null), N) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-ppt-seminar-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/0/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-ppt-seminar-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var N = a === t;
    if (b = N, b) {
      var c = {};
      c.meta = true;
    }
  }
  if (!b) {
    let a = { instancePath: i, schemaPath: "#/allOf/0/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  let T = t, F = true, Z = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "PPT_RM") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var m = Z === t;
  if (t = T, e !== null && (T ? e.length = T : e = null), m) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-ppt-rm-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/1/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-ppt-rm-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var m = a === t;
    if (F = m, F) {
      var h = {};
      h.meta = true;
    }
  }
  if (!F) {
    let a = { instancePath: i, schemaPath: "#/allOf/1/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && h !== void 0 && (h === true ? c = true : (c = c || {}, Object.assign(c, h)));
  let v = t, R = true, _ = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "PPT_PROGRESSION") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var w = _ === t;
  if (t = v, e !== null && (v ? e.length = v : e = null), w) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-ppt-progression-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/2/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-ppt-progression-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var w = a === t;
    if (R = w, R) {
      var y = {};
      y.meta = true;
    }
  }
  if (!R) {
    let a = { instancePath: i, schemaPath: "#/allOf/2/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && y !== void 0 && (y === true ? c = true : (c = c || {}, Object.assign(c, y)));
  let W = t, re = true, Ae = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "PPT_FINAL") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var x = Ae === t;
  if (t = W, e !== null && (W ? e.length = W : e = null), x) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-ppt-final-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/3/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-ppt-final-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var x = a === t;
    if (re = x, re) {
      var oe = {};
      oe.meta = true;
    }
  }
  if (!re) {
    let a = { instancePath: i, schemaPath: "#/allOf/3/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && oe !== void 0 && (oe === true ? c = true : (c = c || {}, Object.assign(c, oe)));
  let qe = t, Te = true, $t = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "FULL_REPORT_SEMINAR") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Le = $t === t;
  if (t = qe, e !== null && (qe ? e.length = qe : e = null), Le) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-full-report-seminar-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/4/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-full-report-seminar-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var Le = a === t;
    if (Te = Le, Te) {
      var le = {};
      le.meta = true;
    }
  }
  if (!Te) {
    let a = { instancePath: i, schemaPath: "#/allOf/4/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && le !== void 0 && (le === true ? c = true : (c = c || {}, Object.assign(c, le)));
  let Ie = t, Ne = true, Ut = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "FULL_REPORT_RM") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Se = Ut === t;
  if (t = Ie, e !== null && (Ie ? e.length = Ie : e = null), Se) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-full-report-rm-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/5/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-full-report-rm-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var Se = a === t;
    if (Ne = Se, Ne) {
      var ue = {};
      ue.meta = true;
    }
  }
  if (!Ne) {
    let a = { instancePath: i, schemaPath: "#/allOf/5/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && ue !== void 0 && (ue === true ? c = true : (c = c || {}, Object.assign(c, ue)));
  let je = t, Me = true, Dt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "FULL_REPORT_PROJECT_PROGRESSION") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var xe = Dt === t;
  if (t = je, e !== null && (je ? e.length = je : e = null), xe) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-full-report-project-progression-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/6/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-full-report-project-progression-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var xe = a === t;
    if (Me = xe, Me) {
      var ce = {};
      ce.meta = true;
    }
  }
  if (!Me) {
    let a = { instancePath: i, schemaPath: "#/allOf/6/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && ce !== void 0 && (ce === true ? c = true : (c = c || {}, Object.assign(c, ce)));
  let Fe = t, Ce = true, Vt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "FULL_REPORT_FINAL_PROJECT") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var $e = Vt === t;
  if (t = Fe, e !== null && (Fe ? e.length = Fe : e = null), $e) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-full-report-final-project-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/7/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-full-report-final-project-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var $e = a === t;
    if (Ce = $e, Ce) {
      var fe = {};
      fe.meta = true;
    }
  }
  if (!Ce) {
    let a = { instancePath: i, schemaPath: "#/allOf/7/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && fe !== void 0 && (fe === true ? c = true : (c = c || {}, Object.assign(c, fe)));
  let Ue = t, De = true, Gt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "REPORT_MANUAL") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Ve = Gt === t;
  if (t = Ue, e !== null && (Ue ? e.length = Ue : e = null), Ve) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-report-manual-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/8/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-report-manual-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var Ve = a === t;
    if (De = Ve, De) {
      var pe = {};
      pe.meta = true;
    }
  }
  if (!De) {
    let a = { instancePath: i, schemaPath: "#/allOf/8/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && pe !== void 0 && (pe === true ? c = true : (c = c || {}, Object.assign(c, pe)));
  let Ge = t, ze = true, zt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "POSTER_PROJECT") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Je = zt === t;
  if (t = Ge, e !== null && (Ge ? e.length = Ge : e = null), Je) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s) && s.selected_profile !== void 0 && s.selected_profile !== "profile-poster-project-v1") {
        let n = { instancePath: i + "/meta/selected_profile", schemaPath: "#/allOf/9/then/properties/meta/properties/selected_profile/const", keyword: "const", params: { allowedValue: "profile-poster-project-v1" }, message: "must be equal to constant" };
        e === null ? e = [n] : e.push(n), t++;
      }
    }
    var Je = a === t;
    if (ze = Je, ze) {
      var me = {};
      me.meta = true;
    }
  }
  if (!ze) {
    let a = { instancePath: i, schemaPath: "#/allOf/9/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && me !== void 0 && (me === true ? c = true : (c = c || {}, Object.assign(c, me)));
  let He = t, We = true, Jt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "PPT_SEMINAR") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Be = Jt === t;
  if (t = He, e !== null && (He ? e.length = He : e = null), Be) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.slide_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/10/then/required", keyword: "required", params: { missingProperty: "slide_audit" }, message: "must have required property 'slide_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "SLIDE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/10/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "SLIDE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.slide_audit !== void 0) {
        let s = r.slide_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/slide_audit", schemaPath: "#/allOf/10/then/properties/slide_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var Be = a === t;
    if (We = Be, We) {
      var ie = {};
      ie.audit_coverage = true, ie.slide_audit = true, ie.meta = true;
    }
  }
  if (!We) {
    let a = { instancePath: i, schemaPath: "#/allOf/10/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && ie !== void 0 && (ie === true ? c = true : (c = c || {}, Object.assign(c, ie)));
  let Ke = t, Ye = true, Ht = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "PPT_RM") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Xe = Ht === t;
  if (t = Ke, e !== null && (Ke ? e.length = Ke : e = null), Xe) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.slide_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/11/then/required", keyword: "required", params: { missingProperty: "slide_audit" }, message: "must have required property 'slide_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "SLIDE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/11/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "SLIDE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.slide_audit !== void 0) {
        let s = r.slide_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/slide_audit", schemaPath: "#/allOf/11/then/properties/slide_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var Xe = a === t;
    if (Ye = Xe, Ye) {
      var se = {};
      se.audit_coverage = true, se.slide_audit = true, se.meta = true;
    }
  }
  if (!Ye) {
    let a = { instancePath: i, schemaPath: "#/allOf/11/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && se !== void 0 && (se === true ? c = true : (c = c || {}, Object.assign(c, se)));
  let Ze = t, Qe = true, Wt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "PPT_PROGRESSION") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var et = Wt === t;
  if (t = Ze, e !== null && (Ze ? e.length = Ze : e = null), et) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.slide_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/12/then/required", keyword: "required", params: { missingProperty: "slide_audit" }, message: "must have required property 'slide_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "SLIDE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/12/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "SLIDE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.slide_audit !== void 0) {
        let s = r.slide_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/slide_audit", schemaPath: "#/allOf/12/then/properties/slide_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var et = a === t;
    if (Qe = et, Qe) {
      var Y = {};
      Y.audit_coverage = true, Y.slide_audit = true, Y.meta = true;
    }
  }
  if (!Qe) {
    let a = { instancePath: i, schemaPath: "#/allOf/12/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && Y !== void 0 && (Y === true ? c = true : (c = c || {}, Object.assign(c, Y)));
  let Ee = t, tt = true, pt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "PPT_FINAL") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var mt = pt === t;
  if (t = Ee, e !== null && (Ee ? e.length = Ee : e = null), mt) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.slide_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/13/then/required", keyword: "required", params: { missingProperty: "slide_audit" }, message: "must have required property 'slide_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "SLIDE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/13/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "SLIDE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.slide_audit !== void 0) {
        let s = r.slide_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/slide_audit", schemaPath: "#/allOf/13/then/properties/slide_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var mt = a === t;
    if (tt = mt, tt) {
      var de = {};
      de.audit_coverage = true, de.slide_audit = true, de.meta = true;
    }
  }
  if (!tt) {
    let a = { instancePath: i, schemaPath: "#/allOf/13/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && de !== void 0 && (de === true ? c = true : (c = c || {}, Object.assign(c, de)));
  let _e = t, rt = true, dt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "FULL_REPORT_SEMINAR") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var _t = dt === t;
  if (t = _e, e !== null && (_e ? e.length = _e : e = null), _t) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.page_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/14/then/required", keyword: "required", params: { missingProperty: "page_audit" }, message: "must have required property 'page_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "PAGE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/14/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "PAGE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.page_audit !== void 0) {
        let s = r.page_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/page_audit", schemaPath: "#/allOf/14/then/properties/page_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var _t = a === t;
    if (rt = _t, rt) {
      var ye = {};
      ye.audit_coverage = true, ye.page_audit = true, ye.meta = true;
    }
  }
  if (!rt) {
    let a = { instancePath: i, schemaPath: "#/allOf/14/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && ye !== void 0 && (ye === true ? c = true : (c = c || {}, Object.assign(c, ye)));
  let he = t, it = true, yt = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "FULL_REPORT_RM") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var ht = yt === t;
  if (t = he, e !== null && (he ? e.length = he : e = null), ht) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.page_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/15/then/required", keyword: "required", params: { missingProperty: "page_audit" }, message: "must have required property 'page_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "PAGE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/15/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "PAGE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.page_audit !== void 0) {
        let s = r.page_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/page_audit", schemaPath: "#/allOf/15/then/properties/page_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var ht = a === t;
    if (it = ht, it) {
      var ge = {};
      ge.audit_coverage = true, ge.page_audit = true, ge.meta = true;
    }
  }
  if (!it) {
    let a = { instancePath: i, schemaPath: "#/allOf/15/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && ge !== void 0 && (ge === true ? c = true : (c = c || {}, Object.assign(c, ge)));
  let ve = t, o = true, l = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "FULL_REPORT_PROJECT_PROGRESSION") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var P = l === t;
  if (t = ve, e !== null && (ve ? e.length = ve : e = null), P) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.page_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/16/then/required", keyword: "required", params: { missingProperty: "page_audit" }, message: "must have required property 'page_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "PAGE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/16/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "PAGE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.page_audit !== void 0) {
        let s = r.page_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/page_audit", schemaPath: "#/allOf/16/then/properties/page_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var P = a === t;
    if (o = P, o) {
      var te = {};
      te.audit_coverage = true, te.page_audit = true, te.meta = true;
    }
  }
  if (!o) {
    let a = { instancePath: i, schemaPath: "#/allOf/16/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && te !== void 0 && (te === true ? c = true : (c = c || {}, Object.assign(c, te)));
  let gt = t, vt = true, Zr = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "FULL_REPORT_FINAL_PROJECT") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Q = Zr === t;
  if (t = gt, e !== null && (gt ? e.length = gt : e = null), Q) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.page_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/17/then/required", keyword: "required", params: { missingProperty: "page_audit" }, message: "must have required property 'page_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "PAGE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/17/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "PAGE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.page_audit !== void 0) {
        let s = r.page_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/page_audit", schemaPath: "#/allOf/17/then/properties/page_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var Q = a === t;
    if (vt = Q, vt) {
      var Oe = {};
      Oe.audit_coverage = true, Oe.page_audit = true, Oe.meta = true;
    }
  }
  if (!vt) {
    let a = { instancePath: i, schemaPath: "#/allOf/17/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && Oe !== void 0 && (Oe === true ? c = true : (c = c || {}, Object.assign(c, Oe)));
  let Bt = t, Kt = true, Qr = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "REPORT_MANUAL") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Yt = Qr === t;
  if (t = Bt, e !== null && (Bt ? e.length = Bt : e = null), Yt) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.page_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/18/then/required", keyword: "required", params: { missingProperty: "page_audit" }, message: "must have required property 'page_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.audit_coverage !== void 0) {
        let s = r.audit_coverage;
        if (s && typeof s == "object" && !Array.isArray(s) && s.unit_type !== void 0 && s.unit_type !== "PAGE") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/18/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "PAGE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
      if (r.page_audit !== void 0) {
        let s = r.page_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/page_audit", schemaPath: "#/allOf/18/then/properties/page_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var Yt = a === t;
    if (Kt = Yt, Kt) {
      var ot = {};
      ot.audit_coverage = true, ot.page_audit = true, ot.meta = true;
    }
  }
  if (!Kt) {
    let a = { instancePath: i, schemaPath: "#/allOf/18/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && ot !== void 0 && (ot === true ? c = true : (c = c || {}, Object.assign(c, ot)));
  let Xt = t, Zt = true, ei = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "POSTER_PROJECT") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Qt = ei === t;
  if (t = Xt, e !== null && (Xt ? e.length = Xt : e = null), Qt) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.audit_coverage !== void 0) {
      let s = r.audit_coverage;
      if (s && typeof s == "object" && !Array.isArray(s)) {
        if (s.unit_type !== void 0 && s.unit_type !== "POSTER_SHEET") {
          let n = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/allOf/19/then/properties/audit_coverage/properties/unit_type/const", keyword: "const", params: { allowedValue: "POSTER_SHEET" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
        if (s.total_units !== void 0 && s.total_units !== 1) {
          let n = { instancePath: i + "/audit_coverage/total_units", schemaPath: "#/allOf/19/then/properties/audit_coverage/properties/total_units/const", keyword: "const", params: { allowedValue: 1 }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var Qt = a === t;
    if (Zt = Qt, Zt) {
      var Pt = {};
      Pt.audit_coverage = true, Pt.meta = true;
    }
  }
  if (!Zt) {
    let a = { instancePath: i, schemaPath: "#/allOf/19/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && Pt !== void 0 && (Pt === true ? c = true : (c = c || {}, Object.assign(c, Pt)));
  let er = t, tr = true, ti = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.external_verification_used === void 0 && (u = "external_verification_used")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.external_verification_used !== void 0 && a.external_verification_used !== false) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var rr = ti === t;
  if (t = er, e !== null && (er ? e.length = er : e = null), rr) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.comments !== void 0) {
        let s = r.comments;
        if (s && typeof s == "object" && !Array.isArray(s)) for (let n in s) {
          let A = s[n];
          if (Re(A, { instancePath: i + "/comments/" + n.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: s, parentDataProperty: n, rootData: H, dynamicAnchors: ae }) || (e = e === null ? Re.errors : e.concat(Re.errors), t = e.length), A && typeof A == "object" && !Array.isArray(A) && A.external_sources !== void 0) {
            let f = A.external_sources;
            if (Array.isArray(f) && f.length > 0) {
              let O = { instancePath: i + "/comments/" + n.replace(/~/g, "~0").replace(/\//g, "~1") + "/external_sources", schemaPath: "#/allOf/20/then/properties/comments/additionalProperties/allOf/1/properties/external_sources/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items" };
              e === null ? e = [O] : e.push(O), t++;
            }
          }
        }
      }
      if (r.verification_limitations !== void 0) {
        let s = r.verification_limitations;
        if (s && typeof s == "object" && !Array.isArray(s)) for (let n in s) {
          let A = s[n];
          if (be(A, { instancePath: i + "/verification_limitations/" + n.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: s, parentDataProperty: n, rootData: H, dynamicAnchors: ae }) || (e = e === null ? be.errors : e.concat(be.errors), t = e.length), A && typeof A == "object" && !Array.isArray(A) && A.external_sources !== void 0) {
            let f = A.external_sources;
            if (Array.isArray(f) && f.length > 0) {
              let O = { instancePath: i + "/verification_limitations/" + n.replace(/~/g, "~0").replace(/\//g, "~1") + "/external_sources", schemaPath: "#/allOf/20/then/properties/verification_limitations/additionalProperties/allOf/1/properties/external_sources/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items" };
              e === null ? e = [O] : e.push(O), t++;
            }
          }
        }
      }
    }
    var rr = a === t;
    if (tr = rr, tr) {
      var lt = {};
      lt.comments = true, lt.verification_limitations = true, lt.meta = true;
    }
  }
  if (!tr) {
    let a = { instancePath: i, schemaPath: "#/allOf/20/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && lt !== void 0 && (lt === true ? c = true : (c = c || {}, Object.assign(c, lt)));
  let ir = t, sr = true, ri = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0) {
        let s = a.artifact_type;
        if (!(s === "PPT_SEMINAR" || s === "FULL_REPORT_SEMINAR")) {
          let n = {};
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
  }
  var ar = ri === t;
  if (t = ir, e !== null && (ir ? e.length = ir : e = null), ar) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s)) {
        if (s.academic_stage !== void 0 && s.academic_stage !== "PROGRESS") {
          let n = { instancePath: i + "/meta/academic_stage", schemaPath: "#/allOf/21/then/properties/meta/properties/academic_stage/const", keyword: "const", params: { allowedValue: "PROGRESS" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
        if (s.checkpoint !== void 0 && s.checkpoint !== "NOT_APPLICABLE") {
          let n = { instancePath: i + "/meta/checkpoint", schemaPath: "#/allOf/21/then/properties/meta/properties/checkpoint/const", keyword: "const", params: { allowedValue: "NOT_APPLICABLE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var ar = a === t;
    if (sr = ar, sr) {
      var kt = {};
      kt.meta = true;
    }
  }
  if (!sr) {
    let a = { instancePath: i, schemaPath: "#/allOf/21/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && kt !== void 0 && (kt === true ? c = true : (c = c || {}, Object.assign(c, kt)));
  let nr = t, or = true, ii = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0) {
        let s = a.artifact_type;
        if (!(s === "PPT_RM" || s === "FULL_REPORT_RM")) {
          let n = {};
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
  }
  var lr = ii === t;
  if (t = nr, e !== null && (nr ? e.length = nr : e = null), lr) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s)) {
        if (s.academic_stage !== void 0 && s.academic_stage !== "PROPOSAL") {
          let n = { instancePath: i + "/meta/academic_stage", schemaPath: "#/allOf/22/then/properties/meta/properties/academic_stage/const", keyword: "const", params: { allowedValue: "PROPOSAL" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
        if (s.checkpoint !== void 0) {
          let n = s.checkpoint;
          if (!(n === "MIDTERM" || n === "FINAL")) {
            let A = { instancePath: i + "/meta/checkpoint", schemaPath: "#/allOf/22/then/properties/meta/properties/checkpoint/enum", keyword: "enum", params: { allowedValues: ne.allOf[22].then.properties.meta.properties.checkpoint.enum }, message: "must be equal to one of the allowed values" };
            e === null ? e = [A] : e.push(A), t++;
          }
        }
      }
    }
    var lr = a === t;
    if (or = lr, or) {
      var qt = {};
      qt.meta = true;
    }
  }
  if (!or) {
    let a = { instancePath: i, schemaPath: "#/allOf/22/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && qt !== void 0 && (qt === true ? c = true : (c = c || {}, Object.assign(c, qt)));
  let ur = t, cr = true, si = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0) {
        let s = a.artifact_type;
        if (!(s === "PPT_PROGRESSION" || s === "FULL_REPORT_PROJECT_PROGRESSION")) {
          let n = {};
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
  }
  var fr = si === t;
  if (t = ur, e !== null && (ur ? e.length = ur : e = null), fr) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta, n = t, A = false, f = null, O = t;
      if (s && typeof s == "object" && !Array.isArray(s)) {
        if (s.academic_stage !== void 0 && s.academic_stage !== "PROGRESS_1") {
          let U = { instancePath: i + "/meta/academic_stage", schemaPath: "#/allOf/23/then/properties/meta/oneOf/0/properties/academic_stage/const", keyword: "const", params: { allowedValue: "PROGRESS_1" }, message: "must be equal to constant" };
          e === null ? e = [U] : e.push(U), t++;
        }
        if (s.checkpoint !== void 0) {
          let U = s.checkpoint;
          if (!(U === "MIDTERM" || U === "FINAL")) {
            let D = { instancePath: i + "/meta/checkpoint", schemaPath: "#/allOf/23/then/properties/meta/oneOf/0/properties/checkpoint/enum", keyword: "enum", params: { allowedValues: ne.allOf[23].then.properties.meta.oneOf[0].properties.checkpoint.enum }, message: "must be equal to one of the allowed values" };
            e === null ? e = [D] : e.push(D), t++;
          }
        }
      }
      var Tt = O === t;
      if (Tt) {
        A = true, f = 0;
        var st = {};
        st.academic_stage = true, st.checkpoint = true;
      }
      let C = t;
      if (s && typeof s == "object" && !Array.isArray(s)) {
        if (s.academic_stage !== void 0 && s.academic_stage !== "PROGRESS_2") {
          let U = { instancePath: i + "/meta/academic_stage", schemaPath: "#/allOf/23/then/properties/meta/oneOf/1/properties/academic_stage/const", keyword: "const", params: { allowedValue: "PROGRESS_2" }, message: "must be equal to constant" };
          e === null ? e = [U] : e.push(U), t++;
        }
        if (s.checkpoint !== void 0 && s.checkpoint !== "MIDTERM") {
          let U = { instancePath: i + "/meta/checkpoint", schemaPath: "#/allOf/23/then/properties/meta/oneOf/1/properties/checkpoint/const", keyword: "const", params: { allowedValue: "MIDTERM" }, message: "must be equal to constant" };
          e === null ? e = [U] : e.push(U), t++;
        }
      }
      var Tt = C === t;
      if (Tt && A ? (A = false, f = [f, 1]) : Tt && (A = true, f = 1, st !== true && (st = st || {}, st.academic_stage = true, st.checkpoint = true)), A) t = n, e !== null && (n ? e.length = n : e = null);
      else {
        let U = { instancePath: i + "/meta", schemaPath: "#/allOf/23/then/properties/meta/oneOf", keyword: "oneOf", params: { passingSchemas: f }, message: "must match exactly one schema in oneOf" };
        e === null ? e = [U] : e.push(U), t++;
      }
    }
    var fr = a === t;
    if (cr = fr, cr) {
      var Lt = {};
      Lt.meta = true;
    }
  }
  if (!cr) {
    let a = { instancePath: i, schemaPath: "#/allOf/23/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && Lt !== void 0 && (Lt === true ? c = true : (c = c || {}, Object.assign(c, Lt)));
  let pr = t, mr = true, ai = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0) {
        let s = a.artifact_type;
        if (!(s === "PPT_FINAL" || s === "FULL_REPORT_FINAL_PROJECT")) {
          let n = {};
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
  }
  var dr = ai === t;
  if (t = pr, e !== null && (pr ? e.length = pr : e = null), dr) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s)) {
        if (s.academic_stage !== void 0 && s.academic_stage !== "FINAL_REPORT") {
          let n = { instancePath: i + "/meta/academic_stage", schemaPath: "#/allOf/24/then/properties/meta/properties/academic_stage/const", keyword: "const", params: { allowedValue: "FINAL_REPORT" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
        if (s.checkpoint !== void 0 && s.checkpoint !== "FINAL") {
          let n = { instancePath: i + "/meta/checkpoint", schemaPath: "#/allOf/24/then/properties/meta/properties/checkpoint/const", keyword: "const", params: { allowedValue: "FINAL" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var dr = a === t;
    if (mr = dr, mr) {
      var It = {};
      It.meta = true;
    }
  }
  if (!mr) {
    let a = { instancePath: i, schemaPath: "#/allOf/24/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && It !== void 0 && (It === true ? c = true : (c = c || {}, Object.assign(c, It)));
  let _r = t, yr = true, ni = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "REPORT_MANUAL") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var hr = ni === t;
  if (t = _r, e !== null && (_r ? e.length = _r : e = null), hr) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s)) {
        if (s.academic_stage !== void 0 && s.academic_stage !== "MANUAL") {
          let n = { instancePath: i + "/meta/academic_stage", schemaPath: "#/allOf/25/then/properties/meta/properties/academic_stage/const", keyword: "const", params: { allowedValue: "MANUAL" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
        if (s.checkpoint !== void 0 && s.checkpoint !== "NOT_APPLICABLE") {
          let n = { instancePath: i + "/meta/checkpoint", schemaPath: "#/allOf/25/then/properties/meta/properties/checkpoint/const", keyword: "const", params: { allowedValue: "NOT_APPLICABLE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var hr = a === t;
    if (yr = hr, yr) {
      var Nt = {};
      Nt.meta = true;
    }
  }
  if (!yr) {
    let a = { instancePath: i, schemaPath: "#/allOf/25/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && Nt !== void 0 && (Nt === true ? c = true : (c = c || {}, Object.assign(c, Nt)));
  let gr = t, vr = true, oi = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0 && a.artifact_type !== "POSTER_PROJECT") {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      }
    }
  }
  var Pr = oi === t;
  if (t = gr, e !== null && (gr ? e.length = gr : e = null), Pr) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
      let s = r.meta;
      if (s && typeof s == "object" && !Array.isArray(s)) {
        if (s.academic_stage !== void 0 && s.academic_stage !== "POSTER") {
          let n = { instancePath: i + "/meta/academic_stage", schemaPath: "#/allOf/26/then/properties/meta/properties/academic_stage/const", keyword: "const", params: { allowedValue: "POSTER" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
        if (s.checkpoint !== void 0 && s.checkpoint !== "NOT_APPLICABLE") {
          let n = { instancePath: i + "/meta/checkpoint", schemaPath: "#/allOf/26/then/properties/meta/properties/checkpoint/const", keyword: "const", params: { allowedValue: "NOT_APPLICABLE" }, message: "must be equal to constant" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var Pr = a === t;
    if (vr = Pr, vr) {
      var St = {};
      St.meta = true;
    }
  }
  if (!vr) {
    let a = { instancePath: i, schemaPath: "#/allOf/26/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  c !== true && St !== void 0 && (St === true ? c = true : (c = c || {}, Object.assign(c, St)));
  let wr = t, Ar = true, li = t;
  if (r && typeof r == "object" && !Array.isArray(r) && r.meta !== void 0) {
    let a = r.meta;
    if (a && typeof a == "object" && !Array.isArray(a)) {
      let u;
      if (a.artifact_type === void 0 && (u = "artifact_type")) {
        let s = {};
        e === null ? e = [s] : e.push(s), t++;
      } else if (a.artifact_type !== void 0) {
        let s = a.artifact_type;
        if (!(s === "PPT_SEMINAR" || s === "PPT_RM" || s === "PPT_PROGRESSION" || s === "PPT_FINAL" || s === "FULL_REPORT_SEMINAR" || s === "FULL_REPORT_RM" || s === "FULL_REPORT_PROJECT_PROGRESSION" || s === "FULL_REPORT_FINAL_PROJECT" || s === "REPORT_MANUAL" || s === "POSTER_PROJECT")) {
          let n = {};
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
  }
  var Or = li === t;
  if (t = wr, e !== null && (wr ? e.length = wr : e = null), Or) {
    let a = t;
    if (r && typeof r == "object" && !Array.isArray(r)) {
      if (r.requirement_audit === void 0) {
        let s = { instancePath: i, schemaPath: "#/allOf/27/then/required", keyword: "required", params: { missingProperty: "requirement_audit" }, message: "must have required property 'requirement_audit'" };
        e === null ? e = [s] : e.push(s), t++;
      }
      if (r.requirement_audit !== void 0) {
        let s = r.requirement_audit;
        if (Array.isArray(s) && s.length < 1) {
          let n = { instancePath: i + "/requirement_audit", schemaPath: "#/allOf/27/then/properties/requirement_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [n] : e.push(n), t++;
        }
      }
    }
    var Or = a === t;
    if (Ar = Or, Ar) {
      var wt = {};
      wt.requirement_audit = true, wt.meta = true;
    }
  }
  if (!Ar) {
    let a = { instancePath: i, schemaPath: "#/allOf/27/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
    e === null ? e = [a] : e.push(a), t++;
  }
  if (c !== true && wt !== void 0 && (wt === true ? c = true : (c = c || {}, Object.assign(c, wt))), r && typeof r == "object" && !Array.isArray(r)) {
    if (r.meta === void 0) {
      let a = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "meta" }, message: "must have required property 'meta'" };
      e === null ? e = [a] : e.push(a), t++;
    }
    if (r.audit_coverage === void 0) {
      let a = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "audit_coverage" }, message: "must have required property 'audit_coverage'" };
      e === null ? e = [a] : e.push(a), t++;
    }
    if (r.comments === void 0) {
      let a = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "comments" }, message: "must have required property 'comments'" };
      e === null ? e = [a] : e.push(a), t++;
    }
    if (r.verification_limitations === void 0) {
      let a = { instancePath: i, schemaPath: "#/required", keyword: "required", params: { missingProperty: "verification_limitations" }, message: "must have required property 'verification_limitations'" };
      e === null ? e = [a] : e.push(a), t++;
    }
    for (let a in r) if (!(a === "meta" || a === "audit_coverage" || a === "page_audit" || a === "slide_audit" || a === "comments" || a === "verification_limitations" || a === "requirement_audit")) {
      let u = { instancePath: i, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: a }, message: "must NOT have additional properties" };
      e === null ? e = [u] : e.push(u), t++;
    }
    if (r.meta !== void 0) {
      let a = r.meta;
      if (a && typeof a == "object" && !Array.isArray(a)) {
        if (a.result_protocol_version === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "result_protocol_version" }, message: "must have required property 'result_protocol_version'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.request_id === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "request_id" }, message: "must have required property 'request_id'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.artifact_type === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "artifact_type" }, message: "must have required property 'artifact_type'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.selected_profile === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "selected_profile" }, message: "must have required property 'selected_profile'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.checkpoint === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "checkpoint" }, message: "must have required property 'checkpoint'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.academic_stage === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "academic_stage" }, message: "must have required property 'academic_stage'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.master_prompt_version === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "master_prompt_version" }, message: "must have required property 'master_prompt_version'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.json_contract_version === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "json_contract_version" }, message: "must have required property 'json_contract_version'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.output_language === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "output_language" }, message: "must have required property 'output_language'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.review_timestamp === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "review_timestamp" }, message: "must have required property 'review_timestamp'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.external_verification_used === void 0) {
          let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/required", keyword: "required", params: { missingProperty: "external_verification_used" }, message: "must have required property 'external_verification_used'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        for (let u in a) if (!Et.call(ne.properties.meta.properties, u)) {
          let s = { instancePath: i + "/meta", schemaPath: "#/properties/meta/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: u }, message: "must NOT have additional properties" };
          e === null ? e = [s] : e.push(s), t++;
        }
        if (a.result_protocol_version !== void 0 && a.result_protocol_version !== "PROJECT-REVIEW-COMMENTS-v1") {
          let u = { instancePath: i + "/meta/result_protocol_version", schemaPath: "#/properties/meta/properties/result_protocol_version/const", keyword: "const", params: { allowedValue: "PROJECT-REVIEW-COMMENTS-v1" }, message: "must be equal to constant" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.request_id !== void 0) {
          let u = a.request_id;
          if (typeof u == "string") {
            if (M(u) < 1) {
              let s = { instancePath: i + "/meta/request_id", schemaPath: "#/properties/meta/properties/request_id/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
              e === null ? e = [s] : e.push(s), t++;
            }
          } else {
            let s = { instancePath: i + "/meta/request_id", schemaPath: "#/properties/meta/properties/request_id/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.artifact_type !== void 0) {
          let u = a.artifact_type;
          if (typeof u != "string") {
            let s = { instancePath: i + "/meta/artifact_type", schemaPath: "#/properties/meta/properties/artifact_type/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [s] : e.push(s), t++;
          }
          if (!(u === "PPT_SEMINAR" || u === "PPT_RM" || u === "PPT_PROGRESSION" || u === "PPT_FINAL" || u === "FULL_REPORT_SEMINAR" || u === "FULL_REPORT_RM" || u === "FULL_REPORT_PROJECT_PROGRESSION" || u === "FULL_REPORT_FINAL_PROJECT" || u === "REPORT_MANUAL" || u === "POSTER_PROJECT")) {
            let s = { instancePath: i + "/meta/artifact_type", schemaPath: "#/properties/meta/properties/artifact_type/enum", keyword: "enum", params: { allowedValues: ne.properties.meta.properties.artifact_type.enum }, message: "must be equal to one of the allowed values" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.selected_profile !== void 0) {
          let u = a.selected_profile;
          if (typeof u != "string") {
            let s = { instancePath: i + "/meta/selected_profile", schemaPath: "#/properties/meta/properties/selected_profile/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [s] : e.push(s), t++;
          }
          if (!(u === "profile-ppt-seminar-v1" || u === "profile-ppt-rm-v1" || u === "profile-ppt-progression-v1" || u === "profile-ppt-final-v1" || u === "profile-full-report-seminar-v1" || u === "profile-full-report-rm-v1" || u === "profile-full-report-project-progression-v1" || u === "profile-full-report-final-project-v1" || u === "profile-report-manual-v1" || u === "profile-poster-project-v1")) {
            let s = { instancePath: i + "/meta/selected_profile", schemaPath: "#/properties/meta/properties/selected_profile/enum", keyword: "enum", params: { allowedValues: ne.properties.meta.properties.selected_profile.enum }, message: "must be equal to one of the allowed values" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.master_prompt_version !== void 0 && a.master_prompt_version !== "master-project-prompt-v1") {
          let u = { instancePath: i + "/meta/master_prompt_version", schemaPath: "#/properties/meta/properties/master_prompt_version/const", keyword: "const", params: { allowedValue: "master-project-prompt-v1" }, message: "must be equal to constant" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.json_contract_version !== void 0 && a.json_contract_version !== "shared-project-review-json-contract-v1") {
          let u = { instancePath: i + "/meta/json_contract_version", schemaPath: "#/properties/meta/properties/json_contract_version/const", keyword: "const", params: { allowedValue: "shared-project-review-json-contract-v1" }, message: "must be equal to constant" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.output_language !== void 0) {
          let u = a.output_language;
          if (typeof u == "string") {
            if (M(u) < 2) {
              let s = { instancePath: i + "/meta/output_language", schemaPath: "#/properties/meta/properties/output_language/minLength", keyword: "minLength", params: { limit: 2 }, message: "must NOT have fewer than 2 characters" };
              e === null ? e = [s] : e.push(s), t++;
            }
          } else {
            let s = { instancePath: i + "/meta/output_language", schemaPath: "#/properties/meta/properties/output_language/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.review_timestamp !== void 0) {
          let u = a.review_timestamp, s = t, n = false, A = null, f = t;
          if (typeof u == "string") {
            if (!Xr.validate(u)) {
              let C = { instancePath: i + "/meta/review_timestamp", schemaPath: "#/properties/meta/properties/review_timestamp/oneOf/0/format", keyword: "format", params: { format: "date-time" }, message: 'must match format "date-time"' };
              e === null ? e = [C] : e.push(C), t++;
            }
          } else {
            let C = { instancePath: i + "/meta/review_timestamp", schemaPath: "#/properties/meta/properties/review_timestamp/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [C] : e.push(C), t++;
          }
          var jt = f === t;
          jt && (n = true, A = 0);
          let O = t;
          if (u !== null) {
            let C = { instancePath: i + "/meta/review_timestamp", schemaPath: "#/properties/meta/properties/review_timestamp/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
            e === null ? e = [C] : e.push(C), t++;
          }
          var jt = O === t;
          if (jt && n ? (n = false, A = [A, 1]) : jt && (n = true, A = 1), n) t = s, e !== null && (s ? e.length = s : e = null);
          else {
            let C = { instancePath: i + "/meta/review_timestamp", schemaPath: "#/properties/meta/properties/review_timestamp/oneOf", keyword: "oneOf", params: { passingSchemas: A }, message: "must match exactly one schema in oneOf" };
            e === null ? e = [C] : e.push(C), t++;
          }
        }
        if (a.external_verification_used !== void 0 && typeof a.external_verification_used != "boolean") {
          let u = { instancePath: i + "/meta/external_verification_used", schemaPath: "#/properties/meta/properties/external_verification_used/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.academic_stage !== void 0) {
          let u = a.academic_stage;
          if (typeof u != "string") {
            let s = { instancePath: i + "/meta/academic_stage", schemaPath: "#/properties/meta/properties/academic_stage/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [s] : e.push(s), t++;
          }
          if (!(u === "PROGRESS" || u === "PROPOSAL" || u === "PROGRESS_1" || u === "PROGRESS_2" || u === "FINAL_REPORT" || u === "MANUAL" || u === "POSTER")) {
            let s = { instancePath: i + "/meta/academic_stage", schemaPath: "#/properties/meta/properties/academic_stage/enum", keyword: "enum", params: { allowedValues: ne.properties.meta.properties.academic_stage.enum }, message: "must be equal to one of the allowed values" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.checkpoint !== void 0) {
          let u = a.checkpoint;
          if (typeof u != "string") {
            let s = { instancePath: i + "/meta/checkpoint", schemaPath: "#/properties/meta/properties/checkpoint/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [s] : e.push(s), t++;
          }
          if (!(u === "MIDTERM" || u === "FINAL" || u === "NOT_APPLICABLE")) {
            let s = { instancePath: i + "/meta/checkpoint", schemaPath: "#/properties/meta/properties/checkpoint/enum", keyword: "enum", params: { allowedValues: ne.properties.meta.properties.checkpoint.enum }, message: "must be equal to one of the allowed values" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
      } else {
        let u = { instancePath: i + "/meta", schemaPath: "#/properties/meta/type", keyword: "type", params: { type: "object" }, message: "must be object" };
        e === null ? e = [u] : e.push(u), t++;
      }
    }
    if (r.audit_coverage !== void 0) {
      let a = r.audit_coverage;
      if (a && typeof a == "object" && !Array.isArray(a)) {
        if (a.unit_type === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "unit_type" }, message: "must have required property 'unit_type'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.total_units === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "total_units" }, message: "must have required property 'total_units'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.fully_reviewed_ranges === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "fully_reviewed_ranges" }, message: "must have required property 'fully_reviewed_ranges'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.partially_reviewed_ranges === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "partially_reviewed_ranges" }, message: "must have required property 'partially_reviewed_ranges'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.unreviewed_ranges === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "unreviewed_ranges" }, message: "must have required property 'unreviewed_ranges'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.object_level_review_performed === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "object_level_review_performed" }, message: "must have required property 'object_level_review_performed'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.cross_artifact_consistency_checked === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "cross_artifact_consistency_checked" }, message: "must have required property 'cross_artifact_consistency_checked'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.coverage_notes === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "coverage_notes" }, message: "must have required property 'coverage_notes'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.material_access_limitations === void 0) {
          let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/required", keyword: "required", params: { missingProperty: "material_access_limitations" }, message: "must have required property 'material_access_limitations'" };
          e === null ? e = [u] : e.push(u), t++;
        }
        for (let u in a) if (!Et.call(ne.properties.audit_coverage.properties, u)) {
          let s = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: u }, message: "must NOT have additional properties" };
          e === null ? e = [s] : e.push(s), t++;
        }
        if (a.unit_type !== void 0) {
          let u = a.unit_type;
          if (typeof u != "string") {
            let s = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/properties/audit_coverage/properties/unit_type/type", keyword: "type", params: { type: "string" }, message: "must be string" };
            e === null ? e = [s] : e.push(s), t++;
          }
          if (!(u === "PAGE" || u === "SLIDE" || u === "POSTER_SHEET")) {
            let s = { instancePath: i + "/audit_coverage/unit_type", schemaPath: "#/properties/audit_coverage/properties/unit_type/enum", keyword: "enum", params: { allowedValues: ne.properties.audit_coverage.properties.unit_type.enum }, message: "must be equal to one of the allowed values" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.total_units !== void 0) {
          let u = a.total_units;
          if (!(typeof u == "number" && !(u % 1) && !isNaN(u))) {
            let s = { instancePath: i + "/audit_coverage/total_units", schemaPath: "#/properties/audit_coverage/properties/total_units/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
            e === null ? e = [s] : e.push(s), t++;
          }
          if (typeof u == "number" && (u < 1 || isNaN(u))) {
            let s = { instancePath: i + "/audit_coverage/total_units", schemaPath: "#/properties/audit_coverage/properties/total_units/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.fully_reviewed_ranges !== void 0) {
          let u = a.fully_reviewed_ranges;
          if (Array.isArray(u)) {
            let s = u.length;
            for (let n = 0; n < s; n++) {
              let A = u[n];
              if (A && typeof A == "object" && !Array.isArray(A)) {
                if (A.start === void 0) {
                  let f = { instancePath: i + "/audit_coverage/fully_reviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/required", keyword: "required", params: { missingProperty: "start" }, message: "must have required property 'start'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                if (A.end === void 0) {
                  let f = { instancePath: i + "/audit_coverage/fully_reviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/required", keyword: "required", params: { missingProperty: "end" }, message: "must have required property 'end'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                for (let f in A) if (!(f === "start" || f === "end")) {
                  let O = { instancePath: i + "/audit_coverage/fully_reviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: f }, message: "must NOT have additional properties" };
                  e === null ? e = [O] : e.push(O), t++;
                }
                if (A.start !== void 0) {
                  let f = A.start;
                  if (!(typeof f == "number" && !(f % 1) && !isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/fully_reviewed_ranges/" + n + "/start", schemaPath: "#/$defs/unit_range/properties/start/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                  if (typeof f == "number" && (f < 1 || isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/fully_reviewed_ranges/" + n + "/start", schemaPath: "#/$defs/unit_range/properties/start/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
                if (A.end !== void 0) {
                  let f = A.end;
                  if (!(typeof f == "number" && !(f % 1) && !isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/fully_reviewed_ranges/" + n + "/end", schemaPath: "#/$defs/unit_range/properties/end/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                  if (typeof f == "number" && (f < 1 || isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/fully_reviewed_ranges/" + n + "/end", schemaPath: "#/$defs/unit_range/properties/end/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
              } else {
                let f = { instancePath: i + "/audit_coverage/fully_reviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/type", keyword: "type", params: { type: "object" }, message: "must be object" };
                e === null ? e = [f] : e.push(f), t++;
              }
            }
          } else {
            let s = { instancePath: i + "/audit_coverage/fully_reviewed_ranges", schemaPath: "#/properties/audit_coverage/properties/fully_reviewed_ranges/type", keyword: "type", params: { type: "array" }, message: "must be array" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.partially_reviewed_ranges !== void 0) {
          let u = a.partially_reviewed_ranges;
          if (Array.isArray(u)) {
            let s = u.length;
            for (let n = 0; n < s; n++) {
              let A = u[n];
              if (A && typeof A == "object" && !Array.isArray(A)) {
                if (A.start === void 0) {
                  let f = { instancePath: i + "/audit_coverage/partially_reviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/required", keyword: "required", params: { missingProperty: "start" }, message: "must have required property 'start'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                if (A.end === void 0) {
                  let f = { instancePath: i + "/audit_coverage/partially_reviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/required", keyword: "required", params: { missingProperty: "end" }, message: "must have required property 'end'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                for (let f in A) if (!(f === "start" || f === "end")) {
                  let O = { instancePath: i + "/audit_coverage/partially_reviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: f }, message: "must NOT have additional properties" };
                  e === null ? e = [O] : e.push(O), t++;
                }
                if (A.start !== void 0) {
                  let f = A.start;
                  if (!(typeof f == "number" && !(f % 1) && !isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/partially_reviewed_ranges/" + n + "/start", schemaPath: "#/$defs/unit_range/properties/start/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                  if (typeof f == "number" && (f < 1 || isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/partially_reviewed_ranges/" + n + "/start", schemaPath: "#/$defs/unit_range/properties/start/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
                if (A.end !== void 0) {
                  let f = A.end;
                  if (!(typeof f == "number" && !(f % 1) && !isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/partially_reviewed_ranges/" + n + "/end", schemaPath: "#/$defs/unit_range/properties/end/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                  if (typeof f == "number" && (f < 1 || isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/partially_reviewed_ranges/" + n + "/end", schemaPath: "#/$defs/unit_range/properties/end/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
              } else {
                let f = { instancePath: i + "/audit_coverage/partially_reviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/type", keyword: "type", params: { type: "object" }, message: "must be object" };
                e === null ? e = [f] : e.push(f), t++;
              }
            }
          } else {
            let s = { instancePath: i + "/audit_coverage/partially_reviewed_ranges", schemaPath: "#/properties/audit_coverage/properties/partially_reviewed_ranges/type", keyword: "type", params: { type: "array" }, message: "must be array" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.unreviewed_ranges !== void 0) {
          let u = a.unreviewed_ranges;
          if (Array.isArray(u)) {
            let s = u.length;
            for (let n = 0; n < s; n++) {
              let A = u[n];
              if (A && typeof A == "object" && !Array.isArray(A)) {
                if (A.start === void 0) {
                  let f = { instancePath: i + "/audit_coverage/unreviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/required", keyword: "required", params: { missingProperty: "start" }, message: "must have required property 'start'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                if (A.end === void 0) {
                  let f = { instancePath: i + "/audit_coverage/unreviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/required", keyword: "required", params: { missingProperty: "end" }, message: "must have required property 'end'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                for (let f in A) if (!(f === "start" || f === "end")) {
                  let O = { instancePath: i + "/audit_coverage/unreviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: f }, message: "must NOT have additional properties" };
                  e === null ? e = [O] : e.push(O), t++;
                }
                if (A.start !== void 0) {
                  let f = A.start;
                  if (!(typeof f == "number" && !(f % 1) && !isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/unreviewed_ranges/" + n + "/start", schemaPath: "#/$defs/unit_range/properties/start/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                  if (typeof f == "number" && (f < 1 || isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/unreviewed_ranges/" + n + "/start", schemaPath: "#/$defs/unit_range/properties/start/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
                if (A.end !== void 0) {
                  let f = A.end;
                  if (!(typeof f == "number" && !(f % 1) && !isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/unreviewed_ranges/" + n + "/end", schemaPath: "#/$defs/unit_range/properties/end/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                  if (typeof f == "number" && (f < 1 || isNaN(f))) {
                    let O = { instancePath: i + "/audit_coverage/unreviewed_ranges/" + n + "/end", schemaPath: "#/$defs/unit_range/properties/end/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
              } else {
                let f = { instancePath: i + "/audit_coverage/unreviewed_ranges/" + n, schemaPath: "#/$defs/unit_range/type", keyword: "type", params: { type: "object" }, message: "must be object" };
                e === null ? e = [f] : e.push(f), t++;
              }
            }
          } else {
            let s = { instancePath: i + "/audit_coverage/unreviewed_ranges", schemaPath: "#/properties/audit_coverage/properties/unreviewed_ranges/type", keyword: "type", params: { type: "array" }, message: "must be array" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.object_level_review_performed !== void 0 && typeof a.object_level_review_performed != "boolean") {
          let u = { instancePath: i + "/audit_coverage/object_level_review_performed", schemaPath: "#/properties/audit_coverage/properties/object_level_review_performed/type", keyword: "type", params: { type: "boolean" }, message: "must be boolean" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.cross_artifact_consistency_checked !== void 0 && a.cross_artifact_consistency_checked !== false) {
          let u = { instancePath: i + "/audit_coverage/cross_artifact_consistency_checked", schemaPath: "#/properties/audit_coverage/properties/cross_artifact_consistency_checked/const", keyword: "const", params: { allowedValue: false }, message: "must be equal to constant" };
          e === null ? e = [u] : e.push(u), t++;
        }
        if (a.coverage_notes !== void 0) {
          let u = a.coverage_notes;
          if (Array.isArray(u)) {
            let s = u.length;
            for (let n = 0; n < s; n++) {
              let A = u[n];
              if (typeof A == "string") {
                if (M(A) < 1) {
                  let f = { instancePath: i + "/audit_coverage/coverage_notes/" + n, schemaPath: "#/properties/audit_coverage/properties/coverage_notes/items/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [f] : e.push(f), t++;
                }
              } else {
                let f = { instancePath: i + "/audit_coverage/coverage_notes/" + n, schemaPath: "#/properties/audit_coverage/properties/coverage_notes/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [f] : e.push(f), t++;
              }
            }
          } else {
            let s = { instancePath: i + "/audit_coverage/coverage_notes", schemaPath: "#/properties/audit_coverage/properties/coverage_notes/type", keyword: "type", params: { type: "array" }, message: "must be array" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.material_access_limitations !== void 0) {
          let u = a.material_access_limitations;
          if (Array.isArray(u)) {
            let s = u.length;
            for (let n = 0; n < s; n++) {
              let A = u[n];
              if (A && typeof A == "object" && !Array.isArray(A)) {
                if (A.location === void 0) {
                  let f = { instancePath: i + "/audit_coverage/material_access_limitations/" + n, schemaPath: "#/$defs/coverage_limitation/required", keyword: "required", params: { missingProperty: "location" }, message: "must have required property 'location'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                if (A.reason === void 0) {
                  let f = { instancePath: i + "/audit_coverage/material_access_limitations/" + n, schemaPath: "#/$defs/coverage_limitation/required", keyword: "required", params: { missingProperty: "reason" }, message: "must have required property 'reason'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                if (A.verification_limitation_refs === void 0) {
                  let f = { instancePath: i + "/audit_coverage/material_access_limitations/" + n, schemaPath: "#/$defs/coverage_limitation/required", keyword: "required", params: { missingProperty: "verification_limitation_refs" }, message: "must have required property 'verification_limitation_refs'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                for (let f in A) if (!(f === "location" || f === "reason" || f === "verification_limitation_refs")) {
                  let O = { instancePath: i + "/audit_coverage/material_access_limitations/" + n, schemaPath: "#/$defs/coverage_limitation/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: f }, message: "must NOT have additional properties" };
                  e === null ? e = [O] : e.push(O), t++;
                }
                if (A.location !== void 0) {
                  let f = A.location;
                  if (typeof f == "string") {
                    if (M(f) < 1) {
                      let O = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/location", schemaPath: "#/$defs/coverage_limitation/properties/location/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                      e === null ? e = [O] : e.push(O), t++;
                    }
                  } else {
                    let O = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/location", schemaPath: "#/$defs/coverage_limitation/properties/location/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
                if (A.reason !== void 0) {
                  let f = A.reason;
                  if (typeof f == "string") {
                    if (M(f) < 1) {
                      let O = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/reason", schemaPath: "#/$defs/coverage_limitation/properties/reason/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                      e === null ? e = [O] : e.push(O), t++;
                    }
                  } else {
                    let O = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/reason", schemaPath: "#/$defs/coverage_limitation/properties/reason/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
                if (A.verification_limitation_refs !== void 0) {
                  let f = A.verification_limitation_refs;
                  if (Array.isArray(f)) {
                    if (f.length < 1) {
                      let D = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/verification_limitation_refs", schemaPath: "#/$defs/coverage_limitation/properties/verification_limitation_refs/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
                      e === null ? e = [D] : e.push(D), t++;
                    }
                    let O = f.length;
                    for (let D = 0; D < O; D++) {
                      let p = f[D];
                      if (typeof p == "string") {
                        if (!ft.test(p)) {
                          let g = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/verification_limitation_refs/" + D, schemaPath: "#/$defs/coverage_limitation/properties/verification_limitation_refs/items/pattern", keyword: "pattern", params: { pattern: "^VL[0-9]{3,}$" }, message: 'must match pattern "^VL[0-9]{3,}$"' };
                          e === null ? e = [g] : e.push(g), t++;
                        }
                      } else {
                        let g = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/verification_limitation_refs/" + D, schemaPath: "#/$defs/coverage_limitation/properties/verification_limitation_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                        e === null ? e = [g] : e.push(g), t++;
                      }
                    }
                    let C = f.length, U;
                    if (C > 1) {
                      let D = {};
                      for (; C--; ) {
                        let p = f[C];
                        if (typeof p == "string") {
                          if (typeof D[p] == "number") {
                            U = D[p];
                            let g = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/verification_limitation_refs", schemaPath: "#/$defs/coverage_limitation/properties/verification_limitation_refs/uniqueItems", keyword: "uniqueItems", params: { i: C, j: U }, message: "must NOT have duplicate items (items ## " + U + " and " + C + " are identical)" };
                            e === null ? e = [g] : e.push(g), t++;
                            break;
                          }
                          D[p] = C;
                        }
                      }
                    }
                  } else {
                    let O = { instancePath: i + "/audit_coverage/material_access_limitations/" + n + "/verification_limitation_refs", schemaPath: "#/$defs/coverage_limitation/properties/verification_limitation_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
              } else {
                let f = { instancePath: i + "/audit_coverage/material_access_limitations/" + n, schemaPath: "#/$defs/coverage_limitation/type", keyword: "type", params: { type: "object" }, message: "must be object" };
                e === null ? e = [f] : e.push(f), t++;
              }
            }
          } else {
            let s = { instancePath: i + "/audit_coverage/material_access_limitations", schemaPath: "#/properties/audit_coverage/properties/material_access_limitations/type", keyword: "type", params: { type: "array" }, message: "must be array" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
        if (a.review_checks !== void 0) {
          let u = a.review_checks;
          if (Array.isArray(u)) {
            if (u.length > 5) {
              let n = { instancePath: i + "/audit_coverage/review_checks", schemaPath: "#/properties/audit_coverage/properties/review_checks/maxItems", keyword: "maxItems", params: { limit: 5 }, message: "must NOT have more than 5 items" };
              e === null ? e = [n] : e.push(n), t++;
            }
            if (u.length < 5) {
              let n = { instancePath: i + "/audit_coverage/review_checks", schemaPath: "#/properties/audit_coverage/properties/review_checks/minItems", keyword: "minItems", params: { limit: 5 }, message: "must NOT have fewer than 5 items" };
              e === null ? e = [n] : e.push(n), t++;
            }
            let s = u.length;
            for (let n = 0; n < s; n++) {
              let A = u[n];
              if (A && typeof A == "object" && !Array.isArray(A)) {
                if (A.domain === void 0) {
                  let f = { instancePath: i + "/audit_coverage/review_checks/" + n, schemaPath: "#/properties/audit_coverage/properties/review_checks/items/required", keyword: "required", params: { missingProperty: "domain" }, message: "must have required property 'domain'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                if (A.review_status === void 0) {
                  let f = { instancePath: i + "/audit_coverage/review_checks/" + n, schemaPath: "#/properties/audit_coverage/properties/review_checks/items/required", keyword: "required", params: { missingProperty: "review_status" }, message: "must have required property 'review_status'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                if (A.inspected_pages === void 0) {
                  let f = { instancePath: i + "/audit_coverage/review_checks/" + n, schemaPath: "#/properties/audit_coverage/properties/review_checks/items/required", keyword: "required", params: { missingProperty: "inspected_pages" }, message: "must have required property 'inspected_pages'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                if (A.summary === void 0) {
                  let f = { instancePath: i + "/audit_coverage/review_checks/" + n, schemaPath: "#/properties/audit_coverage/properties/review_checks/items/required", keyword: "required", params: { missingProperty: "summary" }, message: "must have required property 'summary'" };
                  e === null ? e = [f] : e.push(f), t++;
                }
                for (let f in A) if (!(f === "domain" || f === "review_status" || f === "inspected_pages" || f === "summary")) {
                  let O = { instancePath: i + "/audit_coverage/review_checks/" + n, schemaPath: "#/properties/audit_coverage/properties/review_checks/items/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: f }, message: "must NOT have additional properties" };
                  e === null ? e = [O] : e.push(O), t++;
                }
                if (A.domain !== void 0) {
                  let f = A.domain;
                  if (!(f === "LAYOUT" || f === "REFERENCES" || f === "CAPTIONS" || f === "MATHEMATICS" || f === "EXPERT_SOUNDNESS")) {
                    let O = { instancePath: i + "/audit_coverage/review_checks/" + n + "/domain", schemaPath: "#/properties/audit_coverage/properties/review_checks/items/properties/domain/enum", keyword: "enum", params: { allowedValues: ne.properties.audit_coverage.properties.review_checks.items.properties.domain.enum }, message: "must be equal to one of the allowed values" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
                if (A.review_status !== void 0) {
                  let f = A.review_status;
                  if (!(f === "INSPECTED" || f === "PARTIAL" || f === "NOT_PRESENT" || f === "NOT_CHECKABLE")) {
                    let O = { instancePath: i + "/audit_coverage/review_checks/" + n + "/review_status", schemaPath: "#/properties/audit_coverage/properties/review_checks/items/properties/review_status/enum", keyword: "enum", params: { allowedValues: ne.properties.audit_coverage.properties.review_checks.items.properties.review_status.enum }, message: "must be equal to one of the allowed values" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
                if (A.inspected_pages !== void 0) {
                  let f = A.inspected_pages;
                  if (Array.isArray(f)) {
                    let O = f.length;
                    for (let D = 0; D < O; D++) {
                      let p = f[D];
                      if (!(typeof p == "number" && !(p % 1) && !isNaN(p))) {
                        let g = { instancePath: i + "/audit_coverage/review_checks/" + n + "/inspected_pages/" + D, schemaPath: "#/properties/audit_coverage/properties/review_checks/items/properties/inspected_pages/items/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                        e === null ? e = [g] : e.push(g), t++;
                      }
                      if (typeof p == "number" && (p < 1 || isNaN(p))) {
                        let g = { instancePath: i + "/audit_coverage/review_checks/" + n + "/inspected_pages/" + D, schemaPath: "#/properties/audit_coverage/properties/review_checks/items/properties/inspected_pages/items/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                        e === null ? e = [g] : e.push(g), t++;
                      }
                    }
                    let C = f.length, U;
                    if (C > 1) {
                      let D = {};
                      for (; C--; ) {
                        let p = f[C];
                        if (typeof p == "number" && !(p % 1) && !isNaN(p)) {
                          if (typeof D[p] == "number") {
                            U = D[p];
                            let g = { instancePath: i + "/audit_coverage/review_checks/" + n + "/inspected_pages", schemaPath: "#/properties/audit_coverage/properties/review_checks/items/properties/inspected_pages/uniqueItems", keyword: "uniqueItems", params: { i: C, j: U }, message: "must NOT have duplicate items (items ## " + U + " and " + C + " are identical)" };
                            e === null ? e = [g] : e.push(g), t++;
                            break;
                          }
                          D[p] = C;
                        }
                      }
                    }
                  } else {
                    let O = { instancePath: i + "/audit_coverage/review_checks/" + n + "/inspected_pages", schemaPath: "#/properties/audit_coverage/properties/review_checks/items/properties/inspected_pages/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
                if (A.summary !== void 0) {
                  let f = A.summary;
                  if (typeof f == "string") {
                    if (M(f) < 1) {
                      let O = { instancePath: i + "/audit_coverage/review_checks/" + n + "/summary", schemaPath: "#/properties/audit_coverage/properties/review_checks/items/properties/summary/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                      e === null ? e = [O] : e.push(O), t++;
                    }
                  } else {
                    let O = { instancePath: i + "/audit_coverage/review_checks/" + n + "/summary", schemaPath: "#/properties/audit_coverage/properties/review_checks/items/properties/summary/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [O] : e.push(O), t++;
                  }
                }
              } else {
                let f = { instancePath: i + "/audit_coverage/review_checks/" + n, schemaPath: "#/properties/audit_coverage/properties/review_checks/items/type", keyword: "type", params: { type: "object" }, message: "must be object" };
                e === null ? e = [f] : e.push(f), t++;
              }
            }
          } else {
            let s = { instancePath: i + "/audit_coverage/review_checks", schemaPath: "#/properties/audit_coverage/properties/review_checks/type", keyword: "type", params: { type: "array" }, message: "must be array" };
            e === null ? e = [s] : e.push(s), t++;
          }
        }
      } else {
        let u = { instancePath: i + "/audit_coverage", schemaPath: "#/properties/audit_coverage/type", keyword: "type", params: { type: "object" }, message: "must be object" };
        e === null ? e = [u] : e.push(u), t++;
      }
    }
    if (r.page_audit !== void 0) {
      let a = r.page_audit;
      if (Array.isArray(a)) {
        let u = a.length;
        for (let s = 0; s < u; s++) {
          let n = a[s], A = t, f = true, O = t;
          if (n && typeof n == "object" && !Array.isArray(n)) {
            let p;
            if (n.review_status === void 0 && (p = "review_status")) {
              let g = {};
              e === null ? e = [g] : e.push(g), t++;
            } else if (n.review_status !== void 0) {
              let g = n.review_status;
              if (!(g === "FULLY_REVIEWED" || g === "PARTIALLY_REVIEWED")) {
                let k = {};
                e === null ? e = [k] : e.push(k), t++;
              }
            }
          }
          var Rr = O === t;
          if (t = A, e !== null && (A ? e.length = A : e = null), Rr) {
            let p = t;
            if (n && typeof n == "object" && !Array.isArray(n) && n.checked_elements !== void 0) {
              let k = n.checked_elements;
              if (Array.isArray(k) && k.length < 1) {
                let S = { instancePath: i + "/page_audit/" + s + "/checked_elements", schemaPath: "#/$defs/page_audit_entry/allOf/0/then/properties/checked_elements/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
                e === null ? e = [S] : e.push(S), t++;
              }
            }
            var Rr = p === t;
            if (f = Rr, f) {
              var at = {};
              at.checked_elements = true, at.review_status = true;
            }
          }
          if (!f) {
            let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/allOf/0/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
            e === null ? e = [p] : e.push(p), t++;
          }
          let C = t, U = true, D = t;
          if (n && typeof n == "object" && !Array.isArray(n)) {
            let p;
            if (n.review_status === void 0 && (p = "review_status")) {
              let g = {};
              e === null ? e = [g] : e.push(g), t++;
            } else if (n.review_status !== void 0 && n.review_status !== "UNREVIEWED") {
              let g = {};
              e === null ? e = [g] : e.push(g), t++;
            }
          }
          var br = D === t;
          if (t = C, e !== null && (C ? e.length = C : e = null), br) {
            let p = t;
            if (n && typeof n == "object" && !Array.isArray(n) && n.checked_elements !== void 0) {
              let k = n.checked_elements;
              if (Array.isArray(k) && k.length > 0) {
                let S = { instancePath: i + "/page_audit/" + s + "/checked_elements", schemaPath: "#/$defs/page_audit_entry/allOf/1/then/properties/checked_elements/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items" };
                e === null ? e = [S] : e.push(S), t++;
              }
            }
            var br = p === t;
            if (U = br, U) {
              var At = {};
              At.checked_elements = true, At.review_status = true;
            }
          }
          if (!U) {
            let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/allOf/1/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
            e === null ? e = [p] : e.push(p), t++;
          }
          if (at !== true && At !== void 0 && (At === true ? at = true : (at = at || {}, Object.assign(at, At))), n && typeof n == "object" && !Array.isArray(n)) {
            if (n.page_number === void 0) {
              let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/required", keyword: "required", params: { missingProperty: "page_number" }, message: "must have required property 'page_number'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.review_status === void 0) {
              let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/required", keyword: "required", params: { missingProperty: "review_status" }, message: "must have required property 'review_status'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.checked_elements === void 0) {
              let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/required", keyword: "required", params: { missingProperty: "checked_elements" }, message: "must have required property 'checked_elements'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.finding_refs === void 0) {
              let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/required", keyword: "required", params: { missingProperty: "finding_refs" }, message: "must have required property 'finding_refs'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.verification_limitation_refs === void 0) {
              let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/required", keyword: "required", params: { missingProperty: "verification_limitation_refs" }, message: "must have required property 'verification_limitation_refs'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.page_note === void 0) {
              let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/required", keyword: "required", params: { missingProperty: "page_note" }, message: "must have required property 'page_note'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            for (let p in n) if (!(p === "page_number" || p === "review_status" || p === "checked_elements" || p === "finding_refs" || p === "verification_limitation_refs" || p === "page_note" || p === "visible_page_label")) {
              let g = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: p }, message: "must NOT have additional properties" };
              e === null ? e = [g] : e.push(g), t++;
            }
            if (n.page_number !== void 0) {
              let p = n.page_number;
              if (!(typeof p == "number" && !(p % 1) && !isNaN(p))) {
                let g = { instancePath: i + "/page_audit/" + s + "/page_number", schemaPath: "#/$defs/page_audit_entry/properties/page_number/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                e === null ? e = [g] : e.push(g), t++;
              }
              if (typeof p == "number" && (p < 1 || isNaN(p))) {
                let g = { instancePath: i + "/page_audit/" + s + "/page_number", schemaPath: "#/$defs/page_audit_entry/properties/page_number/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.review_status !== void 0) {
              let p = n.review_status;
              if (typeof p != "string") {
                let g = { instancePath: i + "/page_audit/" + s + "/review_status", schemaPath: "#/$defs/page_audit_entry/properties/review_status/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [g] : e.push(g), t++;
              }
              if (!(p === "FULLY_REVIEWED" || p === "PARTIALLY_REVIEWED" || p === "UNREVIEWED")) {
                let g = { instancePath: i + "/page_audit/" + s + "/review_status", schemaPath: "#/$defs/page_audit_entry/properties/review_status/enum", keyword: "enum", params: { allowedValues: Kr.properties.review_status.enum }, message: "must be equal to one of the allowed values" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.checked_elements !== void 0) {
              let p = n.checked_elements;
              if (Array.isArray(p)) {
                let g = p.length;
                for (let q = 0; q < g; q++) {
                  let E = p[q];
                  if (typeof E != "string") {
                    let d = { instancePath: i + "/page_audit/" + s + "/checked_elements/" + q, schemaPath: "#/$defs/page_audit_entry/properties/checked_elements/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [d] : e.push(d), t++;
                  }
                  if (!(E === "PAGE_LAYOUT" || E === "HEADINGS_STRUCTURE" || E === "TEXT_SENTENCES" || E === "CITATIONS_REFERENCES" || E === "FIGURES_IMAGES" || E === "TABLES" || E === "EQUATIONS" || E === "ALGORITHMS_PSEUDOCODE" || E === "UML_DIAGRAMS" || E === "UI_SCREENSHOTS" || E === "HARDWARE_OBJECTS" || E === "CHARTS_PLOTS" || E === "CODE_BLOCKS" || E === "APPENDICES_FORMS" || E === "OTHER_VISIBLE_OBJECTS")) {
                    let d = { instancePath: i + "/page_audit/" + s + "/checked_elements/" + q, schemaPath: "#/$defs/page_audit_entry/properties/checked_elements/items/enum", keyword: "enum", params: { allowedValues: Kr.properties.checked_elements.items.enum }, message: "must be equal to one of the allowed values" };
                    e === null ? e = [d] : e.push(d), t++;
                  }
                }
                let k = p.length, S;
                if (k > 1) {
                  let q = {};
                  for (; k--; ) {
                    let E = p[k];
                    if (typeof E == "string") {
                      if (typeof q[E] == "number") {
                        S = q[E];
                        let d = { instancePath: i + "/page_audit/" + s + "/checked_elements", schemaPath: "#/$defs/page_audit_entry/properties/checked_elements/uniqueItems", keyword: "uniqueItems", params: { i: k, j: S }, message: "must NOT have duplicate items (items ## " + S + " and " + k + " are identical)" };
                        e === null ? e = [d] : e.push(d), t++;
                        break;
                      }
                      q[E] = k;
                    }
                  }
                }
              } else {
                let g = { instancePath: i + "/page_audit/" + s + "/checked_elements", schemaPath: "#/$defs/page_audit_entry/properties/checked_elements/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.finding_refs !== void 0) {
              let p = n.finding_refs;
              if (Array.isArray(p)) {
                let g = p.length;
                for (let q = 0; q < g; q++) {
                  let E = p[q];
                  if (typeof E == "string") {
                    if (!xt.test(E)) {
                      let d = { instancePath: i + "/page_audit/" + s + "/finding_refs/" + q, schemaPath: "#/$defs/page_audit_entry/properties/finding_refs/items/pattern", keyword: "pattern", params: { pattern: "^C[0-9]{3,}$" }, message: 'must match pattern "^C[0-9]{3,}$"' };
                      e === null ? e = [d] : e.push(d), t++;
                    }
                  } else {
                    let d = { instancePath: i + "/page_audit/" + s + "/finding_refs/" + q, schemaPath: "#/$defs/page_audit_entry/properties/finding_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [d] : e.push(d), t++;
                  }
                }
                let k = p.length, S;
                if (k > 1) {
                  let q = {};
                  for (; k--; ) {
                    let E = p[k];
                    if (typeof E == "string") {
                      if (typeof q[E] == "number") {
                        S = q[E];
                        let d = { instancePath: i + "/page_audit/" + s + "/finding_refs", schemaPath: "#/$defs/page_audit_entry/properties/finding_refs/uniqueItems", keyword: "uniqueItems", params: { i: k, j: S }, message: "must NOT have duplicate items (items ## " + S + " and " + k + " are identical)" };
                        e === null ? e = [d] : e.push(d), t++;
                        break;
                      }
                      q[E] = k;
                    }
                  }
                }
              } else {
                let g = { instancePath: i + "/page_audit/" + s + "/finding_refs", schemaPath: "#/$defs/page_audit_entry/properties/finding_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.verification_limitation_refs !== void 0) {
              let p = n.verification_limitation_refs;
              if (Array.isArray(p)) {
                let g = p.length;
                for (let q = 0; q < g; q++) {
                  let E = p[q];
                  if (typeof E == "string") {
                    if (!ft.test(E)) {
                      let d = { instancePath: i + "/page_audit/" + s + "/verification_limitation_refs/" + q, schemaPath: "#/$defs/page_audit_entry/properties/verification_limitation_refs/items/pattern", keyword: "pattern", params: { pattern: "^VL[0-9]{3,}$" }, message: 'must match pattern "^VL[0-9]{3,}$"' };
                      e === null ? e = [d] : e.push(d), t++;
                    }
                  } else {
                    let d = { instancePath: i + "/page_audit/" + s + "/verification_limitation_refs/" + q, schemaPath: "#/$defs/page_audit_entry/properties/verification_limitation_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [d] : e.push(d), t++;
                  }
                }
                let k = p.length, S;
                if (k > 1) {
                  let q = {};
                  for (; k--; ) {
                    let E = p[k];
                    if (typeof E == "string") {
                      if (typeof q[E] == "number") {
                        S = q[E];
                        let d = { instancePath: i + "/page_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/page_audit_entry/properties/verification_limitation_refs/uniqueItems", keyword: "uniqueItems", params: { i: k, j: S }, message: "must NOT have duplicate items (items ## " + S + " and " + k + " are identical)" };
                        e === null ? e = [d] : e.push(d), t++;
                        break;
                      }
                      q[E] = k;
                    }
                  }
                }
              } else {
                let g = { instancePath: i + "/page_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/page_audit_entry/properties/verification_limitation_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.page_note !== void 0) {
              let p = n.page_note;
              if (typeof p == "string") {
                if (M(p) < 1) {
                  let g = { instancePath: i + "/page_audit/" + s + "/page_note", schemaPath: "#/$defs/page_audit_entry/properties/page_note/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [g] : e.push(g), t++;
                }
              } else {
                let g = { instancePath: i + "/page_audit/" + s + "/page_note", schemaPath: "#/$defs/page_audit_entry/properties/page_note/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.visible_page_label !== void 0) {
              let p = n.visible_page_label, g = t, k = false, S = null, q = t;
              if (typeof p == "string") {
                if (M(p) < 1) {
                  let d = { instancePath: i + "/page_audit/" + s + "/visible_page_label", schemaPath: "#/$defs/page_audit_entry/properties/visible_page_label/oneOf/0/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [d] : e.push(d), t++;
                }
              } else {
                let d = { instancePath: i + "/page_audit/" + s + "/visible_page_label", schemaPath: "#/$defs/page_audit_entry/properties/visible_page_label/oneOf/0/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [d] : e.push(d), t++;
              }
              var Mt = q === t;
              Mt && (k = true, S = 0);
              let E = t;
              if (p !== null) {
                let d = { instancePath: i + "/page_audit/" + s + "/visible_page_label", schemaPath: "#/$defs/page_audit_entry/properties/visible_page_label/oneOf/1/type", keyword: "type", params: { type: "null" }, message: "must be null" };
                e === null ? e = [d] : e.push(d), t++;
              }
              var Mt = E === t;
              if (Mt && k ? (k = false, S = [S, 1]) : Mt && (k = true, S = 1), k) t = g, e !== null && (g ? e.length = g : e = null);
              else {
                let d = { instancePath: i + "/page_audit/" + s + "/visible_page_label", schemaPath: "#/$defs/page_audit_entry/properties/visible_page_label/oneOf", keyword: "oneOf", params: { passingSchemas: S }, message: "must match exactly one schema in oneOf" };
                e === null ? e = [d] : e.push(d), t++;
              }
            }
          } else {
            let p = { instancePath: i + "/page_audit/" + s, schemaPath: "#/$defs/page_audit_entry/type", keyword: "type", params: { type: "object" }, message: "must be object" };
            e === null ? e = [p] : e.push(p), t++;
          }
        }
      } else {
        let u = { instancePath: i + "/page_audit", schemaPath: "#/properties/page_audit/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [u] : e.push(u), t++;
      }
    }
    if (r.slide_audit !== void 0) {
      let a = r.slide_audit;
      if (Array.isArray(a)) {
        let u = a.length;
        for (let s = 0; s < u; s++) {
          let n = a[s], A = t, f = true, O = t;
          if (n && typeof n == "object" && !Array.isArray(n)) {
            let p;
            if (n.review_status === void 0 && (p = "review_status")) {
              let g = {};
              e === null ? e = [g] : e.push(g), t++;
            } else if (n.review_status !== void 0) {
              let g = n.review_status;
              if (!(g === "FULLY_REVIEWED" || g === "PARTIALLY_REVIEWED")) {
                let k = {};
                e === null ? e = [k] : e.push(k), t++;
              }
            }
          }
          var Er = O === t;
          if (t = A, e !== null && (A ? e.length = A : e = null), Er) {
            let p = t;
            if (n && typeof n == "object" && !Array.isArray(n) && n.checked_elements !== void 0) {
              let k = n.checked_elements;
              if (Array.isArray(k) && k.length < 1) {
                let S = { instancePath: i + "/slide_audit/" + s + "/checked_elements", schemaPath: "#/$defs/slide_audit_entry/allOf/0/then/properties/checked_elements/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
                e === null ? e = [S] : e.push(S), t++;
              }
            }
            var Er = p === t;
            if (f = Er, f) {
              var nt = {};
              nt.checked_elements = true, nt.review_status = true;
            }
          }
          if (!f) {
            let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/allOf/0/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
            e === null ? e = [p] : e.push(p), t++;
          }
          let C = t, U = true, D = t;
          if (n && typeof n == "object" && !Array.isArray(n)) {
            let p;
            if (n.review_status === void 0 && (p = "review_status")) {
              let g = {};
              e === null ? e = [g] : e.push(g), t++;
            } else if (n.review_status !== void 0 && n.review_status !== "UNREVIEWED") {
              let g = {};
              e === null ? e = [g] : e.push(g), t++;
            }
          }
          var kr = D === t;
          if (t = C, e !== null && (C ? e.length = C : e = null), kr) {
            let p = t;
            if (n && typeof n == "object" && !Array.isArray(n) && n.checked_elements !== void 0) {
              let k = n.checked_elements;
              if (Array.isArray(k) && k.length > 0) {
                let S = { instancePath: i + "/slide_audit/" + s + "/checked_elements", schemaPath: "#/$defs/slide_audit_entry/allOf/1/then/properties/checked_elements/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items" };
                e === null ? e = [S] : e.push(S), t++;
              }
            }
            var kr = p === t;
            if (U = kr, U) {
              var Ot = {};
              Ot.checked_elements = true, Ot.review_status = true;
            }
          }
          if (!U) {
            let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/allOf/1/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
            e === null ? e = [p] : e.push(p), t++;
          }
          if (nt !== true && Ot !== void 0 && (Ot === true ? nt = true : (nt = nt || {}, Object.assign(nt, Ot))), n && typeof n == "object" && !Array.isArray(n)) {
            if (n.slide_number === void 0) {
              let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/required", keyword: "required", params: { missingProperty: "slide_number" }, message: "must have required property 'slide_number'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.review_status === void 0) {
              let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/required", keyword: "required", params: { missingProperty: "review_status" }, message: "must have required property 'review_status'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.checked_elements === void 0) {
              let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/required", keyword: "required", params: { missingProperty: "checked_elements" }, message: "must have required property 'checked_elements'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.finding_refs === void 0) {
              let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/required", keyword: "required", params: { missingProperty: "finding_refs" }, message: "must have required property 'finding_refs'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.verification_limitation_refs === void 0) {
              let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/required", keyword: "required", params: { missingProperty: "verification_limitation_refs" }, message: "must have required property 'verification_limitation_refs'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            if (n.slide_note === void 0) {
              let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/required", keyword: "required", params: { missingProperty: "slide_note" }, message: "must have required property 'slide_note'" };
              e === null ? e = [p] : e.push(p), t++;
            }
            for (let p in n) if (!(p === "slide_number" || p === "review_status" || p === "checked_elements" || p === "finding_refs" || p === "verification_limitation_refs" || p === "slide_note")) {
              let g = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: p }, message: "must NOT have additional properties" };
              e === null ? e = [g] : e.push(g), t++;
            }
            if (n.slide_number !== void 0) {
              let p = n.slide_number;
              if (!(typeof p == "number" && !(p % 1) && !isNaN(p))) {
                let g = { instancePath: i + "/slide_audit/" + s + "/slide_number", schemaPath: "#/$defs/slide_audit_entry/properties/slide_number/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                e === null ? e = [g] : e.push(g), t++;
              }
              if (typeof p == "number" && (p < 1 || isNaN(p))) {
                let g = { instancePath: i + "/slide_audit/" + s + "/slide_number", schemaPath: "#/$defs/slide_audit_entry/properties/slide_number/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.review_status !== void 0) {
              let p = n.review_status;
              if (typeof p != "string") {
                let g = { instancePath: i + "/slide_audit/" + s + "/review_status", schemaPath: "#/$defs/slide_audit_entry/properties/review_status/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [g] : e.push(g), t++;
              }
              if (!(p === "FULLY_REVIEWED" || p === "PARTIALLY_REVIEWED" || p === "UNREVIEWED")) {
                let g = { instancePath: i + "/slide_audit/" + s + "/review_status", schemaPath: "#/$defs/slide_audit_entry/properties/review_status/enum", keyword: "enum", params: { allowedValues: Yr.properties.review_status.enum }, message: "must be equal to one of the allowed values" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.checked_elements !== void 0) {
              let p = n.checked_elements;
              if (Array.isArray(p)) {
                let g = p.length;
                for (let q = 0; q < g; q++) {
                  let E = p[q];
                  if (typeof E != "string") {
                    let d = { instancePath: i + "/slide_audit/" + s + "/checked_elements/" + q, schemaPath: "#/$defs/slide_audit_entry/properties/checked_elements/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [d] : e.push(d), t++;
                  }
                  if (!(E === "SLIDE_LAYOUT" || E === "HEADINGS_STRUCTURE" || E === "TEXT_BULLETS" || E === "CITATIONS_REFERENCES" || E === "FIGURES_IMAGES" || E === "TABLES" || E === "CHARTS_PLOTS" || E === "EQUATIONS" || E === "ALGORITHMS_PSEUDOCODE" || E === "UML_DIAGRAMS" || E === "UI_SCREENSHOTS" || E === "HARDWARE_OBJECTS" || E === "CODE_BLOCKS" || E === "DEMO_EVIDENCE" || E === "OTHER_VISIBLE_OBJECTS")) {
                    let d = { instancePath: i + "/slide_audit/" + s + "/checked_elements/" + q, schemaPath: "#/$defs/slide_audit_entry/properties/checked_elements/items/enum", keyword: "enum", params: { allowedValues: Yr.properties.checked_elements.items.enum }, message: "must be equal to one of the allowed values" };
                    e === null ? e = [d] : e.push(d), t++;
                  }
                }
                let k = p.length, S;
                if (k > 1) {
                  let q = {};
                  for (; k--; ) {
                    let E = p[k];
                    if (typeof E == "string") {
                      if (typeof q[E] == "number") {
                        S = q[E];
                        let d = { instancePath: i + "/slide_audit/" + s + "/checked_elements", schemaPath: "#/$defs/slide_audit_entry/properties/checked_elements/uniqueItems", keyword: "uniqueItems", params: { i: k, j: S }, message: "must NOT have duplicate items (items ## " + S + " and " + k + " are identical)" };
                        e === null ? e = [d] : e.push(d), t++;
                        break;
                      }
                      q[E] = k;
                    }
                  }
                }
              } else {
                let g = { instancePath: i + "/slide_audit/" + s + "/checked_elements", schemaPath: "#/$defs/slide_audit_entry/properties/checked_elements/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.finding_refs !== void 0) {
              let p = n.finding_refs;
              if (Array.isArray(p)) {
                let g = p.length;
                for (let q = 0; q < g; q++) {
                  let E = p[q];
                  if (typeof E == "string") {
                    if (!xt.test(E)) {
                      let d = { instancePath: i + "/slide_audit/" + s + "/finding_refs/" + q, schemaPath: "#/$defs/slide_audit_entry/properties/finding_refs/items/pattern", keyword: "pattern", params: { pattern: "^C[0-9]{3,}$" }, message: 'must match pattern "^C[0-9]{3,}$"' };
                      e === null ? e = [d] : e.push(d), t++;
                    }
                  } else {
                    let d = { instancePath: i + "/slide_audit/" + s + "/finding_refs/" + q, schemaPath: "#/$defs/slide_audit_entry/properties/finding_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [d] : e.push(d), t++;
                  }
                }
                let k = p.length, S;
                if (k > 1) {
                  let q = {};
                  for (; k--; ) {
                    let E = p[k];
                    if (typeof E == "string") {
                      if (typeof q[E] == "number") {
                        S = q[E];
                        let d = { instancePath: i + "/slide_audit/" + s + "/finding_refs", schemaPath: "#/$defs/slide_audit_entry/properties/finding_refs/uniqueItems", keyword: "uniqueItems", params: { i: k, j: S }, message: "must NOT have duplicate items (items ## " + S + " and " + k + " are identical)" };
                        e === null ? e = [d] : e.push(d), t++;
                        break;
                      }
                      q[E] = k;
                    }
                  }
                }
              } else {
                let g = { instancePath: i + "/slide_audit/" + s + "/finding_refs", schemaPath: "#/$defs/slide_audit_entry/properties/finding_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.verification_limitation_refs !== void 0) {
              let p = n.verification_limitation_refs;
              if (Array.isArray(p)) {
                let g = p.length;
                for (let q = 0; q < g; q++) {
                  let E = p[q];
                  if (typeof E == "string") {
                    if (!ft.test(E)) {
                      let d = { instancePath: i + "/slide_audit/" + s + "/verification_limitation_refs/" + q, schemaPath: "#/$defs/slide_audit_entry/properties/verification_limitation_refs/items/pattern", keyword: "pattern", params: { pattern: "^VL[0-9]{3,}$" }, message: 'must match pattern "^VL[0-9]{3,}$"' };
                      e === null ? e = [d] : e.push(d), t++;
                    }
                  } else {
                    let d = { instancePath: i + "/slide_audit/" + s + "/verification_limitation_refs/" + q, schemaPath: "#/$defs/slide_audit_entry/properties/verification_limitation_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [d] : e.push(d), t++;
                  }
                }
                let k = p.length, S;
                if (k > 1) {
                  let q = {};
                  for (; k--; ) {
                    let E = p[k];
                    if (typeof E == "string") {
                      if (typeof q[E] == "number") {
                        S = q[E];
                        let d = { instancePath: i + "/slide_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/slide_audit_entry/properties/verification_limitation_refs/uniqueItems", keyword: "uniqueItems", params: { i: k, j: S }, message: "must NOT have duplicate items (items ## " + S + " and " + k + " are identical)" };
                        e === null ? e = [d] : e.push(d), t++;
                        break;
                      }
                      q[E] = k;
                    }
                  }
                }
              } else {
                let g = { instancePath: i + "/slide_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/slide_audit_entry/properties/verification_limitation_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
            if (n.slide_note !== void 0) {
              let p = n.slide_note;
              if (typeof p == "string") {
                if (M(p) < 1) {
                  let g = { instancePath: i + "/slide_audit/" + s + "/slide_note", schemaPath: "#/$defs/slide_audit_entry/properties/slide_note/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [g] : e.push(g), t++;
                }
              } else {
                let g = { instancePath: i + "/slide_audit/" + s + "/slide_note", schemaPath: "#/$defs/slide_audit_entry/properties/slide_note/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [g] : e.push(g), t++;
              }
            }
          } else {
            let p = { instancePath: i + "/slide_audit/" + s, schemaPath: "#/$defs/slide_audit_entry/type", keyword: "type", params: { type: "object" }, message: "must be object" };
            e === null ? e = [p] : e.push(p), t++;
          }
        }
      } else {
        let u = { instancePath: i + "/slide_audit", schemaPath: "#/properties/slide_audit/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [u] : e.push(u), t++;
      }
    }
    if (r.comments !== void 0) {
      let a = r.comments;
      if (a && typeof a == "object" && !Array.isArray(a)) {
        for (let u in a) {
          let s = t;
          if (typeof u == "string" && !xt.test(u)) {
            let n = { instancePath: i + "/comments", schemaPath: "#/properties/comments/propertyNames/pattern", keyword: "pattern", params: { pattern: "^C[0-9]{3,}$" }, message: 'must match pattern "^C[0-9]{3,}$"', propertyName: u };
            e === null ? e = [n] : e.push(n), t++;
          }
          var ui = s === t;
          if (!ui) {
            let n = { instancePath: i + "/comments", schemaPath: "#/properties/comments/propertyNames", keyword: "propertyNames", params: { propertyName: u }, message: "property name must be valid" };
            e === null ? e = [n] : e.push(n), t++;
          }
        }
        for (let u in a) Re(a[u], { instancePath: i + "/comments/" + u.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: a, parentDataProperty: u, rootData: H, dynamicAnchors: ae }) || (e = e === null ? Re.errors : e.concat(Re.errors), t = e.length);
      } else {
        let u = { instancePath: i + "/comments", schemaPath: "#/properties/comments/type", keyword: "type", params: { type: "object" }, message: "must be object" };
        e === null ? e = [u] : e.push(u), t++;
      }
    }
    if (r.verification_limitations !== void 0) {
      let a = r.verification_limitations;
      if (a && typeof a == "object" && !Array.isArray(a)) {
        for (let u in a) {
          let s = t;
          if (typeof u == "string" && !ft.test(u)) {
            let n = { instancePath: i + "/verification_limitations", schemaPath: "#/properties/verification_limitations/propertyNames/pattern", keyword: "pattern", params: { pattern: "^VL[0-9]{3,}$" }, message: 'must match pattern "^VL[0-9]{3,}$"', propertyName: u };
            e === null ? e = [n] : e.push(n), t++;
          }
          var ci = s === t;
          if (!ci) {
            let n = { instancePath: i + "/verification_limitations", schemaPath: "#/properties/verification_limitations/propertyNames", keyword: "propertyNames", params: { propertyName: u }, message: "property name must be valid" };
            e === null ? e = [n] : e.push(n), t++;
          }
        }
        for (let u in a) be(a[u], { instancePath: i + "/verification_limitations/" + u.replace(/~/g, "~0").replace(/\//g, "~1"), parentData: a, parentDataProperty: u, rootData: H, dynamicAnchors: ae }) || (e = e === null ? be.errors : e.concat(be.errors), t = e.length);
      } else {
        let u = { instancePath: i + "/verification_limitations", schemaPath: "#/properties/verification_limitations/type", keyword: "type", params: { type: "object" }, message: "must be object" };
        e === null ? e = [u] : e.push(u), t++;
      }
    }
    if (r.requirement_audit !== void 0) {
      let a = r.requirement_audit;
      if (Array.isArray(a)) {
        if (a.length < 1) {
          let s = { instancePath: i + "/requirement_audit", schemaPath: "#/properties/requirement_audit/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
          e === null ? e = [s] : e.push(s), t++;
        }
        let u = a.length;
        for (let s = 0; s < u; s++) {
          let n = a[s], A = t, f = true, O = t;
          if (n && typeof n == "object" && !Array.isArray(n)) {
            let d;
            if (n.status === void 0 && (d = "status")) {
              let L = {};
              e === null ? e = [L] : e.push(L), t++;
            } else if (n.status !== void 0) {
              let L = n.status;
              if (!(L === "PARTIAL" || L === "MISSING")) {
                let j = {};
                e === null ? e = [j] : e.push(j), t++;
              }
            }
          }
          var qr = O === t;
          if (t = A, e !== null && (A ? e.length = A : e = null), qr) {
            let d = t;
            if (n && typeof n == "object" && !Array.isArray(n)) {
              if (n.finding_refs !== void 0) {
                let j = n.finding_refs;
                if (Array.isArray(j) && j.length < 1) {
                  let V = { instancePath: i + "/requirement_audit/" + s + "/finding_refs", schemaPath: "#/$defs/requirement_audit_entry/allOf/0/then/properties/finding_refs/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
                  e === null ? e = [V] : e.push(V), t++;
                }
              }
              if (n.verification_limitation_refs !== void 0) {
                let j = n.verification_limitation_refs;
                if (Array.isArray(j) && j.length > 0) {
                  let V = { instancePath: i + "/requirement_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/requirement_audit_entry/allOf/0/then/properties/verification_limitation_refs/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items" };
                  e === null ? e = [V] : e.push(V), t++;
                }
              }
            }
            var qr = d === t;
            if (f = qr, f) {
              var ee = {};
              ee.finding_refs = true, ee.verification_limitation_refs = true, ee.status = true;
            }
          }
          if (!f) {
            let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/allOf/0/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
            e === null ? e = [d] : e.push(d), t++;
          }
          let C = t, U = true, D = t;
          if (n && typeof n == "object" && !Array.isArray(n)) {
            let d;
            if (n.status === void 0 && (d = "status")) {
              let L = {};
              e === null ? e = [L] : e.push(L), t++;
            } else if (n.status !== void 0 && n.status !== "NOT_CHECKABLE") {
              let L = {};
              e === null ? e = [L] : e.push(L), t++;
            }
          }
          var Tr = D === t;
          if (t = C, e !== null && (C ? e.length = C : e = null), Tr) {
            let d = t;
            if (n && typeof n == "object" && !Array.isArray(n) && n.verification_limitation_refs !== void 0) {
              let j = n.verification_limitation_refs;
              if (Array.isArray(j) && j.length < 1) {
                let V = { instancePath: i + "/requirement_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/requirement_audit_entry/allOf/1/then/properties/verification_limitation_refs/minItems", keyword: "minItems", params: { limit: 1 }, message: "must NOT have fewer than 1 items" };
                e === null ? e = [V] : e.push(V), t++;
              }
            }
            var Tr = d === t;
            if (U = Tr, U) {
              var Rt = {};
              Rt.verification_limitation_refs = true, Rt.status = true;
            }
          }
          if (!U) {
            let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/allOf/1/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
            e === null ? e = [d] : e.push(d), t++;
          }
          ee !== true && Rt !== void 0 && (Rt === true ? ee = true : (ee = ee || {}, Object.assign(ee, Rt)));
          let p = t, g = true, k = t;
          if (n && typeof n == "object" && !Array.isArray(n)) {
            let d;
            if (n.status === void 0 && (d = "status")) {
              let L = {};
              e === null ? e = [L] : e.push(L), t++;
            } else if (n.status !== void 0) {
              let L = n.status;
              if (!(L === "SATISFIED" || L === "NOT_APPLICABLE")) {
                let j = {};
                e === null ? e = [j] : e.push(j), t++;
              }
            }
          }
          var Lr = k === t;
          if (t = p, e !== null && (p ? e.length = p : e = null), Lr) {
            let d = t;
            if (n && typeof n == "object" && !Array.isArray(n)) {
              if (n.finding_refs !== void 0) {
                let j = n.finding_refs;
                if (Array.isArray(j) && j.length > 0) {
                  let V = { instancePath: i + "/requirement_audit/" + s + "/finding_refs", schemaPath: "#/$defs/requirement_audit_entry/allOf/2/then/properties/finding_refs/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items" };
                  e === null ? e = [V] : e.push(V), t++;
                }
              }
              if (n.verification_limitation_refs !== void 0) {
                let j = n.verification_limitation_refs;
                if (Array.isArray(j) && j.length > 0) {
                  let V = { instancePath: i + "/requirement_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/requirement_audit_entry/allOf/2/then/properties/verification_limitation_refs/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items" };
                  e === null ? e = [V] : e.push(V), t++;
                }
              }
            }
            var Lr = d === t;
            if (g = Lr, g) {
              var ut = {};
              ut.finding_refs = true, ut.verification_limitation_refs = true, ut.status = true;
            }
          }
          if (!g) {
            let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/allOf/2/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
            e === null ? e = [d] : e.push(d), t++;
          }
          ee !== true && ut !== void 0 && (ut === true ? ee = true : (ee = ee || {}, Object.assign(ee, ut)));
          let S = t, q = true, E = t;
          if (n && typeof n == "object" && !Array.isArray(n)) {
            let d;
            if (n.status === void 0 && (d = "status")) {
              let L = {};
              e === null ? e = [L] : e.push(L), t++;
            } else if (n.status !== void 0 && n.status !== "NOT_APPLICABLE") {
              let L = {};
              e === null ? e = [L] : e.push(L), t++;
            }
          }
          var Ir = E === t;
          if (t = S, e !== null && (S ? e.length = S : e = null), Ir) {
            let d = t;
            if (n && typeof n == "object" && !Array.isArray(n) && n.evidence_units !== void 0) {
              let j = n.evidence_units;
              if (Array.isArray(j) && j.length > 0) {
                let V = { instancePath: i + "/requirement_audit/" + s + "/evidence_units", schemaPath: "#/$defs/requirement_audit_entry/allOf/3/then/properties/evidence_units/maxItems", keyword: "maxItems", params: { limit: 0 }, message: "must NOT have more than 0 items" };
                e === null ? e = [V] : e.push(V), t++;
              }
            }
            var Ir = d === t;
            if (q = Ir, q) {
              var bt = {};
              bt.evidence_units = true, bt.status = true;
            }
          }
          if (!q) {
            let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/allOf/3/if", keyword: "if", params: { failingKeyword: "then" }, message: 'must match "then" schema' };
            e === null ? e = [d] : e.push(d), t++;
          }
          if (ee !== true && bt !== void 0 && (bt === true ? ee = true : (ee = ee || {}, Object.assign(ee, bt))), n && typeof n == "object" && !Array.isArray(n)) {
            if (n.requirement_ref === void 0) {
              let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/required", keyword: "required", params: { missingProperty: "requirement_ref" }, message: "must have required property 'requirement_ref'" };
              e === null ? e = [d] : e.push(d), t++;
            }
            if (n.status === void 0) {
              let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/required", keyword: "required", params: { missingProperty: "status" }, message: "must have required property 'status'" };
              e === null ? e = [d] : e.push(d), t++;
            }
            if (n.evidence_units === void 0) {
              let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/required", keyword: "required", params: { missingProperty: "evidence_units" }, message: "must have required property 'evidence_units'" };
              e === null ? e = [d] : e.push(d), t++;
            }
            if (n.finding_refs === void 0) {
              let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/required", keyword: "required", params: { missingProperty: "finding_refs" }, message: "must have required property 'finding_refs'" };
              e === null ? e = [d] : e.push(d), t++;
            }
            if (n.verification_limitation_refs === void 0) {
              let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/required", keyword: "required", params: { missingProperty: "verification_limitation_refs" }, message: "must have required property 'verification_limitation_refs'" };
              e === null ? e = [d] : e.push(d), t++;
            }
            if (n.note === void 0) {
              let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/required", keyword: "required", params: { missingProperty: "note" }, message: "must have required property 'note'" };
              e === null ? e = [d] : e.push(d), t++;
            }
            for (let d in n) if (!(d === "requirement_ref" || d === "status" || d === "evidence_units" || d === "finding_refs" || d === "verification_limitation_refs" || d === "note")) {
              let L = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: d }, message: "must NOT have additional properties" };
              e === null ? e = [L] : e.push(L), t++;
            }
            if (n.requirement_ref !== void 0) {
              let d = n.requirement_ref;
              if (typeof d == "string") {
                if (!qi.test(d)) {
                  let L = { instancePath: i + "/requirement_audit/" + s + "/requirement_ref", schemaPath: "#/$defs/requirement_audit_entry/properties/requirement_ref/pattern", keyword: "pattern", params: { pattern: "^[A-Z][A-Z0-9-]{1,31}$" }, message: 'must match pattern "^[A-Z][A-Z0-9-]{1,31}$"' };
                  e === null ? e = [L] : e.push(L), t++;
                }
              } else {
                let L = { instancePath: i + "/requirement_audit/" + s + "/requirement_ref", schemaPath: "#/$defs/requirement_audit_entry/properties/requirement_ref/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [L] : e.push(L), t++;
              }
            }
            if (n.status !== void 0) {
              let d = n.status;
              if (typeof d != "string") {
                let L = { instancePath: i + "/requirement_audit/" + s + "/status", schemaPath: "#/$defs/requirement_audit_entry/properties/status/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [L] : e.push(L), t++;
              }
              if (!(d === "SATISFIED" || d === "PARTIAL" || d === "MISSING" || d === "NOT_APPLICABLE" || d === "NOT_CHECKABLE")) {
                let L = { instancePath: i + "/requirement_audit/" + s + "/status", schemaPath: "#/$defs/requirement_audit_entry/properties/status/enum", keyword: "enum", params: { allowedValues: Ei.properties.status.enum }, message: "must be equal to one of the allowed values" };
                e === null ? e = [L] : e.push(L), t++;
              }
            }
            if (n.evidence_units !== void 0) {
              let d = n.evidence_units;
              if (Array.isArray(d)) {
                let L = d.length;
                for (let G = 0; G < L; G++) {
                  let z = d[G];
                  if (!(typeof z == "number" && !(z % 1) && !isNaN(z))) {
                    let J = { instancePath: i + "/requirement_audit/" + s + "/evidence_units/" + G, schemaPath: "#/$defs/requirement_audit_entry/properties/evidence_units/items/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
                    e === null ? e = [J] : e.push(J), t++;
                  }
                  if (typeof z == "number" && (z < 1 || isNaN(z))) {
                    let J = { instancePath: i + "/requirement_audit/" + s + "/evidence_units/" + G, schemaPath: "#/$defs/requirement_audit_entry/properties/evidence_units/items/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
                    e === null ? e = [J] : e.push(J), t++;
                  }
                }
                let j = d.length, V;
                if (j > 1) {
                  let G = {};
                  for (; j--; ) {
                    let z = d[j];
                    if (typeof z == "number" && !(z % 1) && !isNaN(z)) {
                      if (typeof G[z] == "number") {
                        V = G[z];
                        let J = { instancePath: i + "/requirement_audit/" + s + "/evidence_units", schemaPath: "#/$defs/requirement_audit_entry/properties/evidence_units/uniqueItems", keyword: "uniqueItems", params: { i: j, j: V }, message: "must NOT have duplicate items (items ## " + V + " and " + j + " are identical)" };
                        e === null ? e = [J] : e.push(J), t++;
                        break;
                      }
                      G[z] = j;
                    }
                  }
                }
              } else {
                let L = { instancePath: i + "/requirement_audit/" + s + "/evidence_units", schemaPath: "#/$defs/requirement_audit_entry/properties/evidence_units/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [L] : e.push(L), t++;
              }
            }
            if (n.finding_refs !== void 0) {
              let d = n.finding_refs;
              if (Array.isArray(d)) {
                let L = d.length;
                for (let G = 0; G < L; G++) {
                  let z = d[G];
                  if (typeof z == "string") {
                    if (!xt.test(z)) {
                      let J = { instancePath: i + "/requirement_audit/" + s + "/finding_refs/" + G, schemaPath: "#/$defs/requirement_audit_entry/properties/finding_refs/items/pattern", keyword: "pattern", params: { pattern: "^C[0-9]{3,}$" }, message: 'must match pattern "^C[0-9]{3,}$"' };
                      e === null ? e = [J] : e.push(J), t++;
                    }
                  } else {
                    let J = { instancePath: i + "/requirement_audit/" + s + "/finding_refs/" + G, schemaPath: "#/$defs/requirement_audit_entry/properties/finding_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [J] : e.push(J), t++;
                  }
                }
                let j = d.length, V;
                if (j > 1) {
                  let G = {};
                  for (; j--; ) {
                    let z = d[j];
                    if (typeof z == "string") {
                      if (typeof G[z] == "number") {
                        V = G[z];
                        let J = { instancePath: i + "/requirement_audit/" + s + "/finding_refs", schemaPath: "#/$defs/requirement_audit_entry/properties/finding_refs/uniqueItems", keyword: "uniqueItems", params: { i: j, j: V }, message: "must NOT have duplicate items (items ## " + V + " and " + j + " are identical)" };
                        e === null ? e = [J] : e.push(J), t++;
                        break;
                      }
                      G[z] = j;
                    }
                  }
                }
              } else {
                let L = { instancePath: i + "/requirement_audit/" + s + "/finding_refs", schemaPath: "#/$defs/requirement_audit_entry/properties/finding_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [L] : e.push(L), t++;
              }
            }
            if (n.verification_limitation_refs !== void 0) {
              let d = n.verification_limitation_refs;
              if (Array.isArray(d)) {
                let L = d.length;
                for (let G = 0; G < L; G++) {
                  let z = d[G];
                  if (typeof z == "string") {
                    if (!ft.test(z)) {
                      let J = { instancePath: i + "/requirement_audit/" + s + "/verification_limitation_refs/" + G, schemaPath: "#/$defs/requirement_audit_entry/properties/verification_limitation_refs/items/pattern", keyword: "pattern", params: { pattern: "^VL[0-9]{3,}$" }, message: 'must match pattern "^VL[0-9]{3,}$"' };
                      e === null ? e = [J] : e.push(J), t++;
                    }
                  } else {
                    let J = { instancePath: i + "/requirement_audit/" + s + "/verification_limitation_refs/" + G, schemaPath: "#/$defs/requirement_audit_entry/properties/verification_limitation_refs/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                    e === null ? e = [J] : e.push(J), t++;
                  }
                }
                let j = d.length, V;
                if (j > 1) {
                  let G = {};
                  for (; j--; ) {
                    let z = d[j];
                    if (typeof z == "string") {
                      if (typeof G[z] == "number") {
                        V = G[z];
                        let J = { instancePath: i + "/requirement_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/requirement_audit_entry/properties/verification_limitation_refs/uniqueItems", keyword: "uniqueItems", params: { i: j, j: V }, message: "must NOT have duplicate items (items ## " + V + " and " + j + " are identical)" };
                        e === null ? e = [J] : e.push(J), t++;
                        break;
                      }
                      G[z] = j;
                    }
                  }
                }
              } else {
                let L = { instancePath: i + "/requirement_audit/" + s + "/verification_limitation_refs", schemaPath: "#/$defs/requirement_audit_entry/properties/verification_limitation_refs/type", keyword: "type", params: { type: "array" }, message: "must be array" };
                e === null ? e = [L] : e.push(L), t++;
              }
            }
            if (n.note !== void 0) {
              let d = n.note;
              if (typeof d == "string") {
                if (M(d) < 1) {
                  let L = { instancePath: i + "/requirement_audit/" + s + "/note", schemaPath: "#/$defs/requirement_audit_entry/properties/note/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
                  e === null ? e = [L] : e.push(L), t++;
                }
              } else {
                let L = { instancePath: i + "/requirement_audit/" + s + "/note", schemaPath: "#/$defs/requirement_audit_entry/properties/note/type", keyword: "type", params: { type: "string" }, message: "must be string" };
                e === null ? e = [L] : e.push(L), t++;
              }
            }
          } else {
            let d = { instancePath: i + "/requirement_audit/" + s, schemaPath: "#/$defs/requirement_audit_entry/type", keyword: "type", params: { type: "object" }, message: "must be object" };
            e === null ? e = [d] : e.push(d), t++;
          }
        }
      } else {
        let u = { instancePath: i + "/requirement_audit", schemaPath: "#/properties/requirement_audit/type", keyword: "type", params: { type: "array" }, message: "must be array" };
        e === null ? e = [u] : e.push(u), t++;
      }
    }
  } else {
    let a = { instancePath: i, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
    e === null ? e = [a] : e.push(a), t++;
  }
  return Ct.errors = e, t === 0;
}
Ct.evaluated = { props: true, dynamicProps: false, dynamicItems: false };

// web/hard-validator.js
var REQUIREMENT_REGISTRY = {
  "shared": [
    "MASTER-G01",
    "MASTER-G02",
    "MASTER-G03",
    "MASTER-G04",
    "MASTER-G05",
    "MASTER-G06",
    "MASTER-G07",
    "MASTER-G08",
    "MASTER-G09",
    "MASTER-G10",
    "MASTER-G11",
    "MASTER-G12"
  ],
  "profiles": {
    "profile-ppt-rm-v1": [
      "RM-P01",
      "RM-P02",
      "RM-P03",
      "RM-P04",
      "RM-P05",
      "RM-P06",
      "RM-P07",
      "RM-P08",
      "RM-P09",
      "RM-P10",
      "RM-P11",
      "RM-P12",
      "RM-P13",
      "RM-P14",
      "RM-P15",
      "RM-P16",
      "RM-P17",
      "RM-P18",
      "RM-P19",
      "RM-P20",
      "RM-P21",
      "RM-P22",
      "RM-P23",
      "RM-P24",
      "RM-P25",
      "RM-P26",
      "RM-P27",
      "RM-P28",
      "RM-P29",
      "RM-P30",
      "RM-P31"
    ],
    "profile-ppt-seminar-v1": [
      "SEM-P01",
      "SEM-P02",
      "SEM-P03",
      "SEM-P04",
      "SEM-P05",
      "SEM-P06",
      "SEM-P07",
      "SEM-P08",
      "SEM-P09",
      "SEM-P10",
      "SEM-P11",
      "SEM-P12",
      "SEM-P13",
      "SEM-P14"
    ],
    "profile-ppt-progression-v1": [
      "PR-P01",
      "PR-P02",
      "PR-P03",
      "PR-P04",
      "PR-P05",
      "PR-P06",
      "PR-P07",
      "PR-P08",
      "PR-P09",
      "PR-P10",
      "PR-P11",
      "PR-P12",
      "PR-P13"
    ],
    "profile-ppt-final-v1": [
      "PF-P01",
      "PF-P02",
      "PF-P03",
      "PF-P04",
      "PF-P05",
      "PF-P06",
      "PF-P07",
      "PF-P08",
      "PF-P09",
      "PF-P10",
      "PF-P11",
      "PF-P12",
      "PF-P13",
      "PF-P14",
      "PF-P15",
      "PF-P16",
      "PF-P17"
    ],
    "profile-full-report-rm-v1": [
      "RM01",
      "RM02",
      "RM03",
      "RM04",
      "RM05",
      "RM06",
      "RM07",
      "RM08",
      "RM09",
      "RM10",
      "RM11",
      "RM12",
      "RM13",
      "RM14",
      "RM15",
      "RM16",
      "RM17",
      "RM18",
      "RM19",
      "RM20",
      "RM21",
      "RM22",
      "RM23",
      "RM24"
    ],
    "profile-full-report-seminar-v1": [
      "SEM01",
      "SEM02",
      "SEM03",
      "SEM04",
      "SEM05",
      "SEM06",
      "SEM07",
      "SEM08",
      "SEM09",
      "SEM10",
      "SEM11",
      "SEM12",
      "SEM13"
    ],
    "profile-full-report-project-progression-v1": [
      "PR01",
      "PR02",
      "PR03",
      "PR04",
      "PR05",
      "PR06",
      "PR07",
      "PR08",
      "PR09",
      "PR10",
      "PR11",
      "PR12",
      "PR13",
      "PR14",
      "PR15",
      "PR16"
    ],
    "profile-full-report-final-project-v1": [
      "FR01",
      "FR02",
      "FR03",
      "FR04",
      "FR05",
      "FR06",
      "FR07",
      "FR08",
      "FR09",
      "FR10",
      "FR11",
      "FR12",
      "FR13",
      "FR14",
      "FR15"
    ],
    "profile-report-manual-v1": [
      "MAN01",
      "MAN02",
      "MAN03",
      "MAN04",
      "MAN05",
      "MAN06",
      "MAN07",
      "MAN08",
      "MAN09",
      "MAN10",
      "MAN11",
      "MAN12",
      "MAN13",
      "MAN14",
      "MAN15",
      "MAN16",
      "MAN17",
      "MAN18"
    ],
    "profile-poster-project-v1": [
      "PP01",
      "PP02",
      "PP03",
      "PP04",
      "PP05",
      "PP06",
      "PP07",
      "PP08",
      "PP09",
      "PP10",
      "PP11",
      "PP12",
      "PP13",
      "PP14",
      "PP15",
      "PP16",
      "PP17",
      "PP18"
    ]
  }
};
function validateProjectCheckResult(request, result) {
  const errors = [];
  const add = (code, message) => errors.push({ code, message });
  const isObj = (v) => v && typeof v === "object" && !Array.isArray(v);
  const arr = (v) => Array.isArray(v) ? v : [];
  if (!isObj(request) || !isObj(result)) {
    add("INVALID_INPUT", "request and result must be JSON objects");
    return { valid: false, errors };
  }
  const meta = result.meta || {};
  const cov = result.audit_coverage || {};
  const N = request?.artifact?.page_count;
  const comments = isObj(result.comments) ? result.comments : {};
  const vls = isObj(result.verification_limitations) ? result.verification_limitations : {};
  const eq = (a, b, code, label) => {
    if (a !== b) add(code, `${label}: expected ${JSON.stringify(b)}, got ${JSON.stringify(a)}`);
  };
  eq(meta.request_id, request.request_id, "META_REQUEST_ID", "meta.request_id");
  eq(meta.artifact_type, request.artifact_type, "META_ARTIFACT_TYPE", "meta.artifact_type");
  eq(meta.selected_profile, request.selected_profile, "META_PROFILE", "meta.selected_profile");
  eq(meta.academic_stage, request.academic_stage, "META_STAGE", "meta.academic_stage");
  eq(meta.checkpoint, request.checkpoint, "META_CHECKPOINT", "meta.checkpoint");
  eq(meta.output_language, request.output_language, "META_LANGUAGE", "meta.output_language");
  if (!Number.isInteger(N) || N < 1) add("REQUEST_PAGE_COUNT", "request.artifact.page_count must be integer >= 1");
  if (cov.total_units !== N) add("TOTAL_UNITS", `audit_coverage.total_units must equal frozen artifact.page_count (${N})`);
  const ranges = [
    ["fully_reviewed_ranges", cov.fully_reviewed_ranges],
    ["partially_reviewed_ranges", cov.partially_reviewed_ranges],
    ["unreviewed_ranges", cov.unreviewed_ranges]
  ];
  const coverage = new Array(Number.isInteger(N) && N > 0 ? N + 1 : 1).fill(0);
  for (const [name, rs] of ranges) {
    if (!Array.isArray(rs)) {
      add("RANGE_TYPE", `${name} must be an array`);
      continue;
    }
    for (const r of rs) {
      if (!Number.isInteger(r?.start) || !Number.isInteger(r?.end) || r.start < 1 || r.end < r.start || r.end > N) {
        add("RANGE_INVALID", `${name} contains invalid range ${JSON.stringify(r)}`);
        continue;
      }
      for (let i = r.start; i <= r.end; i++) coverage[i]++;
    }
  }
  if (Number.isInteger(N) && N > 0) {
    for (let i = 1; i <= N; i++) if (coverage[i] !== 1) add("RANGE_COVERAGE", `unit ${i} must be covered by exactly one review-status range`);
  }
  const commentKeys = new Set(Object.keys(comments));
  const vlKeys = new Set(Object.keys(vls));
  const occurrencesByUnit = /* @__PURE__ */ new Map();
  for (const [cid, c] of Object.entries(comments)) {
    if (!/^C\d{3,}$/.test(cid)) add("COMMENT_ID", `invalid comment id ${cid}`);
    for (const ref of arr(c?.verification_limitation_refs)) if (!vlKeys.has(ref)) add("ORPHAN_VL_REF", `${cid} references missing ${ref}`);
    const occs = arr(c?.occurrences);
    if (occs.length < 1) add("MISSING_OCCURRENCE", `${cid} must have at least one occurrence`);
    for (const o of occs) {
      const u = o?.unit_number;
      if (!Number.isInteger(u) || u < 1 || u > N) add("OCCURRENCE_RANGE", `${cid} occurrence unit_number ${u} outside 1..${N}`);
      if (typeof o?.occurrence_summary !== "string" || !o.occurrence_summary.trim()) add("OCCURRENCE_SUMMARY", `${cid} occurrence on unit ${u} needs non-empty occurrence_summary`);
      if (typeof o?.occurrence_summary === "string" && /^(same issue|see C\d+)/i.test(o.occurrence_summary.trim())) add("OCCURRENCE_GENERIC", `${cid} occurrence on unit ${u} uses generic occurrence_summary`);
      if (!occurrencesByUnit.has(u)) occurrencesByUnit.set(u, /* @__PURE__ */ new Set());
      occurrencesByUnit.get(u).add(cid);
    }
  }
  for (const [vlid] of Object.entries(vls)) if (!/^VL\d{3,}$/.test(vlid)) add("VL_ID", `invalid verification limitation id ${vlid}`);
  const type = request.artifact_type;
  const isPage = ["FULL_REPORT_SEMINAR", "FULL_REPORT_RM", "FULL_REPORT_PROJECT_PROGRESSION", "FULL_REPORT_FINAL_PROJECT", "REPORT_MANUAL"].includes(type);
  const isSlide = ["PPT_SEMINAR", "PPT_RM", "PPT_PROGRESSION", "PPT_FINAL"].includes(type);
  function validateLedger(ledger, numKey, noteKey, expectedUnitType, kind) {
    if (!Array.isArray(ledger)) {
      add(`${kind}_LEDGER_MISSING`, `${kind.toLowerCase()} audit ledger is required`);
      return;
    }
    if (ledger.length !== N) add(`${kind}_LEDGER_LENGTH`, `${kind.toLowerCase()} audit ledger length must equal ${N}`);
    if (cov.unit_type !== expectedUnitType) add(`${kind}_UNIT_TYPE`, `audit_coverage.unit_type must be ${expectedUnitType}`);
    const seen = /* @__PURE__ */ new Set();
    const byUnit = /* @__PURE__ */ new Map();
    for (const e of ledger) {
      const u = e?.[numKey];
      if (!Number.isInteger(u) || u < 1 || u > N) add(`${kind}_NUMBER_RANGE`, `${numKey} ${u} outside 1..${N}`);
      if (seen.has(u)) add(`${kind}_NUMBER_DUP`, `duplicate ${numKey} ${u}`);
      seen.add(u);
      byUnit.set(u, e);
      if (typeof e?.[noteKey] !== "string" || !e[noteKey].trim()) add(`${kind}_NOTE`, `${kind} ${u} requires non-empty ${noteKey}`);
      const checked = arr(e?.checked_elements);
      if (["FULLY_REVIEWED", "PARTIALLY_REVIEWED"].includes(e?.review_status) && checked.length < 1) add(`${kind}_CHECKED_ELEMENTS`, `${kind} ${u} reviewed status requires checked_elements`);
      if (e?.review_status === "UNREVIEWED" && checked.length !== 0) add(`${kind}_UNREVIEWED_ELEMENTS`, `${kind} ${u} UNREVIEWED must have empty checked_elements`);
      for (const ref of arr(e?.finding_refs)) if (!commentKeys.has(ref)) add(`${kind}_ORPHAN_FINDING`, `${kind} ${u} references missing ${ref}`);
      for (const ref of arr(e?.verification_limitation_refs)) if (!vlKeys.has(ref)) add(`${kind}_ORPHAN_VL`, `${kind} ${u} references missing ${ref}`);
    }
    for (let i = 1; i <= N; i++) if (!seen.has(i)) add(`${kind}_NUMBER_GAP`, `missing ${numKey} ${i}`);
    for (let i = 1; i <= N; i++) {
      const e = byUnit.get(i);
      if (!e) continue;
      const ledgerRefs = new Set(arr(e.finding_refs));
      const occRefs = occurrencesByUnit.get(i) || /* @__PURE__ */ new Set();
      for (const cid of occRefs) if (!ledgerRefs.has(cid)) add(`${kind}_RECIPROCITY_OCC_TO_LEDGER`, `${cid} occurs on ${kind.toLowerCase()} ${i} but ledger finding_refs omits it`);
      for (const cid of ledgerRefs) if (!occRefs.has(cid)) add(`${kind}_RECIPROCITY_LEDGER_TO_OCC`, `${kind} ${i} finding_refs contains ${cid} without matching occurrence`);
    }
  }
  if (isPage) validateLedger(result.page_audit, "page_number", "page_note", "PAGE", "PAGE");
  if (isSlide) validateLedger(result.slide_audit, "slide_number", "slide_note", "SLIDE", "SLIDE");
  if (type === "POSTER_PROJECT") {
    if (cov.unit_type !== "POSTER_SHEET") add("POSTER_UNIT_TYPE", "Poster unit_type must be POSTER_SHEET");
    if (N !== 1 || cov.total_units !== 1) add("POSTER_COUNT", "Poster requires one physical PDF sheet");
  }
  const requirementTypes = ["PPT_SEMINAR", "PPT_RM", "PPT_PROGRESSION", "PPT_FINAL", "FULL_REPORT_SEMINAR", "FULL_REPORT_RM", "FULL_REPORT_PROJECT_PROGRESSION", "FULL_REPORT_FINAL_PROJECT", "REPORT_MANUAL", "POSTER_PROJECT"];
  if (requirementTypes.includes(type)) {
    const ledger = result.requirement_audit;
    if (!Array.isArray(ledger)) {
      add("REQ_LEDGER_MISSING", "requirement_audit is required");
    } else {
      const expected = [...REQUIREMENT_REGISTRY.shared, ...REQUIREMENT_REGISTRY.profiles[request.selected_profile] || []];
      const expectedSet = new Set(expected);
      const seen = /* @__PURE__ */ new Set();
      const reqByRef = /* @__PURE__ */ new Map();
      for (const e of ledger) {
        const ref = e?.requirement_ref;
        if (typeof ref !== "string" || !expectedSet.has(ref)) add("REQ_UNREGISTERED", `unregistered requirement_ref ${JSON.stringify(ref)}`);
        if (seen.has(ref)) add("REQ_DUP", `duplicate requirement_ref ${ref}`);
        seen.add(ref);
        reqByRef.set(ref, e);
        for (const u of arr(e?.evidence_units)) if (!Number.isInteger(u) || u < 1 || u > N) add("REQ_EVIDENCE_RANGE", `${ref} evidence unit ${u} outside 1..${N}`);
        for (const cid of arr(e?.finding_refs)) if (!commentKeys.has(cid)) add("REQ_ORPHAN_FINDING", `${ref} references missing ${cid}`);
        for (const vlid of arr(e?.verification_limitation_refs)) if (!vlKeys.has(vlid)) add("REQ_ORPHAN_VL", `${ref} references missing ${vlid}`);
        if (["PARTIAL", "MISSING"].includes(e?.status)) {
          if (arr(e?.finding_refs).length < 1) add("REQ_FINDING_REQUIRED", `${ref} ${e.status} requires finding_refs`);
          for (const cid of arr(e?.finding_refs)) {
            const c = comments[cid];
            if (c && !arr(c?.checklist_refs).includes(ref)) add("REQ_RECIPROCITY_REQ_TO_COMMENT", `${ref} links ${cid} but ${cid}.checklist_refs omits ${ref}`);
          }
        }
        if (e?.status === "NOT_CHECKABLE" && arr(e?.verification_limitation_refs).length < 1) add("REQ_VL_REQUIRED", `${ref} NOT_CHECKABLE requires verification_limitation_refs`);
        if (["SATISFIED", "NOT_APPLICABLE"].includes(e?.status) && (arr(e?.finding_refs).length || arr(e?.verification_limitation_refs).length)) add("REQ_CLEAN_STATUS_REFS", `${ref} ${e.status} must not carry finding/limitation refs`);
        if (e?.status === "NOT_APPLICABLE" && arr(e?.evidence_units).length) add("REQ_NA_EVIDENCE", `${ref} NOT_APPLICABLE must have empty evidence_units`);
        if (typeof e?.note !== "string" || !e.note.trim()) add("REQ_NOTE", `${ref} requires non-empty note`);
      }
      for (const ref of expected) if (!seen.has(ref)) add("REQ_MISSING", `missing requirement_ref ${ref}`);
      if (ledger.length !== expected.length) add("REQ_LENGTH", `requirement_audit length must equal ${expected.length} for ${request.selected_profile}`);
      for (const [cid, c] of Object.entries(comments)) {
        for (const ref of arr(c?.checklist_refs)) {
          if (!expectedSet.has(ref)) continue;
          const e = reqByRef.get(ref);
          if (!e || !["PARTIAL", "MISSING"].includes(e.status) || !arr(e.finding_refs).includes(cid)) add("REQ_RECIPROCITY_COMMENT_TO_REQ", `${cid}.checklist_refs contains ${ref} without reciprocal PARTIAL/MISSING requirement finding_refs`);
        }
      }
    }
  }
  return { valid: errors.length === 0, errors };
}

// web/validation.js
var STAGES = Object.freeze({
  PROPOSAL: { checkpoints: ["MIDTERM", "FINAL"], types: ["PPT_RM", "FULL_REPORT_RM"] },
  PROGRESS: { checkpoints: ["NOT_APPLICABLE"], types: ["PPT_SEMINAR", "FULL_REPORT_SEMINAR"] },
  PROGRESS_1: { checkpoints: ["MIDTERM", "FINAL"], types: ["PPT_PROGRESSION", "FULL_REPORT_PROJECT_PROGRESSION"] },
  PROGRESS_2: { checkpoints: ["MIDTERM"], types: ["PPT_PROGRESSION", "FULL_REPORT_PROJECT_PROGRESSION"] },
  FINAL_REPORT: { checkpoints: ["FINAL"], types: ["PPT_FINAL", "FULL_REPORT_FINAL_PROJECT"] },
  MANUAL: { checkpoints: ["NOT_APPLICABLE"], types: ["REPORT_MANUAL"] },
  POSTER: { checkpoints: ["NOT_APPLICABLE"], types: ["POSTER_PROJECT"] }
});
var schemaErrors = (validator, value) => {
  if (validator(value)) return [];
  return (validator.errors || []).map((e) => ({ code: "JSON_SCHEMA", message: `${e.instancePath || "/"}: ${e.message} ${JSON.stringify(e.params)}` }));
};
function validateRequest(request) {
  return schemaErrors(Ni, request);
}
function validateResult(request, result) {
  const errors = [...validateRequest(request), ...schemaErrors(Si, result)];
  if (errors.length) return { valid: false, errors };
  errors.push(...validateProjectCheckResult(request, result).errors);
  if (request.execution_contract.common_review_policy_version === COMMON_REVIEW_VERSION || result.audit_coverage.review_checks) errors.push(...validateCommonReviewChecks(result.audit_coverage.review_checks, request.artifact.page_count));
  const expected = /* @__PURE__ */ new Set([...REQUIREMENT_REGISTRY.shared, ...REQUIREMENT_REGISTRY.profiles[request.selected_profile]]);
  for (const [id, c] of Object.entries(result.comments)) {
    for (const ref of c.checklist_refs) if (!expected.has(ref)) errors.push({ code: "REQ_UNREGISTERED_COMMENT", message: `comments.${id}.checklist_refs: unregistered ${ref} for ${request.selected_profile}` });
  }
  function checkReferences(value, path = "$") {
    if (!value || typeof value !== "object") return;
    for (const [key, v] of Object.entries(value)) {
      if (key === "verification_limitation_refs") {
        for (const ref of v) if (!(ref in result.verification_limitations)) errors.push({ code: "ORPHAN_VL_REF", message: `${path}.${key}: missing ${ref}` });
      } else if (v && typeof v === "object") checkReferences(v, `${path}.${key}`);
    }
  }
  checkReferences(result);
  const statuses = { fully_reviewed_ranges: "FULLY_REVIEWED", partially_reviewed_ranges: "PARTIALLY_REVIEWED", unreviewed_ranges: "UNREVIEWED" };
  const ledger = result.page_audit || result.slide_audit || [];
  for (const entry of ledger) {
    const unit = entry.page_number ?? entry.slide_number;
    const expectedStatus = Object.entries(statuses).find(([key]) => result.audit_coverage[key].some((r) => r.start <= unit && unit <= r.end))?.[1];
    if (entry.review_status !== expectedStatus) errors.push({ code: "LEDGER_RANGE_STATUS", message: `unit ${unit}: review_status ${entry.review_status} disagrees with coverage ranges (${expectedStatus})` });
  }
  if (!result.meta.external_verification_used) {
    for (const [id, c] of [...Object.entries(result.comments), ...Object.entries(result.verification_limitations)]) if (c.external_sources.length) errors.push({ code: "EXTERNAL_SOURCE_FLAG", message: `${id}.external_sources must be empty when external_verification_used=false` });
  }
  return { valid: errors.length === 0, errors };
}

// web/validator-entry.js
function validateProjectCheckResult2(request, result) {
  return validateResult(request, result);
}
export {
  validateProjectCheckResult2 as validateProjectCheckResult,
  validateRequest
};
