@mapletip/data 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/NOTICE +52 -0
  2. package/README.md +209 -0
  3. package/client/contract-compatibility.d.mts +27 -0
  4. package/client/contract-compatibility.mjs +159 -0
  5. package/client/core.d.ts +150 -0
  6. package/client/core.js +359 -0
  7. package/client/equipment.d.ts +22 -0
  8. package/client/equipment.js +63 -0
  9. package/client/items.d.ts +22 -0
  10. package/client/items.js +63 -0
  11. package/client/media.d.ts +19 -0
  12. package/client/media.js +47 -0
  13. package/client/monster-client.d.ts +35 -0
  14. package/client/monster-client.js +155 -0
  15. package/client/monsters.d.ts +24 -0
  16. package/client/monsters.js +14 -0
  17. package/client/quests.d.ts +31 -0
  18. package/client/quests.js +124 -0
  19. package/client/release.d.ts +63 -0
  20. package/client/release.js +279 -0
  21. package/client/static-client.d.ts +40 -0
  22. package/client/static-client.js +44 -0
  23. package/client/static-domains.d.ts +48 -0
  24. package/client/static-domains.js +113 -0
  25. package/generated/contract-2-catalog-fact.d.ts +51 -0
  26. package/generated/equipment-catalog-2.d.ts +434 -0
  27. package/generated/equipment-catalog-2.validator.js +17 -0
  28. package/generated/equipment-detail-2.d.ts +350 -0
  29. package/generated/equipment-detail-2.validator.js +17 -0
  30. package/generated/equipment-evidence-pack-2.d.ts +243 -0
  31. package/generated/equipment-evidence-pack-2.validator.js +17 -0
  32. package/generated/equipment-pack-2.validator.js +17 -0
  33. package/generated/equipment-relationship-pack-2.d.ts +170 -0
  34. package/generated/equipment-relationship-pack-2.validator.js +17 -0
  35. package/generated/item-catalog-2.d.ts +366 -0
  36. package/generated/item-catalog-2.validator.js +17 -0
  37. package/generated/item-detail-2.d.ts +540 -0
  38. package/generated/item-detail-2.validator.js +17 -0
  39. package/generated/item-evidence-pack-2.d.ts +243 -0
  40. package/generated/item-evidence-pack-2.validator.js +17 -0
  41. package/generated/item-pack-2.validator.js +17 -0
  42. package/generated/item-relationship-pack-2.d.ts +170 -0
  43. package/generated/item-relationship-pack-2.validator.js +17 -0
  44. package/generated/media-catalog-2.d.ts +133 -0
  45. package/generated/media-catalog-2.validator.js +17 -0
  46. package/generated/media-detail-2.d.ts +125 -0
  47. package/generated/media-detail-2.validator.js +17 -0
  48. package/generated/media-pack-2.validator.js +17 -0
  49. package/generated/monster-catalog-2.d.ts +230 -0
  50. package/generated/monster-catalog-2.validator.js +17 -0
  51. package/generated/monster-catalog.d.ts +224 -0
  52. package/generated/monster-catalog.validator.js +1 -0
  53. package/generated/monster-core-relationship-pack-2.d.ts +208 -0
  54. package/generated/monster-core-relationship-pack-2.validator.js +17 -0
  55. package/generated/monster-detail-2.d.ts +372 -0
  56. package/generated/monster-detail-2.validator.js +17 -0
  57. package/generated/monster-detail.d.ts +799 -0
  58. package/generated/monster-detail.validator.js +17 -0
  59. package/generated/monster-evidence-pack-2.d.ts +378 -0
  60. package/generated/monster-evidence-pack-2.validator.js +17 -0
  61. package/generated/monster-evidence-pack.d.ts +269 -0
  62. package/generated/monster-evidence-pack.validator.js +17 -0
  63. package/generated/monster-location-pack-2.validator.js +1 -0
  64. package/generated/monster-pack-2.validator.js +17 -0
  65. package/generated/monster-pack.validator.js +17 -0
  66. package/generated/monster-relationship-pack.d.ts +126 -0
  67. package/generated/monster-relationship-pack.validator.js +1 -0
  68. package/generated/product-manifest.d.ts +188 -0
  69. package/generated/product-manifest.validator.js +1 -0
  70. package/generated/quest-auxiliary-pack-2.d.ts +391 -0
  71. package/generated/quest-auxiliary-pack-2.validator.js +17 -0
  72. package/generated/quest-browse-pack-2.d.ts +353 -0
  73. package/generated/quest-browse-pack-2.validator.js +17 -0
  74. package/generated/quest-catalog-2.d.ts +501 -0
  75. package/generated/quest-catalog-2.validator.js +17 -0
  76. package/generated/quest-evidence-pack-2.d.ts +269 -0
  77. package/generated/quest-evidence-pack-2.validator.js +17 -0
  78. package/generated/quest-pack-2.d.ts +410 -0
  79. package/generated/quest-pack-2.validator.js +17 -0
  80. package/generated/quest-relationship-pack-2.d.ts +868 -0
  81. package/generated/quest-relationship-pack-2.validator.js +17 -0
  82. package/generated/release-build-index.d.ts +42 -0
  83. package/generated/release-build-index.validator.js +1 -0
  84. package/generated/release-manifest.d.ts +24 -0
  85. package/generated/release-manifest.validator.js +1 -0
  86. package/generated/release-pin.d.ts +12 -0
  87. package/generated/release-pin.validator.js +1 -0
  88. package/package.json +155 -0
