@mapletip/data 0.3.0 → 0.6.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 (43) hide show
  1. package/README.md +216 -2
  2. package/client/contract-compatibility.mjs +10 -0
  3. package/client/items.d.ts +28 -5
  4. package/client/items.js +94 -5
  5. package/client/map-geography.d.ts +4 -0
  6. package/client/map-geography.js +2 -0
  7. package/client/maps.d.ts +22 -0
  8. package/client/maps.js +25 -0
  9. package/client/monster-client.d.ts +22 -3
  10. package/client/monster-client.js +115 -5
  11. package/client/monsters.d.ts +33 -7
  12. package/client/monsters.js +36 -4
  13. package/client/static-client.d.ts +7 -5
  14. package/client/static-client.js +3 -2
  15. package/client/static-domains.d.ts +8 -1
  16. package/client/static-domains.js +27 -3
  17. package/generated/item-browse-pack-2.d.ts +83 -1
  18. package/generated/item-browse-pack-2.validator.js +2 -2
  19. package/generated/item-related-entity-browse-1.d.ts +48 -0
  20. package/generated/item-related-entity-browse-1.validator.js +1 -0
  21. package/generated/map-catalog-2-1.d.ts +103 -0
  22. package/generated/map-catalog-2-1.validator.d.ts +18 -0
  23. package/generated/map-catalog-2-1.validator.js +1 -0
  24. package/generated/map-geography.d.ts +79 -0
  25. package/generated/map-geography.validator.d.ts +18 -0
  26. package/generated/map-geography.validator.js +1 -0
  27. package/generated/monster-catalog-2-2.d.ts +332 -0
  28. package/generated/monster-catalog-2-2.validator.js +17 -0
  29. package/generated/monster-catalog-2-3.d.ts +339 -0
  30. package/generated/monster-catalog-2-3.validator.js +17 -0
  31. package/generated/monster-catalog-2-4.d.ts +378 -0
  32. package/generated/monster-catalog-2-4.validator.js +17 -0
  33. package/generated/monster-drop-browse-1-1.d.ts +150 -0
  34. package/generated/monster-drop-browse-1-1.validator.js +17 -0
  35. package/generated/monster-drop-browse.d.ts +123 -0
  36. package/generated/monster-drop-browse.validator.js +17 -0
  37. package/generated/monster-location-browse-1-1.d.ts +79 -0
  38. package/generated/monster-location-browse-1-1.validator.js +17 -0
  39. package/generated/monster-location-browse.d.ts +69 -0
  40. package/generated/monster-location-browse.validator.js +17 -0
  41. package/generated/product-manifest.d.ts +23 -0
  42. package/generated/product-manifest.validator.js +1 -1
  43. package/package.json +40 -2
