@mapletip/data 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +52 -0
- package/README.md +209 -0
- package/client/contract-compatibility.d.mts +27 -0
- package/client/contract-compatibility.mjs +159 -0
- package/client/core.d.ts +150 -0
- package/client/core.js +359 -0
- package/client/equipment.d.ts +22 -0
- package/client/equipment.js +63 -0
- package/client/items.d.ts +22 -0
- package/client/items.js +63 -0
- package/client/media.d.ts +19 -0
- package/client/media.js +47 -0
- package/client/monster-client.d.ts +35 -0
- package/client/monster-client.js +155 -0
- package/client/monsters.d.ts +24 -0
- package/client/monsters.js +14 -0
- package/client/quests.d.ts +31 -0
- package/client/quests.js +124 -0
- package/client/release.d.ts +63 -0
- package/client/release.js +279 -0
- package/client/static-client.d.ts +40 -0
- package/client/static-client.js +44 -0
- package/client/static-domains.d.ts +48 -0
- package/client/static-domains.js +113 -0
- package/generated/contract-2-catalog-fact.d.ts +51 -0
- package/generated/equipment-catalog-2.d.ts +434 -0
- package/generated/equipment-catalog-2.validator.js +17 -0
- package/generated/equipment-detail-2.d.ts +350 -0
- package/generated/equipment-detail-2.validator.js +17 -0
- package/generated/equipment-evidence-pack-2.d.ts +243 -0
- package/generated/equipment-evidence-pack-2.validator.js +17 -0
- package/generated/equipment-pack-2.validator.js +17 -0
- package/generated/equipment-relationship-pack-2.d.ts +170 -0
- package/generated/equipment-relationship-pack-2.validator.js +17 -0
- package/generated/item-catalog-2.d.ts +366 -0
- package/generated/item-catalog-2.validator.js +17 -0
- package/generated/item-detail-2.d.ts +540 -0
- package/generated/item-detail-2.validator.js +17 -0
- package/generated/item-evidence-pack-2.d.ts +243 -0
- package/generated/item-evidence-pack-2.validator.js +17 -0
- package/generated/item-pack-2.validator.js +17 -0
- package/generated/item-relationship-pack-2.d.ts +170 -0
- package/generated/item-relationship-pack-2.validator.js +17 -0
- package/generated/media-catalog-2.d.ts +133 -0
- package/generated/media-catalog-2.validator.js +17 -0
- package/generated/media-detail-2.d.ts +125 -0
- package/generated/media-detail-2.validator.js +17 -0
- package/generated/media-pack-2.validator.js +17 -0
- package/generated/monster-catalog-2.d.ts +230 -0
- package/generated/monster-catalog-2.validator.js +17 -0
- package/generated/monster-catalog.d.ts +224 -0
- package/generated/monster-catalog.validator.js +1 -0
- package/generated/monster-core-relationship-pack-2.d.ts +208 -0
- package/generated/monster-core-relationship-pack-2.validator.js +17 -0
- package/generated/monster-detail-2.d.ts +372 -0
- package/generated/monster-detail-2.validator.js +17 -0
- package/generated/monster-detail.d.ts +799 -0
- package/generated/monster-detail.validator.js +17 -0
- package/generated/monster-evidence-pack-2.d.ts +378 -0
- package/generated/monster-evidence-pack-2.validator.js +17 -0
- package/generated/monster-evidence-pack.d.ts +269 -0
- package/generated/monster-evidence-pack.validator.js +17 -0
- package/generated/monster-location-pack-2.validator.js +1 -0
- package/generated/monster-pack-2.validator.js +17 -0
- package/generated/monster-pack.validator.js +17 -0
- package/generated/monster-relationship-pack.d.ts +126 -0
- package/generated/monster-relationship-pack.validator.js +1 -0
- package/generated/product-manifest.d.ts +188 -0
- package/generated/product-manifest.validator.js +1 -0
- package/generated/quest-auxiliary-pack-2.d.ts +391 -0
- package/generated/quest-auxiliary-pack-2.validator.js +17 -0
- package/generated/quest-browse-pack-2.d.ts +353 -0
- package/generated/quest-browse-pack-2.validator.js +17 -0
- package/generated/quest-catalog-2.d.ts +501 -0
- package/generated/quest-catalog-2.validator.js +17 -0
- package/generated/quest-evidence-pack-2.d.ts +269 -0
- package/generated/quest-evidence-pack-2.validator.js +17 -0
- package/generated/quest-pack-2.d.ts +410 -0
- package/generated/quest-pack-2.validator.js +17 -0
- package/generated/quest-relationship-pack-2.d.ts +868 -0
- package/generated/quest-relationship-pack-2.validator.js +17 -0
- package/generated/release-build-index.d.ts +42 -0
- package/generated/release-build-index.validator.js +1 -0
- package/generated/release-manifest.d.ts +24 -0
- package/generated/release-manifest.validator.js +1 -0
- package/generated/release-pin.d.ts +12 -0
- package/generated/release-pin.validator.js +1 -0
- package/package.json +155 -0
|
@@ -0,0 +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};
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
/* Generated automatically from Rust-owned wire definitions. Do not edit. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Shared collection state. `Known` is non-empty; absence requires complete
|
|
5
|
+
* source coverage and is never inferred from a missing row.
|
|
6
|
+
*/
|
|
7
|
+
export type CollectionState3 =
|
|
8
|
+
| {
|
|
9
|
+
items: NonEmptyVec_QuestPageDescriptor;
|
|
10
|
+
state: "known";
|
|
11
|
+
}
|
|
12
|
+
| {
|
|
13
|
+
coverageKey: CoverageKey;
|
|
14
|
+
state: "absent";
|
|
15
|
+
}
|
|
16
|
+
| {
|
|
17
|
+
items: QuestPageDescriptor[];
|
|
18
|
+
reason: StateReason;
|
|
19
|
+
state: "partial";
|
|
20
|
+
}
|
|
21
|
+
| {
|
|
22
|
+
reason: StateReason;
|
|
23
|
+
state: "unknown";
|
|
24
|
+
}
|
|
25
|
+
| {
|
|
26
|
+
capability: Capability;
|
|
27
|
+
state: "unsupported";
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* @minItems 1
|
|
31
|
+
*/
|
|
32
|
+
export type NonEmptyVec_QuestPageDescriptor = [QuestPageDescriptor, ...QuestPageDescriptor[]];
|
|
33
|
+
export type SafeInt64 = number;
|
|
34
|
+
export type CoverageKey = string;
|
|
35
|
+
export type StateReason = string;
|
|
36
|
+
export type Capability = string;
|
|
37
|
+
/**
|
|
38
|
+
* Build-level Quest auxiliary page kinds (ruling 3.2-R7).
|
|
39
|
+
*/
|
|
40
|
+
export type QuestAuxiliaryPageKind = "category" | "cot2-extra" | "exclusive-group" | "party-rank" | "recurring-group";
|
|
41
|
+
/**
|
|
42
|
+
* Shared collection state. `Known` is non-empty; absence requires complete
|
|
43
|
+
* source coverage and is never inferred from a missing row.
|
|
44
|
+
*/
|
|
45
|
+
export type CollectionState =
|
|
46
|
+
| {
|
|
47
|
+
items: NonEmptyVec_QuestAuxiliaryOccurrence;
|
|
48
|
+
state: "known";
|
|
49
|
+
}
|
|
50
|
+
| {
|
|
51
|
+
coverageKey: CoverageKey;
|
|
52
|
+
state: "absent";
|
|
53
|
+
}
|
|
54
|
+
| {
|
|
55
|
+
items: QuestAuxiliaryOccurrence[];
|
|
56
|
+
reason: StateReason;
|
|
57
|
+
state: "partial";
|
|
58
|
+
}
|
|
59
|
+
| {
|
|
60
|
+
reason: StateReason;
|
|
61
|
+
state: "unknown";
|
|
62
|
+
}
|
|
63
|
+
| {
|
|
64
|
+
capability: Capability;
|
|
65
|
+
state: "unsupported";
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* @minItems 1
|
|
69
|
+
*/
|
|
70
|
+
export type NonEmptyVec_QuestAuxiliaryOccurrence = [QuestAuxiliaryOccurrence, ...QuestAuxiliaryOccurrence[]];
|
|
71
|
+
/**
|
|
72
|
+
* Auxiliary Quest relationship payload, tagged by its observed source collection.
|
|
73
|
+
*
|
|
74
|
+
* Large variants intentionally mirror the approved wire shape. Indirection
|
|
75
|
+
* would not reduce serialized size and would make construction less direct.
|
|
76
|
+
*/
|
|
77
|
+
export type QuestAuxiliaryKind =
|
|
78
|
+
| {
|
|
79
|
+
kind: "category";
|
|
80
|
+
value: {
|
|
81
|
+
categoryKey: FactState;
|
|
82
|
+
categoryLabel: FactState;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
| {
|
|
86
|
+
kind: "cot2-extra";
|
|
87
|
+
value: {
|
|
88
|
+
destination?: EntityRef | null;
|
|
89
|
+
destinationCoverage: FactState2;
|
|
90
|
+
destinationTypedVersion: FactState2;
|
|
91
|
+
expByLevel: FactState2;
|
|
92
|
+
performByDay: FactState2;
|
|
93
|
+
quest?: EntityRef2 | null;
|
|
94
|
+
questCoverage: FactState2;
|
|
95
|
+
questTypedVersion: FactState2;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
| {
|
|
99
|
+
kind: "exclusive";
|
|
100
|
+
value: {
|
|
101
|
+
groupKey: string;
|
|
102
|
+
ordinal: SafeInt64;
|
|
103
|
+
target: EntityRef2;
|
|
104
|
+
targetCoverage: FactState2;
|
|
105
|
+
targetTypedVersion: FactState2;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
| {
|
|
109
|
+
kind: "party-rank";
|
|
110
|
+
value: {
|
|
111
|
+
rankValue: FactState2;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
| {
|
|
115
|
+
kind: "recurring-definition";
|
|
116
|
+
value: {
|
|
117
|
+
groupKey: FactState2;
|
|
118
|
+
infoText: FactState;
|
|
119
|
+
recurrenceType: FactState2;
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
| {
|
|
123
|
+
kind: "recurring-member";
|
|
124
|
+
value: {
|
|
125
|
+
/**
|
|
126
|
+
* Shared fact state. SQL NULL is represented by `Unknown` with reason
|
|
127
|
+
* `source-null`; only `Absent` carries a complete-coverage witness.
|
|
128
|
+
*/
|
|
129
|
+
container:
|
|
130
|
+
| {
|
|
131
|
+
source?: SourceRef | null;
|
|
132
|
+
state: "known";
|
|
133
|
+
value: RawValue;
|
|
134
|
+
}
|
|
135
|
+
| {
|
|
136
|
+
reason: StateReason;
|
|
137
|
+
source?: SourceRef | null;
|
|
138
|
+
state: "unknown";
|
|
139
|
+
}
|
|
140
|
+
| {
|
|
141
|
+
coverageKey: CoverageKey;
|
|
142
|
+
state: "absent";
|
|
143
|
+
}
|
|
144
|
+
| {
|
|
145
|
+
capability: Capability;
|
|
146
|
+
source?: SourceRef | null;
|
|
147
|
+
state: "unsupported";
|
|
148
|
+
};
|
|
149
|
+
groupKey: string;
|
|
150
|
+
ordinal: SafeInt64;
|
|
151
|
+
target: EntityRef2;
|
|
152
|
+
targetCoverage: FactState2;
|
|
153
|
+
targetTypedVersion: FactState2;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Shared fact state. SQL NULL is represented by `Unknown` with reason
|
|
158
|
+
* `source-null`; only `Absent` carries a complete-coverage witness.
|
|
159
|
+
*/
|
|
160
|
+
export type FactState =
|
|
161
|
+
| {
|
|
162
|
+
source?: SourceRef | null;
|
|
163
|
+
state: "known";
|
|
164
|
+
value: string;
|
|
165
|
+
}
|
|
166
|
+
| {
|
|
167
|
+
reason: StateReason;
|
|
168
|
+
source?: SourceRef | null;
|
|
169
|
+
state: "unknown";
|
|
170
|
+
}
|
|
171
|
+
| {
|
|
172
|
+
coverageKey: CoverageKey;
|
|
173
|
+
state: "absent";
|
|
174
|
+
}
|
|
175
|
+
| {
|
|
176
|
+
capability: Capability;
|
|
177
|
+
source?: SourceRef | null;
|
|
178
|
+
state: "unsupported";
|
|
179
|
+
};
|
|
180
|
+
export type LogicalSourceAddress = string;
|
|
181
|
+
/**
|
|
182
|
+
* Shared entity-reference states. The generic parameter brands resolved keys
|
|
183
|
+
* for the target domain without changing their JSON representation.
|
|
184
|
+
*/
|
|
185
|
+
export type EntityRef =
|
|
186
|
+
| {
|
|
187
|
+
key: EntityKey;
|
|
188
|
+
state: "resolved";
|
|
189
|
+
}
|
|
190
|
+
| {
|
|
191
|
+
sourceId: RawSourceId;
|
|
192
|
+
state: "unresolved";
|
|
193
|
+
}
|
|
194
|
+
| {
|
|
195
|
+
candidateKeys: EntityKey[];
|
|
196
|
+
state: "ambiguous";
|
|
197
|
+
}
|
|
198
|
+
| {
|
|
199
|
+
reason: StateReason;
|
|
200
|
+
state: "unavailable";
|
|
201
|
+
};
|
|
202
|
+
export type EntityKey = string;
|
|
203
|
+
export type RawSourceId = string;
|
|
204
|
+
/**
|
|
205
|
+
* Shared fact state. SQL NULL is represented by `Unknown` with reason
|
|
206
|
+
* `source-null`; only `Absent` carries a complete-coverage witness.
|
|
207
|
+
*/
|
|
208
|
+
export type FactState2 =
|
|
209
|
+
| {
|
|
210
|
+
source?: SourceRef | null;
|
|
211
|
+
state: "known";
|
|
212
|
+
value: RawValue;
|
|
213
|
+
}
|
|
214
|
+
| {
|
|
215
|
+
reason: StateReason;
|
|
216
|
+
source?: SourceRef | null;
|
|
217
|
+
state: "unknown";
|
|
218
|
+
}
|
|
219
|
+
| {
|
|
220
|
+
coverageKey: CoverageKey;
|
|
221
|
+
state: "absent";
|
|
222
|
+
}
|
|
223
|
+
| {
|
|
224
|
+
capability: Capability;
|
|
225
|
+
source?: SourceRef | null;
|
|
226
|
+
state: "unsupported";
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* A scalar source observation that preserves the source value kind.
|
|
230
|
+
*/
|
|
231
|
+
export type RawScalar =
|
|
232
|
+
| {
|
|
233
|
+
kind: "integer";
|
|
234
|
+
value: SafeInt64;
|
|
235
|
+
}
|
|
236
|
+
| {
|
|
237
|
+
kind: "real";
|
|
238
|
+
value: number;
|
|
239
|
+
}
|
|
240
|
+
| {
|
|
241
|
+
kind: "text";
|
|
242
|
+
value: string;
|
|
243
|
+
}
|
|
244
|
+
| {
|
|
245
|
+
kind: "boolean";
|
|
246
|
+
value: boolean;
|
|
247
|
+
}
|
|
248
|
+
| {
|
|
249
|
+
kind: "bytes";
|
|
250
|
+
value: number[];
|
|
251
|
+
}
|
|
252
|
+
| {
|
|
253
|
+
kind: "source-null";
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Shared entity-reference states. The generic parameter brands resolved keys
|
|
257
|
+
* for the target domain without changing their JSON representation.
|
|
258
|
+
*/
|
|
259
|
+
export type EntityRef2 =
|
|
260
|
+
| {
|
|
261
|
+
key: EntityKey;
|
|
262
|
+
state: "resolved";
|
|
263
|
+
}
|
|
264
|
+
| {
|
|
265
|
+
sourceId: RawSourceId;
|
|
266
|
+
state: "unresolved";
|
|
267
|
+
}
|
|
268
|
+
| {
|
|
269
|
+
candidateKeys: EntityKey[];
|
|
270
|
+
state: "ambiguous";
|
|
271
|
+
}
|
|
272
|
+
| {
|
|
273
|
+
reason: StateReason;
|
|
274
|
+
state: "unavailable";
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* Shared collection state. `Known` is non-empty; absence requires complete
|
|
278
|
+
* source coverage and is never inferred from a missing row.
|
|
279
|
+
*/
|
|
280
|
+
export type CollectionState2 =
|
|
281
|
+
| {
|
|
282
|
+
items: NonEmptyVec_QuestAuxiliaryRosterEntry;
|
|
283
|
+
state: "known";
|
|
284
|
+
}
|
|
285
|
+
| {
|
|
286
|
+
coverageKey: CoverageKey;
|
|
287
|
+
state: "absent";
|
|
288
|
+
}
|
|
289
|
+
| {
|
|
290
|
+
items: QuestAuxiliaryRosterEntry[];
|
|
291
|
+
reason: StateReason;
|
|
292
|
+
state: "partial";
|
|
293
|
+
}
|
|
294
|
+
| {
|
|
295
|
+
reason: StateReason;
|
|
296
|
+
state: "unknown";
|
|
297
|
+
}
|
|
298
|
+
| {
|
|
299
|
+
capability: Capability;
|
|
300
|
+
state: "unsupported";
|
|
301
|
+
};
|
|
302
|
+
/**
|
|
303
|
+
* @minItems 1
|
|
304
|
+
*/
|
|
305
|
+
export type NonEmptyVec_QuestAuxiliaryRosterEntry = [QuestAuxiliaryRosterEntry, ...QuestAuxiliaryRosterEntry[]];
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Bounded pack of Quest auxiliary pages keyed by stable page key.
|
|
309
|
+
*/
|
|
310
|
+
export interface QuestAuxiliaryPack {
|
|
311
|
+
contractVersion: "2.0";
|
|
312
|
+
format: "mapletip.quest-auxiliary-pack-2";
|
|
313
|
+
records: {
|
|
314
|
+
[k: string]: QuestAuxiliaryPage | undefined;
|
|
315
|
+
};
|
|
316
|
+
scope: BuildScope;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* One build-level auxiliary page keyed by (kind, group key).
|
|
320
|
+
*
|
|
321
|
+
* The page holds the source occurrences that have no Quest owner. Group pages additionally carry
|
|
322
|
+
* a roster of every membership occurrence of the group, whether it is held here or on its owner
|
|
323
|
+
* Quest.
|
|
324
|
+
*/
|
|
325
|
+
export interface QuestAuxiliaryPage {
|
|
326
|
+
evidence: CollectionState3;
|
|
327
|
+
kind: QuestAuxiliaryPageKind;
|
|
328
|
+
occurrences: CollectionState;
|
|
329
|
+
recordKey: string;
|
|
330
|
+
roster?: CollectionState2;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Reference to a public page in one exact-build product.
|
|
334
|
+
*/
|
|
335
|
+
export interface QuestPageDescriptor {
|
|
336
|
+
key: string;
|
|
337
|
+
observedCount: SafeInt64;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* One auxiliary relationship occurrence.
|
|
341
|
+
*/
|
|
342
|
+
export interface QuestAuxiliaryOccurrence {
|
|
343
|
+
evidenceKey: string;
|
|
344
|
+
occurrenceKey: string;
|
|
345
|
+
value: QuestAuxiliaryKind;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Source attribution for a fact or raw observation.
|
|
349
|
+
*/
|
|
350
|
+
export interface SourceRef {
|
|
351
|
+
/**
|
|
352
|
+
* Optional logical address within the source; never a local file path.
|
|
353
|
+
*/
|
|
354
|
+
logicalAddress?: LogicalSourceAddress | null;
|
|
355
|
+
/**
|
|
356
|
+
* Source family or source kind, preserved as supplied by the producer.
|
|
357
|
+
*/
|
|
358
|
+
sourceKind: string;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* A raw value and its optional source attribution.
|
|
362
|
+
*/
|
|
363
|
+
export interface RawValue {
|
|
364
|
+
scalar: RawScalar;
|
|
365
|
+
source?: SourceRef | null;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* One member of a group roster: the key of a membership occurrence, never a second copy of it.
|
|
369
|
+
*/
|
|
370
|
+
export interface QuestAuxiliaryRosterEntry {
|
|
371
|
+
occurrenceKey: string;
|
|
372
|
+
/**
|
|
373
|
+
* The Quest whose `auxiliary` collection holds the occurrence; absent when the occurrence is
|
|
374
|
+
* on this page because its member does not resolve to a Quest of the build.
|
|
375
|
+
*/
|
|
376
|
+
owner?: string;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Build scope specifying the game family and concrete build identity.
|
|
380
|
+
*/
|
|
381
|
+
export interface BuildScope {
|
|
382
|
+
/**
|
|
383
|
+
* Exact build identity (e.g., 'gms-v83', 'cw-cot2').
|
|
384
|
+
*/
|
|
385
|
+
build_id: string;
|
|
386
|
+
/**
|
|
387
|
+
* Family identity (e.g., 'gms', 'classic-world').
|
|
388
|
+
*/
|
|
389
|
+
family_id: string;
|
|
390
|
+
[k: string]: unknown | undefined;
|
|
391
|
+
}
|