@@ -0,0 +1,17 @@
1
+ "use strict";export const validate = validate20;export default validate20;const schema31 = {"$schema":"https://json-schema.org/draft/2020-12/schema","title":"MediaCatalog","description":"Compact Media browse catalog.","type":"object","properties":{"contractVersion":{"type":"string","const":"2.0"},"format":{"type":"string","const":"mapletip.media-catalog-2"},"recordCount":{"type":"integer","format":"uint","minimum":0},"records":{"type":"array","items":{"$ref":"#/$defs/MediaCatalogRecord"}},"scope":{"$ref":"#/$defs/BuildScope"}},"required":["format","contractVersion","scope","recordCount","records"],"$defs":{"BuildScope":{"description":"Build scope specifying the game family and concrete build identity.","type":"object","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"]},"Capability":{"type":"string","minLength":1,"pattern":"\\S"},"CoverageKey":{"type":"string","minLength":1,"pattern":"\\S"},"FactState":{"description":"Shared fact state. SQL NULL is represented by `Unknown` with reason\n`source-null`; only `Absent` carries a complete-coverage witness.","oneOf":[{"description":"A positively observed value.","type":"object","properties":{"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"known"},"value":{"$ref":"#/$defs/MediaSprite"}},"additionalProperties":false,"required":["state","value"]},{"description":"A value that was not observed or could not be established.","type":"object","properties":{"reason":{"$ref":"#/$defs/StateReason"},"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"unknown"}},"additionalProperties":false,"required":["state","reason"]},{"description":"No value was present under the source scope named by complete coverage.","type":"object","properties":{"coverageKey":{"$ref":"#/$defs/CoverageKey"},"state":{"type":"string","const":"absent"}},"additionalProperties":false,"required":["state","coverageKey"]},{"description":"The named source or product cannot provide this fact.","type":"object","properties":{"capability":{"$ref":"#/$defs/Capability"},"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"unsupported"}},"additionalProperties":false,"required":["state","capability"]}]},"LogicalSourceAddress":{"type":"string","minLength":1,"pattern":"^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$"},"MediaCatalogRecord":{"description":"One record in the compact Media catalog.","type":"object","properties":{"key":{"type":"string"},"media":{"type":"object","additionalProperties":{"$ref":"#/$defs/FactState"}}},"required":["key","media"]},"MediaEvidence":{"description":"Source attribution and link resolution trail for a media item.","type":"object","properties":{"linkChain":{"type":"array","items":{"type":"string"}},"sourcePath":{"type":"string"}},"required":["sourcePath"]},"MediaMinimapMetadata":{"description":"Geometry metadata for a decoded map minimap canvas.\n\n`canvas_width`/`canvas_height` are retained as source metadata only. The\nphysical PNG dimensions on [`MediaSprite`] are authoritative for projection\nbounds because some source maps carry a 1x1 stub header around a full canvas.","type":"object","properties":{"canvasHeight":{"type":["integer","null"],"format":"int32"},"canvasWidth":{"type":["integer","null"],"format":"int32"},"centerX":{"type":"integer","format":"int32"},"centerY":{"type":"integer","format":"int32"},"contentSource":{"type":"string"},"frameHeight":{"type":["integer","null"],"format":"int32"},"frameWidth":{"type":["integer","null"],"format":"int32"},"mag":{"type":"integer","format":"int32"}},"required":["centerX","centerY","mag","contentSource"]},"MediaOrigin":{"description":"Pixel origin offset retained for positioning.","type":"object","properties":{"x":{"type":"integer","format":"int32"},"y":{"type":"integer","format":"int32"}},"required":["x","y"]},"MediaSprite":{"description":"One known media sprite descriptor pointing to a content-addressed image blob.","type":"object","properties":{"byteLength":{"type":"integer","format":"uint64","minimum":0},"contentId":{"type":"string"},"evidence":{"$ref":"#/$defs/MediaEvidence"},"height":{"type":"integer","format":"uint32","minimum":0},"minimap":{"anyOf":[{"$ref":"#/$defs/MediaMinimapMetadata"},{"type":"null"}]},"origin":{"$ref":"#/$defs/MediaOrigin"},"path":{"type":"string"},"pixelDigest":{"type":"string"},"selection":{"type":"string"},"sha256":{"type":"string"},"width":{"type":"integer","format":"uint32","minimum":0}},"required":["contentId","path","sha256","byteLength","width","height","origin","pixelDigest","selection","evidence"]},"SourceKind":{"type":"string","minLength":1,"pattern":"\\S"},"SourceRef":{"description":"Source attribution for a fact or raw observation.","type":"object","properties":{"logicalAddress":{"description":"Optional logical address within the source; never a local file path.","anyOf":[{"$ref":"#/$defs/LogicalSourceAddress"},{"type":"null"}]},"sourceKind":{"description":"Source family or source kind, preserved as supplied by the producer.","$ref":"#/$defs/SourceKind"}},"additionalProperties":false,"required":["sourceKind"]},"StateReason":{"type":"string","minLength":1,"pattern":"\\S"}}};const schema44 = {"description":"Build scope specifying the game family and concrete build identity.","type":"object","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"]};const schema32 = {"description":"One record in the compact Media catalog.","type":"object","properties":{"key":{"type":"string"},"media":{"type":"object","additionalProperties":{"$ref":"#/$defs/FactState"}}},"required":["key","media"]};const schema33 = {"description":"Shared fact state. SQL NULL is represented by `Unknown` with reason\n`source-null`; only `Absent` carries a complete-coverage witness.","oneOf":[{"description":"A positively observed value.","type":"object","properties":{"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"known"},"value":{"$ref":"#/$defs/MediaSprite"}},"additionalProperties":false,"required":["state","value"]},{"description":"A value that was not observed or could not be established.","type":"object","properties":{"reason":{"$ref":"#/$defs/StateReason"},"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"unknown"}},"additionalProperties":false,"required":["state","reason"]},{"description":"No value was present under the source scope named by complete coverage.","type":"object","properties":{"coverageKey":{"$ref":"#/$defs/CoverageKey"},"state":{"type":"string","const":"absent"}},"additionalProperties":false,"required":["state","coverageKey"]},{"description":"The named source or product cannot provide this fact.","type":"object","properties":{"capability":{"$ref":"#/$defs/Capability"},"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"unsupported"}},"additionalProperties":false,"required":["state","capability"]}]};const schema41 = {"type":"string","minLength":1,"pattern":"\\S"};const schema42 = {"type":"string","minLength":1,"pattern":"\\S"};const schema43 = {"type":"string","minLength":1,"pattern":"\\S"};const schema34 = {"description":"Source attribution for a fact or raw observation.","type":"object","properties":{"logicalAddress":{"description":"Optional logical address within the source; never a local file path.","anyOf":[{"$ref":"#/$defs/LogicalSourceAddress"},{"type":"null"}]},"sourceKind":{"description":"Source family or source kind, preserved as supplied by the producer.","$ref":"#/$defs/SourceKind"}},"additionalProperties":false,"required":["sourceKind"]};const schema35 = {"type":"string","minLength":1,"pattern":"^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$"};const schema36 = {"type":"string","minLength":1,"pattern":"\\S"};const func1 = function ucs2length(str) {
2
+ const len = str.length;
3
+ let length = 0;
4
+ let pos = 0;
5
+ let value;
6
+ while (pos < len) {
7
+ length++;
8
+ value = str.charCodeAt(pos++);
9
+ if (value >= 0xd800 && value <= 0xdbff && pos < len) {
10
+ // high surrogate, and there is a next character
11
+ value = str.charCodeAt(pos);
12
+ if ((value & 0xfc00) === 0xdc00)
13
+ pos++; // low surrogate
14
+ }
15
+ }
16
+ return length;
17
+ };const pattern4 = new RegExp("^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$", "u");const pattern5 = new RegExp("\\S", "u");function validate23(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate23.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.sourceKind === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "sourceKind"},message:"must have required property '"+"sourceKind"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}for(const key0 in data){if(!((key0 === "logicalAddress") || (key0 === "sourceKind"))){const err1 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.logicalAddress !== undefined){let data0 = data.logicalAddress;const _errs3 = errors;let valid1 = false;const _errs4 = errors;if(typeof data0 === "string"){if(func1(data0) < 1){const err2 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/$defs/LogicalSourceAddress/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(!pattern4.test(data0)){const err3 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/$defs/LogicalSourceAddress/pattern",keyword:"pattern",params:{pattern: "^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$"},message:"must match pattern \""+"^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$"+"\""};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/$defs/LogicalSourceAddress/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}var _valid0 = _errs4 === errors;valid1 = valid1 || _valid0;const _errs7 = errors;if(data0 !== null){const err5 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/properties/logicalAddress/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}var _valid0 = _errs7 === errors;valid1 = valid1 || _valid0;if(!valid1){const err6 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/properties/logicalAddress/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}else {errors = _errs3;if(vErrors !== null){if(_errs3){vErrors.length = _errs3;}else {vErrors = null;}}}}if(data.sourceKind !== undefined){let data1 = data.sourceKind;if(typeof data1 === "string"){if(func1(data1) < 1){const err7 = {instancePath:instancePath+"/sourceKind",schemaPath:"#/$defs/SourceKind/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(!pattern5.test(data1)){const err8 = {instancePath:instancePath+"/sourceKind",schemaPath:"#/$defs/SourceKind/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+"/sourceKind",schemaPath:"#/$defs/SourceKind/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}else {const err10 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}validate23.errors = vErrors;return errors === 0;}validate23.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema37 = {"description":"One known media sprite descriptor pointing to a content-addressed image blob.","type":"object","properties":{"byteLength":{"type":"integer","format":"uint64","minimum":0},"contentId":{"type":"string"},"evidence":{"$ref":"#/$defs/MediaEvidence"},"height":{"type":"integer","format":"uint32","minimum":0},"minimap":{"anyOf":[{"$ref":"#/$defs/MediaMinimapMetadata"},{"type":"null"}]},"origin":{"$ref":"#/$defs/MediaOrigin"},"path":{"type":"string"},"pixelDigest":{"type":"string"},"selection":{"type":"string"},"sha256":{"type":"string"},"width":{"type":"integer","format":"uint32","minimum":0}},"required":["contentId","path","sha256","byteLength","width","height","origin","pixelDigest","selection","evidence"]};const schema38 = {"description":"Source attribution and link resolution trail for a media item.","type":"object","properties":{"linkChain":{"type":"array","items":{"type":"string"}},"sourcePath":{"type":"string"}},"required":["sourcePath"]};const schema39 = {"description":"Geometry metadata for a decoded map minimap canvas.\n\n`canvas_width`/`canvas_height` are retained as source metadata only. The\nphysical PNG dimensions on [`MediaSprite`] are authoritative for projection\nbounds because some source maps carry a 1x1 stub header around a full canvas.","type":"object","properties":{"canvasHeight":{"type":["integer","null"],"format":"int32"},"canvasWidth":{"type":["integer","null"],"format":"int32"},"centerX":{"type":"integer","format":"int32"},"centerY":{"type":"integer","format":"int32"},"contentSource":{"type":"string"},"frameHeight":{"type":["integer","null"],"format":"int32"},"frameWidth":{"type":["integer","null"],"format":"int32"},"mag":{"type":"integer","format":"int32"}},"required":["centerX","centerY","mag","contentSource"]};const schema40 = {"description":"Pixel origin offset retained for positioning.","type":"object","properties":{"x":{"type":"integer","format":"int32"},"y":{"type":"integer","format":"int32"}},"required":["x","y"]};function validate25(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate25.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.contentId === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "contentId"},message:"must have required property '"+"contentId"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.path === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.sha256 === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.byteLength === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.width === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "width"},message:"must have required property '"+"width"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.height === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "height"},message:"must have required property '"+"height"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.origin === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "origin"},message:"must have required property '"+"origin"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.pixelDigest === undefined){const err7 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "pixelDigest"},message:"must have required property '"+"pixelDigest"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.selection === undefined){const err8 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "selection"},message:"must have required property '"+"selection"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.evidence === undefined){const err9 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "evidence"},message:"must have required property '"+"evidence"+"'"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(data.byteLength !== undefined){let data0 = data.byteLength;if(!(((typeof data0 == "number") && (!(data0 % 1) && !isNaN(data0))) && (isFinite(data0)))){const err10 = {instancePath:instancePath+"/byteLength",schemaPath:"#/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if((typeof data0 == "number") && (isFinite(data0))){if(data0 < 0 || isNaN(data0)){const err11 = {instancePath:instancePath+"/byteLength",schemaPath:"#/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}}if(data.contentId !== undefined){if(typeof data.contentId !== "string"){const err12 = {instancePath:instancePath+"/contentId",schemaPath:"#/properties/contentId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.evidence !== undefined){let data2 = data.evidence;if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(data2.sourcePath === undefined){const err13 = {instancePath:instancePath+"/evidence",schemaPath:"#/$defs/MediaEvidence/required",keyword:"required",params:{missingProperty: "sourcePath"},message:"must have required property '"+"sourcePath"+"'"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(data2.linkChain !== undefined){let data3 = data2.linkChain;if(Array.isArray(data3)){const len0 = data3.length;for(let i0=0; i0<len0; i0++){if(typeof data3[i0] !== "string"){const err14 = {instancePath:instancePath+"/evidence/linkChain/" + i0,schemaPath:"#/$defs/MediaEvidence/properties/linkChain/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+"/evidence/linkChain",schemaPath:"#/$defs/MediaEvidence/properties/linkChain/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data2.sourcePath !== undefined){if(typeof data2.sourcePath !== "string"){const err16 = {instancePath:instancePath+"/evidence/sourcePath",schemaPath:"#/$defs/MediaEvidence/properties/sourcePath/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}else {const err17 = {instancePath:instancePath+"/evidence",schemaPath:"#/$defs/MediaEvidence/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.height !== undefined){let data6 = data.height;if(!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))){const err18 = {instancePath:instancePath+"/height",schemaPath:"#/properties/height/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if((typeof data6 == "number") && (isFinite(data6))){if(data6 < 0 || isNaN(data6)){const err19 = {instancePath:instancePath+"/height",schemaPath:"#/properties/height/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}}if(data.minimap !== undefined){let data7 = data.minimap;const _errs17 = errors;let valid5 = false;const _errs18 = errors;if(data7 && typeof data7 == "object" && !Array.isArray(data7)){if(data7.centerX === undefined){const err20 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/required",keyword:"required",params:{missingProperty: "centerX"},message:"must have required property '"+"centerX"+"'"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(data7.centerY === undefined){const err21 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/required",keyword:"required",params:{missingProperty: "centerY"},message:"must have required property '"+"centerY"+"'"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(data7.mag === undefined){const err22 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/required",keyword:"required",params:{missingProperty: "mag"},message:"must have required property '"+"mag"+"'"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(data7.contentSource === undefined){const err23 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/required",keyword:"required",params:{missingProperty: "contentSource"},message:"must have required property '"+"contentSource"+"'"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}if(data7.canvasHeight !== undefined){let data8 = data7.canvasHeight;if((!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))) && (data8 !== null)){const err24 = {instancePath:instancePath+"/minimap/canvasHeight",schemaPath:"#/$defs/MediaMinimapMetadata/properties/canvasHeight/type",keyword:"type",params:{type: schema39.properties.canvasHeight.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data7.canvasWidth !== undefined){let data9 = data7.canvasWidth;if((!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))) && (data9 !== null)){const err25 = {instancePath:instancePath+"/minimap/canvasWidth",schemaPath:"#/$defs/MediaMinimapMetadata/properties/canvasWidth/type",keyword:"type",params:{type: schema39.properties.canvasWidth.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data7.centerX !== undefined){let data10 = data7.centerX;if(!(((typeof data10 == "number") && (!(data10 % 1) && !isNaN(data10))) && (isFinite(data10)))){const err26 = {instancePath:instancePath+"/minimap/centerX",schemaPath:"#/$defs/MediaMinimapMetadata/properties/centerX/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}if(data7.centerY !== undefined){let data11 = data7.centerY;if(!(((typeof data11 == "number") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))){const err27 = {instancePath:instancePath+"/minimap/centerY",schemaPath:"#/$defs/MediaMinimapMetadata/properties/centerY/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data7.contentSource !== undefined){if(typeof data7.contentSource !== "string"){const err28 = {instancePath:instancePath+"/minimap/contentSource",schemaPath:"#/$defs/MediaMinimapMetadata/properties/contentSource/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}if(data7.frameHeight !== undefined){let data13 = data7.frameHeight;if((!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))) && (data13 !== null)){const err29 = {instancePath:instancePath+"/minimap/frameHeight",schemaPath:"#/$defs/MediaMinimapMetadata/properties/frameHeight/type",keyword:"type",params:{type: schema39.properties.frameHeight.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}if(data7.frameWidth !== undefined){let data14 = data7.frameWidth;if((!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))) && (data14 !== null)){const err30 = {instancePath:instancePath+"/minimap/frameWidth",schemaPath:"#/$defs/MediaMinimapMetadata/properties/frameWidth/type",keyword:"type",params:{type: schema39.properties.frameWidth.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data7.mag !== undefined){let data15 = data7.mag;if(!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))){const err31 = {instancePath:instancePath+"/minimap/mag",schemaPath:"#/$defs/MediaMinimapMetadata/properties/mag/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}}else {const err32 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}var _valid0 = _errs18 === errors;valid5 = valid5 || _valid0;if(_valid0){var props0 = {};props0.canvasHeight = true;props0.canvasWidth = true;props0.centerX = true;props0.centerY = true;props0.contentSource = true;props0.frameHeight = true;props0.frameWidth = true;props0.mag = true;}const _errs37 = errors;if(data7 !== null){const err33 = {instancePath:instancePath+"/minimap",schemaPath:"#/properties/minimap/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}var _valid0 = _errs37 === errors;valid5 = valid5 || _valid0;if(!valid5){const err34 = {instancePath:instancePath+"/minimap",schemaPath:"#/properties/minimap/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}else {errors = _errs17;if(vErrors !== null){if(_errs17){vErrors.length = _errs17;}else {vErrors = null;}}}}if(data.origin !== undefined){let data16 = data.origin;if(data16 && typeof data16 == "object" && !Array.isArray(data16)){if(data16.x === undefined){const err35 = {instancePath:instancePath+"/origin",schemaPath:"#/$defs/MediaOrigin/required",keyword:"required",params:{missingProperty: "x"},message:"must have required property '"+"x"+"'"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(data16.y === undefined){const err36 = {instancePath:instancePath+"/origin",schemaPath:"#/$defs/MediaOrigin/required",keyword:"required",params:{missingProperty: "y"},message:"must have required property '"+"y"+"'"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if(data16.x !== undefined){let data17 = data16.x;if(!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))){const err37 = {instancePath:instancePath+"/origin/x",schemaPath:"#/$defs/MediaOrigin/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data16.y !== undefined){let data18 = data16.y;if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){const err38 = {instancePath:instancePath+"/origin/y",schemaPath:"#/$defs/MediaOrigin/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/origin",schemaPath:"#/$defs/MediaOrigin/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}if(data.path !== undefined){if(typeof data.path !== "string"){const err40 = {instancePath:instancePath+"/path",schemaPath:"#/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}if(data.pixelDigest !== undefined){if(typeof data.pixelDigest !== "string"){const err41 = {instancePath:instancePath+"/pixelDigest",schemaPath:"#/properties/pixelDigest/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.selection !== undefined){if(typeof data.selection !== "string"){const err42 = {instancePath:instancePath+"/selection",schemaPath:"#/properties/selection/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data.sha256 !== undefined){if(typeof data.sha256 !== "string"){const err43 = {instancePath:instancePath+"/sha256",schemaPath:"#/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}if(data.width !== undefined){let data23 = data.width;if(!(((typeof data23 == "number") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))){const err44 = {instancePath:instancePath+"/width",schemaPath:"#/properties/width/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}if((typeof data23 == "number") && (isFinite(data23))){if(data23 < 0 || isNaN(data23)){const err45 = {instancePath:instancePath+"/width",schemaPath:"#/properties/width/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}}}else {const err46 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}validate25.errors = vErrors;return errors === 0;}validate25.evaluated = {"props":{"byteLength":true,"contentId":true,"evidence":true,"height":true,"minimap":true,"origin":true,"path":true,"pixelDigest":true,"selection":true,"sha256":true,"width":true},"dynamicProps":false,"dynamicItems":false};function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err0 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.value === undefined){const err1 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "value"},message:"must have required property '"+"value"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data){if(!(((key0 === "source") || (key0 === "state")) || (key0 === "value"))){const err2 = {instancePath,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.source !== undefined){let data0 = data.source;const _errs5 = errors;let valid2 = false;const _errs6 = errors;if(!(validate23(data0, {instancePath:instancePath+"/source",parentData:data,parentDataProperty:"source",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);errors = vErrors.length;}var _valid1 = _errs6 === errors;valid2 = valid2 || _valid1;const _errs7 = errors;if(data0 !== null){const err3 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/0/properties/source/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}var _valid1 = _errs7 === errors;valid2 = valid2 || _valid1;if(!valid2){const err4 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/0/properties/source/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}else {errors = _errs5;if(vErrors !== null){if(_errs5){vErrors.length = _errs5;}else {vErrors = null;}}}}if(data.state !== undefined){let data1 = data.state;if(typeof data1 !== "string"){const err5 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if("known" !== data1){const err6 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/const",keyword:"const",params:{allowedValue: "known"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.value !== undefined){if(!(validate25(data.value, {instancePath:instancePath+"/value",parentData:data,parentDataProperty:"value",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}}}else {const err7 = {instancePath,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;var props1 = true;}const _errs12 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err8 = {instancePath,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.reason === undefined){const err9 = {instancePath,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty: "reason"},message:"must have required property '"+"reason"+"'"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}for(const key1 in data){if(!(((key1 === "reason") || (key1 === "source")) || (key1 === "state"))){const err10 = {instancePath,schemaPath:"#/oneOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.reason !== undefined){let data3 = data.reason;if(typeof data3 === "string"){if(func1(data3) < 1){const err11 = {instancePath:instancePath+"/reason",schemaPath:"#/$defs/StateReason/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(!pattern5.test(data3)){const err12 = {instancePath:instancePath+"/reason",schemaPath:"#/$defs/StateReason/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+"/reason",schemaPath:"#/$defs/StateReason/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.source !== undefined){let data4 = data.source;const _errs19 = errors;let valid5 = false;const _errs20 = errors;if(!(validate23(data4, {instancePath:instancePath+"/source",parentData:data,parentDataProperty:"source",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);errors = vErrors.length;}var _valid2 = _errs20 === errors;valid5 = valid5 || _valid2;const _errs21 = errors;if(data4 !== null){const err14 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/1/properties/source/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}var _valid2 = _errs21 === errors;valid5 = valid5 || _valid2;if(!valid5){const err15 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/1/properties/source/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}else {errors = _errs19;if(vErrors !== null){if(_errs19){vErrors.length = _errs19;}else {vErrors = null;}}}}if(data.state !== undefined){let data5 = data.state;if(typeof data5 !== "string"){const err16 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if("unknown" !== data5){const err17 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath,schemaPath:"#/oneOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var _valid0 = _errs12 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;if(props1 !== true){props1 = true;}}const _errs25 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err19 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(data.coverageKey === undefined){const err20 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "coverageKey"},message:"must have required property '"+"coverageKey"+"'"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}for(const key2 in data){if(!((key2 === "coverageKey") || (key2 === "state"))){const err21 = {instancePath,schemaPath:"#/oneOf/2/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.coverageKey !== undefined){let data6 = data.coverageKey;if(typeof data6 === "string"){if(func1(data6) < 1){const err22 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(!pattern5.test(data6)){const err23 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.state !== undefined){let data7 = data.state;if(typeof data7 !== "string"){const err25 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if("absent" !== data7){const err26 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/const",keyword:"const",params:{allowedValue: "absent"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath,schemaPath:"#/oneOf/2/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var _valid0 = _errs25 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 2];}else {if(_valid0){valid0 = true;passing0 = 2;if(props1 !== true){props1 = true;}}const _errs33 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err28 = {instancePath,schemaPath:"#/oneOf/3/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(data.capability === undefined){const err29 = {instancePath,schemaPath:"#/oneOf/3/required",keyword:"required",params:{missingProperty: "capability"},message:"must have required property '"+"capability"+"'"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}for(const key3 in data){if(!(((key3 === "capability") || (key3 === "source")) || (key3 === "state"))){const err30 = {instancePath,schemaPath:"#/oneOf/3/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.capability !== undefined){let data8 = data.capability;if(typeof data8 === "string"){if(func1(data8) < 1){const err31 = {instancePath:instancePath+"/capability",schemaPath:"#/$defs/Capability/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if(!pattern5.test(data8)){const err32 = {instancePath:instancePath+"/capability",schemaPath:"#/$defs/Capability/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+"/capability",schemaPath:"#/$defs/Capability/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.source !== undefined){let data9 = data.source;const _errs40 = errors;let valid10 = false;const _errs41 = errors;if(!(validate23(data9, {instancePath:instancePath+"/source",parentData:data,parentDataProperty:"source",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);errors = vErrors.length;}var _valid3 = _errs41 === errors;valid10 = valid10 || _valid3;const _errs42 = errors;if(data9 !== null){const err34 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/3/properties/source/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid3 = _errs42 === errors;valid10 = valid10 || _valid3;if(!valid10){const err35 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/3/properties/source/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}else {errors = _errs40;if(vErrors !== null){if(_errs40){vErrors.length = _errs40;}else {vErrors = null;}}}}if(data.state !== undefined){let data10 = data.state;if(typeof data10 !== "string"){const err36 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/3/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if("unsupported" !== data10){const err37 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/3/properties/state/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}else {const err38 = {instancePath,schemaPath:"#/oneOf/3/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}var _valid0 = _errs33 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 3];}else {if(_valid0){valid0 = true;passing0 = 3;if(props1 !== true){props1 = true;}}}}}if(!valid0){const err39 = {instancePath,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate22.errors = vErrors;evaluated0.props = props1;return errors === 0;}validate22.evaluated = {"dynamicProps":true,"dynamicItems":false};function validate21(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.key === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "key"},message:"must have required property '"+"key"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.media === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "media"},message:"must have required property '"+"media"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.key !== undefined){if(typeof data.key !== "string"){const err2 = {instancePath:instancePath+"/key",schemaPath:"#/properties/key/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.media !== undefined){let data1 = data.media;if(data1 && typeof data1 == "object" && !Array.isArray(data1)){for(const key0 in data1){if(!(validate22(data1[key0], {instancePath:instancePath+"/media/" + key0.replace(/~/g, "~0").replace(/\//g, "~1"),parentData:data1,parentDataProperty:key0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}}}else {const err3 = {instancePath:instancePath+"/media",schemaPath:"#/properties/media/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}else {const err4 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {"props":{"key":true,"media":true},"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.format === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "format"},message:"must have required property '"+"format"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.contractVersion === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "contractVersion"},message:"must have required property '"+"contractVersion"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.scope === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "scope"},message:"must have required property '"+"scope"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.recordCount === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "recordCount"},message:"must have required property '"+"recordCount"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.records === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "records"},message:"must have required property '"+"records"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.contractVersion !== undefined){let data0 = data.contractVersion;if(typeof data0 !== "string"){const err5 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if("2.0" !== data0){const err6 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/const",keyword:"const",params:{allowedValue: "2.0"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.format !== undefined){let data1 = data.format;if(typeof data1 !== "string"){const err7 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if("mapletip.media-catalog-2" !== data1){const err8 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/const",keyword:"const",params:{allowedValue: "mapletip.media-catalog-2"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.recordCount !== undefined){let data2 = data.recordCount;if(!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))){const err9 = {instancePath:instancePath+"/recordCount",schemaPath:"#/properties/recordCount/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if((typeof data2 == "number") && (isFinite(data2))){if(data2 < 0 || isNaN(data2)){const err10 = {instancePath:instancePath+"/recordCount",schemaPath:"#/properties/recordCount/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}if(data.records !== undefined){let data3 = data.records;if(Array.isArray(data3)){const len0 = data3.length;for(let i0=0; i0<len0; i0++){if(!(validate21(data3[i0], {instancePath:instancePath+"/records/" + i0,parentData:data3,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}}}else {const err11 = {instancePath:instancePath+"/records",schemaPath:"#/properties/records/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data.scope !== undefined){let data5 = data.scope;if(data5 && typeof data5 == "object" && !Array.isArray(data5)){if(data5.family_id === undefined){const err12 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "family_id"},message:"must have required property '"+"family_id"+"'"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(data5.build_id === undefined){const err13 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "build_id"},message:"must have required property '"+"build_id"+"'"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(data5.build_id !== undefined){if(typeof data5.build_id !== "string"){const err14 = {instancePath:instancePath+"/scope/build_id",schemaPath:"#/$defs/BuildScope/properties/build_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data5.family_id !== undefined){if(typeof data5.family_id !== "string"){const err15 = {instancePath:instancePath+"/scope/family_id",schemaPath:"#/$defs/BuildScope/properties/family_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}else {const err16 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}else {const err17 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":{"contractVersion":true,"format":true,"recordCount":true,"records":true,"scope":true},"dynamicProps":false,"dynamicItems":false};
@@ -0,0 +1,125 @@
1
+ /* Generated automatically from Rust-owned wire definitions. Do not edit. */
2
+
3
+ /**
4
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
5
+ * `source-null`; only `Absent` carries a complete-coverage witness.
6
+ */
7
+ export type FactState =
8
+ | (
9
+ | {
10
+ source?: SourceRef | null;
11
+ state: "known";
12
+ value: MediaSprite;
13
+ }
14
+ | {
15
+ reason: StateReason;
16
+ source?: SourceRef | null;
17
+ state: "unknown";
18
+ }
19
+ | {
20
+ coverageKey: CoverageKey;
21
+ state: "absent";
22
+ }
23
+ | {
24
+ capability: Capability;
25
+ source?: SourceRef | null;
26
+ state: "unsupported";
27
+ }
28
+ )
29
+ | undefined;
30
+ export type LogicalSourceAddress = string;
31
+ export type StateReason = string;
32
+ export type CoverageKey = string;
33
+ export type Capability = string;
34
+
35
+ /**
36
+ * One entity's full media detail record.
37
+ */
38
+ export interface MediaDetailRecord {
39
+ contractVersion: "2.0";
40
+ format: "mapletip.media-detail-2";
41
+ key: string;
42
+ media: {
43
+ [k: string]: FactState | undefined;
44
+ };
45
+ scope: BuildScope;
46
+ [k: string]: unknown | undefined;
47
+ }
48
+ /**
49
+ * Source attribution for a fact or raw observation.
50
+ */
51
+ export interface SourceRef {
52
+ /**
53
+ * Optional logical address within the source; never a local file path.
54
+ */
55
+ logicalAddress?: LogicalSourceAddress | null;
56
+ /**
57
+ * Source family or source kind, preserved as supplied by the producer.
58
+ */
59
+ sourceKind: string;
60
+ }
61
+ /**
62
+ * One known media sprite descriptor pointing to a content-addressed image blob.
63
+ */
64
+ export interface MediaSprite {
65
+ byteLength: number;
66
+ contentId: string;
67
+ evidence: MediaEvidence;
68
+ height: number;
69
+ minimap?: MediaMinimapMetadata | null;
70
+ origin: MediaOrigin;
71
+ path: string;
72
+ pixelDigest: string;
73
+ selection: string;
74
+ sha256: string;
75
+ width: number;
76
+ [k: string]: unknown | undefined;
77
+ }
78
+ /**
79
+ * Source attribution and link resolution trail for a media item.
80
+ */
81
+ export interface MediaEvidence {
82
+ linkChain?: string[];
83
+ sourcePath: string;
84
+ [k: string]: unknown | undefined;
85
+ }
86
+ /**
87
+ * Geometry metadata for a decoded map minimap canvas.
88
+ *
89
+ * `canvas_width`/`canvas_height` are retained as source metadata only. The
90
+ * physical PNG dimensions on [`MediaSprite`] are authoritative for projection
91
+ * bounds because some source maps carry a 1x1 stub header around a full canvas.
92
+ */
93
+ export interface MediaMinimapMetadata {
94
+ canvasHeight?: number | null;
95
+ canvasWidth?: number | null;
96
+ centerX: number;
97
+ centerY: number;
98
+ contentSource: string;
99
+ frameHeight?: number | null;
100
+ frameWidth?: number | null;
101
+ mag: number;
102
+ [k: string]: unknown | undefined;
103
+ }
104
+ /**
105
+ * Pixel origin offset retained for positioning.
106
+ */
107
+ export interface MediaOrigin {
108
+ x: number;
109
+ y: number;
110
+ [k: string]: unknown | undefined;
111
+ }
112
+ /**
113
+ * Build scope specifying the game family and concrete build identity.
114
+ */
115
+ export interface BuildScope {
116
+ /**
117
+ * Exact build identity (e.g., 'gms-v83', 'cw-cot2').
118
+ */
119
+ build_id: string;
120
+ /**
121
+ * Family identity (e.g., 'gms', 'classic-world').
122
+ */
123
+ family_id: string;
124
+ [k: string]: unknown | undefined;
125
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";export const validate = validate20;export default validate20;const schema31 = {"$schema":"https://json-schema.org/draft/2020-12/schema","title":"MediaDetailRecord","description":"One entity's full media detail record.","type":"object","properties":{"contractVersion":{"type":"string","const":"2.0"},"format":{"type":"string","const":"mapletip.media-detail-2"},"key":{"type":"string"},"media":{"type":"object","additionalProperties":{"$ref":"#/$defs/FactState"}},"scope":{"$ref":"#/$defs/BuildScope"}},"required":["format","contractVersion","scope","key","media"],"$defs":{"BuildScope":{"description":"Build scope specifying the game family and concrete build identity.","type":"object","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"]},"Capability":{"type":"string","minLength":1,"pattern":"\\S"},"CoverageKey":{"type":"string","minLength":1,"pattern":"\\S"},"FactState":{"description":"Shared fact state. SQL NULL is represented by `Unknown` with reason\n`source-null`; only `Absent` carries a complete-coverage witness.","oneOf":[{"description":"A positively observed value.","type":"object","properties":{"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"known"},"value":{"$ref":"#/$defs/MediaSprite"}},"additionalProperties":false,"required":["state","value"]},{"description":"A value that was not observed or could not be established.","type":"object","properties":{"reason":{"$ref":"#/$defs/StateReason"},"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"unknown"}},"additionalProperties":false,"required":["state","reason"]},{"description":"No value was present under the source scope named by complete coverage.","type":"object","properties":{"coverageKey":{"$ref":"#/$defs/CoverageKey"},"state":{"type":"string","const":"absent"}},"additionalProperties":false,"required":["state","coverageKey"]},{"description":"The named source or product cannot provide this fact.","type":"object","properties":{"capability":{"$ref":"#/$defs/Capability"},"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"unsupported"}},"additionalProperties":false,"required":["state","capability"]}]},"LogicalSourceAddress":{"type":"string","minLength":1,"pattern":"^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$"},"MediaEvidence":{"description":"Source attribution and link resolution trail for a media item.","type":"object","properties":{"linkChain":{"type":"array","items":{"type":"string"}},"sourcePath":{"type":"string"}},"required":["sourcePath"]},"MediaMinimapMetadata":{"description":"Geometry metadata for a decoded map minimap canvas.\n\n`canvas_width`/`canvas_height` are retained as source metadata only. The\nphysical PNG dimensions on [`MediaSprite`] are authoritative for projection\nbounds because some source maps carry a 1x1 stub header around a full canvas.","type":"object","properties":{"canvasHeight":{"type":["integer","null"],"format":"int32"},"canvasWidth":{"type":["integer","null"],"format":"int32"},"centerX":{"type":"integer","format":"int32"},"centerY":{"type":"integer","format":"int32"},"contentSource":{"type":"string"},"frameHeight":{"type":["integer","null"],"format":"int32"},"frameWidth":{"type":["integer","null"],"format":"int32"},"mag":{"type":"integer","format":"int32"}},"required":["centerX","centerY","mag","contentSource"]},"MediaOrigin":{"description":"Pixel origin offset retained for positioning.","type":"object","properties":{"x":{"type":"integer","format":"int32"},"y":{"type":"integer","format":"int32"}},"required":["x","y"]},"MediaSprite":{"description":"One known media sprite descriptor pointing to a content-addressed image blob.","type":"object","properties":{"byteLength":{"type":"integer","format":"uint64","minimum":0},"contentId":{"type":"string"},"evidence":{"$ref":"#/$defs/MediaEvidence"},"height":{"type":"integer","format":"uint32","minimum":0},"minimap":{"anyOf":[{"$ref":"#/$defs/MediaMinimapMetadata"},{"type":"null"}]},"origin":{"$ref":"#/$defs/MediaOrigin"},"path":{"type":"string"},"pixelDigest":{"type":"string"},"selection":{"type":"string"},"sha256":{"type":"string"},"width":{"type":"integer","format":"uint32","minimum":0}},"required":["contentId","path","sha256","byteLength","width","height","origin","pixelDigest","selection","evidence"]},"SourceKind":{"type":"string","minLength":1,"pattern":"\\S"},"SourceRef":{"description":"Source attribution for a fact or raw observation.","type":"object","properties":{"logicalAddress":{"description":"Optional logical address within the source; never a local file path.","anyOf":[{"$ref":"#/$defs/LogicalSourceAddress"},{"type":"null"}]},"sourceKind":{"description":"Source family or source kind, preserved as supplied by the producer.","$ref":"#/$defs/SourceKind"}},"additionalProperties":false,"required":["sourceKind"]},"StateReason":{"type":"string","minLength":1,"pattern":"\\S"}}};const schema43 = {"description":"Build scope specifying the game family and concrete build identity.","type":"object","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"]};const schema32 = {"description":"Shared fact state. SQL NULL is represented by `Unknown` with reason\n`source-null`; only `Absent` carries a complete-coverage witness.","oneOf":[{"description":"A positively observed value.","type":"object","properties":{"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"known"},"value":{"$ref":"#/$defs/MediaSprite"}},"additionalProperties":false,"required":["state","value"]},{"description":"A value that was not observed or could not be established.","type":"object","properties":{"reason":{"$ref":"#/$defs/StateReason"},"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"unknown"}},"additionalProperties":false,"required":["state","reason"]},{"description":"No value was present under the source scope named by complete coverage.","type":"object","properties":{"coverageKey":{"$ref":"#/$defs/CoverageKey"},"state":{"type":"string","const":"absent"}},"additionalProperties":false,"required":["state","coverageKey"]},{"description":"The named source or product cannot provide this fact.","type":"object","properties":{"capability":{"$ref":"#/$defs/Capability"},"source":{"anyOf":[{"$ref":"#/$defs/SourceRef"},{"type":"null"}]},"state":{"type":"string","const":"unsupported"}},"additionalProperties":false,"required":["state","capability"]}]};const schema40 = {"type":"string","minLength":1,"pattern":"\\S"};const schema41 = {"type":"string","minLength":1,"pattern":"\\S"};const schema42 = {"type":"string","minLength":1,"pattern":"\\S"};const schema33 = {"description":"Source attribution for a fact or raw observation.","type":"object","properties":{"logicalAddress":{"description":"Optional logical address within the source; never a local file path.","anyOf":[{"$ref":"#/$defs/LogicalSourceAddress"},{"type":"null"}]},"sourceKind":{"description":"Source family or source kind, preserved as supplied by the producer.","$ref":"#/$defs/SourceKind"}},"additionalProperties":false,"required":["sourceKind"]};const schema34 = {"type":"string","minLength":1,"pattern":"^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$"};const schema35 = {"type":"string","minLength":1,"pattern":"\\S"};const func1 = function ucs2length(str) {
2
+ const len = str.length;
3
+ let length = 0;
4
+ let pos = 0;
5
+ let value;
6
+ while (pos < len) {
7
+ length++;
8
+ value = str.charCodeAt(pos++);
9
+ if (value >= 0xd800 && value <= 0xdbff && pos < len) {
10
+ // high surrogate, and there is a next character
11
+ value = str.charCodeAt(pos);
12
+ if ((value & 0xfc00) === 0xdc00)
13
+ pos++; // low surrogate
14
+ }
15
+ }
16
+ return length;
17
+ };const pattern4 = new RegExp("^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$", "u");const pattern5 = new RegExp("\\S", "u");function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.sourceKind === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "sourceKind"},message:"must have required property '"+"sourceKind"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}for(const key0 in data){if(!((key0 === "logicalAddress") || (key0 === "sourceKind"))){const err1 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.logicalAddress !== undefined){let data0 = data.logicalAddress;const _errs3 = errors;let valid1 = false;const _errs4 = errors;if(typeof data0 === "string"){if(func1(data0) < 1){const err2 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/$defs/LogicalSourceAddress/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(!pattern4.test(data0)){const err3 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/$defs/LogicalSourceAddress/pattern",keyword:"pattern",params:{pattern: "^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$"},message:"must match pattern \""+"^(?=.*\\S)(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$)).+$"+"\""};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/$defs/LogicalSourceAddress/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}var _valid0 = _errs4 === errors;valid1 = valid1 || _valid0;const _errs7 = errors;if(data0 !== null){const err5 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/properties/logicalAddress/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}var _valid0 = _errs7 === errors;valid1 = valid1 || _valid0;if(!valid1){const err6 = {instancePath:instancePath+"/logicalAddress",schemaPath:"#/properties/logicalAddress/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}else {errors = _errs3;if(vErrors !== null){if(_errs3){vErrors.length = _errs3;}else {vErrors = null;}}}}if(data.sourceKind !== undefined){let data1 = data.sourceKind;if(typeof data1 === "string"){if(func1(data1) < 1){const err7 = {instancePath:instancePath+"/sourceKind",schemaPath:"#/$defs/SourceKind/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(!pattern5.test(data1)){const err8 = {instancePath:instancePath+"/sourceKind",schemaPath:"#/$defs/SourceKind/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}else {const err9 = {instancePath:instancePath+"/sourceKind",schemaPath:"#/$defs/SourceKind/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}else {const err10 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}validate22.errors = vErrors;return errors === 0;}validate22.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema36 = {"description":"One known media sprite descriptor pointing to a content-addressed image blob.","type":"object","properties":{"byteLength":{"type":"integer","format":"uint64","minimum":0},"contentId":{"type":"string"},"evidence":{"$ref":"#/$defs/MediaEvidence"},"height":{"type":"integer","format":"uint32","minimum":0},"minimap":{"anyOf":[{"$ref":"#/$defs/MediaMinimapMetadata"},{"type":"null"}]},"origin":{"$ref":"#/$defs/MediaOrigin"},"path":{"type":"string"},"pixelDigest":{"type":"string"},"selection":{"type":"string"},"sha256":{"type":"string"},"width":{"type":"integer","format":"uint32","minimum":0}},"required":["contentId","path","sha256","byteLength","width","height","origin","pixelDigest","selection","evidence"]};const schema37 = {"description":"Source attribution and link resolution trail for a media item.","type":"object","properties":{"linkChain":{"type":"array","items":{"type":"string"}},"sourcePath":{"type":"string"}},"required":["sourcePath"]};const schema38 = {"description":"Geometry metadata for a decoded map minimap canvas.\n\n`canvas_width`/`canvas_height` are retained as source metadata only. The\nphysical PNG dimensions on [`MediaSprite`] are authoritative for projection\nbounds because some source maps carry a 1x1 stub header around a full canvas.","type":"object","properties":{"canvasHeight":{"type":["integer","null"],"format":"int32"},"canvasWidth":{"type":["integer","null"],"format":"int32"},"centerX":{"type":"integer","format":"int32"},"centerY":{"type":"integer","format":"int32"},"contentSource":{"type":"string"},"frameHeight":{"type":["integer","null"],"format":"int32"},"frameWidth":{"type":["integer","null"],"format":"int32"},"mag":{"type":"integer","format":"int32"}},"required":["centerX","centerY","mag","contentSource"]};const schema39 = {"description":"Pixel origin offset retained for positioning.","type":"object","properties":{"x":{"type":"integer","format":"int32"},"y":{"type":"integer","format":"int32"}},"required":["x","y"]};function validate24(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate24.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.contentId === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "contentId"},message:"must have required property '"+"contentId"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.path === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.sha256 === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.byteLength === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.width === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "width"},message:"must have required property '"+"width"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.height === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "height"},message:"must have required property '"+"height"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.origin === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "origin"},message:"must have required property '"+"origin"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.pixelDigest === undefined){const err7 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "pixelDigest"},message:"must have required property '"+"pixelDigest"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.selection === undefined){const err8 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "selection"},message:"must have required property '"+"selection"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.evidence === undefined){const err9 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "evidence"},message:"must have required property '"+"evidence"+"'"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(data.byteLength !== undefined){let data0 = data.byteLength;if(!(((typeof data0 == "number") && (!(data0 % 1) && !isNaN(data0))) && (isFinite(data0)))){const err10 = {instancePath:instancePath+"/byteLength",schemaPath:"#/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if((typeof data0 == "number") && (isFinite(data0))){if(data0 < 0 || isNaN(data0)){const err11 = {instancePath:instancePath+"/byteLength",schemaPath:"#/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}}if(data.contentId !== undefined){if(typeof data.contentId !== "string"){const err12 = {instancePath:instancePath+"/contentId",schemaPath:"#/properties/contentId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.evidence !== undefined){let data2 = data.evidence;if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(data2.sourcePath === undefined){const err13 = {instancePath:instancePath+"/evidence",schemaPath:"#/$defs/MediaEvidence/required",keyword:"required",params:{missingProperty: "sourcePath"},message:"must have required property '"+"sourcePath"+"'"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(data2.linkChain !== undefined){let data3 = data2.linkChain;if(Array.isArray(data3)){const len0 = data3.length;for(let i0=0; i0<len0; i0++){if(typeof data3[i0] !== "string"){const err14 = {instancePath:instancePath+"/evidence/linkChain/" + i0,schemaPath:"#/$defs/MediaEvidence/properties/linkChain/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+"/evidence/linkChain",schemaPath:"#/$defs/MediaEvidence/properties/linkChain/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data2.sourcePath !== undefined){if(typeof data2.sourcePath !== "string"){const err16 = {instancePath:instancePath+"/evidence/sourcePath",schemaPath:"#/$defs/MediaEvidence/properties/sourcePath/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}else {const err17 = {instancePath:instancePath+"/evidence",schemaPath:"#/$defs/MediaEvidence/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.height !== undefined){let data6 = data.height;if(!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))){const err18 = {instancePath:instancePath+"/height",schemaPath:"#/properties/height/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if((typeof data6 == "number") && (isFinite(data6))){if(data6 < 0 || isNaN(data6)){const err19 = {instancePath:instancePath+"/height",schemaPath:"#/properties/height/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}}if(data.minimap !== undefined){let data7 = data.minimap;const _errs17 = errors;let valid5 = false;const _errs18 = errors;if(data7 && typeof data7 == "object" && !Array.isArray(data7)){if(data7.centerX === undefined){const err20 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/required",keyword:"required",params:{missingProperty: "centerX"},message:"must have required property '"+"centerX"+"'"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(data7.centerY === undefined){const err21 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/required",keyword:"required",params:{missingProperty: "centerY"},message:"must have required property '"+"centerY"+"'"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(data7.mag === undefined){const err22 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/required",keyword:"required",params:{missingProperty: "mag"},message:"must have required property '"+"mag"+"'"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(data7.contentSource === undefined){const err23 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/required",keyword:"required",params:{missingProperty: "contentSource"},message:"must have required property '"+"contentSource"+"'"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}if(data7.canvasHeight !== undefined){let data8 = data7.canvasHeight;if((!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))) && (data8 !== null)){const err24 = {instancePath:instancePath+"/minimap/canvasHeight",schemaPath:"#/$defs/MediaMinimapMetadata/properties/canvasHeight/type",keyword:"type",params:{type: schema38.properties.canvasHeight.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data7.canvasWidth !== undefined){let data9 = data7.canvasWidth;if((!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))) && (data9 !== null)){const err25 = {instancePath:instancePath+"/minimap/canvasWidth",schemaPath:"#/$defs/MediaMinimapMetadata/properties/canvasWidth/type",keyword:"type",params:{type: schema38.properties.canvasWidth.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data7.centerX !== undefined){let data10 = data7.centerX;if(!(((typeof data10 == "number") && (!(data10 % 1) && !isNaN(data10))) && (isFinite(data10)))){const err26 = {instancePath:instancePath+"/minimap/centerX",schemaPath:"#/$defs/MediaMinimapMetadata/properties/centerX/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}if(data7.centerY !== undefined){let data11 = data7.centerY;if(!(((typeof data11 == "number") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))){const err27 = {instancePath:instancePath+"/minimap/centerY",schemaPath:"#/$defs/MediaMinimapMetadata/properties/centerY/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data7.contentSource !== undefined){if(typeof data7.contentSource !== "string"){const err28 = {instancePath:instancePath+"/minimap/contentSource",schemaPath:"#/$defs/MediaMinimapMetadata/properties/contentSource/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}if(data7.frameHeight !== undefined){let data13 = data7.frameHeight;if((!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))) && (data13 !== null)){const err29 = {instancePath:instancePath+"/minimap/frameHeight",schemaPath:"#/$defs/MediaMinimapMetadata/properties/frameHeight/type",keyword:"type",params:{type: schema38.properties.frameHeight.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}if(data7.frameWidth !== undefined){let data14 = data7.frameWidth;if((!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))) && (data14 !== null)){const err30 = {instancePath:instancePath+"/minimap/frameWidth",schemaPath:"#/$defs/MediaMinimapMetadata/properties/frameWidth/type",keyword:"type",params:{type: schema38.properties.frameWidth.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data7.mag !== undefined){let data15 = data7.mag;if(!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))){const err31 = {instancePath:instancePath+"/minimap/mag",schemaPath:"#/$defs/MediaMinimapMetadata/properties/mag/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}}else {const err32 = {instancePath:instancePath+"/minimap",schemaPath:"#/$defs/MediaMinimapMetadata/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}var _valid0 = _errs18 === errors;valid5 = valid5 || _valid0;if(_valid0){var props0 = {};props0.canvasHeight = true;props0.canvasWidth = true;props0.centerX = true;props0.centerY = true;props0.contentSource = true;props0.frameHeight = true;props0.frameWidth = true;props0.mag = true;}const _errs37 = errors;if(data7 !== null){const err33 = {instancePath:instancePath+"/minimap",schemaPath:"#/properties/minimap/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}var _valid0 = _errs37 === errors;valid5 = valid5 || _valid0;if(!valid5){const err34 = {instancePath:instancePath+"/minimap",schemaPath:"#/properties/minimap/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}else {errors = _errs17;if(vErrors !== null){if(_errs17){vErrors.length = _errs17;}else {vErrors = null;}}}}if(data.origin !== undefined){let data16 = data.origin;if(data16 && typeof data16 == "object" && !Array.isArray(data16)){if(data16.x === undefined){const err35 = {instancePath:instancePath+"/origin",schemaPath:"#/$defs/MediaOrigin/required",keyword:"required",params:{missingProperty: "x"},message:"must have required property '"+"x"+"'"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(data16.y === undefined){const err36 = {instancePath:instancePath+"/origin",schemaPath:"#/$defs/MediaOrigin/required",keyword:"required",params:{missingProperty: "y"},message:"must have required property '"+"y"+"'"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if(data16.x !== undefined){let data17 = data16.x;if(!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))){const err37 = {instancePath:instancePath+"/origin/x",schemaPath:"#/$defs/MediaOrigin/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data16.y !== undefined){let data18 = data16.y;if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){const err38 = {instancePath:instancePath+"/origin/y",schemaPath:"#/$defs/MediaOrigin/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/origin",schemaPath:"#/$defs/MediaOrigin/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}if(data.path !== undefined){if(typeof data.path !== "string"){const err40 = {instancePath:instancePath+"/path",schemaPath:"#/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}if(data.pixelDigest !== undefined){if(typeof data.pixelDigest !== "string"){const err41 = {instancePath:instancePath+"/pixelDigest",schemaPath:"#/properties/pixelDigest/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data.selection !== undefined){if(typeof data.selection !== "string"){const err42 = {instancePath:instancePath+"/selection",schemaPath:"#/properties/selection/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data.sha256 !== undefined){if(typeof data.sha256 !== "string"){const err43 = {instancePath:instancePath+"/sha256",schemaPath:"#/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}if(data.width !== undefined){let data23 = data.width;if(!(((typeof data23 == "number") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))){const err44 = {instancePath:instancePath+"/width",schemaPath:"#/properties/width/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}if((typeof data23 == "number") && (isFinite(data23))){if(data23 < 0 || isNaN(data23)){const err45 = {instancePath:instancePath+"/width",schemaPath:"#/properties/width/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}}}else {const err46 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}validate24.errors = vErrors;return errors === 0;}validate24.evaluated = {"props":{"byteLength":true,"contentId":true,"evidence":true,"height":true,"minimap":true,"origin":true,"path":true,"pixelDigest":true,"selection":true,"sha256":true,"width":true},"dynamicProps":false,"dynamicItems":false};function validate21(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err0 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.value === undefined){const err1 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "value"},message:"must have required property '"+"value"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data){if(!(((key0 === "source") || (key0 === "state")) || (key0 === "value"))){const err2 = {instancePath,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.source !== undefined){let data0 = data.source;const _errs5 = errors;let valid2 = false;const _errs6 = errors;if(!(validate22(data0, {instancePath:instancePath+"/source",parentData:data,parentDataProperty:"source",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var _valid1 = _errs6 === errors;valid2 = valid2 || _valid1;const _errs7 = errors;if(data0 !== null){const err3 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/0/properties/source/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}var _valid1 = _errs7 === errors;valid2 = valid2 || _valid1;if(!valid2){const err4 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/0/properties/source/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}else {errors = _errs5;if(vErrors !== null){if(_errs5){vErrors.length = _errs5;}else {vErrors = null;}}}}if(data.state !== undefined){let data1 = data.state;if(typeof data1 !== "string"){const err5 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if("known" !== data1){const err6 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/const",keyword:"const",params:{allowedValue: "known"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.value !== undefined){if(!(validate24(data.value, {instancePath:instancePath+"/value",parentData:data,parentDataProperty:"value",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate24.errors : vErrors.concat(validate24.errors);errors = vErrors.length;}}}else {const err7 = {instancePath,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;var props1 = true;}const _errs12 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err8 = {instancePath,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.reason === undefined){const err9 = {instancePath,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty: "reason"},message:"must have required property '"+"reason"+"'"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}for(const key1 in data){if(!(((key1 === "reason") || (key1 === "source")) || (key1 === "state"))){const err10 = {instancePath,schemaPath:"#/oneOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.reason !== undefined){let data3 = data.reason;if(typeof data3 === "string"){if(func1(data3) < 1){const err11 = {instancePath:instancePath+"/reason",schemaPath:"#/$defs/StateReason/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(!pattern5.test(data3)){const err12 = {instancePath:instancePath+"/reason",schemaPath:"#/$defs/StateReason/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}else {const err13 = {instancePath:instancePath+"/reason",schemaPath:"#/$defs/StateReason/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data.source !== undefined){let data4 = data.source;const _errs19 = errors;let valid5 = false;const _errs20 = errors;if(!(validate22(data4, {instancePath:instancePath+"/source",parentData:data,parentDataProperty:"source",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var _valid2 = _errs20 === errors;valid5 = valid5 || _valid2;const _errs21 = errors;if(data4 !== null){const err14 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/1/properties/source/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}var _valid2 = _errs21 === errors;valid5 = valid5 || _valid2;if(!valid5){const err15 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/1/properties/source/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}else {errors = _errs19;if(vErrors !== null){if(_errs19){vErrors.length = _errs19;}else {vErrors = null;}}}}if(data.state !== undefined){let data5 = data.state;if(typeof data5 !== "string"){const err16 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if("unknown" !== data5){const err17 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath,schemaPath:"#/oneOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var _valid0 = _errs12 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;if(props1 !== true){props1 = true;}}const _errs25 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err19 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(data.coverageKey === undefined){const err20 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "coverageKey"},message:"must have required property '"+"coverageKey"+"'"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}for(const key2 in data){if(!((key2 === "coverageKey") || (key2 === "state"))){const err21 = {instancePath,schemaPath:"#/oneOf/2/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.coverageKey !== undefined){let data6 = data.coverageKey;if(typeof data6 === "string"){if(func1(data6) < 1){const err22 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(!pattern5.test(data6)){const err23 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.state !== undefined){let data7 = data.state;if(typeof data7 !== "string"){const err25 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if("absent" !== data7){const err26 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/const",keyword:"const",params:{allowedValue: "absent"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath,schemaPath:"#/oneOf/2/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var _valid0 = _errs25 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 2];}else {if(_valid0){valid0 = true;passing0 = 2;if(props1 !== true){props1 = true;}}const _errs33 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err28 = {instancePath,schemaPath:"#/oneOf/3/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(data.capability === undefined){const err29 = {instancePath,schemaPath:"#/oneOf/3/required",keyword:"required",params:{missingProperty: "capability"},message:"must have required property '"+"capability"+"'"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}for(const key3 in data){if(!(((key3 === "capability") || (key3 === "source")) || (key3 === "state"))){const err30 = {instancePath,schemaPath:"#/oneOf/3/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}if(data.capability !== undefined){let data8 = data.capability;if(typeof data8 === "string"){if(func1(data8) < 1){const err31 = {instancePath:instancePath+"/capability",schemaPath:"#/$defs/Capability/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if(!pattern5.test(data8)){const err32 = {instancePath:instancePath+"/capability",schemaPath:"#/$defs/Capability/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}else {const err33 = {instancePath:instancePath+"/capability",schemaPath:"#/$defs/Capability/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.source !== undefined){let data9 = data.source;const _errs40 = errors;let valid10 = false;const _errs41 = errors;if(!(validate22(data9, {instancePath:instancePath+"/source",parentData:data,parentDataProperty:"source",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var _valid3 = _errs41 === errors;valid10 = valid10 || _valid3;const _errs42 = errors;if(data9 !== null){const err34 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/3/properties/source/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid3 = _errs42 === errors;valid10 = valid10 || _valid3;if(!valid10){const err35 = {instancePath:instancePath+"/source",schemaPath:"#/oneOf/3/properties/source/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}else {errors = _errs40;if(vErrors !== null){if(_errs40){vErrors.length = _errs40;}else {vErrors = null;}}}}if(data.state !== undefined){let data10 = data.state;if(typeof data10 !== "string"){const err36 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/3/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if("unsupported" !== data10){const err37 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/3/properties/state/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}else {const err38 = {instancePath,schemaPath:"#/oneOf/3/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}var _valid0 = _errs33 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 3];}else {if(_valid0){valid0 = true;passing0 = 3;if(props1 !== true){props1 = true;}}}}}if(!valid0){const err39 = {instancePath,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate21.errors = vErrors;evaluated0.props = props1;return errors === 0;}validate21.evaluated = {"dynamicProps":true,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.format === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "format"},message:"must have required property '"+"format"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.contractVersion === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "contractVersion"},message:"must have required property '"+"contractVersion"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.scope === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "scope"},message:"must have required property '"+"scope"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.key === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "key"},message:"must have required property '"+"key"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.media === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "media"},message:"must have required property '"+"media"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.contractVersion !== undefined){let data0 = data.contractVersion;if(typeof data0 !== "string"){const err5 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if("2.0" !== data0){const err6 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/const",keyword:"const",params:{allowedValue: "2.0"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.format !== undefined){let data1 = data.format;if(typeof data1 !== "string"){const err7 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if("mapletip.media-detail-2" !== data1){const err8 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/const",keyword:"const",params:{allowedValue: "mapletip.media-detail-2"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.key !== undefined){if(typeof data.key !== "string"){const err9 = {instancePath:instancePath+"/key",schemaPath:"#/properties/key/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.media !== undefined){let data3 = data.media;if(data3 && typeof data3 == "object" && !Array.isArray(data3)){for(const key0 in data3){if(!(validate21(data3[key0], {instancePath:instancePath+"/media/" + key0.replace(/~/g, "~0").replace(/\//g, "~1"),parentData:data3,parentDataProperty:key0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}}}else {const err10 = {instancePath:instancePath+"/media",schemaPath:"#/properties/media/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.scope !== undefined){let data5 = data.scope;if(data5 && typeof data5 == "object" && !Array.isArray(data5)){if(data5.family_id === undefined){const err11 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "family_id"},message:"must have required property '"+"family_id"+"'"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(data5.build_id === undefined){const err12 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "build_id"},message:"must have required property '"+"build_id"+"'"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(data5.build_id !== undefined){if(typeof data5.build_id !== "string"){const err13 = {instancePath:instancePath+"/scope/build_id",schemaPath:"#/$defs/BuildScope/properties/build_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data5.family_id !== undefined){if(typeof data5.family_id !== "string"){const err14 = {instancePath:instancePath+"/scope/family_id",schemaPath:"#/$defs/BuildScope/properties/family_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}else {const err16 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":{"contractVersion":true,"format":true,"key":true,"media":true,"scope":true},"dynamicProps":false,"dynamicItems":false};