@@ -1 +1 @@
1
- "use strict";export const validate = validate20;export default validate20;const schema31 = {"$defs":{"BuildScope":{"description":"Build scope specifying the game family and concrete build identity.","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"],"type":"object"},"Coverage":{"description":"Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).","oneOf":[{"const":"complete","description":"100% of upstream source records represented.","type":"string"},{"const":"partial","description":"Bounded or deliberate subset.","type":"string"},{"const":"unknown","description":"Upstream source completeness cannot be certified.","type":"string"},{"const":"unsupported","description":"Domain or capability not provided by upstream.","type":"string"}]},"PackDescriptor":{"description":"Pack descriptor describing a bounded ordinary JSON file in product manifests.","properties":{"byteLength":{"description":"Uncompressed file byte length.","format":"uint64","maximum":9007199254740991,"minimum":0,"type":"integer"},"count":{"description":"Number of records contained in this pack.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"firstKey":{"description":"Inclusive first key in the pack.","type":"string"},"lastKey":{"description":"Inclusive last key in the pack.","type":"string"},"path":{"description":"Normalized relative POSIX path.","type":"string"},"sha256":{"description":"SHA-256 digest of the pack bytes.","type":"string"}},"required":["path","sha256","byteLength","count","firstKey","lastKey"],"type":"object"},"PackSizePolicy":{"description":"Tunable packing sizing policy for physical pack files.\n\nPack sizing is an implementation and physical-layout performance policy, not a public wire-contract property.","properties":{"maxBytes":{"description":"Maximum allowable uncompressed byte size for any pack (default: 1 MiB).","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"targetBytes":{"description":"Target uncompressed byte size before flushing a pack (default: 512 KiB).","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["targetBytes","maxBytes"],"type":"object"},"PageDescriptor":{"description":"Page descriptor for paged relationship or evidence records.","properties":{"count":{"description":"Number of items in this page.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"recordKey":{"description":"Bounded record key for direct fetch.","type":"string"},"recordKind":{"description":"Record kind ('relationships' or 'evidence').","type":"string"}},"required":["recordKind","recordKey","count"],"type":"object"},"ProductIdentityMetadata":{"description":"Product-input identity metadata carried only by the new local-D product envelope.","properties":{"identityFormat":{"type":"string"},"inputFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"optionsFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"producerFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"productDigest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"productId":{"pattern":"^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$","type":"string"},"projectionRevision":{"type":"string"},"schemaFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"semanticFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"}},"required":["identityFormat","productId","inputFingerprint","semanticFingerprint","schemaFingerprint","producerFingerprint","optionsFingerprint","projectionRevision","productDigest"],"type":"object"}},"$schema":"https://json-schema.org/draft/2020-12/schema","description":"Product manifest describing published packs and catalog ('product.json').","properties":{"browsePacks":{"description":"Bounded browse packs with non-overlapping sorted key ranges.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"catalog":{"$ref":"#/$defs/PackDescriptor","description":"Catalog descriptor."},"contractVersion":{"description":"Wire contract version ('major.minor').","pattern":"^(1\\.(0|[1-9][0-9]*)|2\\.0)$","type":"string"},"coreEvidencePages":{"description":"Product-scoped evidence pages whose source occurrence has no Monster owner.","items":{"$ref":"#/$defs/PageDescriptor"},"type":"array"},"coreRelationshipPacks":{"description":"Lazy contract-2.0 core relationship pages.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"coverage":{"$ref":"#/$defs/Coverage","description":"Product completeness coverage."},"detailPacks":{"description":"Bounded detail packs with non-overlapping sorted key ranges.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"evidencePacks":{"description":"Optional bounded evidence packs for oversized drop/Quest collections.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"format":{"const":"mapletip.product-manifest","description":"Format identifier ('mapletip.product-manifest').","type":"string"},"identity":{"anyOf":[{"$ref":"#/$defs/ProductIdentityMetadata"},{"type":"null"}],"description":"Optional product-input identity metadata (required for local-D identity products)."},"packGzipTargetBytes":{"description":"Contract-2.0 gzip-6 encoded target used to fill each record pack.","format":"uint","minimum":0,"type":["integer","null"]},"packingPolicy":{"$ref":"#/$defs/PackSizePolicy","description":"Effective packing sizing policy used for generation."},"productId":{"description":"Product identifier ('monsters').","type":"string"},"relationshipPacks":{"description":"Bounded relationship packs with non-overlapping sorted key ranges.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"requiredClientCapabilities":{"description":"Capabilities a client must understand before consuming this product.","items":{"type":"string"},"type":"array"},"scope":{"$ref":"#/$defs/BuildScope","description":"Build scope."},"totalEntityCount":{"description":"Total entity count across all packs.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["format","contractVersion","scope","productId","coverage","packingPolicy","catalog","detailPacks","relationshipPacks","totalEntityCount"],"title":"ConnectedProductManifest","type":"object"};const schema32 = {"description":"Pack descriptor describing a bounded ordinary JSON file in product manifests.","properties":{"byteLength":{"description":"Uncompressed file byte length.","format":"uint64","maximum":9007199254740991,"minimum":0,"type":"integer"},"count":{"description":"Number of records contained in this pack.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"firstKey":{"description":"Inclusive first key in the pack.","type":"string"},"lastKey":{"description":"Inclusive last key in the pack.","type":"string"},"path":{"description":"Normalized relative POSIX path.","type":"string"},"sha256":{"description":"SHA-256 digest of the pack bytes.","type":"string"}},"required":["path","sha256","byteLength","count","firstKey","lastKey"],"type":"object"};const schema34 = {"description":"Page descriptor for paged relationship or evidence records.","properties":{"count":{"description":"Number of items in this page.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"recordKey":{"description":"Bounded record key for direct fetch.","type":"string"},"recordKind":{"description":"Record kind ('relationships' or 'evidence').","type":"string"}},"required":["recordKind","recordKey","count"],"type":"object"};const schema36 = {"description":"Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).","oneOf":[{"const":"complete","description":"100% of upstream source records represented.","type":"string"},{"const":"partial","description":"Bounded or deliberate subset.","type":"string"},{"const":"unknown","description":"Upstream source completeness cannot be certified.","type":"string"},{"const":"unsupported","description":"Domain or capability not provided by upstream.","type":"string"}]};const schema39 = {"description":"Product-input identity metadata carried only by the new local-D product envelope.","properties":{"identityFormat":{"type":"string"},"inputFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"optionsFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"producerFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"productDigest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"productId":{"pattern":"^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$","type":"string"},"projectionRevision":{"type":"string"},"schemaFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"semanticFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"}},"required":["identityFormat","productId","inputFingerprint","semanticFingerprint","schemaFingerprint","producerFingerprint","optionsFingerprint","projectionRevision","productDigest"],"type":"object"};const schema40 = {"description":"Tunable packing sizing policy for physical pack files.\n\nPack sizing is an implementation and physical-layout performance policy, not a public wire-contract property.","properties":{"maxBytes":{"description":"Maximum allowable uncompressed byte size for any pack (default: 1 MiB).","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"targetBytes":{"description":"Target uncompressed byte size before flushing a pack (default: 512 KiB).","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["targetBytes","maxBytes"],"type":"object"};const schema42 = {"description":"Build scope specifying the game family and concrete build identity.","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"],"type":"object"};const pattern4 = new RegExp("^(1\\.(0|[1-9][0-9]*)|2\\.0)$", "u");const pattern5 = new RegExp("^[0-9a-f]{64}$", "u");const pattern9 = new RegExp("^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$", "u");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.productId === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "productId"},message:"must have required property '"+"productId"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.coverage === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "coverage"},message:"must have required property '"+"coverage"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.packingPolicy === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "packingPolicy"},message:"must have required property '"+"packingPolicy"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.catalog === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "catalog"},message:"must have required property '"+"catalog"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.detailPacks === undefined){const err7 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "detailPacks"},message:"must have required property '"+"detailPacks"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.relationshipPacks === undefined){const err8 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "relationshipPacks"},message:"must have required property '"+"relationshipPacks"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.totalEntityCount === undefined){const err9 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "totalEntityCount"},message:"must have required property '"+"totalEntityCount"+"'"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(data.browsePacks !== undefined){let data0 = data.browsePacks;if(Array.isArray(data0)){const len0 = data0.length;for(let i0=0; i0<len0; i0++){let data1 = data0[i0];if(data1 && typeof data1 == "object" && !Array.isArray(data1)){if(data1.path === undefined){const err10 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(data1.sha256 === undefined){const err11 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(data1.byteLength === undefined){const err12 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(data1.count === undefined){const err13 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(data1.firstKey === undefined){const err14 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}if(data1.lastKey === undefined){const err15 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(data1.byteLength !== undefined){let data2 = data1.byteLength;if(!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))){const err16 = {instancePath:instancePath+"/browsePacks/" + i0+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 9007199254740991 || isNaN(data2)){const err17 = {instancePath:instancePath+"/browsePacks/" + i0+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}if(data2 < 0 || isNaN(data2)){const err18 = {instancePath:instancePath+"/browsePacks/" + i0+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}if(data1.count !== undefined){let data3 = data1.count;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){const err19 = {instancePath:instancePath+"/browsePacks/" + i0+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 9007199254740991 || isNaN(data3)){const err20 = {instancePath:instancePath+"/browsePacks/" + i0+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(data3 < 0 || isNaN(data3)){const err21 = {instancePath:instancePath+"/browsePacks/" + i0+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}if(data1.firstKey !== undefined){if(typeof data1.firstKey !== "string"){const err22 = {instancePath:instancePath+"/browsePacks/" + i0+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data1.lastKey !== undefined){if(typeof data1.lastKey !== "string"){const err23 = {instancePath:instancePath+"/browsePacks/" + i0+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data1.path !== undefined){if(typeof data1.path !== "string"){const err24 = {instancePath:instancePath+"/browsePacks/" + i0+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data1.sha256 !== undefined){if(typeof data1.sha256 !== "string"){const err25 = {instancePath:instancePath+"/browsePacks/" + i0+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}}else {const err26 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/browsePacks",schemaPath:"#/properties/browsePacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data.catalog !== undefined){let data8 = data.catalog;if(data8 && typeof data8 == "object" && !Array.isArray(data8)){if(data8.path === undefined){const err28 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(data8.sha256 === undefined){const err29 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(data8.byteLength === undefined){const err30 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(data8.count === undefined){const err31 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if(data8.firstKey === undefined){const err32 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}if(data8.lastKey === undefined){const err33 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(data8.byteLength !== undefined){let data9 = data8.byteLength;if(!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err34 = {instancePath:instancePath+"/catalog/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}if((typeof data9 == "number") && (isFinite(data9))){if(data9 > 9007199254740991 || isNaN(data9)){const err35 = {instancePath:instancePath+"/catalog/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(data9 < 0 || isNaN(data9)){const err36 = {instancePath:instancePath+"/catalog/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}}if(data8.count !== undefined){let data10 = data8.count;if(!(((typeof data10 == "number") && (!(data10 % 1) && !isNaN(data10))) && (isFinite(data10)))){const err37 = {instancePath:instancePath+"/catalog/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}if((typeof data10 == "number") && (isFinite(data10))){if(data10 > 9007199254740991 || isNaN(data10)){const err38 = {instancePath:instancePath+"/catalog/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}if(data10 < 0 || isNaN(data10)){const err39 = {instancePath:instancePath+"/catalog/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}}if(data8.firstKey !== undefined){if(typeof data8.firstKey !== "string"){const err40 = {instancePath:instancePath+"/catalog/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}if(data8.lastKey !== undefined){if(typeof data8.lastKey !== "string"){const err41 = {instancePath:instancePath+"/catalog/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data8.path !== undefined){if(typeof data8.path !== "string"){const err42 = {instancePath:instancePath+"/catalog/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data8.sha256 !== undefined){if(typeof data8.sha256 !== "string"){const err43 = {instancePath:instancePath+"/catalog/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}}else {const err44 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}if(data.contractVersion !== undefined){let data15 = data.contractVersion;if(typeof data15 === "string"){if(!pattern4.test(data15)){const err45 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/pattern",keyword:"pattern",params:{pattern: "^(1\\.(0|[1-9][0-9]*)|2\\.0)$"},message:"must match pattern \""+"^(1\\.(0|[1-9][0-9]*)|2\\.0)$"+"\""};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}else {const err46 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}if(data.coreEvidencePages !== undefined){let data16 = data.coreEvidencePages;if(Array.isArray(data16)){const len1 = data16.length;for(let i1=0; i1<len1; i1++){let data17 = data16[i1];if(data17 && typeof data17 == "object" && !Array.isArray(data17)){if(data17.recordKind === undefined){const err47 = {instancePath:instancePath+"/coreEvidencePages/" + i1,schemaPath:"#/$defs/PageDescriptor/required",keyword:"required",params:{missingProperty: "recordKind"},message:"must have required property '"+"recordKind"+"'"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}if(data17.recordKey === undefined){const err48 = {instancePath:instancePath+"/coreEvidencePages/" + i1,schemaPath:"#/$defs/PageDescriptor/required",keyword:"required",params:{missingProperty: "recordKey"},message:"must have required property '"+"recordKey"+"'"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}if(data17.count === undefined){const err49 = {instancePath:instancePath+"/coreEvidencePages/" + i1,schemaPath:"#/$defs/PageDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if(data17.count !== undefined){let data18 = data17.count;if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){const err50 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/count",schemaPath:"#/$defs/PageDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}if((typeof data18 == "number") && (isFinite(data18))){if(data18 > 9007199254740991 || isNaN(data18)){const err51 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/count",schemaPath:"#/$defs/PageDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}if(data18 < 0 || isNaN(data18)){const err52 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/count",schemaPath:"#/$defs/PageDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}}}if(data17.recordKey !== undefined){if(typeof data17.recordKey !== "string"){const err53 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/recordKey",schemaPath:"#/$defs/PageDescriptor/properties/recordKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}}if(data17.recordKind !== undefined){if(typeof data17.recordKind !== "string"){const err54 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/recordKind",schemaPath:"#/$defs/PageDescriptor/properties/recordKind/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}}}else {const err55 = {instancePath:instancePath+"/coreEvidencePages/" + i1,schemaPath:"#/$defs/PageDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}}}else {const err56 = {instancePath:instancePath+"/coreEvidencePages",schemaPath:"#/properties/coreEvidencePages/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}if(data.coreRelationshipPacks !== undefined){let data21 = data.coreRelationshipPacks;if(Array.isArray(data21)){const len2 = data21.length;for(let i2=0; i2<len2; i2++){let data22 = data21[i2];if(data22 && typeof data22 == "object" && !Array.isArray(data22)){if(data22.path === undefined){const err57 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}if(data22.sha256 === undefined){const err58 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}if(data22.byteLength === undefined){const err59 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}if(data22.count === undefined){const err60 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}if(data22.firstKey === undefined){const err61 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err61];}else {vErrors.push(err61);}errors++;}if(data22.lastKey === undefined){const err62 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;}if(data22.byteLength !== undefined){let data23 = data22.byteLength;if(!(((typeof data23 == "number") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))){const err63 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err63];}else {vErrors.push(err63);}errors++;}if((typeof data23 == "number") && (isFinite(data23))){if(data23 > 9007199254740991 || isNaN(data23)){const err64 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err64];}else {vErrors.push(err64);}errors++;}if(data23 < 0 || isNaN(data23)){const err65 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}}}if(data22.count !== undefined){let data24 = data22.count;if(!(((typeof data24 == "number") && (!(data24 % 1) && !isNaN(data24))) && (isFinite(data24)))){const err66 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}if((typeof data24 == "number") && (isFinite(data24))){if(data24 > 9007199254740991 || isNaN(data24)){const err67 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}if(data24 < 0 || isNaN(data24)){const err68 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}}}if(data22.firstKey !== undefined){if(typeof data22.firstKey !== "string"){const err69 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}}if(data22.lastKey !== undefined){if(typeof data22.lastKey !== "string"){const err70 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}}if(data22.path !== undefined){if(typeof data22.path !== "string"){const err71 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}}if(data22.sha256 !== undefined){if(typeof data22.sha256 !== "string"){const err72 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}}}else {const err73 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}}}else {const err74 = {instancePath:instancePath+"/coreRelationshipPacks",schemaPath:"#/properties/coreRelationshipPacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err74];}else {vErrors.push(err74);}errors++;}}if(data.coverage !== undefined){let data29 = data.coverage;const _errs65 = errors;let valid16 = false;let passing0 = null;const _errs66 = errors;if(typeof data29 !== "string"){const err75 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}if("complete" !== data29){const err76 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/0/const",keyword:"const",params:{allowedValue: "complete"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;}var _valid0 = _errs66 === errors;if(_valid0){valid16 = true;passing0 = 0;}const _errs68 = errors;if(typeof data29 !== "string"){const err77 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/1/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err77];}else {vErrors.push(err77);}errors++;}if("partial" !== data29){const err78 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/1/const",keyword:"const",params:{allowedValue: "partial"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err78];}else {vErrors.push(err78);}errors++;}var _valid0 = _errs68 === errors;if(_valid0 && valid16){valid16 = false;passing0 = [passing0, 1];}else {if(_valid0){valid16 = true;passing0 = 1;}const _errs70 = errors;if(typeof data29 !== "string"){const err79 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/2/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err79];}else {vErrors.push(err79);}errors++;}if("unknown" !== data29){const err80 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/2/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err80];}else {vErrors.push(err80);}errors++;}var _valid0 = _errs70 === errors;if(_valid0 && valid16){valid16 = false;passing0 = [passing0, 2];}else {if(_valid0){valid16 = true;passing0 = 2;}const _errs72 = errors;if(typeof data29 !== "string"){const err81 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/3/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err81];}else {vErrors.push(err81);}errors++;}if("unsupported" !== data29){const err82 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/3/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}var _valid0 = _errs72 === errors;if(_valid0 && valid16){valid16 = false;passing0 = [passing0, 3];}else {if(_valid0){valid16 = true;passing0 = 3;}}}}if(!valid16){const err83 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;}else {errors = _errs65;if(vErrors !== null){if(_errs65){vErrors.length = _errs65;}else {vErrors = null;}}}}if(data.detailPacks !== undefined){let data30 = data.detailPacks;if(Array.isArray(data30)){const len3 = data30.length;for(let i3=0; i3<len3; i3++){let data31 = data30[i3];if(data31 && typeof data31 == "object" && !Array.isArray(data31)){if(data31.path === undefined){const err84 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err84];}else {vErrors.push(err84);}errors++;}if(data31.sha256 === undefined){const err85 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err85];}else {vErrors.push(err85);}errors++;}if(data31.byteLength === undefined){const err86 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err86];}else {vErrors.push(err86);}errors++;}if(data31.count === undefined){const err87 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err87];}else {vErrors.push(err87);}errors++;}if(data31.firstKey === undefined){const err88 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err88];}else {vErrors.push(err88);}errors++;}if(data31.lastKey === undefined){const err89 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err89];}else {vErrors.push(err89);}errors++;}if(data31.byteLength !== undefined){let data32 = data31.byteLength;if(!(((typeof data32 == "number") && (!(data32 % 1) && !isNaN(data32))) && (isFinite(data32)))){const err90 = {instancePath:instancePath+"/detailPacks/" + i3+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err90];}else {vErrors.push(err90);}errors++;}if((typeof data32 == "number") && (isFinite(data32))){if(data32 > 9007199254740991 || isNaN(data32)){const err91 = {instancePath:instancePath+"/detailPacks/" + i3+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err91];}else {vErrors.push(err91);}errors++;}if(data32 < 0 || isNaN(data32)){const err92 = {instancePath:instancePath+"/detailPacks/" + i3+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err92];}else {vErrors.push(err92);}errors++;}}}if(data31.count !== undefined){let data33 = data31.count;if(!(((typeof data33 == "number") && (!(data33 % 1) && !isNaN(data33))) && (isFinite(data33)))){const err93 = {instancePath:instancePath+"/detailPacks/" + i3+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err93];}else {vErrors.push(err93);}errors++;}if((typeof data33 == "number") && (isFinite(data33))){if(data33 > 9007199254740991 || isNaN(data33)){const err94 = {instancePath:instancePath+"/detailPacks/" + i3+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err94];}else {vErrors.push(err94);}errors++;}if(data33 < 0 || isNaN(data33)){const err95 = {instancePath:instancePath+"/detailPacks/" + i3+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err95];}else {vErrors.push(err95);}errors++;}}}if(data31.firstKey !== undefined){if(typeof data31.firstKey !== "string"){const err96 = {instancePath:instancePath+"/detailPacks/" + i3+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err96];}else {vErrors.push(err96);}errors++;}}if(data31.lastKey !== undefined){if(typeof data31.lastKey !== "string"){const err97 = {instancePath:instancePath+"/detailPacks/" + i3+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err97];}else {vErrors.push(err97);}errors++;}}if(data31.path !== undefined){if(typeof data31.path !== "string"){const err98 = {instancePath:instancePath+"/detailPacks/" + i3+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err98];}else {vErrors.push(err98);}errors++;}}if(data31.sha256 !== undefined){if(typeof data31.sha256 !== "string"){const err99 = {instancePath:instancePath+"/detailPacks/" + i3+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err99];}else {vErrors.push(err99);}errors++;}}}else {const err100 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err100];}else {vErrors.push(err100);}errors++;}}}else {const err101 = {instancePath:instancePath+"/detailPacks",schemaPath:"#/properties/detailPacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err101];}else {vErrors.push(err101);}errors++;}}if(data.evidencePacks !== undefined){let data38 = data.evidencePacks;if(Array.isArray(data38)){const len4 = data38.length;for(let i4=0; i4<len4; i4++){let data39 = data38[i4];if(data39 && typeof data39 == "object" && !Array.isArray(data39)){if(data39.path === undefined){const err102 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err102];}else {vErrors.push(err102);}errors++;}if(data39.sha256 === undefined){const err103 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err103];}else {vErrors.push(err103);}errors++;}if(data39.byteLength === undefined){const err104 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err104];}else {vErrors.push(err104);}errors++;}if(data39.count === undefined){const err105 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err105];}else {vErrors.push(err105);}errors++;}if(data39.firstKey === undefined){const err106 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err106];}else {vErrors.push(err106);}errors++;}if(data39.lastKey === undefined){const err107 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err107];}else {vErrors.push(err107);}errors++;}if(data39.byteLength !== undefined){let data40 = data39.byteLength;if(!(((typeof data40 == "number") && (!(data40 % 1) && !isNaN(data40))) && (isFinite(data40)))){const err108 = {instancePath:instancePath+"/evidencePacks/" + i4+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err108];}else {vErrors.push(err108);}errors++;}if((typeof data40 == "number") && (isFinite(data40))){if(data40 > 9007199254740991 || isNaN(data40)){const err109 = {instancePath:instancePath+"/evidencePacks/" + i4+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err109];}else {vErrors.push(err109);}errors++;}if(data40 < 0 || isNaN(data40)){const err110 = {instancePath:instancePath+"/evidencePacks/" + i4+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err110];}else {vErrors.push(err110);}errors++;}}}if(data39.count !== undefined){let data41 = data39.count;if(!(((typeof data41 == "number") && (!(data41 % 1) && !isNaN(data41))) && (isFinite(data41)))){const err111 = {instancePath:instancePath+"/evidencePacks/" + i4+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err111];}else {vErrors.push(err111);}errors++;}if((typeof data41 == "number") && (isFinite(data41))){if(data41 > 9007199254740991 || isNaN(data41)){const err112 = {instancePath:instancePath+"/evidencePacks/" + i4+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err112];}else {vErrors.push(err112);}errors++;}if(data41 < 0 || isNaN(data41)){const err113 = {instancePath:instancePath+"/evidencePacks/" + i4+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err113];}else {vErrors.push(err113);}errors++;}}}if(data39.firstKey !== undefined){if(typeof data39.firstKey !== "string"){const err114 = {instancePath:instancePath+"/evidencePacks/" + i4+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err114];}else {vErrors.push(err114);}errors++;}}if(data39.lastKey !== undefined){if(typeof data39.lastKey !== "string"){const err115 = {instancePath:instancePath+"/evidencePacks/" + i4+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err115];}else {vErrors.push(err115);}errors++;}}if(data39.path !== undefined){if(typeof data39.path !== "string"){const err116 = {instancePath:instancePath+"/evidencePacks/" + i4+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err116];}else {vErrors.push(err116);}errors++;}}if(data39.sha256 !== undefined){if(typeof data39.sha256 !== "string"){const err117 = {instancePath:instancePath+"/evidencePacks/" + i4+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err117];}else {vErrors.push(err117);}errors++;}}}else {const err118 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err118];}else {vErrors.push(err118);}errors++;}}}else {const err119 = {instancePath:instancePath+"/evidencePacks",schemaPath:"#/properties/evidencePacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err119];}else {vErrors.push(err119);}errors++;}}if(data.format !== undefined){let data46 = data.format;if(typeof data46 !== "string"){const err120 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err120];}else {vErrors.push(err120);}errors++;}if("mapletip.product-manifest" !== data46){const err121 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/const",keyword:"const",params:{allowedValue: "mapletip.product-manifest"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err121];}else {vErrors.push(err121);}errors++;}}if(data.identity !== undefined){let data47 = data.identity;const _errs111 = errors;let valid25 = false;const _errs112 = errors;if(data47 && typeof data47 == "object" && !Array.isArray(data47)){if(data47.identityFormat === undefined){const err122 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "identityFormat"},message:"must have required property '"+"identityFormat"+"'"};if(vErrors === null){vErrors = [err122];}else {vErrors.push(err122);}errors++;}if(data47.productId === undefined){const err123 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "productId"},message:"must have required property '"+"productId"+"'"};if(vErrors === null){vErrors = [err123];}else {vErrors.push(err123);}errors++;}if(data47.inputFingerprint === undefined){const err124 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "inputFingerprint"},message:"must have required property '"+"inputFingerprint"+"'"};if(vErrors === null){vErrors = [err124];}else {vErrors.push(err124);}errors++;}if(data47.semanticFingerprint === undefined){const err125 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "semanticFingerprint"},message:"must have required property '"+"semanticFingerprint"+"'"};if(vErrors === null){vErrors = [err125];}else {vErrors.push(err125);}errors++;}if(data47.schemaFingerprint === undefined){const err126 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "schemaFingerprint"},message:"must have required property '"+"schemaFingerprint"+"'"};if(vErrors === null){vErrors = [err126];}else {vErrors.push(err126);}errors++;}if(data47.producerFingerprint === undefined){const err127 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "producerFingerprint"},message:"must have required property '"+"producerFingerprint"+"'"};if(vErrors === null){vErrors = [err127];}else {vErrors.push(err127);}errors++;}if(data47.optionsFingerprint === undefined){const err128 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "optionsFingerprint"},message:"must have required property '"+"optionsFingerprint"+"'"};if(vErrors === null){vErrors = [err128];}else {vErrors.push(err128);}errors++;}if(data47.projectionRevision === undefined){const err129 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "projectionRevision"},message:"must have required property '"+"projectionRevision"+"'"};if(vErrors === null){vErrors = [err129];}else {vErrors.push(err129);}errors++;}if(data47.productDigest === undefined){const err130 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "productDigest"},message:"must have required property '"+"productDigest"+"'"};if(vErrors === null){vErrors = [err130];}else {vErrors.push(err130);}errors++;}if(data47.identityFormat !== undefined){if(typeof data47.identityFormat !== "string"){const err131 = {instancePath:instancePath+"/identity/identityFormat",schemaPath:"#/$defs/ProductIdentityMetadata/properties/identityFormat/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err131];}else {vErrors.push(err131);}errors++;}}if(data47.inputFingerprint !== undefined){let data49 = data47.inputFingerprint;if(typeof data49 === "string"){if(!pattern5.test(data49)){const err132 = {instancePath:instancePath+"/identity/inputFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/inputFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err132];}else {vErrors.push(err132);}errors++;}}else {const err133 = {instancePath:instancePath+"/identity/inputFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/inputFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err133];}else {vErrors.push(err133);}errors++;}}if(data47.optionsFingerprint !== undefined){let data50 = data47.optionsFingerprint;if(typeof data50 === "string"){if(!pattern5.test(data50)){const err134 = {instancePath:instancePath+"/identity/optionsFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/optionsFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err134];}else {vErrors.push(err134);}errors++;}}else {const err135 = {instancePath:instancePath+"/identity/optionsFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/optionsFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err135];}else {vErrors.push(err135);}errors++;}}if(data47.producerFingerprint !== undefined){let data51 = data47.producerFingerprint;if(typeof data51 === "string"){if(!pattern5.test(data51)){const err136 = {instancePath:instancePath+"/identity/producerFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/producerFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err136];}else {vErrors.push(err136);}errors++;}}else {const err137 = {instancePath:instancePath+"/identity/producerFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/producerFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err137];}else {vErrors.push(err137);}errors++;}}if(data47.productDigest !== undefined){let data52 = data47.productDigest;if(typeof data52 === "string"){if(!pattern5.test(data52)){const err138 = {instancePath:instancePath+"/identity/productDigest",schemaPath:"#/$defs/ProductIdentityMetadata/properties/productDigest/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err138];}else {vErrors.push(err138);}errors++;}}else {const err139 = {instancePath:instancePath+"/identity/productDigest",schemaPath:"#/$defs/ProductIdentityMetadata/properties/productDigest/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err139];}else {vErrors.push(err139);}errors++;}}if(data47.productId !== undefined){let data53 = data47.productId;if(typeof data53 === "string"){if(!pattern9.test(data53)){const err140 = {instancePath:instancePath+"/identity/productId",schemaPath:"#/$defs/ProductIdentityMetadata/properties/productId/pattern",keyword:"pattern",params:{pattern: "^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$"},message:"must match pattern \""+"^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err140];}else {vErrors.push(err140);}errors++;}}else {const err141 = {instancePath:instancePath+"/identity/productId",schemaPath:"#/$defs/ProductIdentityMetadata/properties/productId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err141];}else {vErrors.push(err141);}errors++;}}if(data47.projectionRevision !== undefined){if(typeof data47.projectionRevision !== "string"){const err142 = {instancePath:instancePath+"/identity/projectionRevision",schemaPath:"#/$defs/ProductIdentityMetadata/properties/projectionRevision/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err142];}else {vErrors.push(err142);}errors++;}}if(data47.schemaFingerprint !== undefined){let data55 = data47.schemaFingerprint;if(typeof data55 === "string"){if(!pattern5.test(data55)){const err143 = {instancePath:instancePath+"/identity/schemaFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/schemaFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err143];}else {vErrors.push(err143);}errors++;}}else {const err144 = {instancePath:instancePath+"/identity/schemaFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/schemaFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err144];}else {vErrors.push(err144);}errors++;}}if(data47.semanticFingerprint !== undefined){let data56 = data47.semanticFingerprint;if(typeof data56 === "string"){if(!pattern5.test(data56)){const err145 = {instancePath:instancePath+"/identity/semanticFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/semanticFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err145];}else {vErrors.push(err145);}errors++;}}else {const err146 = {instancePath:instancePath+"/identity/semanticFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/semanticFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err146];}else {vErrors.push(err146);}errors++;}}}else {const err147 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err147];}else {vErrors.push(err147);}errors++;}var _valid1 = _errs112 === errors;valid25 = valid25 || _valid1;if(_valid1){var props0 = {};props0.identityFormat = true;props0.inputFingerprint = true;props0.optionsFingerprint = true;props0.producerFingerprint = true;props0.productDigest = true;props0.productId = true;props0.projectionRevision = true;props0.schemaFingerprint = true;props0.semanticFingerprint = true;}const _errs133 = errors;if(data47 !== null){const err148 = {instancePath:instancePath+"/identity",schemaPath:"#/properties/identity/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err148];}else {vErrors.push(err148);}errors++;}var _valid1 = _errs133 === errors;valid25 = valid25 || _valid1;if(!valid25){const err149 = {instancePath:instancePath+"/identity",schemaPath:"#/properties/identity/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err149];}else {vErrors.push(err149);}errors++;}else {errors = _errs111;if(vErrors !== null){if(_errs111){vErrors.length = _errs111;}else {vErrors = null;}}}}if(data.packGzipTargetBytes !== undefined){let data57 = data.packGzipTargetBytes;if((!(((typeof data57 == "number") && (!(data57 % 1) && !isNaN(data57))) && (isFinite(data57)))) && (data57 !== null)){const err150 = {instancePath:instancePath+"/packGzipTargetBytes",schemaPath:"#/properties/packGzipTargetBytes/type",keyword:"type",params:{type: schema31.properties.packGzipTargetBytes.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err150];}else {vErrors.push(err150);}errors++;}if((typeof data57 == "number") && (isFinite(data57))){if(data57 < 0 || isNaN(data57)){const err151 = {instancePath:instancePath+"/packGzipTargetBytes",schemaPath:"#/properties/packGzipTargetBytes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err151];}else {vErrors.push(err151);}errors++;}}}if(data.packingPolicy !== undefined){let data58 = data.packingPolicy;if(data58 && typeof data58 == "object" && !Array.isArray(data58)){if(data58.targetBytes === undefined){const err152 = {instancePath:instancePath+"/packingPolicy",schemaPath:"#/$defs/PackSizePolicy/required",keyword:"required",params:{missingProperty: "targetBytes"},message:"must have required property '"+"targetBytes"+"'"};if(vErrors === null){vErrors = [err152];}else {vErrors.push(err152);}errors++;}if(data58.maxBytes === undefined){const err153 = {instancePath:instancePath+"/packingPolicy",schemaPath:"#/$defs/PackSizePolicy/required",keyword:"required",params:{missingProperty: "maxBytes"},message:"must have required property '"+"maxBytes"+"'"};if(vErrors === null){vErrors = [err153];}else {vErrors.push(err153);}errors++;}if(data58.maxBytes !== undefined){let data59 = data58.maxBytes;if(!(((typeof data59 == "number") && (!(data59 % 1) && !isNaN(data59))) && (isFinite(data59)))){const err154 = {instancePath:instancePath+"/packingPolicy/maxBytes",schemaPath:"#/$defs/PackSizePolicy/properties/maxBytes/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err154];}else {vErrors.push(err154);}errors++;}if((typeof data59 == "number") && (isFinite(data59))){if(data59 > 9007199254740991 || isNaN(data59)){const err155 = {instancePath:instancePath+"/packingPolicy/maxBytes",schemaPath:"#/$defs/PackSizePolicy/properties/maxBytes/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err155];}else {vErrors.push(err155);}errors++;}if(data59 < 0 || isNaN(data59)){const err156 = {instancePath:instancePath+"/packingPolicy/maxBytes",schemaPath:"#/$defs/PackSizePolicy/properties/maxBytes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err156];}else {vErrors.push(err156);}errors++;}}}if(data58.targetBytes !== undefined){let data60 = data58.targetBytes;if(!(((typeof data60 == "number") && (!(data60 % 1) && !isNaN(data60))) && (isFinite(data60)))){const err157 = {instancePath:instancePath+"/packingPolicy/targetBytes",schemaPath:"#/$defs/PackSizePolicy/properties/targetBytes/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err157];}else {vErrors.push(err157);}errors++;}if((typeof data60 == "number") && (isFinite(data60))){if(data60 > 9007199254740991 || isNaN(data60)){const err158 = {instancePath:instancePath+"/packingPolicy/targetBytes",schemaPath:"#/$defs/PackSizePolicy/properties/targetBytes/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err158];}else {vErrors.push(err158);}errors++;}if(data60 < 0 || isNaN(data60)){const err159 = {instancePath:instancePath+"/packingPolicy/targetBytes",schemaPath:"#/$defs/PackSizePolicy/properties/targetBytes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err159];}else {vErrors.push(err159);}errors++;}}}}else {const err160 = {instancePath:instancePath+"/packingPolicy",schemaPath:"#/$defs/PackSizePolicy/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err160];}else {vErrors.push(err160);}errors++;}}if(data.productId !== undefined){if(typeof data.productId !== "string"){const err161 = {instancePath:instancePath+"/productId",schemaPath:"#/properties/productId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err161];}else {vErrors.push(err161);}errors++;}}if(data.relationshipPacks !== undefined){let data62 = data.relationshipPacks;if(Array.isArray(data62)){const len5 = data62.length;for(let i5=0; i5<len5; i5++){let data63 = data62[i5];if(data63 && typeof data63 == "object" && !Array.isArray(data63)){if(data63.path === undefined){const err162 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err162];}else {vErrors.push(err162);}errors++;}if(data63.sha256 === undefined){const err163 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err163];}else {vErrors.push(err163);}errors++;}if(data63.byteLength === undefined){const err164 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err164];}else {vErrors.push(err164);}errors++;}if(data63.count === undefined){const err165 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err165];}else {vErrors.push(err165);}errors++;}if(data63.firstKey === undefined){const err166 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err166];}else {vErrors.push(err166);}errors++;}if(data63.lastKey === undefined){const err167 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err167];}else {vErrors.push(err167);}errors++;}if(data63.byteLength !== undefined){let data64 = data63.byteLength;if(!(((typeof data64 == "number") && (!(data64 % 1) && !isNaN(data64))) && (isFinite(data64)))){const err168 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err168];}else {vErrors.push(err168);}errors++;}if((typeof data64 == "number") && (isFinite(data64))){if(data64 > 9007199254740991 || isNaN(data64)){const err169 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err169];}else {vErrors.push(err169);}errors++;}if(data64 < 0 || isNaN(data64)){const err170 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err170];}else {vErrors.push(err170);}errors++;}}}if(data63.count !== undefined){let data65 = data63.count;if(!(((typeof data65 == "number") && (!(data65 % 1) && !isNaN(data65))) && (isFinite(data65)))){const err171 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err171];}else {vErrors.push(err171);}errors++;}if((typeof data65 == "number") && (isFinite(data65))){if(data65 > 9007199254740991 || isNaN(data65)){const err172 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err172];}else {vErrors.push(err172);}errors++;}if(data65 < 0 || isNaN(data65)){const err173 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err173];}else {vErrors.push(err173);}errors++;}}}if(data63.firstKey !== undefined){if(typeof data63.firstKey !== "string"){const err174 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err174];}else {vErrors.push(err174);}errors++;}}if(data63.lastKey !== undefined){if(typeof data63.lastKey !== "string"){const err175 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err175];}else {vErrors.push(err175);}errors++;}}if(data63.path !== undefined){if(typeof data63.path !== "string"){const err176 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err176];}else {vErrors.push(err176);}errors++;}}if(data63.sha256 !== undefined){if(typeof data63.sha256 !== "string"){const err177 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err177];}else {vErrors.push(err177);}errors++;}}}else {const err178 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err178];}else {vErrors.push(err178);}errors++;}}}else {const err179 = {instancePath:instancePath+"/relationshipPacks",schemaPath:"#/properties/relationshipPacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err179];}else {vErrors.push(err179);}errors++;}}if(data.requiredClientCapabilities !== undefined){let data70 = data.requiredClientCapabilities;if(Array.isArray(data70)){const len6 = data70.length;for(let i6=0; i6<len6; i6++){if(typeof data70[i6] !== "string"){const err180 = {instancePath:instancePath+"/requiredClientCapabilities/" + i6,schemaPath:"#/properties/requiredClientCapabilities/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err180];}else {vErrors.push(err180);}errors++;}}}else {const err181 = {instancePath:instancePath+"/requiredClientCapabilities",schemaPath:"#/properties/requiredClientCapabilities/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err181];}else {vErrors.push(err181);}errors++;}}if(data.scope !== undefined){let data72 = data.scope;if(data72 && typeof data72 == "object" && !Array.isArray(data72)){if(data72.family_id === undefined){const err182 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "family_id"},message:"must have required property '"+"family_id"+"'"};if(vErrors === null){vErrors = [err182];}else {vErrors.push(err182);}errors++;}if(data72.build_id === undefined){const err183 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "build_id"},message:"must have required property '"+"build_id"+"'"};if(vErrors === null){vErrors = [err183];}else {vErrors.push(err183);}errors++;}if(data72.build_id !== undefined){if(typeof data72.build_id !== "string"){const err184 = {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 = [err184];}else {vErrors.push(err184);}errors++;}}if(data72.family_id !== undefined){if(typeof data72.family_id !== "string"){const err185 = {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 = [err185];}else {vErrors.push(err185);}errors++;}}}else {const err186 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err186];}else {vErrors.push(err186);}errors++;}}if(data.totalEntityCount !== undefined){let data75 = data.totalEntityCount;if(!(((typeof data75 == "number") && (!(data75 % 1) && !isNaN(data75))) && (isFinite(data75)))){const err187 = {instancePath:instancePath+"/totalEntityCount",schemaPath:"#/properties/totalEntityCount/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err187];}else {vErrors.push(err187);}errors++;}if((typeof data75 == "number") && (isFinite(data75))){if(data75 > 9007199254740991 || isNaN(data75)){const err188 = {instancePath:instancePath+"/totalEntityCount",schemaPath:"#/properties/totalEntityCount/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err188];}else {vErrors.push(err188);}errors++;}if(data75 < 0 || isNaN(data75)){const err189 = {instancePath:instancePath+"/totalEntityCount",schemaPath:"#/properties/totalEntityCount/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err189];}else {vErrors.push(err189);}errors++;}}}}else {const err190 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err190];}else {vErrors.push(err190);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":{"browsePacks":true,"catalog":true,"contractVersion":true,"coreEvidencePages":true,"coreRelationshipPacks":true,"coverage":true,"detailPacks":true,"evidencePacks":true,"format":true,"identity":true,"packGzipTargetBytes":true,"packingPolicy":true,"productId":true,"relationshipPacks":true,"requiredClientCapabilities":true,"scope":true,"totalEntityCount":true},"dynamicProps":false,"dynamicItems":false};
1
+ "use strict";export const validate = validate20;export default validate20;const schema31 = {"$defs":{"BuildScope":{"description":"Build scope specifying the game family and concrete build identity.","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"],"type":"object"},"Coverage":{"description":"Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).","oneOf":[{"const":"complete","description":"100% of upstream source records represented.","type":"string"},{"const":"partial","description":"Bounded or deliberate subset.","type":"string"},{"const":"unknown","description":"Upstream source completeness cannot be certified.","type":"string"},{"const":"unsupported","description":"Domain or capability not provided by upstream.","type":"string"}]},"MapGeographyDescriptor":{"additionalProperties":false,"properties":{"byteLength":{"format":"uint64","minimum":0,"type":"integer"},"path":{"type":"string"},"sha256":{"type":"string"}},"required":["path","sha256","byteLength"],"type":"object"},"PackDescriptor":{"description":"Pack descriptor describing a bounded ordinary JSON file in product manifests.","properties":{"byteLength":{"description":"Uncompressed file byte length.","format":"uint64","maximum":9007199254740991,"minimum":0,"type":"integer"},"count":{"description":"Number of records contained in this pack.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"firstKey":{"description":"Inclusive first key in the pack.","type":"string"},"lastKey":{"description":"Inclusive last key in the pack.","type":"string"},"path":{"description":"Normalized relative POSIX path.","type":"string"},"sha256":{"description":"SHA-256 digest of the pack bytes.","type":"string"}},"required":["path","sha256","byteLength","count","firstKey","lastKey"],"type":"object"},"PackSizePolicy":{"description":"Tunable packing sizing policy for physical pack files.\n\nPack sizing is an implementation and physical-layout performance policy, not a public wire-contract property.","properties":{"maxBytes":{"description":"Maximum allowable uncompressed byte size for any pack (default: 1 MiB).","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"targetBytes":{"description":"Target uncompressed byte size before flushing a pack (default: 512 KiB).","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["targetBytes","maxBytes"],"type":"object"},"PageDescriptor":{"description":"Page descriptor for paged relationship or evidence records.","properties":{"count":{"description":"Number of items in this page.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"recordKey":{"description":"Bounded record key for direct fetch.","type":"string"},"recordKind":{"description":"Record kind ('relationships' or 'evidence').","type":"string"}},"required":["recordKind","recordKey","count"],"type":"object"},"ProductIdentityMetadata":{"description":"Product-input identity metadata carried only by the new local-D product envelope.","properties":{"identityFormat":{"type":"string"},"inputFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"optionsFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"producerFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"productDigest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"productId":{"pattern":"^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$","type":"string"},"projectionRevision":{"type":"string"},"schemaFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"semanticFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"}},"required":["identityFormat","productId","inputFingerprint","semanticFingerprint","schemaFingerprint","producerFingerprint","optionsFingerprint","projectionRevision","productDigest"],"type":"object"}},"$schema":"https://json-schema.org/draft/2020-12/schema","description":"Product manifest describing published packs and catalog ('product.json').","properties":{"browsePacks":{"description":"Bounded browse packs with non-overlapping sorted key ranges.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"catalog":{"$ref":"#/$defs/PackDescriptor","description":"Catalog descriptor."},"contractVersion":{"description":"Wire contract version ('major.minor').","pattern":"^(1\\.(0|[1-9][0-9]*)|2\\.0)$","type":"string"},"coreEvidencePages":{"description":"Product-scoped evidence pages whose source occurrence has no Monster owner.","items":{"$ref":"#/$defs/PageDescriptor"},"type":"array"},"coreRelationshipPacks":{"description":"Lazy contract-2.0 core relationship pages.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"coverage":{"$ref":"#/$defs/Coverage","description":"Product completeness coverage."},"detailPacks":{"description":"Bounded detail packs with non-overlapping sorted key ranges.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"dropBrowse":{"anyOf":[{"$ref":"#/$defs/PackDescriptor"},{"type":"null"}],"description":"Optional build-scoped Monster drop browse artifact."},"evidencePacks":{"description":"Optional bounded evidence packs for oversized drop/Quest collections.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"format":{"const":"mapletip.product-manifest","description":"Format identifier ('mapletip.product-manifest').","type":"string"},"geography":{"anyOf":[{"$ref":"#/$defs/MapGeographyDescriptor"},{"type":"null"}],"description":"Optional build-scoped Map geography model descriptor."},"identity":{"anyOf":[{"$ref":"#/$defs/ProductIdentityMetadata"},{"type":"null"}],"description":"Optional product-input identity metadata (required for local-D identity products)."},"locationBrowse":{"anyOf":[{"$ref":"#/$defs/PackDescriptor"},{"type":"null"}],"description":"Optional build-scoped Monster location browse artifact."},"packGzipTargetBytes":{"description":"Contract-2.0 gzip-6 encoded target used to fill each record pack.","format":"uint","minimum":0,"type":["integer","null"]},"packingPolicy":{"$ref":"#/$defs/PackSizePolicy","description":"Effective packing sizing policy used for generation."},"productId":{"description":"Product identifier ('monsters').","type":"string"},"relatedEntityBrowsePacks":{"additionalProperties":{"$ref":"#/$defs/PackDescriptor"},"description":"Lazy one-per-kind A-compact Items browse relationship rosters.","type":"object"},"relationshipPacks":{"description":"Bounded relationship packs with non-overlapping sorted key ranges.","items":{"$ref":"#/$defs/PackDescriptor"},"type":"array"},"requiredClientCapabilities":{"description":"Capabilities a client must understand before consuming this product.","items":{"type":"string"},"type":"array"},"scope":{"$ref":"#/$defs/BuildScope","description":"Build scope."},"totalEntityCount":{"description":"Total entity count across all packs.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["format","contractVersion","scope","productId","coverage","packingPolicy","catalog","detailPacks","relationshipPacks","totalEntityCount"],"title":"ConnectedProductManifest","type":"object"};const schema32 = {"description":"Pack descriptor describing a bounded ordinary JSON file in product manifests.","properties":{"byteLength":{"description":"Uncompressed file byte length.","format":"uint64","maximum":9007199254740991,"minimum":0,"type":"integer"},"count":{"description":"Number of records contained in this pack.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"firstKey":{"description":"Inclusive first key in the pack.","type":"string"},"lastKey":{"description":"Inclusive last key in the pack.","type":"string"},"path":{"description":"Normalized relative POSIX path.","type":"string"},"sha256":{"description":"SHA-256 digest of the pack bytes.","type":"string"}},"required":["path","sha256","byteLength","count","firstKey","lastKey"],"type":"object"};const schema34 = {"description":"Page descriptor for paged relationship or evidence records.","properties":{"count":{"description":"Number of items in this page.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"recordKey":{"description":"Bounded record key for direct fetch.","type":"string"},"recordKind":{"description":"Record kind ('relationships' or 'evidence').","type":"string"}},"required":["recordKind","recordKey","count"],"type":"object"};const schema36 = {"description":"Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).","oneOf":[{"const":"complete","description":"100% of upstream source records represented.","type":"string"},{"const":"partial","description":"Bounded or deliberate subset.","type":"string"},{"const":"unknown","description":"Upstream source completeness cannot be certified.","type":"string"},{"const":"unsupported","description":"Domain or capability not provided by upstream.","type":"string"}]};const schema40 = {"additionalProperties":false,"properties":{"byteLength":{"format":"uint64","minimum":0,"type":"integer"},"path":{"type":"string"},"sha256":{"type":"string"}},"required":["path","sha256","byteLength"],"type":"object"};const schema41 = {"description":"Product-input identity metadata carried only by the new local-D product envelope.","properties":{"identityFormat":{"type":"string"},"inputFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"optionsFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"producerFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"productDigest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"productId":{"pattern":"^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$","type":"string"},"projectionRevision":{"type":"string"},"schemaFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"semanticFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"}},"required":["identityFormat","productId","inputFingerprint","semanticFingerprint","schemaFingerprint","producerFingerprint","optionsFingerprint","projectionRevision","productDigest"],"type":"object"};const schema43 = {"description":"Tunable packing sizing policy for physical pack files.\n\nPack sizing is an implementation and physical-layout performance policy, not a public wire-contract property.","properties":{"maxBytes":{"description":"Maximum allowable uncompressed byte size for any pack (default: 1 MiB).","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"targetBytes":{"description":"Target uncompressed byte size before flushing a pack (default: 512 KiB).","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["targetBytes","maxBytes"],"type":"object"};const schema46 = {"description":"Build scope specifying the game family and concrete build identity.","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"],"type":"object"};const pattern4 = new RegExp("^(1\\.(0|[1-9][0-9]*)|2\\.0)$", "u");const pattern5 = new RegExp("^[0-9a-f]{64}$", "u");const pattern9 = new RegExp("^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$", "u");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.productId === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "productId"},message:"must have required property '"+"productId"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.coverage === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "coverage"},message:"must have required property '"+"coverage"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.packingPolicy === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "packingPolicy"},message:"must have required property '"+"packingPolicy"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.catalog === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "catalog"},message:"must have required property '"+"catalog"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.detailPacks === undefined){const err7 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "detailPacks"},message:"must have required property '"+"detailPacks"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.relationshipPacks === undefined){const err8 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "relationshipPacks"},message:"must have required property '"+"relationshipPacks"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.totalEntityCount === undefined){const err9 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "totalEntityCount"},message:"must have required property '"+"totalEntityCount"+"'"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(data.browsePacks !== undefined){let data0 = data.browsePacks;if(Array.isArray(data0)){const len0 = data0.length;for(let i0=0; i0<len0; i0++){let data1 = data0[i0];if(data1 && typeof data1 == "object" && !Array.isArray(data1)){if(data1.path === undefined){const err10 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(data1.sha256 === undefined){const err11 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(data1.byteLength === undefined){const err12 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(data1.count === undefined){const err13 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(data1.firstKey === undefined){const err14 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}if(data1.lastKey === undefined){const err15 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(data1.byteLength !== undefined){let data2 = data1.byteLength;if(!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))){const err16 = {instancePath:instancePath+"/browsePacks/" + i0+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 9007199254740991 || isNaN(data2)){const err17 = {instancePath:instancePath+"/browsePacks/" + i0+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}if(data2 < 0 || isNaN(data2)){const err18 = {instancePath:instancePath+"/browsePacks/" + i0+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}if(data1.count !== undefined){let data3 = data1.count;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){const err19 = {instancePath:instancePath+"/browsePacks/" + i0+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 9007199254740991 || isNaN(data3)){const err20 = {instancePath:instancePath+"/browsePacks/" + i0+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(data3 < 0 || isNaN(data3)){const err21 = {instancePath:instancePath+"/browsePacks/" + i0+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}if(data1.firstKey !== undefined){if(typeof data1.firstKey !== "string"){const err22 = {instancePath:instancePath+"/browsePacks/" + i0+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data1.lastKey !== undefined){if(typeof data1.lastKey !== "string"){const err23 = {instancePath:instancePath+"/browsePacks/" + i0+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data1.path !== undefined){if(typeof data1.path !== "string"){const err24 = {instancePath:instancePath+"/browsePacks/" + i0+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data1.sha256 !== undefined){if(typeof data1.sha256 !== "string"){const err25 = {instancePath:instancePath+"/browsePacks/" + i0+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}}else {const err26 = {instancePath:instancePath+"/browsePacks/" + i0,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/browsePacks",schemaPath:"#/properties/browsePacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data.catalog !== undefined){let data8 = data.catalog;if(data8 && typeof data8 == "object" && !Array.isArray(data8)){if(data8.path === undefined){const err28 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if(data8.sha256 === undefined){const err29 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(data8.byteLength === undefined){const err30 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(data8.count === undefined){const err31 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}if(data8.firstKey === undefined){const err32 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}if(data8.lastKey === undefined){const err33 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(data8.byteLength !== undefined){let data9 = data8.byteLength;if(!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){const err34 = {instancePath:instancePath+"/catalog/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}if((typeof data9 == "number") && (isFinite(data9))){if(data9 > 9007199254740991 || isNaN(data9)){const err35 = {instancePath:instancePath+"/catalog/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(data9 < 0 || isNaN(data9)){const err36 = {instancePath:instancePath+"/catalog/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}}if(data8.count !== undefined){let data10 = data8.count;if(!(((typeof data10 == "number") && (!(data10 % 1) && !isNaN(data10))) && (isFinite(data10)))){const err37 = {instancePath:instancePath+"/catalog/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}if((typeof data10 == "number") && (isFinite(data10))){if(data10 > 9007199254740991 || isNaN(data10)){const err38 = {instancePath:instancePath+"/catalog/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}if(data10 < 0 || isNaN(data10)){const err39 = {instancePath:instancePath+"/catalog/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}}if(data8.firstKey !== undefined){if(typeof data8.firstKey !== "string"){const err40 = {instancePath:instancePath+"/catalog/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}if(data8.lastKey !== undefined){if(typeof data8.lastKey !== "string"){const err41 = {instancePath:instancePath+"/catalog/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}if(data8.path !== undefined){if(typeof data8.path !== "string"){const err42 = {instancePath:instancePath+"/catalog/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data8.sha256 !== undefined){if(typeof data8.sha256 !== "string"){const err43 = {instancePath:instancePath+"/catalog/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}}else {const err44 = {instancePath:instancePath+"/catalog",schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}if(data.contractVersion !== undefined){let data15 = data.contractVersion;if(typeof data15 === "string"){if(!pattern4.test(data15)){const err45 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/pattern",keyword:"pattern",params:{pattern: "^(1\\.(0|[1-9][0-9]*)|2\\.0)$"},message:"must match pattern \""+"^(1\\.(0|[1-9][0-9]*)|2\\.0)$"+"\""};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}else {const err46 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}if(data.coreEvidencePages !== undefined){let data16 = data.coreEvidencePages;if(Array.isArray(data16)){const len1 = data16.length;for(let i1=0; i1<len1; i1++){let data17 = data16[i1];if(data17 && typeof data17 == "object" && !Array.isArray(data17)){if(data17.recordKind === undefined){const err47 = {instancePath:instancePath+"/coreEvidencePages/" + i1,schemaPath:"#/$defs/PageDescriptor/required",keyword:"required",params:{missingProperty: "recordKind"},message:"must have required property '"+"recordKind"+"'"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}if(data17.recordKey === undefined){const err48 = {instancePath:instancePath+"/coreEvidencePages/" + i1,schemaPath:"#/$defs/PageDescriptor/required",keyword:"required",params:{missingProperty: "recordKey"},message:"must have required property '"+"recordKey"+"'"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}if(data17.count === undefined){const err49 = {instancePath:instancePath+"/coreEvidencePages/" + i1,schemaPath:"#/$defs/PageDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if(data17.count !== undefined){let data18 = data17.count;if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){const err50 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/count",schemaPath:"#/$defs/PageDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}if((typeof data18 == "number") && (isFinite(data18))){if(data18 > 9007199254740991 || isNaN(data18)){const err51 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/count",schemaPath:"#/$defs/PageDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}if(data18 < 0 || isNaN(data18)){const err52 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/count",schemaPath:"#/$defs/PageDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}}}if(data17.recordKey !== undefined){if(typeof data17.recordKey !== "string"){const err53 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/recordKey",schemaPath:"#/$defs/PageDescriptor/properties/recordKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}}if(data17.recordKind !== undefined){if(typeof data17.recordKind !== "string"){const err54 = {instancePath:instancePath+"/coreEvidencePages/" + i1+"/recordKind",schemaPath:"#/$defs/PageDescriptor/properties/recordKind/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}}}else {const err55 = {instancePath:instancePath+"/coreEvidencePages/" + i1,schemaPath:"#/$defs/PageDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}}}else {const err56 = {instancePath:instancePath+"/coreEvidencePages",schemaPath:"#/properties/coreEvidencePages/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}if(data.coreRelationshipPacks !== undefined){let data21 = data.coreRelationshipPacks;if(Array.isArray(data21)){const len2 = data21.length;for(let i2=0; i2<len2; i2++){let data22 = data21[i2];if(data22 && typeof data22 == "object" && !Array.isArray(data22)){if(data22.path === undefined){const err57 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}if(data22.sha256 === undefined){const err58 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}if(data22.byteLength === undefined){const err59 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}if(data22.count === undefined){const err60 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}if(data22.firstKey === undefined){const err61 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err61];}else {vErrors.push(err61);}errors++;}if(data22.lastKey === undefined){const err62 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;}if(data22.byteLength !== undefined){let data23 = data22.byteLength;if(!(((typeof data23 == "number") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))){const err63 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err63];}else {vErrors.push(err63);}errors++;}if((typeof data23 == "number") && (isFinite(data23))){if(data23 > 9007199254740991 || isNaN(data23)){const err64 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err64];}else {vErrors.push(err64);}errors++;}if(data23 < 0 || isNaN(data23)){const err65 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}}}if(data22.count !== undefined){let data24 = data22.count;if(!(((typeof data24 == "number") && (!(data24 % 1) && !isNaN(data24))) && (isFinite(data24)))){const err66 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}if((typeof data24 == "number") && (isFinite(data24))){if(data24 > 9007199254740991 || isNaN(data24)){const err67 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}if(data24 < 0 || isNaN(data24)){const err68 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}}}if(data22.firstKey !== undefined){if(typeof data22.firstKey !== "string"){const err69 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}}if(data22.lastKey !== undefined){if(typeof data22.lastKey !== "string"){const err70 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}}if(data22.path !== undefined){if(typeof data22.path !== "string"){const err71 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}}if(data22.sha256 !== undefined){if(typeof data22.sha256 !== "string"){const err72 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}}}else {const err73 = {instancePath:instancePath+"/coreRelationshipPacks/" + i2,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}}}else {const err74 = {instancePath:instancePath+"/coreRelationshipPacks",schemaPath:"#/properties/coreRelationshipPacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err74];}else {vErrors.push(err74);}errors++;}}if(data.coverage !== undefined){let data29 = data.coverage;const _errs65 = errors;let valid16 = false;let passing0 = null;const _errs66 = errors;if(typeof data29 !== "string"){const err75 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}if("complete" !== data29){const err76 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/0/const",keyword:"const",params:{allowedValue: "complete"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;}var _valid0 = _errs66 === errors;if(_valid0){valid16 = true;passing0 = 0;}const _errs68 = errors;if(typeof data29 !== "string"){const err77 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/1/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err77];}else {vErrors.push(err77);}errors++;}if("partial" !== data29){const err78 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/1/const",keyword:"const",params:{allowedValue: "partial"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err78];}else {vErrors.push(err78);}errors++;}var _valid0 = _errs68 === errors;if(_valid0 && valid16){valid16 = false;passing0 = [passing0, 1];}else {if(_valid0){valid16 = true;passing0 = 1;}const _errs70 = errors;if(typeof data29 !== "string"){const err79 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/2/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err79];}else {vErrors.push(err79);}errors++;}if("unknown" !== data29){const err80 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/2/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err80];}else {vErrors.push(err80);}errors++;}var _valid0 = _errs70 === errors;if(_valid0 && valid16){valid16 = false;passing0 = [passing0, 2];}else {if(_valid0){valid16 = true;passing0 = 2;}const _errs72 = errors;if(typeof data29 !== "string"){const err81 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/3/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err81];}else {vErrors.push(err81);}errors++;}if("unsupported" !== data29){const err82 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/3/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}var _valid0 = _errs72 === errors;if(_valid0 && valid16){valid16 = false;passing0 = [passing0, 3];}else {if(_valid0){valid16 = true;passing0 = 3;}}}}if(!valid16){const err83 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;}else {errors = _errs65;if(vErrors !== null){if(_errs65){vErrors.length = _errs65;}else {vErrors = null;}}}}if(data.detailPacks !== undefined){let data30 = data.detailPacks;if(Array.isArray(data30)){const len3 = data30.length;for(let i3=0; i3<len3; i3++){let data31 = data30[i3];if(data31 && typeof data31 == "object" && !Array.isArray(data31)){if(data31.path === undefined){const err84 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err84];}else {vErrors.push(err84);}errors++;}if(data31.sha256 === undefined){const err85 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err85];}else {vErrors.push(err85);}errors++;}if(data31.byteLength === undefined){const err86 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err86];}else {vErrors.push(err86);}errors++;}if(data31.count === undefined){const err87 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err87];}else {vErrors.push(err87);}errors++;}if(data31.firstKey === undefined){const err88 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err88];}else {vErrors.push(err88);}errors++;}if(data31.lastKey === undefined){const err89 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err89];}else {vErrors.push(err89);}errors++;}if(data31.byteLength !== undefined){let data32 = data31.byteLength;if(!(((typeof data32 == "number") && (!(data32 % 1) && !isNaN(data32))) && (isFinite(data32)))){const err90 = {instancePath:instancePath+"/detailPacks/" + i3+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err90];}else {vErrors.push(err90);}errors++;}if((typeof data32 == "number") && (isFinite(data32))){if(data32 > 9007199254740991 || isNaN(data32)){const err91 = {instancePath:instancePath+"/detailPacks/" + i3+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err91];}else {vErrors.push(err91);}errors++;}if(data32 < 0 || isNaN(data32)){const err92 = {instancePath:instancePath+"/detailPacks/" + i3+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err92];}else {vErrors.push(err92);}errors++;}}}if(data31.count !== undefined){let data33 = data31.count;if(!(((typeof data33 == "number") && (!(data33 % 1) && !isNaN(data33))) && (isFinite(data33)))){const err93 = {instancePath:instancePath+"/detailPacks/" + i3+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err93];}else {vErrors.push(err93);}errors++;}if((typeof data33 == "number") && (isFinite(data33))){if(data33 > 9007199254740991 || isNaN(data33)){const err94 = {instancePath:instancePath+"/detailPacks/" + i3+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err94];}else {vErrors.push(err94);}errors++;}if(data33 < 0 || isNaN(data33)){const err95 = {instancePath:instancePath+"/detailPacks/" + i3+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err95];}else {vErrors.push(err95);}errors++;}}}if(data31.firstKey !== undefined){if(typeof data31.firstKey !== "string"){const err96 = {instancePath:instancePath+"/detailPacks/" + i3+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err96];}else {vErrors.push(err96);}errors++;}}if(data31.lastKey !== undefined){if(typeof data31.lastKey !== "string"){const err97 = {instancePath:instancePath+"/detailPacks/" + i3+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err97];}else {vErrors.push(err97);}errors++;}}if(data31.path !== undefined){if(typeof data31.path !== "string"){const err98 = {instancePath:instancePath+"/detailPacks/" + i3+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err98];}else {vErrors.push(err98);}errors++;}}if(data31.sha256 !== undefined){if(typeof data31.sha256 !== "string"){const err99 = {instancePath:instancePath+"/detailPacks/" + i3+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err99];}else {vErrors.push(err99);}errors++;}}}else {const err100 = {instancePath:instancePath+"/detailPacks/" + i3,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err100];}else {vErrors.push(err100);}errors++;}}}else {const err101 = {instancePath:instancePath+"/detailPacks",schemaPath:"#/properties/detailPacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err101];}else {vErrors.push(err101);}errors++;}}if(data.dropBrowse !== undefined){let data38 = data.dropBrowse;const _errs92 = errors;let valid21 = false;const _errs93 = errors;if(data38 && typeof data38 == "object" && !Array.isArray(data38)){if(data38.path === undefined){const err102 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err102];}else {vErrors.push(err102);}errors++;}if(data38.sha256 === undefined){const err103 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err103];}else {vErrors.push(err103);}errors++;}if(data38.byteLength === undefined){const err104 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err104];}else {vErrors.push(err104);}errors++;}if(data38.count === undefined){const err105 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err105];}else {vErrors.push(err105);}errors++;}if(data38.firstKey === undefined){const err106 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err106];}else {vErrors.push(err106);}errors++;}if(data38.lastKey === undefined){const err107 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err107];}else {vErrors.push(err107);}errors++;}if(data38.byteLength !== undefined){let data39 = data38.byteLength;if(!(((typeof data39 == "number") && (!(data39 % 1) && !isNaN(data39))) && (isFinite(data39)))){const err108 = {instancePath:instancePath+"/dropBrowse/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err108];}else {vErrors.push(err108);}errors++;}if((typeof data39 == "number") && (isFinite(data39))){if(data39 > 9007199254740991 || isNaN(data39)){const err109 = {instancePath:instancePath+"/dropBrowse/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err109];}else {vErrors.push(err109);}errors++;}if(data39 < 0 || isNaN(data39)){const err110 = {instancePath:instancePath+"/dropBrowse/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err110];}else {vErrors.push(err110);}errors++;}}}if(data38.count !== undefined){let data40 = data38.count;if(!(((typeof data40 == "number") && (!(data40 % 1) && !isNaN(data40))) && (isFinite(data40)))){const err111 = {instancePath:instancePath+"/dropBrowse/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err111];}else {vErrors.push(err111);}errors++;}if((typeof data40 == "number") && (isFinite(data40))){if(data40 > 9007199254740991 || isNaN(data40)){const err112 = {instancePath:instancePath+"/dropBrowse/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err112];}else {vErrors.push(err112);}errors++;}if(data40 < 0 || isNaN(data40)){const err113 = {instancePath:instancePath+"/dropBrowse/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err113];}else {vErrors.push(err113);}errors++;}}}if(data38.firstKey !== undefined){if(typeof data38.firstKey !== "string"){const err114 = {instancePath:instancePath+"/dropBrowse/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err114];}else {vErrors.push(err114);}errors++;}}if(data38.lastKey !== undefined){if(typeof data38.lastKey !== "string"){const err115 = {instancePath:instancePath+"/dropBrowse/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err115];}else {vErrors.push(err115);}errors++;}}if(data38.path !== undefined){if(typeof data38.path !== "string"){const err116 = {instancePath:instancePath+"/dropBrowse/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err116];}else {vErrors.push(err116);}errors++;}}if(data38.sha256 !== undefined){if(typeof data38.sha256 !== "string"){const err117 = {instancePath:instancePath+"/dropBrowse/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err117];}else {vErrors.push(err117);}errors++;}}}else {const err118 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err118];}else {vErrors.push(err118);}errors++;}var _valid1 = _errs93 === errors;valid21 = valid21 || _valid1;if(_valid1){var props0 = {};props0.byteLength = true;props0.count = true;props0.firstKey = true;props0.lastKey = true;props0.path = true;props0.sha256 = true;}const _errs108 = errors;if(data38 !== null){const err119 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/properties/dropBrowse/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err119];}else {vErrors.push(err119);}errors++;}var _valid1 = _errs108 === errors;valid21 = valid21 || _valid1;if(!valid21){const err120 = {instancePath:instancePath+"/dropBrowse",schemaPath:"#/properties/dropBrowse/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err120];}else {vErrors.push(err120);}errors++;}else {errors = _errs92;if(vErrors !== null){if(_errs92){vErrors.length = _errs92;}else {vErrors = null;}}}}if(data.evidencePacks !== undefined){let data45 = data.evidencePacks;if(Array.isArray(data45)){const len4 = data45.length;for(let i4=0; i4<len4; i4++){let data46 = data45[i4];if(data46 && typeof data46 == "object" && !Array.isArray(data46)){if(data46.path === undefined){const err121 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err121];}else {vErrors.push(err121);}errors++;}if(data46.sha256 === undefined){const err122 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err122];}else {vErrors.push(err122);}errors++;}if(data46.byteLength === undefined){const err123 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err123];}else {vErrors.push(err123);}errors++;}if(data46.count === undefined){const err124 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err124];}else {vErrors.push(err124);}errors++;}if(data46.firstKey === undefined){const err125 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err125];}else {vErrors.push(err125);}errors++;}if(data46.lastKey === undefined){const err126 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err126];}else {vErrors.push(err126);}errors++;}if(data46.byteLength !== undefined){let data47 = data46.byteLength;if(!(((typeof data47 == "number") && (!(data47 % 1) && !isNaN(data47))) && (isFinite(data47)))){const err127 = {instancePath:instancePath+"/evidencePacks/" + i4+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err127];}else {vErrors.push(err127);}errors++;}if((typeof data47 == "number") && (isFinite(data47))){if(data47 > 9007199254740991 || isNaN(data47)){const err128 = {instancePath:instancePath+"/evidencePacks/" + i4+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err128];}else {vErrors.push(err128);}errors++;}if(data47 < 0 || isNaN(data47)){const err129 = {instancePath:instancePath+"/evidencePacks/" + i4+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err129];}else {vErrors.push(err129);}errors++;}}}if(data46.count !== undefined){let data48 = data46.count;if(!(((typeof data48 == "number") && (!(data48 % 1) && !isNaN(data48))) && (isFinite(data48)))){const err130 = {instancePath:instancePath+"/evidencePacks/" + i4+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err130];}else {vErrors.push(err130);}errors++;}if((typeof data48 == "number") && (isFinite(data48))){if(data48 > 9007199254740991 || isNaN(data48)){const err131 = {instancePath:instancePath+"/evidencePacks/" + i4+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err131];}else {vErrors.push(err131);}errors++;}if(data48 < 0 || isNaN(data48)){const err132 = {instancePath:instancePath+"/evidencePacks/" + i4+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err132];}else {vErrors.push(err132);}errors++;}}}if(data46.firstKey !== undefined){if(typeof data46.firstKey !== "string"){const err133 = {instancePath:instancePath+"/evidencePacks/" + i4+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err133];}else {vErrors.push(err133);}errors++;}}if(data46.lastKey !== undefined){if(typeof data46.lastKey !== "string"){const err134 = {instancePath:instancePath+"/evidencePacks/" + i4+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err134];}else {vErrors.push(err134);}errors++;}}if(data46.path !== undefined){if(typeof data46.path !== "string"){const err135 = {instancePath:instancePath+"/evidencePacks/" + i4+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err135];}else {vErrors.push(err135);}errors++;}}if(data46.sha256 !== undefined){if(typeof data46.sha256 !== "string"){const err136 = {instancePath:instancePath+"/evidencePacks/" + i4+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err136];}else {vErrors.push(err136);}errors++;}}}else {const err137 = {instancePath:instancePath+"/evidencePacks/" + i4,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err137];}else {vErrors.push(err137);}errors++;}}}else {const err138 = {instancePath:instancePath+"/evidencePacks",schemaPath:"#/properties/evidencePacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err138];}else {vErrors.push(err138);}errors++;}}if(data.format !== undefined){let data53 = data.format;if(typeof data53 !== "string"){const err139 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err139];}else {vErrors.push(err139);}errors++;}if("mapletip.product-manifest" !== data53){const err140 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/const",keyword:"const",params:{allowedValue: "mapletip.product-manifest"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err140];}else {vErrors.push(err140);}errors++;}}if(data.geography !== undefined){let data54 = data.geography;const _errs130 = errors;let valid28 = false;const _errs131 = errors;if(data54 && typeof data54 == "object" && !Array.isArray(data54)){if(data54.path === undefined){const err141 = {instancePath:instancePath+"/geography",schemaPath:"#/$defs/MapGeographyDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err141];}else {vErrors.push(err141);}errors++;}if(data54.sha256 === undefined){const err142 = {instancePath:instancePath+"/geography",schemaPath:"#/$defs/MapGeographyDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err142];}else {vErrors.push(err142);}errors++;}if(data54.byteLength === undefined){const err143 = {instancePath:instancePath+"/geography",schemaPath:"#/$defs/MapGeographyDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err143];}else {vErrors.push(err143);}errors++;}for(const key0 in data54){if(!(((key0 === "byteLength") || (key0 === "path")) || (key0 === "sha256"))){const err144 = {instancePath:instancePath+"/geography",schemaPath:"#/$defs/MapGeographyDescriptor/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err144];}else {vErrors.push(err144);}errors++;}}if(data54.byteLength !== undefined){let data55 = data54.byteLength;if(!(((typeof data55 == "number") && (!(data55 % 1) && !isNaN(data55))) && (isFinite(data55)))){const err145 = {instancePath:instancePath+"/geography/byteLength",schemaPath:"#/$defs/MapGeographyDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err145];}else {vErrors.push(err145);}errors++;}if((typeof data55 == "number") && (isFinite(data55))){if(data55 < 0 || isNaN(data55)){const err146 = {instancePath:instancePath+"/geography/byteLength",schemaPath:"#/$defs/MapGeographyDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err146];}else {vErrors.push(err146);}errors++;}}}if(data54.path !== undefined){if(typeof data54.path !== "string"){const err147 = {instancePath:instancePath+"/geography/path",schemaPath:"#/$defs/MapGeographyDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err147];}else {vErrors.push(err147);}errors++;}}if(data54.sha256 !== undefined){if(typeof data54.sha256 !== "string"){const err148 = {instancePath:instancePath+"/geography/sha256",schemaPath:"#/$defs/MapGeographyDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err148];}else {vErrors.push(err148);}errors++;}}}else {const err149 = {instancePath:instancePath+"/geography",schemaPath:"#/$defs/MapGeographyDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err149];}else {vErrors.push(err149);}errors++;}var _valid2 = _errs131 === errors;valid28 = valid28 || _valid2;const _errs141 = errors;if(data54 !== null){const err150 = {instancePath:instancePath+"/geography",schemaPath:"#/properties/geography/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err150];}else {vErrors.push(err150);}errors++;}var _valid2 = _errs141 === errors;valid28 = valid28 || _valid2;if(!valid28){const err151 = {instancePath:instancePath+"/geography",schemaPath:"#/properties/geography/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err151];}else {vErrors.push(err151);}errors++;}else {errors = _errs130;if(vErrors !== null){if(_errs130){vErrors.length = _errs130;}else {vErrors = null;}}}}if(data.identity !== undefined){let data58 = data.identity;const _errs144 = errors;let valid31 = false;const _errs145 = errors;if(data58 && typeof data58 == "object" && !Array.isArray(data58)){if(data58.identityFormat === undefined){const err152 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "identityFormat"},message:"must have required property '"+"identityFormat"+"'"};if(vErrors === null){vErrors = [err152];}else {vErrors.push(err152);}errors++;}if(data58.productId === undefined){const err153 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "productId"},message:"must have required property '"+"productId"+"'"};if(vErrors === null){vErrors = [err153];}else {vErrors.push(err153);}errors++;}if(data58.inputFingerprint === undefined){const err154 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "inputFingerprint"},message:"must have required property '"+"inputFingerprint"+"'"};if(vErrors === null){vErrors = [err154];}else {vErrors.push(err154);}errors++;}if(data58.semanticFingerprint === undefined){const err155 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "semanticFingerprint"},message:"must have required property '"+"semanticFingerprint"+"'"};if(vErrors === null){vErrors = [err155];}else {vErrors.push(err155);}errors++;}if(data58.schemaFingerprint === undefined){const err156 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "schemaFingerprint"},message:"must have required property '"+"schemaFingerprint"+"'"};if(vErrors === null){vErrors = [err156];}else {vErrors.push(err156);}errors++;}if(data58.producerFingerprint === undefined){const err157 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "producerFingerprint"},message:"must have required property '"+"producerFingerprint"+"'"};if(vErrors === null){vErrors = [err157];}else {vErrors.push(err157);}errors++;}if(data58.optionsFingerprint === undefined){const err158 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "optionsFingerprint"},message:"must have required property '"+"optionsFingerprint"+"'"};if(vErrors === null){vErrors = [err158];}else {vErrors.push(err158);}errors++;}if(data58.projectionRevision === undefined){const err159 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "projectionRevision"},message:"must have required property '"+"projectionRevision"+"'"};if(vErrors === null){vErrors = [err159];}else {vErrors.push(err159);}errors++;}if(data58.productDigest === undefined){const err160 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/required",keyword:"required",params:{missingProperty: "productDigest"},message:"must have required property '"+"productDigest"+"'"};if(vErrors === null){vErrors = [err160];}else {vErrors.push(err160);}errors++;}if(data58.identityFormat !== undefined){if(typeof data58.identityFormat !== "string"){const err161 = {instancePath:instancePath+"/identity/identityFormat",schemaPath:"#/$defs/ProductIdentityMetadata/properties/identityFormat/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err161];}else {vErrors.push(err161);}errors++;}}if(data58.inputFingerprint !== undefined){let data60 = data58.inputFingerprint;if(typeof data60 === "string"){if(!pattern5.test(data60)){const err162 = {instancePath:instancePath+"/identity/inputFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/inputFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err162];}else {vErrors.push(err162);}errors++;}}else {const err163 = {instancePath:instancePath+"/identity/inputFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/inputFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err163];}else {vErrors.push(err163);}errors++;}}if(data58.optionsFingerprint !== undefined){let data61 = data58.optionsFingerprint;if(typeof data61 === "string"){if(!pattern5.test(data61)){const err164 = {instancePath:instancePath+"/identity/optionsFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/optionsFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err164];}else {vErrors.push(err164);}errors++;}}else {const err165 = {instancePath:instancePath+"/identity/optionsFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/optionsFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err165];}else {vErrors.push(err165);}errors++;}}if(data58.producerFingerprint !== undefined){let data62 = data58.producerFingerprint;if(typeof data62 === "string"){if(!pattern5.test(data62)){const err166 = {instancePath:instancePath+"/identity/producerFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/producerFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err166];}else {vErrors.push(err166);}errors++;}}else {const err167 = {instancePath:instancePath+"/identity/producerFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/producerFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err167];}else {vErrors.push(err167);}errors++;}}if(data58.productDigest !== undefined){let data63 = data58.productDigest;if(typeof data63 === "string"){if(!pattern5.test(data63)){const err168 = {instancePath:instancePath+"/identity/productDigest",schemaPath:"#/$defs/ProductIdentityMetadata/properties/productDigest/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err168];}else {vErrors.push(err168);}errors++;}}else {const err169 = {instancePath:instancePath+"/identity/productDigest",schemaPath:"#/$defs/ProductIdentityMetadata/properties/productDigest/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err169];}else {vErrors.push(err169);}errors++;}}if(data58.productId !== undefined){let data64 = data58.productId;if(typeof data64 === "string"){if(!pattern9.test(data64)){const err170 = {instancePath:instancePath+"/identity/productId",schemaPath:"#/$defs/ProductIdentityMetadata/properties/productId/pattern",keyword:"pattern",params:{pattern: "^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$"},message:"must match pattern \""+"^(monsters|items|equipment|quests|media|maps|npcs|reactors|skills|jobs|recipes|cash-shop|avatars)-[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err170];}else {vErrors.push(err170);}errors++;}}else {const err171 = {instancePath:instancePath+"/identity/productId",schemaPath:"#/$defs/ProductIdentityMetadata/properties/productId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err171];}else {vErrors.push(err171);}errors++;}}if(data58.projectionRevision !== undefined){if(typeof data58.projectionRevision !== "string"){const err172 = {instancePath:instancePath+"/identity/projectionRevision",schemaPath:"#/$defs/ProductIdentityMetadata/properties/projectionRevision/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err172];}else {vErrors.push(err172);}errors++;}}if(data58.schemaFingerprint !== undefined){let data66 = data58.schemaFingerprint;if(typeof data66 === "string"){if(!pattern5.test(data66)){const err173 = {instancePath:instancePath+"/identity/schemaFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/schemaFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err173];}else {vErrors.push(err173);}errors++;}}else {const err174 = {instancePath:instancePath+"/identity/schemaFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/schemaFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err174];}else {vErrors.push(err174);}errors++;}}if(data58.semanticFingerprint !== undefined){let data67 = data58.semanticFingerprint;if(typeof data67 === "string"){if(!pattern5.test(data67)){const err175 = {instancePath:instancePath+"/identity/semanticFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/semanticFingerprint/pattern",keyword:"pattern",params:{pattern: "^[0-9a-f]{64}$"},message:"must match pattern \""+"^[0-9a-f]{64}$"+"\""};if(vErrors === null){vErrors = [err175];}else {vErrors.push(err175);}errors++;}}else {const err176 = {instancePath:instancePath+"/identity/semanticFingerprint",schemaPath:"#/$defs/ProductIdentityMetadata/properties/semanticFingerprint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err176];}else {vErrors.push(err176);}errors++;}}}else {const err177 = {instancePath:instancePath+"/identity",schemaPath:"#/$defs/ProductIdentityMetadata/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err177];}else {vErrors.push(err177);}errors++;}var _valid3 = _errs145 === errors;valid31 = valid31 || _valid3;if(_valid3){var props2 = {};props2.identityFormat = true;props2.inputFingerprint = true;props2.optionsFingerprint = true;props2.producerFingerprint = true;props2.productDigest = true;props2.productId = true;props2.projectionRevision = true;props2.schemaFingerprint = true;props2.semanticFingerprint = true;}const _errs166 = errors;if(data58 !== null){const err178 = {instancePath:instancePath+"/identity",schemaPath:"#/properties/identity/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err178];}else {vErrors.push(err178);}errors++;}var _valid3 = _errs166 === errors;valid31 = valid31 || _valid3;if(!valid31){const err179 = {instancePath:instancePath+"/identity",schemaPath:"#/properties/identity/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err179];}else {vErrors.push(err179);}errors++;}else {errors = _errs144;if(vErrors !== null){if(_errs144){vErrors.length = _errs144;}else {vErrors = null;}}}}if(data.locationBrowse !== undefined){let data68 = data.locationBrowse;const _errs169 = errors;let valid34 = false;const _errs170 = errors;if(data68 && typeof data68 == "object" && !Array.isArray(data68)){if(data68.path === undefined){const err180 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err180];}else {vErrors.push(err180);}errors++;}if(data68.sha256 === undefined){const err181 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err181];}else {vErrors.push(err181);}errors++;}if(data68.byteLength === undefined){const err182 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err182];}else {vErrors.push(err182);}errors++;}if(data68.count === undefined){const err183 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err183];}else {vErrors.push(err183);}errors++;}if(data68.firstKey === undefined){const err184 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err184];}else {vErrors.push(err184);}errors++;}if(data68.lastKey === undefined){const err185 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err185];}else {vErrors.push(err185);}errors++;}if(data68.byteLength !== undefined){let data69 = data68.byteLength;if(!(((typeof data69 == "number") && (!(data69 % 1) && !isNaN(data69))) && (isFinite(data69)))){const err186 = {instancePath:instancePath+"/locationBrowse/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err186];}else {vErrors.push(err186);}errors++;}if((typeof data69 == "number") && (isFinite(data69))){if(data69 > 9007199254740991 || isNaN(data69)){const err187 = {instancePath:instancePath+"/locationBrowse/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err187];}else {vErrors.push(err187);}errors++;}if(data69 < 0 || isNaN(data69)){const err188 = {instancePath:instancePath+"/locationBrowse/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err188];}else {vErrors.push(err188);}errors++;}}}if(data68.count !== undefined){let data70 = data68.count;if(!(((typeof data70 == "number") && (!(data70 % 1) && !isNaN(data70))) && (isFinite(data70)))){const err189 = {instancePath:instancePath+"/locationBrowse/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err189];}else {vErrors.push(err189);}errors++;}if((typeof data70 == "number") && (isFinite(data70))){if(data70 > 9007199254740991 || isNaN(data70)){const err190 = {instancePath:instancePath+"/locationBrowse/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err190];}else {vErrors.push(err190);}errors++;}if(data70 < 0 || isNaN(data70)){const err191 = {instancePath:instancePath+"/locationBrowse/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err191];}else {vErrors.push(err191);}errors++;}}}if(data68.firstKey !== undefined){if(typeof data68.firstKey !== "string"){const err192 = {instancePath:instancePath+"/locationBrowse/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err192];}else {vErrors.push(err192);}errors++;}}if(data68.lastKey !== undefined){if(typeof data68.lastKey !== "string"){const err193 = {instancePath:instancePath+"/locationBrowse/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err193];}else {vErrors.push(err193);}errors++;}}if(data68.path !== undefined){if(typeof data68.path !== "string"){const err194 = {instancePath:instancePath+"/locationBrowse/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err194];}else {vErrors.push(err194);}errors++;}}if(data68.sha256 !== undefined){if(typeof data68.sha256 !== "string"){const err195 = {instancePath:instancePath+"/locationBrowse/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err195];}else {vErrors.push(err195);}errors++;}}}else {const err196 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err196];}else {vErrors.push(err196);}errors++;}var _valid4 = _errs170 === errors;valid34 = valid34 || _valid4;if(_valid4){var props3 = {};props3.byteLength = true;props3.count = true;props3.firstKey = true;props3.lastKey = true;props3.path = true;props3.sha256 = true;}const _errs185 = errors;if(data68 !== null){const err197 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/properties/locationBrowse/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err197];}else {vErrors.push(err197);}errors++;}var _valid4 = _errs185 === errors;valid34 = valid34 || _valid4;if(!valid34){const err198 = {instancePath:instancePath+"/locationBrowse",schemaPath:"#/properties/locationBrowse/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err198];}else {vErrors.push(err198);}errors++;}else {errors = _errs169;if(vErrors !== null){if(_errs169){vErrors.length = _errs169;}else {vErrors = null;}}}}if(data.packGzipTargetBytes !== undefined){let data75 = data.packGzipTargetBytes;if((!(((typeof data75 == "number") && (!(data75 % 1) && !isNaN(data75))) && (isFinite(data75)))) && (data75 !== null)){const err199 = {instancePath:instancePath+"/packGzipTargetBytes",schemaPath:"#/properties/packGzipTargetBytes/type",keyword:"type",params:{type: schema31.properties.packGzipTargetBytes.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err199];}else {vErrors.push(err199);}errors++;}if((typeof data75 == "number") && (isFinite(data75))){if(data75 < 0 || isNaN(data75)){const err200 = {instancePath:instancePath+"/packGzipTargetBytes",schemaPath:"#/properties/packGzipTargetBytes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err200];}else {vErrors.push(err200);}errors++;}}}if(data.packingPolicy !== undefined){let data76 = data.packingPolicy;if(data76 && typeof data76 == "object" && !Array.isArray(data76)){if(data76.targetBytes === undefined){const err201 = {instancePath:instancePath+"/packingPolicy",schemaPath:"#/$defs/PackSizePolicy/required",keyword:"required",params:{missingProperty: "targetBytes"},message:"must have required property '"+"targetBytes"+"'"};if(vErrors === null){vErrors = [err201];}else {vErrors.push(err201);}errors++;}if(data76.maxBytes === undefined){const err202 = {instancePath:instancePath+"/packingPolicy",schemaPath:"#/$defs/PackSizePolicy/required",keyword:"required",params:{missingProperty: "maxBytes"},message:"must have required property '"+"maxBytes"+"'"};if(vErrors === null){vErrors = [err202];}else {vErrors.push(err202);}errors++;}if(data76.maxBytes !== undefined){let data77 = data76.maxBytes;if(!(((typeof data77 == "number") && (!(data77 % 1) && !isNaN(data77))) && (isFinite(data77)))){const err203 = {instancePath:instancePath+"/packingPolicy/maxBytes",schemaPath:"#/$defs/PackSizePolicy/properties/maxBytes/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err203];}else {vErrors.push(err203);}errors++;}if((typeof data77 == "number") && (isFinite(data77))){if(data77 > 9007199254740991 || isNaN(data77)){const err204 = {instancePath:instancePath+"/packingPolicy/maxBytes",schemaPath:"#/$defs/PackSizePolicy/properties/maxBytes/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err204];}else {vErrors.push(err204);}errors++;}if(data77 < 0 || isNaN(data77)){const err205 = {instancePath:instancePath+"/packingPolicy/maxBytes",schemaPath:"#/$defs/PackSizePolicy/properties/maxBytes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err205];}else {vErrors.push(err205);}errors++;}}}if(data76.targetBytes !== undefined){let data78 = data76.targetBytes;if(!(((typeof data78 == "number") && (!(data78 % 1) && !isNaN(data78))) && (isFinite(data78)))){const err206 = {instancePath:instancePath+"/packingPolicy/targetBytes",schemaPath:"#/$defs/PackSizePolicy/properties/targetBytes/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err206];}else {vErrors.push(err206);}errors++;}if((typeof data78 == "number") && (isFinite(data78))){if(data78 > 9007199254740991 || isNaN(data78)){const err207 = {instancePath:instancePath+"/packingPolicy/targetBytes",schemaPath:"#/$defs/PackSizePolicy/properties/targetBytes/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err207];}else {vErrors.push(err207);}errors++;}if(data78 < 0 || isNaN(data78)){const err208 = {instancePath:instancePath+"/packingPolicy/targetBytes",schemaPath:"#/$defs/PackSizePolicy/properties/targetBytes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err208];}else {vErrors.push(err208);}errors++;}}}}else {const err209 = {instancePath:instancePath+"/packingPolicy",schemaPath:"#/$defs/PackSizePolicy/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err209];}else {vErrors.push(err209);}errors++;}}if(data.productId !== undefined){if(typeof data.productId !== "string"){const err210 = {instancePath:instancePath+"/productId",schemaPath:"#/properties/productId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err210];}else {vErrors.push(err210);}errors++;}}if(data.relatedEntityBrowsePacks !== undefined){let data80 = data.relatedEntityBrowsePacks;if(data80 && typeof data80 == "object" && !Array.isArray(data80)){for(const key1 in data80){let data81 = data80[key1];if(data81 && typeof data81 == "object" && !Array.isArray(data81)){if(data81.path === undefined){const err211 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err211];}else {vErrors.push(err211);}errors++;}if(data81.sha256 === undefined){const err212 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err212];}else {vErrors.push(err212);}errors++;}if(data81.byteLength === undefined){const err213 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err213];}else {vErrors.push(err213);}errors++;}if(data81.count === undefined){const err214 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err214];}else {vErrors.push(err214);}errors++;}if(data81.firstKey === undefined){const err215 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err215];}else {vErrors.push(err215);}errors++;}if(data81.lastKey === undefined){const err216 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err216];}else {vErrors.push(err216);}errors++;}if(data81.byteLength !== undefined){let data82 = data81.byteLength;if(!(((typeof data82 == "number") && (!(data82 % 1) && !isNaN(data82))) && (isFinite(data82)))){const err217 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err217];}else {vErrors.push(err217);}errors++;}if((typeof data82 == "number") && (isFinite(data82))){if(data82 > 9007199254740991 || isNaN(data82)){const err218 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err218];}else {vErrors.push(err218);}errors++;}if(data82 < 0 || isNaN(data82)){const err219 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err219];}else {vErrors.push(err219);}errors++;}}}if(data81.count !== undefined){let data83 = data81.count;if(!(((typeof data83 == "number") && (!(data83 % 1) && !isNaN(data83))) && (isFinite(data83)))){const err220 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err220];}else {vErrors.push(err220);}errors++;}if((typeof data83 == "number") && (isFinite(data83))){if(data83 > 9007199254740991 || isNaN(data83)){const err221 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err221];}else {vErrors.push(err221);}errors++;}if(data83 < 0 || isNaN(data83)){const err222 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err222];}else {vErrors.push(err222);}errors++;}}}if(data81.firstKey !== undefined){if(typeof data81.firstKey !== "string"){const err223 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err223];}else {vErrors.push(err223);}errors++;}}if(data81.lastKey !== undefined){if(typeof data81.lastKey !== "string"){const err224 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err224];}else {vErrors.push(err224);}errors++;}}if(data81.path !== undefined){if(typeof data81.path !== "string"){const err225 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err225];}else {vErrors.push(err225);}errors++;}}if(data81.sha256 !== undefined){if(typeof data81.sha256 !== "string"){const err226 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1")+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err226];}else {vErrors.push(err226);}errors++;}}}else {const err227 = {instancePath:instancePath+"/relatedEntityBrowsePacks/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err227];}else {vErrors.push(err227);}errors++;}}}else {const err228 = {instancePath:instancePath+"/relatedEntityBrowsePacks",schemaPath:"#/properties/relatedEntityBrowsePacks/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err228];}else {vErrors.push(err228);}errors++;}}if(data.relationshipPacks !== undefined){let data88 = data.relationshipPacks;if(Array.isArray(data88)){const len5 = data88.length;for(let i5=0; i5<len5; i5++){let data89 = data88[i5];if(data89 && typeof data89 == "object" && !Array.isArray(data89)){if(data89.path === undefined){const err229 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "path"},message:"must have required property '"+"path"+"'"};if(vErrors === null){vErrors = [err229];}else {vErrors.push(err229);}errors++;}if(data89.sha256 === undefined){const err230 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "sha256"},message:"must have required property '"+"sha256"+"'"};if(vErrors === null){vErrors = [err230];}else {vErrors.push(err230);}errors++;}if(data89.byteLength === undefined){const err231 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "byteLength"},message:"must have required property '"+"byteLength"+"'"};if(vErrors === null){vErrors = [err231];}else {vErrors.push(err231);}errors++;}if(data89.count === undefined){const err232 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "count"},message:"must have required property '"+"count"+"'"};if(vErrors === null){vErrors = [err232];}else {vErrors.push(err232);}errors++;}if(data89.firstKey === undefined){const err233 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "firstKey"},message:"must have required property '"+"firstKey"+"'"};if(vErrors === null){vErrors = [err233];}else {vErrors.push(err233);}errors++;}if(data89.lastKey === undefined){const err234 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/required",keyword:"required",params:{missingProperty: "lastKey"},message:"must have required property '"+"lastKey"+"'"};if(vErrors === null){vErrors = [err234];}else {vErrors.push(err234);}errors++;}if(data89.byteLength !== undefined){let data90 = data89.byteLength;if(!(((typeof data90 == "number") && (!(data90 % 1) && !isNaN(data90))) && (isFinite(data90)))){const err235 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err235];}else {vErrors.push(err235);}errors++;}if((typeof data90 == "number") && (isFinite(data90))){if(data90 > 9007199254740991 || isNaN(data90)){const err236 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err236];}else {vErrors.push(err236);}errors++;}if(data90 < 0 || isNaN(data90)){const err237 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/byteLength",schemaPath:"#/$defs/PackDescriptor/properties/byteLength/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err237];}else {vErrors.push(err237);}errors++;}}}if(data89.count !== undefined){let data91 = data89.count;if(!(((typeof data91 == "number") && (!(data91 % 1) && !isNaN(data91))) && (isFinite(data91)))){const err238 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err238];}else {vErrors.push(err238);}errors++;}if((typeof data91 == "number") && (isFinite(data91))){if(data91 > 9007199254740991 || isNaN(data91)){const err239 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err239];}else {vErrors.push(err239);}errors++;}if(data91 < 0 || isNaN(data91)){const err240 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/count",schemaPath:"#/$defs/PackDescriptor/properties/count/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err240];}else {vErrors.push(err240);}errors++;}}}if(data89.firstKey !== undefined){if(typeof data89.firstKey !== "string"){const err241 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/firstKey",schemaPath:"#/$defs/PackDescriptor/properties/firstKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err241];}else {vErrors.push(err241);}errors++;}}if(data89.lastKey !== undefined){if(typeof data89.lastKey !== "string"){const err242 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/lastKey",schemaPath:"#/$defs/PackDescriptor/properties/lastKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err242];}else {vErrors.push(err242);}errors++;}}if(data89.path !== undefined){if(typeof data89.path !== "string"){const err243 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/path",schemaPath:"#/$defs/PackDescriptor/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err243];}else {vErrors.push(err243);}errors++;}}if(data89.sha256 !== undefined){if(typeof data89.sha256 !== "string"){const err244 = {instancePath:instancePath+"/relationshipPacks/" + i5+"/sha256",schemaPath:"#/$defs/PackDescriptor/properties/sha256/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err244];}else {vErrors.push(err244);}errors++;}}}else {const err245 = {instancePath:instancePath+"/relationshipPacks/" + i5,schemaPath:"#/$defs/PackDescriptor/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err245];}else {vErrors.push(err245);}errors++;}}}else {const err246 = {instancePath:instancePath+"/relationshipPacks",schemaPath:"#/properties/relationshipPacks/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err246];}else {vErrors.push(err246);}errors++;}}if(data.requiredClientCapabilities !== undefined){let data96 = data.requiredClientCapabilities;if(Array.isArray(data96)){const len6 = data96.length;for(let i6=0; i6<len6; i6++){if(typeof data96[i6] !== "string"){const err247 = {instancePath:instancePath+"/requiredClientCapabilities/" + i6,schemaPath:"#/properties/requiredClientCapabilities/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err247];}else {vErrors.push(err247);}errors++;}}}else {const err248 = {instancePath:instancePath+"/requiredClientCapabilities",schemaPath:"#/properties/requiredClientCapabilities/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err248];}else {vErrors.push(err248);}errors++;}}if(data.scope !== undefined){let data98 = data.scope;if(data98 && typeof data98 == "object" && !Array.isArray(data98)){if(data98.family_id === undefined){const err249 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "family_id"},message:"must have required property '"+"family_id"+"'"};if(vErrors === null){vErrors = [err249];}else {vErrors.push(err249);}errors++;}if(data98.build_id === undefined){const err250 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "build_id"},message:"must have required property '"+"build_id"+"'"};if(vErrors === null){vErrors = [err250];}else {vErrors.push(err250);}errors++;}if(data98.build_id !== undefined){if(typeof data98.build_id !== "string"){const err251 = {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 = [err251];}else {vErrors.push(err251);}errors++;}}if(data98.family_id !== undefined){if(typeof data98.family_id !== "string"){const err252 = {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 = [err252];}else {vErrors.push(err252);}errors++;}}}else {const err253 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err253];}else {vErrors.push(err253);}errors++;}}if(data.totalEntityCount !== undefined){let data101 = data.totalEntityCount;if(!(((typeof data101 == "number") && (!(data101 % 1) && !isNaN(data101))) && (isFinite(data101)))){const err254 = {instancePath:instancePath+"/totalEntityCount",schemaPath:"#/properties/totalEntityCount/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err254];}else {vErrors.push(err254);}errors++;}if((typeof data101 == "number") && (isFinite(data101))){if(data101 > 9007199254740991 || isNaN(data101)){const err255 = {instancePath:instancePath+"/totalEntityCount",schemaPath:"#/properties/totalEntityCount/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err255];}else {vErrors.push(err255);}errors++;}if(data101 < 0 || isNaN(data101)){const err256 = {instancePath:instancePath+"/totalEntityCount",schemaPath:"#/properties/totalEntityCount/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err256];}else {vErrors.push(err256);}errors++;}}}}else {const err257 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err257];}else {vErrors.push(err257);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":{"browsePacks":true,"catalog":true,"contractVersion":true,"coreEvidencePages":true,"coreRelationshipPacks":true,"coverage":true,"detailPacks":true,"dropBrowse":true,"evidencePacks":true,"format":true,"geography":true,"identity":true,"locationBrowse":true,"packGzipTargetBytes":true,"packingPolicy":true,"productId":true,"relatedEntityBrowsePacks":true,"relationshipPacks":true,"requiredClientCapabilities":true,"scope":true,"totalEntityCount":true},"dynamicProps":false,"dynamicItems":false};