@mapletip/data 0.2.0 → 0.5.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/README.md +204 -2
- package/client/contract-compatibility.mjs +10 -0
- package/client/core.d.ts +5 -0
- package/client/core.js +10 -0
- package/client/items.d.ts +28 -5
- package/client/items.js +60 -8
- package/client/map-geography.d.ts +4 -0
- package/client/map-geography.js +2 -0
- package/client/maps.d.ts +22 -0
- package/client/maps.js +25 -0
- package/client/monster-client.d.ts +14 -1
- package/client/monster-client.js +55 -3
- package/client/monsters.d.ts +37 -8
- package/client/monsters.js +51 -0
- package/client/static-client.d.ts +7 -5
- package/client/static-client.js +3 -2
- package/client/static-domains.d.ts +8 -1
- package/client/static-domains.js +27 -3
- package/generated/item-browse-pack-2.d.ts +83 -1
- package/generated/item-browse-pack-2.validator.js +2 -2
- package/generated/item-related-entity-browse-1.d.ts +48 -0
- package/generated/item-related-entity-browse-1.validator.js +1 -0
- package/generated/map-catalog-2-1.d.ts +103 -0
- package/generated/map-catalog-2-1.validator.d.ts +18 -0
- package/generated/map-catalog-2-1.validator.js +1 -0
- package/generated/map-geography.d.ts +79 -0
- package/generated/map-geography.validator.d.ts +18 -0
- package/generated/map-geography.validator.js +1 -0
- package/generated/monster-catalog-2-1.d.ts +253 -0
- package/generated/monster-catalog-2-1.validator.js +17 -0
- package/generated/monster-catalog-2-2.d.ts +332 -0
- package/generated/monster-catalog-2-2.validator.js +17 -0
- package/generated/monster-catalog-2-3.d.ts +339 -0
- package/generated/monster-catalog-2-3.validator.js +17 -0
- package/generated/monster-drop-browse.d.ts +123 -0
- package/generated/monster-drop-browse.validator.js +17 -0
- package/generated/monster-location-browse-1-1.d.ts +79 -0
- package/generated/monster-location-browse-1-1.validator.js +17 -0
- package/generated/monster-location-browse.d.ts +69 -0
- package/generated/monster-location-browse.validator.js +17 -0
- package/generated/product-manifest.d.ts +23 -0
- package/generated/product-manifest.validator.js +1 -1
- package/package.json +38 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";export const validate = validate20;export default validate20;const schema31 = {"$schema":"https://json-schema.org/draft/2020-12/schema","title":"ItemBrowsePack","description":"Bounded pack of compact browse rows keyed by Item public key.","type":"object","properties":{"contractVersion":{"type":"string","const":"2.0"},"coverage":{"$ref":"#/$defs/ItemBrowseCoverage"},"format":{"type":"string","const":"item-browse-pack/1"},"records":{"type":"object","additionalProperties":{"$ref":"#/$defs/ItemBrowseRecord"}},"scope":{"$ref":"#/$defs/BuildScope"}},"additionalProperties":false,"required":["format","contractVersion","scope","coverage","records"],"$defs":{"BuildScope":{"description":"Build scope specifying the game family and concrete build identity.","type":"object","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"]},"CatalogFact":{"description":"Compact catalog projection of [`FactState`]. It keeps the state and a\npositively observed value, retains the coverage witness for `absent`, and\nomits source attribution and explanatory metadata.","oneOf":[{"description":"A positively observed catalog value.","type":"object","properties":{"state":{"type":"string","const":"known"},"value":{"type":"string"}},"additionalProperties":false,"required":["state","value"]},{"description":"The value could not be established.","type":"object","properties":{"state":{"type":"string","const":"unknown"}},"additionalProperties":false,"required":["state"]},{"description":"No value was present under a source scope with complete coverage.","type":"object","properties":{"coverageKey":{"$ref":"#/$defs/CoverageKey"},"state":{"type":"string","const":"absent"}},"additionalProperties":false,"required":["state","coverageKey"]},{"description":"The producer cannot supply the fact.","type":"object","properties":{"state":{"type":"string","const":"unsupported"}},"additionalProperties":false,"required":["state"]}]},"CoverageKey":{"type":"string","minLength":1,"pattern":"\\S"},"ItemBrowseClass":{"description":"Canonical non-equipment Item class.","type":"string","enum":["consume","etc","setup","cash","pet"]},"ItemBrowseCoverage":{"description":"Build-level coverage for the browse product.","type":"object","properties":{"relationships":{"$ref":"#/$defs/ItemBrowseRelationshipCoverage"},"scrollTier":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["relationships","scrollTier"]},"ItemBrowseCoverageState":{"description":"Coverage state for one browse relationship or the Scroll tier facet.","type":"string","enum":["complete","partial","unsupported"]},"ItemBrowseFunction":{"description":"Positive source-backed Item behavior.","type":"string","enum":["upgrade","skill","summon","reward-container","monster-card","readable","pet","recovery"]},"ItemBrowsePetFood":{"description":"Pet-food effect values and the Pet items they target.","type":"object","properties":{"closeness":{"type":["integer","null"],"format":"int64"},"fullness":{"type":["integer","null"],"format":"int64"},"tameness":{"type":["integer","null"],"format":"int64"},"targets":{"type":"array","items":{"type":"string"}},"unresolvedTargets":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"ItemBrowseRecord":{"description":"One compact Item Browse row.","type":"object","properties":{"family":{"type":["string","null"]},"functions":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseFunction"}},"icon":{"$ref":"#/$defs/CatalogFact"},"itemClass":{"$ref":"#/$defs/ItemBrowseClass"},"name":{"$ref":"#/$defs/CatalogFact"},"petFood":{"anyOf":[{"$ref":"#/$defs/ItemBrowsePetFood"},{"type":"null"}]},"projectileAttack":{"type":["integer","null"],"format":"int64"},"questFlag":{"type":"boolean"},"recovery":{"anyOf":[{"$ref":"#/$defs/ItemBrowseRecovery"},{"type":"null"}]},"relationships":{"$ref":"#/$defs/ItemBrowseRelationshipCounts"},"scroll":{"anyOf":[{"$ref":"#/$defs/ItemBrowseScroll"},{"type":"null"}]},"seatingRecovery":{"anyOf":[{"$ref":"#/$defs/ItemBrowseSeatingRecovery"},{"type":"null"}]},"sourceId":{"type":"string"},"types":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseType"}}},"additionalProperties":false,"required":["sourceId","itemClass","name","icon"]},"ItemBrowseRecovery":{"description":"Positive recovery values carried by a consumable's spec block.","type":"object","properties":{"hp":{"type":["integer","null"],"format":"int64"},"hpPercent":{"type":["integer","null"],"format":"int64"},"mp":{"type":["integer","null"],"format":"int64"},"mpPercent":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false},"ItemBrowseRelationshipCounts":{"description":"Distinct related-entity counts for one Item. Zero counts are omitted.","type":"object","properties":{"cash-shop-listing":{"type":["integer","null"],"format":"uint32","minimum":0},"found-in-container":{"type":["integer","null"],"format":"uint32","minimum":0},"made-by-recipe":{"type":["integer","null"],"format":"uint32","minimum":0},"monster-drop":{"type":["integer","null"],"format":"uint32","minimum":0},"needed-for-quest":{"type":["integer","null"],"format":"uint32","minimum":0},"quest-reward":{"type":["integer","null"],"format":"uint32","minimum":0},"used-in-recipe":{"type":["integer","null"],"format":"uint32","minimum":0}},"additionalProperties":false},"ItemBrowseRelationshipCoverage":{"description":"Per-relationship coverage for one build.","type":"object","properties":{"cash-shop-listing":{"$ref":"#/$defs/ItemBrowseCoverageState"},"found-in-container":{"$ref":"#/$defs/ItemBrowseCoverageState"},"made-by-recipe":{"$ref":"#/$defs/ItemBrowseCoverageState"},"monster-drop":{"$ref":"#/$defs/ItemBrowseCoverageState"},"needed-for-quest":{"$ref":"#/$defs/ItemBrowseCoverageState"},"quest-reward":{"$ref":"#/$defs/ItemBrowseCoverageState"},"used-in-recipe":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["monster-drop","quest-reward","needed-for-quest","used-in-recipe","made-by-recipe","found-in-container","cash-shop-listing"]},"ItemBrowseScroll":{"description":"Scroll facts derived from a typed upgrade row and its source title.","type":"object","properties":{"cursed":{"type":["integer","null"],"format":"int64"},"deltas":{"$ref":"#/$defs/ItemBrowseScrollDeltas"},"specials":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseUpgradeSpecial"}},"success":{"type":["integer","null"],"format":"int64"},"targetLabel":{"anyOf":[{"$ref":"#/$defs/ItemBrowseUpgradeTarget"},{"type":"null"}]},"targets":{"type":"array","items":{"type":"string"}},"tier":{"anyOf":[{"$ref":"#/$defs/ItemBrowseUpgradeTier"},{"type":"null"}]},"unresolvedTargets":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"ItemBrowseScrollDeltas":{"description":"Non-zero Scroll stat deltas.","type":"object","properties":{"accuracy":{"type":["integer","null"],"format":"int64"},"avoidability":{"type":["integer","null"],"format":"int64"},"craft":{"type":["integer","null"],"format":"int64"},"criticalDamage":{"type":["integer","null"],"format":"int64"},"criticalRate":{"type":["integer","null"],"format":"int64"},"dexterity":{"type":["integer","null"],"format":"int64"},"intelligence":{"type":["integer","null"],"format":"int64"},"jump":{"type":["integer","null"],"format":"int64"},"luck":{"type":["integer","null"],"format":"int64"},"magicAttack":{"type":["integer","null"],"format":"int64"},"magicDefense":{"type":["integer","null"],"format":"int64"},"maxHp":{"type":["integer","null"],"format":"int64"},"maxMp":{"type":["integer","null"],"format":"int64"},"speed":{"type":["integer","null"],"format":"int64"},"strength":{"type":["integer","null"],"format":"int64"},"swim":{"type":["integer","null"],"format":"int64"},"weaponAttack":{"type":["integer","null"],"format":"int64"},"weaponDefense":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false},"ItemBrowseSeatingRecovery":{"description":"Seating recovery, deliberately separate from consumable recovery.","type":"object","properties":{"hp":{"type":["integer","null"],"format":"int64"},"mp":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false},"ItemBrowseType":{"description":"Partial, positive source-backed Item subtype.","type":"string","enum":["upgrade-scroll","arrow","throwing-star","bullet","chair","ore","gem","pet-food","refined-material","potion","food-buff","monster-material","holiday-ornament","furniture","crafting-station","meso-pouch"]},"ItemBrowseUpgradeSpecial":{"description":"Named or typed Scroll mechanic.","type":"string","enum":["clean-slate","chaos","anti-slip","warm-support","randomized-stats"]},"ItemBrowseUpgradeTarget":{"description":"Equipment target named by a Scroll title. This is a label, never an identity.","type":"string","enum":["accessory","belt","bottomwear","bow","cape","claw","crossbow","dagger","earrings","eye-accessory","face-accessory","gloves","gun","hat","knuckle","one-handed-axe","one-handed-blunt-weapon","one-handed-sword","overall-armor","pet-equipment","polearm","ring","shield","shoes","spear","staff","topwear","two-handed-axe","two-handed-blunt-weapon","two-handed-sword","wand"]},"ItemBrowseUpgradeTier":{"description":"Classic World-only named Scroll tier.","type":"string","enum":["lesser","intermediate","greater","chaos"]}}};const schema57 = {"description":"Build scope specifying the game family and concrete build identity.","type":"object","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"]};const schema32 = {"description":"Build-level coverage for the browse product.","type":"object","properties":{"relationships":{"$ref":"#/$defs/ItemBrowseRelationshipCoverage"},"scrollTier":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["relationships","scrollTier"]};const schema34 = {"description":"Coverage state for one browse relationship or the Scroll tier facet.","type":"string","enum":["complete","partial","unsupported"]};const schema33 = {"description":"Per-relationship coverage for one build.","type":"object","properties":{"cash-shop-listing":{"$ref":"#/$defs/ItemBrowseCoverageState"},"found-in-container":{"$ref":"#/$defs/ItemBrowseCoverageState"},"made-by-recipe":{"$ref":"#/$defs/ItemBrowseCoverageState"},"monster-drop":{"$ref":"#/$defs/ItemBrowseCoverageState"},"needed-for-quest":{"$ref":"#/$defs/ItemBrowseCoverageState"},"quest-reward":{"$ref":"#/$defs/ItemBrowseCoverageState"},"used-in-recipe":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["monster-drop","quest-reward","needed-for-quest","used-in-recipe","made-by-recipe","found-in-container","cash-shop-listing"]};function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data["monster-drop"] === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "monster-drop"},message:"must have required property '"+"monster-drop"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data["quest-reward"] === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "quest-reward"},message:"must have required property '"+"quest-reward"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data["needed-for-quest"] === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "needed-for-quest"},message:"must have required property '"+"needed-for-quest"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data["used-in-recipe"] === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "used-in-recipe"},message:"must have required property '"+"used-in-recipe"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data["made-by-recipe"] === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "made-by-recipe"},message:"must have required property '"+"made-by-recipe"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data["found-in-container"] === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "found-in-container"},message:"must have required property '"+"found-in-container"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data["cash-shop-listing"] === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "cash-shop-listing"},message:"must have required property '"+"cash-shop-listing"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}for(const key0 in data){if(!(((((((key0 === "cash-shop-listing") || (key0 === "found-in-container")) || (key0 === "made-by-recipe")) || (key0 === "monster-drop")) || (key0 === "needed-for-quest")) || (key0 === "quest-reward")) || (key0 === "used-in-recipe"))){const err7 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data["cash-shop-listing"] !== undefined){let data0 = data["cash-shop-listing"];if(typeof data0 !== "string"){const err8 = {instancePath:instancePath+"/cash-shop-listing",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(!(((data0 === "complete") || (data0 === "partial")) || (data0 === "unsupported"))){const err9 = {instancePath:instancePath+"/cash-shop-listing",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data["found-in-container"] !== undefined){let data1 = data["found-in-container"];if(typeof data1 !== "string"){const err10 = {instancePath:instancePath+"/found-in-container",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(!(((data1 === "complete") || (data1 === "partial")) || (data1 === "unsupported"))){const err11 = {instancePath:instancePath+"/found-in-container",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data["made-by-recipe"] !== undefined){let data2 = data["made-by-recipe"];if(typeof data2 !== "string"){const err12 = {instancePath:instancePath+"/made-by-recipe",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(!(((data2 === "complete") || (data2 === "partial")) || (data2 === "unsupported"))){const err13 = {instancePath:instancePath+"/made-by-recipe",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data["monster-drop"] !== undefined){let data3 = data["monster-drop"];if(typeof data3 !== "string"){const err14 = {instancePath:instancePath+"/monster-drop",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}if(!(((data3 === "complete") || (data3 === "partial")) || (data3 === "unsupported"))){const err15 = {instancePath:instancePath+"/monster-drop",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data["needed-for-quest"] !== undefined){let data4 = data["needed-for-quest"];if(typeof data4 !== "string"){const err16 = {instancePath:instancePath+"/needed-for-quest",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(!(((data4 === "complete") || (data4 === "partial")) || (data4 === "unsupported"))){const err17 = {instancePath:instancePath+"/needed-for-quest",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data["quest-reward"] !== undefined){let data5 = data["quest-reward"];if(typeof data5 !== "string"){const err18 = {instancePath:instancePath+"/quest-reward",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if(!(((data5 === "complete") || (data5 === "partial")) || (data5 === "unsupported"))){const err19 = {instancePath:instancePath+"/quest-reward",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data["used-in-recipe"] !== undefined){let data6 = data["used-in-recipe"];if(typeof data6 !== "string"){const err20 = {instancePath:instancePath+"/used-in-recipe",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(!(((data6 === "complete") || (data6 === "partial")) || (data6 === "unsupported"))){const err21 = {instancePath:instancePath+"/used-in-recipe",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}validate22.errors = vErrors;return errors === 0;}validate22.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate21(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.relationships === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "relationships"},message:"must have required property '"+"relationships"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.scrollTier === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "scrollTier"},message:"must have required property '"+"scrollTier"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data){if(!((key0 === "relationships") || (key0 === "scrollTier"))){const err2 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.relationships !== undefined){if(!(validate22(data.relationships, {instancePath:instancePath+"/relationships",parentData:data,parentDataProperty:"relationships",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}}if(data.scrollTier !== undefined){let data1 = data.scrollTier;if(typeof data1 !== "string"){const err3 = {instancePath:instancePath+"/scrollTier",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(!(((data1 === "complete") || (data1 === "partial")) || (data1 === "unsupported"))){const err4 = {instancePath:instancePath+"/scrollTier",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}else {const err5 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema42 = {"description":"One compact Item Browse row.","type":"object","properties":{"family":{"type":["string","null"]},"functions":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseFunction"}},"icon":{"$ref":"#/$defs/CatalogFact"},"itemClass":{"$ref":"#/$defs/ItemBrowseClass"},"name":{"$ref":"#/$defs/CatalogFact"},"petFood":{"anyOf":[{"$ref":"#/$defs/ItemBrowsePetFood"},{"type":"null"}]},"projectileAttack":{"type":["integer","null"],"format":"int64"},"questFlag":{"type":"boolean"},"recovery":{"anyOf":[{"$ref":"#/$defs/ItemBrowseRecovery"},{"type":"null"}]},"relationships":{"$ref":"#/$defs/ItemBrowseRelationshipCounts"},"scroll":{"anyOf":[{"$ref":"#/$defs/ItemBrowseScroll"},{"type":"null"}]},"seatingRecovery":{"anyOf":[{"$ref":"#/$defs/ItemBrowseSeatingRecovery"},{"type":"null"}]},"sourceId":{"type":"string"},"types":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseType"}}},"additionalProperties":false,"required":["sourceId","itemClass","name","icon"]};const schema43 = {"description":"Positive source-backed Item behavior.","type":"string","enum":["upgrade","skill","summon","reward-container","monster-card","readable","pet","recovery"]};const schema46 = {"description":"Canonical non-equipment Item class.","type":"string","enum":["consume","etc","setup","cash","pet"]};const schema47 = {"description":"Pet-food effect values and the Pet items they target.","type":"object","properties":{"closeness":{"type":["integer","null"],"format":"int64"},"fullness":{"type":["integer","null"],"format":"int64"},"tameness":{"type":["integer","null"],"format":"int64"},"targets":{"type":"array","items":{"type":"string"}},"unresolvedTargets":{"type":"array","items":{"type":"string"}}},"additionalProperties":false};const schema48 = {"description":"Positive recovery values carried by a consumable's spec block.","type":"object","properties":{"hp":{"type":["integer","null"],"format":"int64"},"hpPercent":{"type":["integer","null"],"format":"int64"},"mp":{"type":["integer","null"],"format":"int64"},"mpPercent":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false};const schema49 = {"description":"Distinct related-entity counts for one Item. Zero counts are omitted.","type":"object","properties":{"cash-shop-listing":{"type":["integer","null"],"format":"uint32","minimum":0},"found-in-container":{"type":["integer","null"],"format":"uint32","minimum":0},"made-by-recipe":{"type":["integer","null"],"format":"uint32","minimum":0},"monster-drop":{"type":["integer","null"],"format":"uint32","minimum":0},"needed-for-quest":{"type":["integer","null"],"format":"uint32","minimum":0},"quest-reward":{"type":["integer","null"],"format":"uint32","minimum":0},"used-in-recipe":{"type":["integer","null"],"format":"uint32","minimum":0}},"additionalProperties":false};const schema55 = {"description":"Seating recovery, deliberately separate from consumable recovery.","type":"object","properties":{"hp":{"type":["integer","null"],"format":"int64"},"mp":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false};const schema56 = {"description":"Partial, positive source-backed Item subtype.","type":"string","enum":["upgrade-scroll","arrow","throwing-star","bullet","chair","ore","gem","pet-food","refined-material","potion","food-buff","monster-material","holiday-ornament","furniture","crafting-station","meso-pouch"]};const func1 = Object.prototype.hasOwnProperty;const schema44 = {"description":"Compact catalog projection of [`FactState`]. It keeps the state and a\npositively observed value, retains the coverage witness for `absent`, and\nomits source attribution and explanatory metadata.","oneOf":[{"description":"A positively observed catalog value.","type":"object","properties":{"state":{"type":"string","const":"known"},"value":{"type":"string"}},"additionalProperties":false,"required":["state","value"]},{"description":"The value could not be established.","type":"object","properties":{"state":{"type":"string","const":"unknown"}},"additionalProperties":false,"required":["state"]},{"description":"No value was present under a source scope with complete coverage.","type":"object","properties":{"coverageKey":{"$ref":"#/$defs/CoverageKey"},"state":{"type":"string","const":"absent"}},"additionalProperties":false,"required":["state","coverageKey"]},{"description":"The producer cannot supply the fact.","type":"object","properties":{"state":{"type":"string","const":"unsupported"}},"additionalProperties":false,"required":["state"]}]};const schema45 = {"type":"string","minLength":1,"pattern":"\\S"};const func2 = function ucs2length(str) {
|
|
1
|
+
"use strict";export const validate = validate20;export default validate20;const schema31 = {"$schema":"https://json-schema.org/draft/2020-12/schema","title":"ItemBrowsePack","description":"Bounded pack of compact browse rows keyed by Item public key.","type":"object","properties":{"contractVersion":{"type":"string","enum":["2.0","2.1"]},"coverage":{"$ref":"#/$defs/ItemBrowseCoverage"},"format":{"type":"string","const":"item-browse-pack/1"},"records":{"type":"object","additionalProperties":{"$ref":"#/$defs/ItemBrowseRecord"}},"scope":{"$ref":"#/$defs/BuildScope"}},"additionalProperties":false,"required":["format","contractVersion","scope","coverage","records"],"$defs":{"BuildScope":{"description":"Build scope specifying the game family and concrete build identity.","type":"object","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"]},"CatalogFact":{"description":"Compact catalog projection of [`FactState`]. It keeps the state and a\npositively observed value, retains the coverage witness for `absent`, and\nomits source attribution and explanatory metadata.","oneOf":[{"description":"A positively observed catalog value.","type":"object","properties":{"state":{"type":"string","const":"known"},"value":{"type":"string"}},"additionalProperties":false,"required":["state","value"]},{"description":"The value could not be established.","type":"object","properties":{"state":{"type":"string","const":"unknown"}},"additionalProperties":false,"required":["state"]},{"description":"No value was present under a source scope with complete coverage.","type":"object","properties":{"coverageKey":{"$ref":"#/$defs/CoverageKey"},"state":{"type":"string","const":"absent"}},"additionalProperties":false,"required":["state","coverageKey"]},{"description":"The producer cannot supply the fact.","type":"object","properties":{"state":{"type":"string","const":"unsupported"}},"additionalProperties":false,"required":["state"]}]},"CoverageKey":{"type":"string","minLength":1,"pattern":"\\S"},"ItemBrowseBuff":{"description":"Recognized consumable buffs and their optional source duration.","type":"object","properties":{"durationSeconds":{"type":["integer","null"],"format":"int64"},"effects":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseBuffEffect"}}},"additionalProperties":false,"required":["effects"]},"ItemBrowseBuffEffect":{"description":"One recognized source-backed consumable buff effect.","type":"object","properties":{"stat":{"$ref":"#/$defs/ItemBrowseBuffStat"},"unit":{"$ref":"#/$defs/ItemBrowseBuffUnit"},"value":{"type":"integer","format":"int64"}},"additionalProperties":false,"required":["stat","value","unit"]},"ItemBrowseBuffStat":{"description":"Closed player-stat vocabulary for consumable buffs.","type":"string","enum":["weaponAttack","magicAttack","weaponDefense","magicDefense","accuracy","avoidability","speed","jump","criticalRate","criticalDamage","maxHp","maxMp","itemDropRate","mesoDropRate"]},"ItemBrowseBuffUnit":{"description":"Whether a buff effect is an absolute stat delta or a percentage.","type":"string","enum":["flat","percent"]},"ItemBrowseClass":{"description":"Canonical non-equipment Item class.","type":"string","enum":["consume","etc","setup","cash","pet"]},"ItemBrowseCoverage":{"description":"Build-level coverage for the browse product.","type":"object","properties":{"playerFacts":{"description":"Per-build availability of the sparse player-facing browse facts.\nMissing in Item Browse 2.0 documents; present in 2.1 documents.","anyOf":[{"$ref":"#/$defs/ItemBrowsePlayerFactCoverage"},{"type":"null"}]},"relationships":{"$ref":"#/$defs/ItemBrowseRelationshipCoverage"},"scrollTier":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["relationships","scrollTier"]},"ItemBrowseCoverageState":{"description":"Coverage state for one browse relationship or the Scroll tier facet.","type":"string","enum":["complete","partial","unsupported"]},"ItemBrowseFunction":{"description":"Positive source-backed Item behavior.","type":"string","enum":["upgrade","skill","summon","reward-container","monster-card","readable","pet","recovery"]},"ItemBrowseJobFamily":{"description":"Job family named by a source-backed Item requirement.","type":"string","enum":["beginner","warrior","magician","bowman","thief","pirate"]},"ItemBrowseLevelRange":{"description":"Separate level-band and requirement-level adjustment facts.","type":"object","properties":{"monsterLevelMax":{"type":["integer","null"],"format":"int64"},"monsterLevelMin":{"type":["integer","null"],"format":"int64"},"requirementLevelDelta":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false},"ItemBrowsePetFood":{"description":"Pet-food effect values and the Pet items they target.","type":"object","properties":{"closeness":{"type":["integer","null"],"format":"int64"},"fullness":{"type":["integer","null"],"format":"int64"},"tameness":{"type":["integer","null"],"format":"int64"},"targets":{"type":"array","items":{"type":"string"}},"unresolvedTargets":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"ItemBrowsePlayerFactCoverage":{"description":"Per-field source availability for player-facing browse facts in one build.","type":"object","properties":{"buff":{"$ref":"#/$defs/ItemBrowseCoverageState"},"flatRecovery":{"$ref":"#/$defs/ItemBrowseCoverageState"},"levelRange":{"$ref":"#/$defs/ItemBrowseCoverageState"},"maxStack":{"$ref":"#/$defs/ItemBrowseCoverageState"},"percentRecovery":{"$ref":"#/$defs/ItemBrowseCoverageState"},"requirementJobs":{"$ref":"#/$defs/ItemBrowseCoverageState"},"requirementLevel":{"$ref":"#/$defs/ItemBrowseCoverageState"},"sellPrice":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["sellPrice","maxStack","requirementLevel","requirementJobs","levelRange","buff","flatRecovery","percentRecovery"]},"ItemBrowseRecord":{"description":"One compact Item Browse row.","type":"object","properties":{"buff":{"anyOf":[{"$ref":"#/$defs/ItemBrowseBuff"},{"type":"null"}]},"family":{"type":["string","null"]},"functions":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseFunction"}},"icon":{"$ref":"#/$defs/CatalogFact"},"itemClass":{"$ref":"#/$defs/ItemBrowseClass"},"levelRange":{"anyOf":[{"$ref":"#/$defs/ItemBrowseLevelRange"},{"type":"null"}]},"maxStack":{"type":["integer","null"],"format":"int64"},"name":{"$ref":"#/$defs/CatalogFact"},"petFood":{"anyOf":[{"$ref":"#/$defs/ItemBrowsePetFood"},{"type":"null"}]},"projectileAttack":{"type":["integer","null"],"format":"int64"},"questFlag":{"type":"boolean"},"recovery":{"anyOf":[{"$ref":"#/$defs/ItemBrowseRecovery"},{"type":"null"}]},"relationships":{"$ref":"#/$defs/ItemBrowseRelationshipCounts"},"requirement":{"anyOf":[{"$ref":"#/$defs/ItemBrowseRequirement"},{"type":"null"}]},"scroll":{"anyOf":[{"$ref":"#/$defs/ItemBrowseScroll"},{"type":"null"}]},"seatingRecovery":{"anyOf":[{"$ref":"#/$defs/ItemBrowseSeatingRecovery"},{"type":"null"}]},"sellPrice":{"description":"Sparse facts. Omission means unknown unless coverage says unsupported.","type":["integer","null"],"format":"int64"},"sourceId":{"type":"string"},"types":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseType"}}},"additionalProperties":false,"required":["sourceId","itemClass","name","icon"]},"ItemBrowseRecovery":{"description":"Positive recovery values carried by a consumable's spec block.","type":"object","properties":{"hp":{"type":["integer","null"],"format":"int64"},"hpPercent":{"type":["integer","null"],"format":"int64"},"mp":{"type":["integer","null"],"format":"int64"},"mpPercent":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false},"ItemBrowseRelationshipCounts":{"description":"Distinct related-entity counts for one Item. Zero counts are omitted.","type":"object","properties":{"cash-shop-listing":{"type":["integer","null"],"format":"uint32","minimum":0},"found-in-container":{"type":["integer","null"],"format":"uint32","minimum":0},"made-by-recipe":{"type":["integer","null"],"format":"uint32","minimum":0},"monster-drop":{"type":["integer","null"],"format":"uint32","minimum":0},"needed-for-quest":{"type":["integer","null"],"format":"uint32","minimum":0},"quest-reward":{"type":["integer","null"],"format":"uint32","minimum":0},"used-in-recipe":{"type":["integer","null"],"format":"uint32","minimum":0}},"additionalProperties":false},"ItemBrowseRelationshipCoverage":{"description":"Per-relationship coverage for one build.","type":"object","properties":{"cash-shop-listing":{"$ref":"#/$defs/ItemBrowseCoverageState"},"found-in-container":{"$ref":"#/$defs/ItemBrowseCoverageState"},"made-by-recipe":{"$ref":"#/$defs/ItemBrowseCoverageState"},"monster-drop":{"$ref":"#/$defs/ItemBrowseCoverageState"},"needed-for-quest":{"$ref":"#/$defs/ItemBrowseCoverageState"},"quest-reward":{"$ref":"#/$defs/ItemBrowseCoverageState"},"used-in-recipe":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["monster-drop","quest-reward","needed-for-quest","used-in-recipe","made-by-recipe","found-in-container","cash-shop-listing"]},"ItemBrowseRequirement":{"description":"Requirement facts. The optional fields are sparse; absence means the source value is unknown.","type":"object","properties":{"jobs":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseJobFamily"}},"level":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false},"ItemBrowseScroll":{"description":"Scroll facts derived from a typed upgrade row and its source title.","type":"object","properties":{"cursed":{"type":["integer","null"],"format":"int64"},"deltas":{"$ref":"#/$defs/ItemBrowseScrollDeltas"},"specials":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseUpgradeSpecial"}},"success":{"type":["integer","null"],"format":"int64"},"targetLabel":{"anyOf":[{"$ref":"#/$defs/ItemBrowseUpgradeTarget"},{"type":"null"}]},"targets":{"type":"array","items":{"type":"string"}},"tier":{"anyOf":[{"$ref":"#/$defs/ItemBrowseUpgradeTier"},{"type":"null"}]},"unresolvedTargets":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"ItemBrowseScrollDeltas":{"description":"Non-zero Scroll stat deltas.","type":"object","properties":{"accuracy":{"type":["integer","null"],"format":"int64"},"avoidability":{"type":["integer","null"],"format":"int64"},"craft":{"type":["integer","null"],"format":"int64"},"criticalDamage":{"type":["integer","null"],"format":"int64"},"criticalRate":{"type":["integer","null"],"format":"int64"},"dexterity":{"type":["integer","null"],"format":"int64"},"intelligence":{"type":["integer","null"],"format":"int64"},"jump":{"type":["integer","null"],"format":"int64"},"luck":{"type":["integer","null"],"format":"int64"},"magicAttack":{"type":["integer","null"],"format":"int64"},"magicDefense":{"type":["integer","null"],"format":"int64"},"maxHp":{"type":["integer","null"],"format":"int64"},"maxMp":{"type":["integer","null"],"format":"int64"},"speed":{"type":["integer","null"],"format":"int64"},"strength":{"type":["integer","null"],"format":"int64"},"swim":{"type":["integer","null"],"format":"int64"},"weaponAttack":{"type":["integer","null"],"format":"int64"},"weaponDefense":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false},"ItemBrowseSeatingRecovery":{"description":"Seating recovery, deliberately separate from consumable recovery.","type":"object","properties":{"hp":{"type":["integer","null"],"format":"int64"},"mp":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false},"ItemBrowseType":{"description":"Partial, positive source-backed Item subtype.","type":"string","enum":["upgrade-scroll","arrow","throwing-star","bullet","chair","ore","gem","pet-food","refined-material","potion","food-buff","monster-material","holiday-ornament","furniture","crafting-station","meso-pouch"]},"ItemBrowseUpgradeSpecial":{"description":"Named or typed Scroll mechanic.","type":"string","enum":["clean-slate","chaos","anti-slip","warm-support","randomized-stats"]},"ItemBrowseUpgradeTarget":{"description":"Equipment target named by a Scroll title. This is a label, never an identity.","type":"string","enum":["accessory","belt","bottomwear","bow","cape","claw","crossbow","dagger","earrings","eye-accessory","face-accessory","gloves","gun","hat","knuckle","one-handed-axe","one-handed-blunt-weapon","one-handed-sword","overall-armor","pet-equipment","polearm","ring","shield","shoes","spear","staff","topwear","two-handed-axe","two-handed-blunt-weapon","two-handed-sword","wand"]},"ItemBrowseUpgradeTier":{"description":"Classic World-only named Scroll tier.","type":"string","enum":["lesser","intermediate","greater","chaos"]}}};const schema73 = {"description":"Build scope specifying the game family and concrete build identity.","type":"object","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"]};const schema32 = {"description":"Build-level coverage for the browse product.","type":"object","properties":{"playerFacts":{"description":"Per-build availability of the sparse player-facing browse facts.\nMissing in Item Browse 2.0 documents; present in 2.1 documents.","anyOf":[{"$ref":"#/$defs/ItemBrowsePlayerFactCoverage"},{"type":"null"}]},"relationships":{"$ref":"#/$defs/ItemBrowseRelationshipCoverage"},"scrollTier":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["relationships","scrollTier"]};const schema34 = {"description":"Coverage state for one browse relationship or the Scroll tier facet.","type":"string","enum":["complete","partial","unsupported"]};const schema33 = {"description":"Per-field source availability for player-facing browse facts in one build.","type":"object","properties":{"buff":{"$ref":"#/$defs/ItemBrowseCoverageState"},"flatRecovery":{"$ref":"#/$defs/ItemBrowseCoverageState"},"levelRange":{"$ref":"#/$defs/ItemBrowseCoverageState"},"maxStack":{"$ref":"#/$defs/ItemBrowseCoverageState"},"percentRecovery":{"$ref":"#/$defs/ItemBrowseCoverageState"},"requirementJobs":{"$ref":"#/$defs/ItemBrowseCoverageState"},"requirementLevel":{"$ref":"#/$defs/ItemBrowseCoverageState"},"sellPrice":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["sellPrice","maxStack","requirementLevel","requirementJobs","levelRange","buff","flatRecovery","percentRecovery"]};function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.sellPrice === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "sellPrice"},message:"must have required property '"+"sellPrice"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.maxStack === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "maxStack"},message:"must have required property '"+"maxStack"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.requirementLevel === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "requirementLevel"},message:"must have required property '"+"requirementLevel"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.requirementJobs === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "requirementJobs"},message:"must have required property '"+"requirementJobs"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.levelRange === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "levelRange"},message:"must have required property '"+"levelRange"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.buff === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "buff"},message:"must have required property '"+"buff"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.flatRecovery === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "flatRecovery"},message:"must have required property '"+"flatRecovery"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.percentRecovery === undefined){const err7 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "percentRecovery"},message:"must have required property '"+"percentRecovery"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key0 in data){if(!((((((((key0 === "buff") || (key0 === "flatRecovery")) || (key0 === "levelRange")) || (key0 === "maxStack")) || (key0 === "percentRecovery")) || (key0 === "requirementJobs")) || (key0 === "requirementLevel")) || (key0 === "sellPrice"))){const err8 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.buff !== undefined){let data0 = data.buff;if(typeof data0 !== "string"){const err9 = {instancePath:instancePath+"/buff",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(!(((data0 === "complete") || (data0 === "partial")) || (data0 === "unsupported"))){const err10 = {instancePath:instancePath+"/buff",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.flatRecovery !== undefined){let data1 = data.flatRecovery;if(typeof data1 !== "string"){const err11 = {instancePath:instancePath+"/flatRecovery",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(!(((data1 === "complete") || (data1 === "partial")) || (data1 === "unsupported"))){const err12 = {instancePath:instancePath+"/flatRecovery",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.levelRange !== undefined){let data2 = data.levelRange;if(typeof data2 !== "string"){const err13 = {instancePath:instancePath+"/levelRange",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(!(((data2 === "complete") || (data2 === "partial")) || (data2 === "unsupported"))){const err14 = {instancePath:instancePath+"/levelRange",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.maxStack !== undefined){let data3 = data.maxStack;if(typeof data3 !== "string"){const err15 = {instancePath:instancePath+"/maxStack",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(!(((data3 === "complete") || (data3 === "partial")) || (data3 === "unsupported"))){const err16 = {instancePath:instancePath+"/maxStack",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data.percentRecovery !== undefined){let data4 = data.percentRecovery;if(typeof data4 !== "string"){const err17 = {instancePath:instancePath+"/percentRecovery",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}if(!(((data4 === "complete") || (data4 === "partial")) || (data4 === "unsupported"))){const err18 = {instancePath:instancePath+"/percentRecovery",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.requirementJobs !== undefined){let data5 = data.requirementJobs;if(typeof data5 !== "string"){const err19 = {instancePath:instancePath+"/requirementJobs",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if(!(((data5 === "complete") || (data5 === "partial")) || (data5 === "unsupported"))){const err20 = {instancePath:instancePath+"/requirementJobs",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.requirementLevel !== undefined){let data6 = data.requirementLevel;if(typeof data6 !== "string"){const err21 = {instancePath:instancePath+"/requirementLevel",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(!(((data6 === "complete") || (data6 === "partial")) || (data6 === "unsupported"))){const err22 = {instancePath:instancePath+"/requirementLevel",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.sellPrice !== undefined){let data7 = data.sellPrice;if(typeof data7 !== "string"){const err23 = {instancePath:instancePath+"/sellPrice",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}if(!(((data7 === "complete") || (data7 === "partial")) || (data7 === "unsupported"))){const err24 = {instancePath:instancePath+"/sellPrice",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}else {const err25 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}validate22.errors = vErrors;return errors === 0;}validate22.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema42 = {"description":"Per-relationship coverage for one build.","type":"object","properties":{"cash-shop-listing":{"$ref":"#/$defs/ItemBrowseCoverageState"},"found-in-container":{"$ref":"#/$defs/ItemBrowseCoverageState"},"made-by-recipe":{"$ref":"#/$defs/ItemBrowseCoverageState"},"monster-drop":{"$ref":"#/$defs/ItemBrowseCoverageState"},"needed-for-quest":{"$ref":"#/$defs/ItemBrowseCoverageState"},"quest-reward":{"$ref":"#/$defs/ItemBrowseCoverageState"},"used-in-recipe":{"$ref":"#/$defs/ItemBrowseCoverageState"}},"additionalProperties":false,"required":["monster-drop","quest-reward","needed-for-quest","used-in-recipe","made-by-recipe","found-in-container","cash-shop-listing"]};function validate24(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate24.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data["monster-drop"] === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "monster-drop"},message:"must have required property '"+"monster-drop"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data["quest-reward"] === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "quest-reward"},message:"must have required property '"+"quest-reward"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data["needed-for-quest"] === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "needed-for-quest"},message:"must have required property '"+"needed-for-quest"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data["used-in-recipe"] === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "used-in-recipe"},message:"must have required property '"+"used-in-recipe"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data["made-by-recipe"] === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "made-by-recipe"},message:"must have required property '"+"made-by-recipe"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data["found-in-container"] === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "found-in-container"},message:"must have required property '"+"found-in-container"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data["cash-shop-listing"] === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "cash-shop-listing"},message:"must have required property '"+"cash-shop-listing"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}for(const key0 in data){if(!(((((((key0 === "cash-shop-listing") || (key0 === "found-in-container")) || (key0 === "made-by-recipe")) || (key0 === "monster-drop")) || (key0 === "needed-for-quest")) || (key0 === "quest-reward")) || (key0 === "used-in-recipe"))){const err7 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data["cash-shop-listing"] !== undefined){let data0 = data["cash-shop-listing"];if(typeof data0 !== "string"){const err8 = {instancePath:instancePath+"/cash-shop-listing",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(!(((data0 === "complete") || (data0 === "partial")) || (data0 === "unsupported"))){const err9 = {instancePath:instancePath+"/cash-shop-listing",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data["found-in-container"] !== undefined){let data1 = data["found-in-container"];if(typeof data1 !== "string"){const err10 = {instancePath:instancePath+"/found-in-container",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(!(((data1 === "complete") || (data1 === "partial")) || (data1 === "unsupported"))){const err11 = {instancePath:instancePath+"/found-in-container",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data["made-by-recipe"] !== undefined){let data2 = data["made-by-recipe"];if(typeof data2 !== "string"){const err12 = {instancePath:instancePath+"/made-by-recipe",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(!(((data2 === "complete") || (data2 === "partial")) || (data2 === "unsupported"))){const err13 = {instancePath:instancePath+"/made-by-recipe",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data["monster-drop"] !== undefined){let data3 = data["monster-drop"];if(typeof data3 !== "string"){const err14 = {instancePath:instancePath+"/monster-drop",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}if(!(((data3 === "complete") || (data3 === "partial")) || (data3 === "unsupported"))){const err15 = {instancePath:instancePath+"/monster-drop",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data["needed-for-quest"] !== undefined){let data4 = data["needed-for-quest"];if(typeof data4 !== "string"){const err16 = {instancePath:instancePath+"/needed-for-quest",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(!(((data4 === "complete") || (data4 === "partial")) || (data4 === "unsupported"))){const err17 = {instancePath:instancePath+"/needed-for-quest",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data["quest-reward"] !== undefined){let data5 = data["quest-reward"];if(typeof data5 !== "string"){const err18 = {instancePath:instancePath+"/quest-reward",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if(!(((data5 === "complete") || (data5 === "partial")) || (data5 === "unsupported"))){const err19 = {instancePath:instancePath+"/quest-reward",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data["used-in-recipe"] !== undefined){let data6 = data["used-in-recipe"];if(typeof data6 !== "string"){const err20 = {instancePath:instancePath+"/used-in-recipe",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(!(((data6 === "complete") || (data6 === "partial")) || (data6 === "unsupported"))){const err21 = {instancePath:instancePath+"/used-in-recipe",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}else {const err22 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}validate24.errors = vErrors;return errors === 0;}validate24.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate21(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.relationships === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "relationships"},message:"must have required property '"+"relationships"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.scrollTier === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "scrollTier"},message:"must have required property '"+"scrollTier"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data){if(!(((key0 === "playerFacts") || (key0 === "relationships")) || (key0 === "scrollTier"))){const err2 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.playerFacts !== undefined){let data0 = data.playerFacts;const _errs3 = errors;let valid1 = false;const _errs4 = errors;if(!(validate22(data0, {instancePath:instancePath+"/playerFacts",parentData:data,parentDataProperty:"playerFacts",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var _valid0 = _errs4 === errors;valid1 = valid1 || _valid0;const _errs5 = errors;if(data0 !== null){const err3 = {instancePath:instancePath+"/playerFacts",schemaPath:"#/properties/playerFacts/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}var _valid0 = _errs5 === errors;valid1 = valid1 || _valid0;if(!valid1){const err4 = {instancePath:instancePath+"/playerFacts",schemaPath:"#/properties/playerFacts/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}else {errors = _errs3;if(vErrors !== null){if(_errs3){vErrors.length = _errs3;}else {vErrors = null;}}}}if(data.relationships !== undefined){if(!(validate24(data.relationships, {instancePath:instancePath+"/relationships",parentData:data,parentDataProperty:"relationships",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate24.errors : vErrors.concat(validate24.errors);errors = vErrors.length;}}if(data.scrollTier !== undefined){let data2 = data.scrollTier;if(typeof data2 !== "string"){const err5 = {instancePath:instancePath+"/scrollTier",schemaPath:"#/$defs/ItemBrowseCoverageState/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(!(((data2 === "complete") || (data2 === "partial")) || (data2 === "unsupported"))){const err6 = {instancePath:instancePath+"/scrollTier",schemaPath:"#/$defs/ItemBrowseCoverageState/enum",keyword:"enum",params:{allowedValues: schema34.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema51 = {"description":"One compact Item Browse row.","type":"object","properties":{"buff":{"anyOf":[{"$ref":"#/$defs/ItemBrowseBuff"},{"type":"null"}]},"family":{"type":["string","null"]},"functions":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseFunction"}},"icon":{"$ref":"#/$defs/CatalogFact"},"itemClass":{"$ref":"#/$defs/ItemBrowseClass"},"levelRange":{"anyOf":[{"$ref":"#/$defs/ItemBrowseLevelRange"},{"type":"null"}]},"maxStack":{"type":["integer","null"],"format":"int64"},"name":{"$ref":"#/$defs/CatalogFact"},"petFood":{"anyOf":[{"$ref":"#/$defs/ItemBrowsePetFood"},{"type":"null"}]},"projectileAttack":{"type":["integer","null"],"format":"int64"},"questFlag":{"type":"boolean"},"recovery":{"anyOf":[{"$ref":"#/$defs/ItemBrowseRecovery"},{"type":"null"}]},"relationships":{"$ref":"#/$defs/ItemBrowseRelationshipCounts"},"requirement":{"anyOf":[{"$ref":"#/$defs/ItemBrowseRequirement"},{"type":"null"}]},"scroll":{"anyOf":[{"$ref":"#/$defs/ItemBrowseScroll"},{"type":"null"}]},"seatingRecovery":{"anyOf":[{"$ref":"#/$defs/ItemBrowseSeatingRecovery"},{"type":"null"}]},"sellPrice":{"description":"Sparse facts. Omission means unknown unless coverage says unsupported.","type":["integer","null"],"format":"int64"},"sourceId":{"type":"string"},"types":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseType"}}},"additionalProperties":false,"required":["sourceId","itemClass","name","icon"]};const schema56 = {"description":"Positive source-backed Item behavior.","type":"string","enum":["upgrade","skill","summon","reward-container","monster-card","readable","pet","recovery"]};const schema59 = {"description":"Canonical non-equipment Item class.","type":"string","enum":["consume","etc","setup","cash","pet"]};const schema60 = {"description":"Separate level-band and requirement-level adjustment facts.","type":"object","properties":{"monsterLevelMax":{"type":["integer","null"],"format":"int64"},"monsterLevelMin":{"type":["integer","null"],"format":"int64"},"requirementLevelDelta":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false};const schema61 = {"description":"Pet-food effect values and the Pet items they target.","type":"object","properties":{"closeness":{"type":["integer","null"],"format":"int64"},"fullness":{"type":["integer","null"],"format":"int64"},"tameness":{"type":["integer","null"],"format":"int64"},"targets":{"type":"array","items":{"type":"string"}},"unresolvedTargets":{"type":"array","items":{"type":"string"}}},"additionalProperties":false};const schema62 = {"description":"Positive recovery values carried by a consumable's spec block.","type":"object","properties":{"hp":{"type":["integer","null"],"format":"int64"},"hpPercent":{"type":["integer","null"],"format":"int64"},"mp":{"type":["integer","null"],"format":"int64"},"mpPercent":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false};const schema63 = {"description":"Distinct related-entity counts for one Item. Zero counts are omitted.","type":"object","properties":{"cash-shop-listing":{"type":["integer","null"],"format":"uint32","minimum":0},"found-in-container":{"type":["integer","null"],"format":"uint32","minimum":0},"made-by-recipe":{"type":["integer","null"],"format":"uint32","minimum":0},"monster-drop":{"type":["integer","null"],"format":"uint32","minimum":0},"needed-for-quest":{"type":["integer","null"],"format":"uint32","minimum":0},"quest-reward":{"type":["integer","null"],"format":"uint32","minimum":0},"used-in-recipe":{"type":["integer","null"],"format":"uint32","minimum":0}},"additionalProperties":false};const schema71 = {"description":"Seating recovery, deliberately separate from consumable recovery.","type":"object","properties":{"hp":{"type":["integer","null"],"format":"int64"},"mp":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false};const schema72 = {"description":"Partial, positive source-backed Item subtype.","type":"string","enum":["upgrade-scroll","arrow","throwing-star","bullet","chair","ore","gem","pet-food","refined-material","potion","food-buff","monster-material","holiday-ornament","furniture","crafting-station","meso-pouch"]};const func1 = Object.prototype.hasOwnProperty;const schema52 = {"description":"Recognized consumable buffs and their optional source duration.","type":"object","properties":{"durationSeconds":{"type":["integer","null"],"format":"int64"},"effects":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseBuffEffect"}}},"additionalProperties":false,"required":["effects"]};const schema53 = {"description":"One recognized source-backed consumable buff effect.","type":"object","properties":{"stat":{"$ref":"#/$defs/ItemBrowseBuffStat"},"unit":{"$ref":"#/$defs/ItemBrowseBuffUnit"},"value":{"type":"integer","format":"int64"}},"additionalProperties":false,"required":["stat","value","unit"]};const schema54 = {"description":"Closed player-stat vocabulary for consumable buffs.","type":"string","enum":["weaponAttack","magicAttack","weaponDefense","magicDefense","accuracy","avoidability","speed","jump","criticalRate","criticalDamage","maxHp","maxMp","itemDropRate","mesoDropRate"]};const schema55 = {"description":"Whether a buff effect is an absolute stat delta or a percentage.","type":"string","enum":["flat","percent"]};function validate29(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate29.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.stat === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "stat"},message:"must have required property '"+"stat"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.value === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "value"},message:"must have required property '"+"value"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.unit === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "unit"},message:"must have required property '"+"unit"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}for(const key0 in data){if(!(((key0 === "stat") || (key0 === "unit")) || (key0 === "value"))){const err3 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.stat !== undefined){let data0 = data.stat;if(typeof data0 !== "string"){const err4 = {instancePath:instancePath+"/stat",schemaPath:"#/$defs/ItemBrowseBuffStat/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(!((((((((((((((data0 === "weaponAttack") || (data0 === "magicAttack")) || (data0 === "weaponDefense")) || (data0 === "magicDefense")) || (data0 === "accuracy")) || (data0 === "avoidability")) || (data0 === "speed")) || (data0 === "jump")) || (data0 === "criticalRate")) || (data0 === "criticalDamage")) || (data0 === "maxHp")) || (data0 === "maxMp")) || (data0 === "itemDropRate")) || (data0 === "mesoDropRate"))){const err5 = {instancePath:instancePath+"/stat",schemaPath:"#/$defs/ItemBrowseBuffStat/enum",keyword:"enum",params:{allowedValues: schema54.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.unit !== undefined){let data1 = data.unit;if(typeof data1 !== "string"){const err6 = {instancePath:instancePath+"/unit",schemaPath:"#/$defs/ItemBrowseBuffUnit/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(!((data1 === "flat") || (data1 === "percent"))){const err7 = {instancePath:instancePath+"/unit",schemaPath:"#/$defs/ItemBrowseBuffUnit/enum",keyword:"enum",params:{allowedValues: schema55.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.value !== undefined){let data2 = data.value;if(!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))){const err8 = {instancePath:instancePath+"/value",schemaPath:"#/properties/value/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}}else {const err9 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}validate29.errors = vErrors;return errors === 0;}validate29.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate28(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate28.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.effects === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "effects"},message:"must have required property '"+"effects"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}for(const key0 in data){if(!((key0 === "durationSeconds") || (key0 === "effects"))){const err1 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.durationSeconds !== undefined){let data0 = data.durationSeconds;if((!(((typeof data0 == "number") && (!(data0 % 1) && !isNaN(data0))) && (isFinite(data0)))) && (data0 !== null)){const err2 = {instancePath:instancePath+"/durationSeconds",schemaPath:"#/properties/durationSeconds/type",keyword:"type",params:{type: schema52.properties.durationSeconds.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.effects !== undefined){let data1 = data.effects;if(Array.isArray(data1)){const len0 = data1.length;for(let i0=0; i0<len0; i0++){if(!(validate29(data1[i0], {instancePath:instancePath+"/effects/" + i0,parentData:data1,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate29.errors : vErrors.concat(validate29.errors);errors = vErrors.length;}}}else {const err3 = {instancePath:instancePath+"/effects",schemaPath:"#/properties/effects/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}else {const err4 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}validate28.errors = vErrors;return errors === 0;}validate28.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema57 = {"description":"Compact catalog projection of [`FactState`]. It keeps the state and a\npositively observed value, retains the coverage witness for `absent`, and\nomits source attribution and explanatory metadata.","oneOf":[{"description":"A positively observed catalog value.","type":"object","properties":{"state":{"type":"string","const":"known"},"value":{"type":"string"}},"additionalProperties":false,"required":["state","value"]},{"description":"The value could not be established.","type":"object","properties":{"state":{"type":"string","const":"unknown"}},"additionalProperties":false,"required":["state"]},{"description":"No value was present under a source scope with complete coverage.","type":"object","properties":{"coverageKey":{"$ref":"#/$defs/CoverageKey"},"state":{"type":"string","const":"absent"}},"additionalProperties":false,"required":["state","coverageKey"]},{"description":"The producer cannot supply the fact.","type":"object","properties":{"state":{"type":"string","const":"unsupported"}},"additionalProperties":false,"required":["state"]}]};const schema58 = {"type":"string","minLength":1,"pattern":"\\S"};const func2 = function ucs2length(str) {
|
|
2
2
|
const len = str.length;
|
|
3
3
|
let length = 0;
|
|
4
4
|
let pos = 0;
|
|
@@ -14,4 +14,4 @@
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
return length;
|
|
17
|
-
};const pattern4 = new RegExp("\\S", "u");function validate26(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate26.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err0 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.value === undefined){const err1 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "value"},message:"must have required property '"+"value"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data){if(!((key0 === "state") || (key0 === "value"))){const err2 = {instancePath,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.state !== undefined){let data0 = data.state;if(typeof data0 !== "string"){const err3 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if("known" !== data0){const err4 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/const",keyword:"const",params:{allowedValue: "known"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.value !== undefined){if(typeof data.value !== "string"){const err5 = {instancePath:instancePath+"/value",schemaPath:"#/oneOf/0/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}}else {const err6 = {instancePath,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;var props0 = true;}const _errs8 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err7 = {instancePath,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key1 in data){if(!(key1 === "state")){const err8 = {instancePath,schemaPath:"#/oneOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.state !== undefined){let data2 = data.state;if(typeof data2 !== "string"){const err9 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if("unknown" !== data2){const err10 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath,schemaPath:"#/oneOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid0 = _errs8 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;if(props0 !== true){props0 = true;}}const _errs13 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err12 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(data.coverageKey === undefined){const err13 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "coverageKey"},message:"must have required property '"+"coverageKey"+"'"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}for(const key2 in data){if(!((key2 === "coverageKey") || (key2 === "state"))){const err14 = {instancePath,schemaPath:"#/oneOf/2/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.coverageKey !== undefined){let data3 = data.coverageKey;if(typeof data3 === "string"){if(func2(data3) < 1){const err15 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(!pattern4.test(data3)){const err16 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.state !== undefined){let data4 = data.state;if(typeof data4 !== "string"){const err18 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if("absent" !== data4){const err19 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/const",keyword:"const",params:{allowedValue: "absent"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}}else {const err20 = {instancePath,schemaPath:"#/oneOf/2/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}var _valid0 = _errs13 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 2];}else {if(_valid0){valid0 = true;passing0 = 2;if(props0 !== true){props0 = true;}}const _errs21 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err21 = {instancePath,schemaPath:"#/oneOf/3/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}for(const key3 in data){if(!(key3 === "state")){const err22 = {instancePath,schemaPath:"#/oneOf/3/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.state !== undefined){let data5 = data.state;if(typeof data5 !== "string"){const err23 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/3/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}if("unsupported" !== data5){const err24 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/3/properties/state/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}else {const err25 = {instancePath,schemaPath:"#/oneOf/3/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var _valid0 = _errs21 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 3];}else {if(_valid0){valid0 = true;passing0 = 3;if(props0 !== true){props0 = true;}}}}}if(!valid0){const err26 = {instancePath,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate26.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate26.evaluated = {"dynamicProps":true,"dynamicItems":false};const schema50 = {"description":"Scroll facts derived from a typed upgrade row and its source title.","type":"object","properties":{"cursed":{"type":["integer","null"],"format":"int64"},"deltas":{"$ref":"#/$defs/ItemBrowseScrollDeltas"},"specials":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseUpgradeSpecial"}},"success":{"type":["integer","null"],"format":"int64"},"targetLabel":{"anyOf":[{"$ref":"#/$defs/ItemBrowseUpgradeTarget"},{"type":"null"}]},"targets":{"type":"array","items":{"type":"string"}},"tier":{"anyOf":[{"$ref":"#/$defs/ItemBrowseUpgradeTier"},{"type":"null"}]},"unresolvedTargets":{"type":"array","items":{"type":"string"}}},"additionalProperties":false};const schema51 = {"description":"Non-zero Scroll stat deltas.","type":"object","properties":{"accuracy":{"type":["integer","null"],"format":"int64"},"avoidability":{"type":["integer","null"],"format":"int64"},"craft":{"type":["integer","null"],"format":"int64"},"criticalDamage":{"type":["integer","null"],"format":"int64"},"criticalRate":{"type":["integer","null"],"format":"int64"},"dexterity":{"type":["integer","null"],"format":"int64"},"intelligence":{"type":["integer","null"],"format":"int64"},"jump":{"type":["integer","null"],"format":"int64"},"luck":{"type":["integer","null"],"format":"int64"},"magicAttack":{"type":["integer","null"],"format":"int64"},"magicDefense":{"type":["integer","null"],"format":"int64"},"maxHp":{"type":["integer","null"],"format":"int64"},"maxMp":{"type":["integer","null"],"format":"int64"},"speed":{"type":["integer","null"],"format":"int64"},"strength":{"type":["integer","null"],"format":"int64"},"swim":{"type":["integer","null"],"format":"int64"},"weaponAttack":{"type":["integer","null"],"format":"int64"},"weaponDefense":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false};const schema52 = {"description":"Named or typed Scroll mechanic.","type":"string","enum":["clean-slate","chaos","anti-slip","warm-support","randomized-stats"]};const schema53 = {"description":"Equipment target named by a Scroll title. This is a label, never an identity.","type":"string","enum":["accessory","belt","bottomwear","bow","cape","claw","crossbow","dagger","earrings","eye-accessory","face-accessory","gloves","gun","hat","knuckle","one-handed-axe","one-handed-blunt-weapon","one-handed-sword","overall-armor","pet-equipment","polearm","ring","shield","shoes","spear","staff","topwear","two-handed-axe","two-handed-blunt-weapon","two-handed-sword","wand"]};const schema54 = {"description":"Classic World-only named Scroll tier.","type":"string","enum":["lesser","intermediate","greater","chaos"]};function validate29(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate29.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){for(const key0 in data){if(!((((((((key0 === "cursed") || (key0 === "deltas")) || (key0 === "specials")) || (key0 === "success")) || (key0 === "targetLabel")) || (key0 === "targets")) || (key0 === "tier")) || (key0 === "unresolvedTargets"))){const err0 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}if(data.cursed !== undefined){let data0 = data.cursed;if((!(((typeof data0 == "number") && (!(data0 % 1) && !isNaN(data0))) && (isFinite(data0)))) && (data0 !== null)){const err1 = {instancePath:instancePath+"/cursed",schemaPath:"#/properties/cursed/type",keyword:"type",params:{type: schema50.properties.cursed.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.deltas !== undefined){let data1 = data.deltas;if(data1 && typeof data1 == "object" && !Array.isArray(data1)){for(const key1 in data1){if(!(func1.call(schema51.properties, key1))){const err2 = {instancePath:instancePath+"/deltas",schemaPath:"#/$defs/ItemBrowseScrollDeltas/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data1.accuracy !== undefined){let data2 = data1.accuracy;if((!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) && (data2 !== null)){const err3 = {instancePath:instancePath+"/deltas/accuracy",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/accuracy/type",keyword:"type",params:{type: schema51.properties.accuracy.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data1.avoidability !== undefined){let data3 = data1.avoidability;if((!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))) && (data3 !== null)){const err4 = {instancePath:instancePath+"/deltas/avoidability",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/avoidability/type",keyword:"type",params:{type: schema51.properties.avoidability.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data1.craft !== undefined){let data4 = data1.craft;if((!(((typeof data4 == "number") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) && (data4 !== null)){const err5 = {instancePath:instancePath+"/deltas/craft",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/craft/type",keyword:"type",params:{type: schema51.properties.craft.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data1.criticalDamage !== undefined){let data5 = data1.criticalDamage;if((!(((typeof data5 == "number") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) && (data5 !== null)){const err6 = {instancePath:instancePath+"/deltas/criticalDamage",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/criticalDamage/type",keyword:"type",params:{type: schema51.properties.criticalDamage.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data1.criticalRate !== undefined){let data6 = data1.criticalRate;if((!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) && (data6 !== null)){const err7 = {instancePath:instancePath+"/deltas/criticalRate",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/criticalRate/type",keyword:"type",params:{type: schema51.properties.criticalRate.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data1.dexterity !== undefined){let data7 = data1.dexterity;if((!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))) && (data7 !== null)){const err8 = {instancePath:instancePath+"/deltas/dexterity",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/dexterity/type",keyword:"type",params:{type: schema51.properties.dexterity.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data1.intelligence !== undefined){let data8 = data1.intelligence;if((!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))) && (data8 !== null)){const err9 = {instancePath:instancePath+"/deltas/intelligence",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/intelligence/type",keyword:"type",params:{type: schema51.properties.intelligence.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data1.jump !== undefined){let data9 = data1.jump;if((!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))) && (data9 !== null)){const err10 = {instancePath:instancePath+"/deltas/jump",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/jump/type",keyword:"type",params:{type: schema51.properties.jump.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data1.luck !== undefined){let data10 = data1.luck;if((!(((typeof data10 == "number") && (!(data10 % 1) && !isNaN(data10))) && (isFinite(data10)))) && (data10 !== null)){const err11 = {instancePath:instancePath+"/deltas/luck",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/luck/type",keyword:"type",params:{type: schema51.properties.luck.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data1.magicAttack !== undefined){let data11 = data1.magicAttack;if((!(((typeof data11 == "number") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))) && (data11 !== null)){const err12 = {instancePath:instancePath+"/deltas/magicAttack",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/magicAttack/type",keyword:"type",params:{type: schema51.properties.magicAttack.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data1.magicDefense !== undefined){let data12 = data1.magicDefense;if((!(((typeof data12 == "number") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))) && (data12 !== null)){const err13 = {instancePath:instancePath+"/deltas/magicDefense",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/magicDefense/type",keyword:"type",params:{type: schema51.properties.magicDefense.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data1.maxHp !== undefined){let data13 = data1.maxHp;if((!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))) && (data13 !== null)){const err14 = {instancePath:instancePath+"/deltas/maxHp",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/maxHp/type",keyword:"type",params:{type: schema51.properties.maxHp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data1.maxMp !== undefined){let data14 = data1.maxMp;if((!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))) && (data14 !== null)){const err15 = {instancePath:instancePath+"/deltas/maxMp",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/maxMp/type",keyword:"type",params:{type: schema51.properties.maxMp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data1.speed !== undefined){let data15 = data1.speed;if((!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))) && (data15 !== null)){const err16 = {instancePath:instancePath+"/deltas/speed",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/speed/type",keyword:"type",params:{type: schema51.properties.speed.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data1.strength !== undefined){let data16 = data1.strength;if((!(((typeof data16 == "number") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))) && (data16 !== null)){const err17 = {instancePath:instancePath+"/deltas/strength",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/strength/type",keyword:"type",params:{type: schema51.properties.strength.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data1.swim !== undefined){let data17 = data1.swim;if((!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))) && (data17 !== null)){const err18 = {instancePath:instancePath+"/deltas/swim",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/swim/type",keyword:"type",params:{type: schema51.properties.swim.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data1.weaponAttack !== undefined){let data18 = data1.weaponAttack;if((!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))) && (data18 !== null)){const err19 = {instancePath:instancePath+"/deltas/weaponAttack",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/weaponAttack/type",keyword:"type",params:{type: schema51.properties.weaponAttack.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data1.weaponDefense !== undefined){let data19 = data1.weaponDefense;if((!(((typeof data19 == "number") && (!(data19 % 1) && !isNaN(data19))) && (isFinite(data19)))) && (data19 !== null)){const err20 = {instancePath:instancePath+"/deltas/weaponDefense",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/weaponDefense/type",keyword:"type",params:{type: schema51.properties.weaponDefense.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}}else {const err21 = {instancePath:instancePath+"/deltas",schemaPath:"#/$defs/ItemBrowseScrollDeltas/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.specials !== undefined){let data20 = data.specials;if(Array.isArray(data20)){const len0 = data20.length;for(let i0=0; i0<len0; i0++){let data21 = data20[i0];if(typeof data21 !== "string"){const err22 = {instancePath:instancePath+"/specials/" + i0,schemaPath:"#/$defs/ItemBrowseUpgradeSpecial/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(!(((((data21 === "clean-slate") || (data21 === "chaos")) || (data21 === "anti-slip")) || (data21 === "warm-support")) || (data21 === "randomized-stats"))){const err23 = {instancePath:instancePath+"/specials/" + i0,schemaPath:"#/$defs/ItemBrowseUpgradeSpecial/enum",keyword:"enum",params:{allowedValues: schema52.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}}else {const err24 = {instancePath:instancePath+"/specials",schemaPath:"#/properties/specials/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.success !== undefined){let data22 = data.success;if((!(((typeof data22 == "number") && (!(data22 % 1) && !isNaN(data22))) && (isFinite(data22)))) && (data22 !== null)){const err25 = {instancePath:instancePath+"/success",schemaPath:"#/properties/success/type",keyword:"type",params:{type: schema50.properties.success.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data.targetLabel !== undefined){let data23 = data.targetLabel;const _errs52 = errors;let valid6 = false;const _errs53 = errors;if(typeof data23 !== "string"){const err26 = {instancePath:instancePath+"/targetLabel",schemaPath:"#/$defs/ItemBrowseUpgradeTarget/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}if(!(((((((((((((((((((((((((((((((data23 === "accessory") || (data23 === "belt")) || (data23 === "bottomwear")) || (data23 === "bow")) || (data23 === "cape")) || (data23 === "claw")) || (data23 === "crossbow")) || (data23 === "dagger")) || (data23 === "earrings")) || (data23 === "eye-accessory")) || (data23 === "face-accessory")) || (data23 === "gloves")) || (data23 === "gun")) || (data23 === "hat")) || (data23 === "knuckle")) || (data23 === "one-handed-axe")) || (data23 === "one-handed-blunt-weapon")) || (data23 === "one-handed-sword")) || (data23 === "overall-armor")) || (data23 === "pet-equipment")) || (data23 === "polearm")) || (data23 === "ring")) || (data23 === "shield")) || (data23 === "shoes")) || (data23 === "spear")) || (data23 === "staff")) || (data23 === "topwear")) || (data23 === "two-handed-axe")) || (data23 === "two-handed-blunt-weapon")) || (data23 === "two-handed-sword")) || (data23 === "wand"))){const err27 = {instancePath:instancePath+"/targetLabel",schemaPath:"#/$defs/ItemBrowseUpgradeTarget/enum",keyword:"enum",params:{allowedValues: schema53.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var _valid0 = _errs53 === errors;valid6 = valid6 || _valid0;const _errs56 = errors;if(data23 !== null){const err28 = {instancePath:instancePath+"/targetLabel",schemaPath:"#/properties/targetLabel/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}var _valid0 = _errs56 === errors;valid6 = valid6 || _valid0;if(!valid6){const err29 = {instancePath:instancePath+"/targetLabel",schemaPath:"#/properties/targetLabel/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}else {errors = _errs52;if(vErrors !== null){if(_errs52){vErrors.length = _errs52;}else {vErrors = null;}}}}if(data.targets !== undefined){let data24 = data.targets;if(Array.isArray(data24)){const len1 = data24.length;for(let i1=0; i1<len1; i1++){if(typeof data24[i1] !== "string"){const err30 = {instancePath:instancePath+"/targets/" + i1,schemaPath:"#/properties/targets/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}else {const err31 = {instancePath:instancePath+"/targets",schemaPath:"#/properties/targets/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.tier !== undefined){let data26 = data.tier;const _errs63 = errors;let valid10 = false;const _errs64 = errors;if(typeof data26 !== "string"){const err32 = {instancePath:instancePath+"/tier",schemaPath:"#/$defs/ItemBrowseUpgradeTier/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}if(!((((data26 === "lesser") || (data26 === "intermediate")) || (data26 === "greater")) || (data26 === "chaos"))){const err33 = {instancePath:instancePath+"/tier",schemaPath:"#/$defs/ItemBrowseUpgradeTier/enum",keyword:"enum",params:{allowedValues: schema54.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}var _valid1 = _errs64 === errors;valid10 = valid10 || _valid1;const _errs67 = errors;if(data26 !== null){const err34 = {instancePath:instancePath+"/tier",schemaPath:"#/properties/tier/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid1 = _errs67 === errors;valid10 = valid10 || _valid1;if(!valid10){const err35 = {instancePath:instancePath+"/tier",schemaPath:"#/properties/tier/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}else {errors = _errs63;if(vErrors !== null){if(_errs63){vErrors.length = _errs63;}else {vErrors = null;}}}}if(data.unresolvedTargets !== undefined){let data27 = data.unresolvedTargets;if(Array.isArray(data27)){const len2 = data27.length;for(let i2=0; i2<len2; i2++){if(typeof data27[i2] !== "string"){const err36 = {instancePath:instancePath+"/unresolvedTargets/" + i2,schemaPath:"#/properties/unresolvedTargets/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}}else {const err37 = {instancePath:instancePath+"/unresolvedTargets",schemaPath:"#/properties/unresolvedTargets/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}else {const err38 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}validate29.errors = vErrors;return errors === 0;}validate29.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate25(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate25.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.sourceId === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "sourceId"},message:"must have required property '"+"sourceId"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.itemClass === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "itemClass"},message:"must have required property '"+"itemClass"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.name === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "name"},message:"must have required property '"+"name"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.icon === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "icon"},message:"must have required property '"+"icon"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}for(const key0 in data){if(!(func1.call(schema42.properties, key0))){const err4 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.family !== undefined){let data0 = data.family;if((typeof data0 !== "string") && (data0 !== null)){const err5 = {instancePath:instancePath+"/family",schemaPath:"#/properties/family/type",keyword:"type",params:{type: schema42.properties.family.type},message:"must be string,null"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.functions !== undefined){let data1 = data.functions;if(Array.isArray(data1)){const len0 = data1.length;for(let i0=0; i0<len0; i0++){let data2 = data1[i0];if(typeof data2 !== "string"){const err6 = {instancePath:instancePath+"/functions/" + i0,schemaPath:"#/$defs/ItemBrowseFunction/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(!((((((((data2 === "upgrade") || (data2 === "skill")) || (data2 === "summon")) || (data2 === "reward-container")) || (data2 === "monster-card")) || (data2 === "readable")) || (data2 === "pet")) || (data2 === "recovery"))){const err7 = {instancePath:instancePath+"/functions/" + i0,schemaPath:"#/$defs/ItemBrowseFunction/enum",keyword:"enum",params:{allowedValues: schema43.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}}else {const err8 = {instancePath:instancePath+"/functions",schemaPath:"#/properties/functions/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.icon !== undefined){if(!(validate26(data.icon, {instancePath:instancePath+"/icon",parentData:data,parentDataProperty:"icon",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate26.errors : vErrors.concat(validate26.errors);errors = vErrors.length;}}if(data.itemClass !== undefined){let data4 = data.itemClass;if(typeof data4 !== "string"){const err9 = {instancePath:instancePath+"/itemClass",schemaPath:"#/$defs/ItemBrowseClass/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(!(((((data4 === "consume") || (data4 === "etc")) || (data4 === "setup")) || (data4 === "cash")) || (data4 === "pet"))){const err10 = {instancePath:instancePath+"/itemClass",schemaPath:"#/$defs/ItemBrowseClass/enum",keyword:"enum",params:{allowedValues: schema46.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.name !== undefined){if(!(validate26(data.name, {instancePath:instancePath+"/name",parentData:data,parentDataProperty:"name",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate26.errors : vErrors.concat(validate26.errors);errors = vErrors.length;}}if(data.petFood !== undefined){let data6 = data.petFood;const _errs15 = errors;let valid5 = false;const _errs16 = errors;if(data6 && typeof data6 == "object" && !Array.isArray(data6)){for(const key1 in data6){if(!(((((key1 === "closeness") || (key1 === "fullness")) || (key1 === "tameness")) || (key1 === "targets")) || (key1 === "unresolvedTargets"))){const err11 = {instancePath:instancePath+"/petFood",schemaPath:"#/$defs/ItemBrowsePetFood/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data6.closeness !== undefined){let data7 = data6.closeness;if((!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))) && (data7 !== null)){const err12 = {instancePath:instancePath+"/petFood/closeness",schemaPath:"#/$defs/ItemBrowsePetFood/properties/closeness/type",keyword:"type",params:{type: schema47.properties.closeness.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data6.fullness !== undefined){let data8 = data6.fullness;if((!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))) && (data8 !== null)){const err13 = {instancePath:instancePath+"/petFood/fullness",schemaPath:"#/$defs/ItemBrowsePetFood/properties/fullness/type",keyword:"type",params:{type: schema47.properties.fullness.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data6.tameness !== undefined){let data9 = data6.tameness;if((!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))) && (data9 !== null)){const err14 = {instancePath:instancePath+"/petFood/tameness",schemaPath:"#/$defs/ItemBrowsePetFood/properties/tameness/type",keyword:"type",params:{type: schema47.properties.tameness.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data6.targets !== undefined){let data10 = data6.targets;if(Array.isArray(data10)){const len1 = data10.length;for(let i1=0; i1<len1; i1++){if(typeof data10[i1] !== "string"){const err15 = {instancePath:instancePath+"/petFood/targets/" + i1,schemaPath:"#/$defs/ItemBrowsePetFood/properties/targets/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}else {const err16 = {instancePath:instancePath+"/petFood/targets",schemaPath:"#/$defs/ItemBrowsePetFood/properties/targets/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data6.unresolvedTargets !== undefined){let data12 = data6.unresolvedTargets;if(Array.isArray(data12)){const len2 = data12.length;for(let i2=0; i2<len2; i2++){if(typeof data12[i2] !== "string"){const err17 = {instancePath:instancePath+"/petFood/unresolvedTargets/" + i2,schemaPath:"#/$defs/ItemBrowsePetFood/properties/unresolvedTargets/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/petFood/unresolvedTargets",schemaPath:"#/$defs/ItemBrowsePetFood/properties/unresolvedTargets/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}}else {const err19 = {instancePath:instancePath+"/petFood",schemaPath:"#/$defs/ItemBrowsePetFood/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}var _valid0 = _errs16 === errors;valid5 = valid5 || _valid0;const _errs34 = errors;if(data6 !== null){const err20 = {instancePath:instancePath+"/petFood",schemaPath:"#/properties/petFood/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}var _valid0 = _errs34 === errors;valid5 = valid5 || _valid0;if(!valid5){const err21 = {instancePath:instancePath+"/petFood",schemaPath:"#/properties/petFood/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}else {errors = _errs15;if(vErrors !== null){if(_errs15){vErrors.length = _errs15;}else {vErrors = null;}}}}if(data.projectileAttack !== undefined){let data14 = data.projectileAttack;if((!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))) && (data14 !== null)){const err22 = {instancePath:instancePath+"/projectileAttack",schemaPath:"#/properties/projectileAttack/type",keyword:"type",params:{type: schema42.properties.projectileAttack.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.questFlag !== undefined){if(typeof data.questFlag !== "boolean"){const err23 = {instancePath:instancePath+"/questFlag",schemaPath:"#/properties/questFlag/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data.recovery !== undefined){let data16 = data.recovery;const _errs41 = errors;let valid12 = false;const _errs42 = errors;if(data16 && typeof data16 == "object" && !Array.isArray(data16)){for(const key2 in data16){if(!((((key2 === "hp") || (key2 === "hpPercent")) || (key2 === "mp")) || (key2 === "mpPercent"))){const err24 = {instancePath:instancePath+"/recovery",schemaPath:"#/$defs/ItemBrowseRecovery/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data16.hp !== undefined){let data17 = data16.hp;if((!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))) && (data17 !== null)){const err25 = {instancePath:instancePath+"/recovery/hp",schemaPath:"#/$defs/ItemBrowseRecovery/properties/hp/type",keyword:"type",params:{type: schema48.properties.hp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data16.hpPercent !== undefined){let data18 = data16.hpPercent;if((!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))) && (data18 !== null)){const err26 = {instancePath:instancePath+"/recovery/hpPercent",schemaPath:"#/$defs/ItemBrowseRecovery/properties/hpPercent/type",keyword:"type",params:{type: schema48.properties.hpPercent.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}if(data16.mp !== undefined){let data19 = data16.mp;if((!(((typeof data19 == "number") && (!(data19 % 1) && !isNaN(data19))) && (isFinite(data19)))) && (data19 !== null)){const err27 = {instancePath:instancePath+"/recovery/mp",schemaPath:"#/$defs/ItemBrowseRecovery/properties/mp/type",keyword:"type",params:{type: schema48.properties.mp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}if(data16.mpPercent !== undefined){let data20 = data16.mpPercent;if((!(((typeof data20 == "number") && (!(data20 % 1) && !isNaN(data20))) && (isFinite(data20)))) && (data20 !== null)){const err28 = {instancePath:instancePath+"/recovery/mpPercent",schemaPath:"#/$defs/ItemBrowseRecovery/properties/mpPercent/type",keyword:"type",params:{type: schema48.properties.mpPercent.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}}else {const err29 = {instancePath:instancePath+"/recovery",schemaPath:"#/$defs/ItemBrowseRecovery/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var _valid1 = _errs42 === errors;valid12 = valid12 || _valid1;const _errs54 = errors;if(data16 !== null){const err30 = {instancePath:instancePath+"/recovery",schemaPath:"#/properties/recovery/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}var _valid1 = _errs54 === errors;valid12 = valid12 || _valid1;if(!valid12){const err31 = {instancePath:instancePath+"/recovery",schemaPath:"#/properties/recovery/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {errors = _errs41;if(vErrors !== null){if(_errs41){vErrors.length = _errs41;}else {vErrors = null;}}}}if(data.relationships !== undefined){let data21 = data.relationships;if(data21 && typeof data21 == "object" && !Array.isArray(data21)){for(const key3 in data21){if(!(((((((key3 === "cash-shop-listing") || (key3 === "found-in-container")) || (key3 === "made-by-recipe")) || (key3 === "monster-drop")) || (key3 === "needed-for-quest")) || (key3 === "quest-reward")) || (key3 === "used-in-recipe"))){const err32 = {instancePath:instancePath+"/relationships",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data21["cash-shop-listing"] !== undefined){let data22 = data21["cash-shop-listing"];if((!(((typeof data22 == "number") && (!(data22 % 1) && !isNaN(data22))) && (isFinite(data22)))) && (data22 !== null)){const err33 = {instancePath:instancePath+"/relationships/cash-shop-listing",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/cash-shop-listing/type",keyword:"type",params:{type: schema49.properties["cash-shop-listing"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if((typeof data22 == "number") && (isFinite(data22))){if(data22 < 0 || isNaN(data22)){const err34 = {instancePath:instancePath+"/relationships/cash-shop-listing",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/cash-shop-listing/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}}if(data21["found-in-container"] !== undefined){let data23 = data21["found-in-container"];if((!(((typeof data23 == "number") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))) && (data23 !== null)){const err35 = {instancePath:instancePath+"/relationships/found-in-container",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/found-in-container/type",keyword:"type",params:{type: schema49.properties["found-in-container"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if((typeof data23 == "number") && (isFinite(data23))){if(data23 < 0 || isNaN(data23)){const err36 = {instancePath:instancePath+"/relationships/found-in-container",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/found-in-container/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}}if(data21["made-by-recipe"] !== undefined){let data24 = data21["made-by-recipe"];if((!(((typeof data24 == "number") && (!(data24 % 1) && !isNaN(data24))) && (isFinite(data24)))) && (data24 !== null)){const err37 = {instancePath:instancePath+"/relationships/made-by-recipe",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/made-by-recipe/type",keyword:"type",params:{type: schema49.properties["made-by-recipe"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}if((typeof data24 == "number") && (isFinite(data24))){if(data24 < 0 || isNaN(data24)){const err38 = {instancePath:instancePath+"/relationships/made-by-recipe",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/made-by-recipe/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}if(data21["monster-drop"] !== undefined){let data25 = data21["monster-drop"];if((!(((typeof data25 == "number") && (!(data25 % 1) && !isNaN(data25))) && (isFinite(data25)))) && (data25 !== null)){const err39 = {instancePath:instancePath+"/relationships/monster-drop",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/monster-drop/type",keyword:"type",params:{type: schema49.properties["monster-drop"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}if((typeof data25 == "number") && (isFinite(data25))){if(data25 < 0 || isNaN(data25)){const err40 = {instancePath:instancePath+"/relationships/monster-drop",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/monster-drop/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}}if(data21["needed-for-quest"] !== undefined){let data26 = data21["needed-for-quest"];if((!(((typeof data26 == "number") && (!(data26 % 1) && !isNaN(data26))) && (isFinite(data26)))) && (data26 !== null)){const err41 = {instancePath:instancePath+"/relationships/needed-for-quest",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/needed-for-quest/type",keyword:"type",params:{type: schema49.properties["needed-for-quest"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}if((typeof data26 == "number") && (isFinite(data26))){if(data26 < 0 || isNaN(data26)){const err42 = {instancePath:instancePath+"/relationships/needed-for-quest",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/needed-for-quest/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}if(data21["quest-reward"] !== undefined){let data27 = data21["quest-reward"];if((!(((typeof data27 == "number") && (!(data27 % 1) && !isNaN(data27))) && (isFinite(data27)))) && (data27 !== null)){const err43 = {instancePath:instancePath+"/relationships/quest-reward",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/quest-reward/type",keyword:"type",params:{type: schema49.properties["quest-reward"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}if((typeof data27 == "number") && (isFinite(data27))){if(data27 < 0 || isNaN(data27)){const err44 = {instancePath:instancePath+"/relationships/quest-reward",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/quest-reward/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}}if(data21["used-in-recipe"] !== undefined){let data28 = data21["used-in-recipe"];if((!(((typeof data28 == "number") && (!(data28 % 1) && !isNaN(data28))) && (isFinite(data28)))) && (data28 !== null)){const err45 = {instancePath:instancePath+"/relationships/used-in-recipe",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/used-in-recipe/type",keyword:"type",params:{type: schema49.properties["used-in-recipe"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}if((typeof data28 == "number") && (isFinite(data28))){if(data28 < 0 || isNaN(data28)){const err46 = {instancePath:instancePath+"/relationships/used-in-recipe",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/used-in-recipe/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}}}else {const err47 = {instancePath:instancePath+"/relationships",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}}if(data.scroll !== undefined){let data29 = data.scroll;const _errs75 = errors;let valid17 = false;const _errs76 = errors;if(!(validate29(data29, {instancePath:instancePath+"/scroll",parentData:data,parentDataProperty:"scroll",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate29.errors : vErrors.concat(validate29.errors);errors = vErrors.length;}var _valid2 = _errs76 === errors;valid17 = valid17 || _valid2;const _errs77 = errors;if(data29 !== null){const err48 = {instancePath:instancePath+"/scroll",schemaPath:"#/properties/scroll/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}var _valid2 = _errs77 === errors;valid17 = valid17 || _valid2;if(!valid17){const err49 = {instancePath:instancePath+"/scroll",schemaPath:"#/properties/scroll/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}else {errors = _errs75;if(vErrors !== null){if(_errs75){vErrors.length = _errs75;}else {vErrors = null;}}}}if(data.seatingRecovery !== undefined){let data30 = data.seatingRecovery;const _errs80 = errors;let valid18 = false;const _errs81 = errors;if(data30 && typeof data30 == "object" && !Array.isArray(data30)){for(const key4 in data30){if(!((key4 === "hp") || (key4 === "mp"))){const err50 = {instancePath:instancePath+"/seatingRecovery",schemaPath:"#/$defs/ItemBrowseSeatingRecovery/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}}if(data30.hp !== undefined){let data31 = data30.hp;if((!(((typeof data31 == "number") && (!(data31 % 1) && !isNaN(data31))) && (isFinite(data31)))) && (data31 !== null)){const err51 = {instancePath:instancePath+"/seatingRecovery/hp",schemaPath:"#/$defs/ItemBrowseSeatingRecovery/properties/hp/type",keyword:"type",params:{type: schema55.properties.hp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}}if(data30.mp !== undefined){let data32 = data30.mp;if((!(((typeof data32 == "number") && (!(data32 % 1) && !isNaN(data32))) && (isFinite(data32)))) && (data32 !== null)){const err52 = {instancePath:instancePath+"/seatingRecovery/mp",schemaPath:"#/$defs/ItemBrowseSeatingRecovery/properties/mp/type",keyword:"type",params:{type: schema55.properties.mp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}}}else {const err53 = {instancePath:instancePath+"/seatingRecovery",schemaPath:"#/$defs/ItemBrowseSeatingRecovery/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}var _valid3 = _errs81 === errors;valid18 = valid18 || _valid3;const _errs89 = errors;if(data30 !== null){const err54 = {instancePath:instancePath+"/seatingRecovery",schemaPath:"#/properties/seatingRecovery/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}var _valid3 = _errs89 === errors;valid18 = valid18 || _valid3;if(!valid18){const err55 = {instancePath:instancePath+"/seatingRecovery",schemaPath:"#/properties/seatingRecovery/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}else {errors = _errs80;if(vErrors !== null){if(_errs80){vErrors.length = _errs80;}else {vErrors = null;}}}}if(data.sourceId !== undefined){if(typeof data.sourceId !== "string"){const err56 = {instancePath:instancePath+"/sourceId",schemaPath:"#/properties/sourceId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}if(data.types !== undefined){let data34 = data.types;if(Array.isArray(data34)){const len3 = data34.length;for(let i3=0; i3<len3; i3++){let data35 = data34[i3];if(typeof data35 !== "string"){const err57 = {instancePath:instancePath+"/types/" + i3,schemaPath:"#/$defs/ItemBrowseType/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}if(!((((((((((((((((data35 === "upgrade-scroll") || (data35 === "arrow")) || (data35 === "throwing-star")) || (data35 === "bullet")) || (data35 === "chair")) || (data35 === "ore")) || (data35 === "gem")) || (data35 === "pet-food")) || (data35 === "refined-material")) || (data35 === "potion")) || (data35 === "food-buff")) || (data35 === "monster-material")) || (data35 === "holiday-ornament")) || (data35 === "furniture")) || (data35 === "crafting-station")) || (data35 === "meso-pouch"))){const err58 = {instancePath:instancePath+"/types/" + i3,schemaPath:"#/$defs/ItemBrowseType/enum",keyword:"enum",params:{allowedValues: schema56.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}}}else {const err59 = {instancePath:instancePath+"/types",schemaPath:"#/properties/types/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}}}else {const err60 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}validate25.errors = vErrors;return errors === 0;}validate25.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.format === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "format"},message:"must have required property '"+"format"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.contractVersion === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "contractVersion"},message:"must have required property '"+"contractVersion"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.scope === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "scope"},message:"must have required property '"+"scope"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.coverage === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "coverage"},message:"must have required property '"+"coverage"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.records === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "records"},message:"must have required property '"+"records"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data){if(!(((((key0 === "contractVersion") || (key0 === "coverage")) || (key0 === "format")) || (key0 === "records")) || (key0 === "scope"))){const err5 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.contractVersion !== undefined){let data0 = data.contractVersion;if(typeof data0 !== "string"){const err6 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if("2.0" !== data0){const err7 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/const",keyword:"const",params:{allowedValue: "2.0"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.coverage !== undefined){if(!(validate21(data.coverage, {instancePath:instancePath+"/coverage",parentData:data,parentDataProperty:"coverage",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}}if(data.format !== undefined){let data2 = data.format;if(typeof data2 !== "string"){const err8 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if("item-browse-pack/1" !== data2){const err9 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/const",keyword:"const",params:{allowedValue: "item-browse-pack/1"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.records !== undefined){let data3 = data.records;if(data3 && typeof data3 == "object" && !Array.isArray(data3)){for(const key1 in data3){if(!(validate25(data3[key1], {instancePath:instancePath+"/records/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),parentData:data3,parentDataProperty:key1,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}}}else {const err10 = {instancePath:instancePath+"/records",schemaPath:"#/properties/records/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.scope !== undefined){let data5 = data.scope;if(data5 && typeof data5 == "object" && !Array.isArray(data5)){if(data5.family_id === undefined){const err11 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "family_id"},message:"must have required property '"+"family_id"+"'"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(data5.build_id === undefined){const err12 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "build_id"},message:"must have required property '"+"build_id"+"'"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(data5.build_id !== undefined){if(typeof data5.build_id !== "string"){const err13 = {instancePath:instancePath+"/scope/build_id",schemaPath:"#/$defs/BuildScope/properties/build_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data5.family_id !== undefined){if(typeof data5.family_id !== "string"){const err14 = {instancePath:instancePath+"/scope/family_id",schemaPath:"#/$defs/BuildScope/properties/family_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}else {const err16 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};
|
|
17
|
+
};const pattern4 = new RegExp("\\S", "u");function validate32(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate32.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err0 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.value === undefined){const err1 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "value"},message:"must have required property '"+"value"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}for(const key0 in data){if(!((key0 === "state") || (key0 === "value"))){const err2 = {instancePath,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data.state !== undefined){let data0 = data.state;if(typeof data0 !== "string"){const err3 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if("known" !== data0){const err4 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/const",keyword:"const",params:{allowedValue: "known"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.value !== undefined){if(typeof data.value !== "string"){const err5 = {instancePath:instancePath+"/value",schemaPath:"#/oneOf/0/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}}else {const err6 = {instancePath,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;var props0 = true;}const _errs8 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err7 = {instancePath,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}for(const key1 in data){if(!(key1 === "state")){const err8 = {instancePath,schemaPath:"#/oneOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.state !== undefined){let data2 = data.state;if(typeof data2 !== "string"){const err9 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if("unknown" !== data2){const err10 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}}else {const err11 = {instancePath,schemaPath:"#/oneOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid0 = _errs8 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;if(props0 !== true){props0 = true;}}const _errs13 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err12 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(data.coverageKey === undefined){const err13 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "coverageKey"},message:"must have required property '"+"coverageKey"+"'"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}for(const key2 in data){if(!((key2 === "coverageKey") || (key2 === "state"))){const err14 = {instancePath,schemaPath:"#/oneOf/2/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.coverageKey !== undefined){let data3 = data.coverageKey;if(typeof data3 === "string"){if(func2(data3) < 1){const err15 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}if(!pattern4.test(data3)){const err16 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/pattern",keyword:"pattern",params:{pattern: "\\S"},message:"must match pattern \""+"\\S"+"\""};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}else {const err17 = {instancePath:instancePath+"/coverageKey",schemaPath:"#/$defs/CoverageKey/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data.state !== undefined){let data4 = data.state;if(typeof data4 !== "string"){const err18 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if("absent" !== data4){const err19 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/const",keyword:"const",params:{allowedValue: "absent"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}}else {const err20 = {instancePath,schemaPath:"#/oneOf/2/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}var _valid0 = _errs13 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 2];}else {if(_valid0){valid0 = true;passing0 = 2;if(props0 !== true){props0 = true;}}const _errs21 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err21 = {instancePath,schemaPath:"#/oneOf/3/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}for(const key3 in data){if(!(key3 === "state")){const err22 = {instancePath,schemaPath:"#/oneOf/3/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.state !== undefined){let data5 = data.state;if(typeof data5 !== "string"){const err23 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/3/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}if("unsupported" !== data5){const err24 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/3/properties/state/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}else {const err25 = {instancePath,schemaPath:"#/oneOf/3/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}var _valid0 = _errs21 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 3];}else {if(_valid0){valid0 = true;passing0 = 3;if(props0 !== true){props0 = true;}}}}}if(!valid0){const err26 = {instancePath,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate32.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate32.evaluated = {"dynamicProps":true,"dynamicItems":false};const schema64 = {"description":"Requirement facts. The optional fields are sparse; absence means the source value is unknown.","type":"object","properties":{"jobs":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseJobFamily"}},"level":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false};const schema65 = {"description":"Job family named by a source-backed Item requirement.","type":"string","enum":["beginner","warrior","magician","bowman","thief","pirate"]};function validate35(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate35.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){for(const key0 in data){if(!((key0 === "jobs") || (key0 === "level"))){const err0 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}if(data.jobs !== undefined){let data0 = data.jobs;if(Array.isArray(data0)){const len0 = data0.length;for(let i0=0; i0<len0; i0++){let data1 = data0[i0];if(typeof data1 !== "string"){const err1 = {instancePath:instancePath+"/jobs/" + i0,schemaPath:"#/$defs/ItemBrowseJobFamily/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(!((((((data1 === "beginner") || (data1 === "warrior")) || (data1 === "magician")) || (data1 === "bowman")) || (data1 === "thief")) || (data1 === "pirate"))){const err2 = {instancePath:instancePath+"/jobs/" + i0,schemaPath:"#/$defs/ItemBrowseJobFamily/enum",keyword:"enum",params:{allowedValues: schema65.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}}else {const err3 = {instancePath:instancePath+"/jobs",schemaPath:"#/properties/jobs/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.level !== undefined){let data2 = data.level;if((!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) && (data2 !== null)){const err4 = {instancePath:instancePath+"/level",schemaPath:"#/properties/level/type",keyword:"type",params:{type: schema64.properties.level.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}else {const err5 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}validate35.errors = vErrors;return errors === 0;}validate35.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema66 = {"description":"Scroll facts derived from a typed upgrade row and its source title.","type":"object","properties":{"cursed":{"type":["integer","null"],"format":"int64"},"deltas":{"$ref":"#/$defs/ItemBrowseScrollDeltas"},"specials":{"type":"array","items":{"$ref":"#/$defs/ItemBrowseUpgradeSpecial"}},"success":{"type":["integer","null"],"format":"int64"},"targetLabel":{"anyOf":[{"$ref":"#/$defs/ItemBrowseUpgradeTarget"},{"type":"null"}]},"targets":{"type":"array","items":{"type":"string"}},"tier":{"anyOf":[{"$ref":"#/$defs/ItemBrowseUpgradeTier"},{"type":"null"}]},"unresolvedTargets":{"type":"array","items":{"type":"string"}}},"additionalProperties":false};const schema67 = {"description":"Non-zero Scroll stat deltas.","type":"object","properties":{"accuracy":{"type":["integer","null"],"format":"int64"},"avoidability":{"type":["integer","null"],"format":"int64"},"craft":{"type":["integer","null"],"format":"int64"},"criticalDamage":{"type":["integer","null"],"format":"int64"},"criticalRate":{"type":["integer","null"],"format":"int64"},"dexterity":{"type":["integer","null"],"format":"int64"},"intelligence":{"type":["integer","null"],"format":"int64"},"jump":{"type":["integer","null"],"format":"int64"},"luck":{"type":["integer","null"],"format":"int64"},"magicAttack":{"type":["integer","null"],"format":"int64"},"magicDefense":{"type":["integer","null"],"format":"int64"},"maxHp":{"type":["integer","null"],"format":"int64"},"maxMp":{"type":["integer","null"],"format":"int64"},"speed":{"type":["integer","null"],"format":"int64"},"strength":{"type":["integer","null"],"format":"int64"},"swim":{"type":["integer","null"],"format":"int64"},"weaponAttack":{"type":["integer","null"],"format":"int64"},"weaponDefense":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false};const schema68 = {"description":"Named or typed Scroll mechanic.","type":"string","enum":["clean-slate","chaos","anti-slip","warm-support","randomized-stats"]};const schema69 = {"description":"Equipment target named by a Scroll title. This is a label, never an identity.","type":"string","enum":["accessory","belt","bottomwear","bow","cape","claw","crossbow","dagger","earrings","eye-accessory","face-accessory","gloves","gun","hat","knuckle","one-handed-axe","one-handed-blunt-weapon","one-handed-sword","overall-armor","pet-equipment","polearm","ring","shield","shoes","spear","staff","topwear","two-handed-axe","two-handed-blunt-weapon","two-handed-sword","wand"]};const schema70 = {"description":"Classic World-only named Scroll tier.","type":"string","enum":["lesser","intermediate","greater","chaos"]};function validate37(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate37.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){for(const key0 in data){if(!((((((((key0 === "cursed") || (key0 === "deltas")) || (key0 === "specials")) || (key0 === "success")) || (key0 === "targetLabel")) || (key0 === "targets")) || (key0 === "tier")) || (key0 === "unresolvedTargets"))){const err0 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}if(data.cursed !== undefined){let data0 = data.cursed;if((!(((typeof data0 == "number") && (!(data0 % 1) && !isNaN(data0))) && (isFinite(data0)))) && (data0 !== null)){const err1 = {instancePath:instancePath+"/cursed",schemaPath:"#/properties/cursed/type",keyword:"type",params:{type: schema66.properties.cursed.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}if(data.deltas !== undefined){let data1 = data.deltas;if(data1 && typeof data1 == "object" && !Array.isArray(data1)){for(const key1 in data1){if(!(func1.call(schema67.properties, key1))){const err2 = {instancePath:instancePath+"/deltas",schemaPath:"#/$defs/ItemBrowseScrollDeltas/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(data1.accuracy !== undefined){let data2 = data1.accuracy;if((!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) && (data2 !== null)){const err3 = {instancePath:instancePath+"/deltas/accuracy",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/accuracy/type",keyword:"type",params:{type: schema67.properties.accuracy.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data1.avoidability !== undefined){let data3 = data1.avoidability;if((!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))) && (data3 !== null)){const err4 = {instancePath:instancePath+"/deltas/avoidability",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/avoidability/type",keyword:"type",params:{type: schema67.properties.avoidability.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data1.craft !== undefined){let data4 = data1.craft;if((!(((typeof data4 == "number") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) && (data4 !== null)){const err5 = {instancePath:instancePath+"/deltas/craft",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/craft/type",keyword:"type",params:{type: schema67.properties.craft.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data1.criticalDamage !== undefined){let data5 = data1.criticalDamage;if((!(((typeof data5 == "number") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) && (data5 !== null)){const err6 = {instancePath:instancePath+"/deltas/criticalDamage",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/criticalDamage/type",keyword:"type",params:{type: schema67.properties.criticalDamage.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data1.criticalRate !== undefined){let data6 = data1.criticalRate;if((!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) && (data6 !== null)){const err7 = {instancePath:instancePath+"/deltas/criticalRate",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/criticalRate/type",keyword:"type",params:{type: schema67.properties.criticalRate.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data1.dexterity !== undefined){let data7 = data1.dexterity;if((!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))) && (data7 !== null)){const err8 = {instancePath:instancePath+"/deltas/dexterity",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/dexterity/type",keyword:"type",params:{type: schema67.properties.dexterity.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data1.intelligence !== undefined){let data8 = data1.intelligence;if((!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))) && (data8 !== null)){const err9 = {instancePath:instancePath+"/deltas/intelligence",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/intelligence/type",keyword:"type",params:{type: schema67.properties.intelligence.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data1.jump !== undefined){let data9 = data1.jump;if((!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))) && (data9 !== null)){const err10 = {instancePath:instancePath+"/deltas/jump",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/jump/type",keyword:"type",params:{type: schema67.properties.jump.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data1.luck !== undefined){let data10 = data1.luck;if((!(((typeof data10 == "number") && (!(data10 % 1) && !isNaN(data10))) && (isFinite(data10)))) && (data10 !== null)){const err11 = {instancePath:instancePath+"/deltas/luck",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/luck/type",keyword:"type",params:{type: schema67.properties.luck.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}if(data1.magicAttack !== undefined){let data11 = data1.magicAttack;if((!(((typeof data11 == "number") && (!(data11 % 1) && !isNaN(data11))) && (isFinite(data11)))) && (data11 !== null)){const err12 = {instancePath:instancePath+"/deltas/magicAttack",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/magicAttack/type",keyword:"type",params:{type: schema67.properties.magicAttack.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data1.magicDefense !== undefined){let data12 = data1.magicDefense;if((!(((typeof data12 == "number") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))) && (data12 !== null)){const err13 = {instancePath:instancePath+"/deltas/magicDefense",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/magicDefense/type",keyword:"type",params:{type: schema67.properties.magicDefense.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data1.maxHp !== undefined){let data13 = data1.maxHp;if((!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))) && (data13 !== null)){const err14 = {instancePath:instancePath+"/deltas/maxHp",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/maxHp/type",keyword:"type",params:{type: schema67.properties.maxHp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data1.maxMp !== undefined){let data14 = data1.maxMp;if((!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))) && (data14 !== null)){const err15 = {instancePath:instancePath+"/deltas/maxMp",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/maxMp/type",keyword:"type",params:{type: schema67.properties.maxMp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data1.speed !== undefined){let data15 = data1.speed;if((!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))) && (data15 !== null)){const err16 = {instancePath:instancePath+"/deltas/speed",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/speed/type",keyword:"type",params:{type: schema67.properties.speed.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(data1.strength !== undefined){let data16 = data1.strength;if((!(((typeof data16 == "number") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))) && (data16 !== null)){const err17 = {instancePath:instancePath+"/deltas/strength",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/strength/type",keyword:"type",params:{type: schema67.properties.strength.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data1.swim !== undefined){let data17 = data1.swim;if((!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))) && (data17 !== null)){const err18 = {instancePath:instancePath+"/deltas/swim",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/swim/type",keyword:"type",params:{type: schema67.properties.swim.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data1.weaponAttack !== undefined){let data18 = data1.weaponAttack;if((!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))) && (data18 !== null)){const err19 = {instancePath:instancePath+"/deltas/weaponAttack",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/weaponAttack/type",keyword:"type",params:{type: schema67.properties.weaponAttack.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}if(data1.weaponDefense !== undefined){let data19 = data1.weaponDefense;if((!(((typeof data19 == "number") && (!(data19 % 1) && !isNaN(data19))) && (isFinite(data19)))) && (data19 !== null)){const err20 = {instancePath:instancePath+"/deltas/weaponDefense",schemaPath:"#/$defs/ItemBrowseScrollDeltas/properties/weaponDefense/type",keyword:"type",params:{type: schema67.properties.weaponDefense.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}}else {const err21 = {instancePath:instancePath+"/deltas",schemaPath:"#/$defs/ItemBrowseScrollDeltas/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data.specials !== undefined){let data20 = data.specials;if(Array.isArray(data20)){const len0 = data20.length;for(let i0=0; i0<len0; i0++){let data21 = data20[i0];if(typeof data21 !== "string"){const err22 = {instancePath:instancePath+"/specials/" + i0,schemaPath:"#/$defs/ItemBrowseUpgradeSpecial/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(!(((((data21 === "clean-slate") || (data21 === "chaos")) || (data21 === "anti-slip")) || (data21 === "warm-support")) || (data21 === "randomized-stats"))){const err23 = {instancePath:instancePath+"/specials/" + i0,schemaPath:"#/$defs/ItemBrowseUpgradeSpecial/enum",keyword:"enum",params:{allowedValues: schema68.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}}else {const err24 = {instancePath:instancePath+"/specials",schemaPath:"#/properties/specials/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data.success !== undefined){let data22 = data.success;if((!(((typeof data22 == "number") && (!(data22 % 1) && !isNaN(data22))) && (isFinite(data22)))) && (data22 !== null)){const err25 = {instancePath:instancePath+"/success",schemaPath:"#/properties/success/type",keyword:"type",params:{type: schema66.properties.success.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}if(data.targetLabel !== undefined){let data23 = data.targetLabel;const _errs52 = errors;let valid6 = false;const _errs53 = errors;if(typeof data23 !== "string"){const err26 = {instancePath:instancePath+"/targetLabel",schemaPath:"#/$defs/ItemBrowseUpgradeTarget/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}if(!(((((((((((((((((((((((((((((((data23 === "accessory") || (data23 === "belt")) || (data23 === "bottomwear")) || (data23 === "bow")) || (data23 === "cape")) || (data23 === "claw")) || (data23 === "crossbow")) || (data23 === "dagger")) || (data23 === "earrings")) || (data23 === "eye-accessory")) || (data23 === "face-accessory")) || (data23 === "gloves")) || (data23 === "gun")) || (data23 === "hat")) || (data23 === "knuckle")) || (data23 === "one-handed-axe")) || (data23 === "one-handed-blunt-weapon")) || (data23 === "one-handed-sword")) || (data23 === "overall-armor")) || (data23 === "pet-equipment")) || (data23 === "polearm")) || (data23 === "ring")) || (data23 === "shield")) || (data23 === "shoes")) || (data23 === "spear")) || (data23 === "staff")) || (data23 === "topwear")) || (data23 === "two-handed-axe")) || (data23 === "two-handed-blunt-weapon")) || (data23 === "two-handed-sword")) || (data23 === "wand"))){const err27 = {instancePath:instancePath+"/targetLabel",schemaPath:"#/$defs/ItemBrowseUpgradeTarget/enum",keyword:"enum",params:{allowedValues: schema69.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}var _valid0 = _errs53 === errors;valid6 = valid6 || _valid0;const _errs56 = errors;if(data23 !== null){const err28 = {instancePath:instancePath+"/targetLabel",schemaPath:"#/properties/targetLabel/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}var _valid0 = _errs56 === errors;valid6 = valid6 || _valid0;if(!valid6){const err29 = {instancePath:instancePath+"/targetLabel",schemaPath:"#/properties/targetLabel/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}else {errors = _errs52;if(vErrors !== null){if(_errs52){vErrors.length = _errs52;}else {vErrors = null;}}}}if(data.targets !== undefined){let data24 = data.targets;if(Array.isArray(data24)){const len1 = data24.length;for(let i1=0; i1<len1; i1++){if(typeof data24[i1] !== "string"){const err30 = {instancePath:instancePath+"/targets/" + i1,schemaPath:"#/properties/targets/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}else {const err31 = {instancePath:instancePath+"/targets",schemaPath:"#/properties/targets/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.tier !== undefined){let data26 = data.tier;const _errs63 = errors;let valid10 = false;const _errs64 = errors;if(typeof data26 !== "string"){const err32 = {instancePath:instancePath+"/tier",schemaPath:"#/$defs/ItemBrowseUpgradeTier/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}if(!((((data26 === "lesser") || (data26 === "intermediate")) || (data26 === "greater")) || (data26 === "chaos"))){const err33 = {instancePath:instancePath+"/tier",schemaPath:"#/$defs/ItemBrowseUpgradeTier/enum",keyword:"enum",params:{allowedValues: schema70.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}var _valid1 = _errs64 === errors;valid10 = valid10 || _valid1;const _errs67 = errors;if(data26 !== null){const err34 = {instancePath:instancePath+"/tier",schemaPath:"#/properties/tier/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid1 = _errs67 === errors;valid10 = valid10 || _valid1;if(!valid10){const err35 = {instancePath:instancePath+"/tier",schemaPath:"#/properties/tier/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}else {errors = _errs63;if(vErrors !== null){if(_errs63){vErrors.length = _errs63;}else {vErrors = null;}}}}if(data.unresolvedTargets !== undefined){let data27 = data.unresolvedTargets;if(Array.isArray(data27)){const len2 = data27.length;for(let i2=0; i2<len2; i2++){if(typeof data27[i2] !== "string"){const err36 = {instancePath:instancePath+"/unresolvedTargets/" + i2,schemaPath:"#/properties/unresolvedTargets/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}}else {const err37 = {instancePath:instancePath+"/unresolvedTargets",schemaPath:"#/properties/unresolvedTargets/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}else {const err38 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}validate37.errors = vErrors;return errors === 0;}validate37.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate27(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate27.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.sourceId === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "sourceId"},message:"must have required property '"+"sourceId"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.itemClass === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "itemClass"},message:"must have required property '"+"itemClass"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.name === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "name"},message:"must have required property '"+"name"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.icon === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "icon"},message:"must have required property '"+"icon"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}for(const key0 in data){if(!(func1.call(schema51.properties, key0))){const err4 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.buff !== undefined){let data0 = data.buff;const _errs3 = errors;let valid1 = false;const _errs4 = errors;if(!(validate28(data0, {instancePath:instancePath+"/buff",parentData:data,parentDataProperty:"buff",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate28.errors : vErrors.concat(validate28.errors);errors = vErrors.length;}var _valid0 = _errs4 === errors;valid1 = valid1 || _valid0;const _errs5 = errors;if(data0 !== null){const err5 = {instancePath:instancePath+"/buff",schemaPath:"#/properties/buff/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}var _valid0 = _errs5 === errors;valid1 = valid1 || _valid0;if(!valid1){const err6 = {instancePath:instancePath+"/buff",schemaPath:"#/properties/buff/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}else {errors = _errs3;if(vErrors !== null){if(_errs3){vErrors.length = _errs3;}else {vErrors = null;}}}}if(data.family !== undefined){let data1 = data.family;if((typeof data1 !== "string") && (data1 !== null)){const err7 = {instancePath:instancePath+"/family",schemaPath:"#/properties/family/type",keyword:"type",params:{type: schema51.properties.family.type},message:"must be string,null"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.functions !== undefined){let data2 = data.functions;if(Array.isArray(data2)){const len0 = data2.length;for(let i0=0; i0<len0; i0++){let data3 = data2[i0];if(typeof data3 !== "string"){const err8 = {instancePath:instancePath+"/functions/" + i0,schemaPath:"#/$defs/ItemBrowseFunction/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(!((((((((data3 === "upgrade") || (data3 === "skill")) || (data3 === "summon")) || (data3 === "reward-container")) || (data3 === "monster-card")) || (data3 === "readable")) || (data3 === "pet")) || (data3 === "recovery"))){const err9 = {instancePath:instancePath+"/functions/" + i0,schemaPath:"#/$defs/ItemBrowseFunction/enum",keyword:"enum",params:{allowedValues: schema56.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}}else {const err10 = {instancePath:instancePath+"/functions",schemaPath:"#/properties/functions/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.icon !== undefined){if(!(validate32(data.icon, {instancePath:instancePath+"/icon",parentData:data,parentDataProperty:"icon",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate32.errors : vErrors.concat(validate32.errors);errors = vErrors.length;}}if(data.itemClass !== undefined){let data5 = data.itemClass;if(typeof data5 !== "string"){const err11 = {instancePath:instancePath+"/itemClass",schemaPath:"#/$defs/ItemBrowseClass/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(!(((((data5 === "consume") || (data5 === "etc")) || (data5 === "setup")) || (data5 === "cash")) || (data5 === "pet"))){const err12 = {instancePath:instancePath+"/itemClass",schemaPath:"#/$defs/ItemBrowseClass/enum",keyword:"enum",params:{allowedValues: schema59.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}if(data.levelRange !== undefined){let data6 = data.levelRange;const _errs19 = errors;let valid6 = false;const _errs20 = errors;if(data6 && typeof data6 == "object" && !Array.isArray(data6)){for(const key1 in data6){if(!(((key1 === "monsterLevelMax") || (key1 === "monsterLevelMin")) || (key1 === "requirementLevelDelta"))){const err13 = {instancePath:instancePath+"/levelRange",schemaPath:"#/$defs/ItemBrowseLevelRange/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data6.monsterLevelMax !== undefined){let data7 = data6.monsterLevelMax;if((!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))) && (data7 !== null)){const err14 = {instancePath:instancePath+"/levelRange/monsterLevelMax",schemaPath:"#/$defs/ItemBrowseLevelRange/properties/monsterLevelMax/type",keyword:"type",params:{type: schema60.properties.monsterLevelMax.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data6.monsterLevelMin !== undefined){let data8 = data6.monsterLevelMin;if((!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))) && (data8 !== null)){const err15 = {instancePath:instancePath+"/levelRange/monsterLevelMin",schemaPath:"#/$defs/ItemBrowseLevelRange/properties/monsterLevelMin/type",keyword:"type",params:{type: schema60.properties.monsterLevelMin.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data6.requirementLevelDelta !== undefined){let data9 = data6.requirementLevelDelta;if((!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))) && (data9 !== null)){const err16 = {instancePath:instancePath+"/levelRange/requirementLevelDelta",schemaPath:"#/$defs/ItemBrowseLevelRange/properties/requirementLevelDelta/type",keyword:"type",params:{type: schema60.properties.requirementLevelDelta.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}else {const err17 = {instancePath:instancePath+"/levelRange",schemaPath:"#/$defs/ItemBrowseLevelRange/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}var _valid1 = _errs20 === errors;valid6 = valid6 || _valid1;const _errs30 = errors;if(data6 !== null){const err18 = {instancePath:instancePath+"/levelRange",schemaPath:"#/properties/levelRange/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var _valid1 = _errs30 === errors;valid6 = valid6 || _valid1;if(!valid6){const err19 = {instancePath:instancePath+"/levelRange",schemaPath:"#/properties/levelRange/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs19;if(vErrors !== null){if(_errs19){vErrors.length = _errs19;}else {vErrors = null;}}}}if(data.maxStack !== undefined){let data10 = data.maxStack;if((!(((typeof data10 == "number") && (!(data10 % 1) && !isNaN(data10))) && (isFinite(data10)))) && (data10 !== null)){const err20 = {instancePath:instancePath+"/maxStack",schemaPath:"#/properties/maxStack/type",keyword:"type",params:{type: schema51.properties.maxStack.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}if(data.name !== undefined){if(!(validate32(data.name, {instancePath:instancePath+"/name",parentData:data,parentDataProperty:"name",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate32.errors : vErrors.concat(validate32.errors);errors = vErrors.length;}}if(data.petFood !== undefined){let data12 = data.petFood;const _errs36 = errors;let valid9 = false;const _errs37 = errors;if(data12 && typeof data12 == "object" && !Array.isArray(data12)){for(const key2 in data12){if(!(((((key2 === "closeness") || (key2 === "fullness")) || (key2 === "tameness")) || (key2 === "targets")) || (key2 === "unresolvedTargets"))){const err21 = {instancePath:instancePath+"/petFood",schemaPath:"#/$defs/ItemBrowsePetFood/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}if(data12.closeness !== undefined){let data13 = data12.closeness;if((!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))) && (data13 !== null)){const err22 = {instancePath:instancePath+"/petFood/closeness",schemaPath:"#/$defs/ItemBrowsePetFood/properties/closeness/type",keyword:"type",params:{type: schema61.properties.closeness.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data12.fullness !== undefined){let data14 = data12.fullness;if((!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))) && (data14 !== null)){const err23 = {instancePath:instancePath+"/petFood/fullness",schemaPath:"#/$defs/ItemBrowsePetFood/properties/fullness/type",keyword:"type",params:{type: schema61.properties.fullness.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data12.tameness !== undefined){let data15 = data12.tameness;if((!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))) && (data15 !== null)){const err24 = {instancePath:instancePath+"/petFood/tameness",schemaPath:"#/$defs/ItemBrowsePetFood/properties/tameness/type",keyword:"type",params:{type: schema61.properties.tameness.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}if(data12.targets !== undefined){let data16 = data12.targets;if(Array.isArray(data16)){const len1 = data16.length;for(let i1=0; i1<len1; i1++){if(typeof data16[i1] !== "string"){const err25 = {instancePath:instancePath+"/petFood/targets/" + i1,schemaPath:"#/$defs/ItemBrowsePetFood/properties/targets/items/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+"/petFood/targets",schemaPath:"#/$defs/ItemBrowsePetFood/properties/targets/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}if(data12.unresolvedTargets !== undefined){let data18 = data12.unresolvedTargets;if(Array.isArray(data18)){const len2 = data18.length;for(let i2=0; i2<len2; i2++){if(typeof data18[i2] !== "string"){const err27 = {instancePath:instancePath+"/petFood/unresolvedTargets/" + i2,schemaPath:"#/$defs/ItemBrowsePetFood/properties/unresolvedTargets/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}}else {const err28 = {instancePath:instancePath+"/petFood/unresolvedTargets",schemaPath:"#/$defs/ItemBrowsePetFood/properties/unresolvedTargets/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}}else {const err29 = {instancePath:instancePath+"/petFood",schemaPath:"#/$defs/ItemBrowsePetFood/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var _valid2 = _errs37 === errors;valid9 = valid9 || _valid2;const _errs55 = errors;if(data12 !== null){const err30 = {instancePath:instancePath+"/petFood",schemaPath:"#/properties/petFood/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}var _valid2 = _errs55 === errors;valid9 = valid9 || _valid2;if(!valid9){const err31 = {instancePath:instancePath+"/petFood",schemaPath:"#/properties/petFood/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {errors = _errs36;if(vErrors !== null){if(_errs36){vErrors.length = _errs36;}else {vErrors = null;}}}}if(data.projectileAttack !== undefined){let data20 = data.projectileAttack;if((!(((typeof data20 == "number") && (!(data20 % 1) && !isNaN(data20))) && (isFinite(data20)))) && (data20 !== null)){const err32 = {instancePath:instancePath+"/projectileAttack",schemaPath:"#/properties/projectileAttack/type",keyword:"type",params:{type: schema51.properties.projectileAttack.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}if(data.questFlag !== undefined){if(typeof data.questFlag !== "boolean"){const err33 = {instancePath:instancePath+"/questFlag",schemaPath:"#/properties/questFlag/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}if(data.recovery !== undefined){let data22 = data.recovery;const _errs62 = errors;let valid16 = false;const _errs63 = errors;if(data22 && typeof data22 == "object" && !Array.isArray(data22)){for(const key3 in data22){if(!((((key3 === "hp") || (key3 === "hpPercent")) || (key3 === "mp")) || (key3 === "mpPercent"))){const err34 = {instancePath:instancePath+"/recovery",schemaPath:"#/$defs/ItemBrowseRecovery/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}if(data22.hp !== undefined){let data23 = data22.hp;if((!(((typeof data23 == "number") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))) && (data23 !== null)){const err35 = {instancePath:instancePath+"/recovery/hp",schemaPath:"#/$defs/ItemBrowseRecovery/properties/hp/type",keyword:"type",params:{type: schema62.properties.hp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}if(data22.hpPercent !== undefined){let data24 = data22.hpPercent;if((!(((typeof data24 == "number") && (!(data24 % 1) && !isNaN(data24))) && (isFinite(data24)))) && (data24 !== null)){const err36 = {instancePath:instancePath+"/recovery/hpPercent",schemaPath:"#/$defs/ItemBrowseRecovery/properties/hpPercent/type",keyword:"type",params:{type: schema62.properties.hpPercent.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}if(data22.mp !== undefined){let data25 = data22.mp;if((!(((typeof data25 == "number") && (!(data25 % 1) && !isNaN(data25))) && (isFinite(data25)))) && (data25 !== null)){const err37 = {instancePath:instancePath+"/recovery/mp",schemaPath:"#/$defs/ItemBrowseRecovery/properties/mp/type",keyword:"type",params:{type: schema62.properties.mp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}if(data22.mpPercent !== undefined){let data26 = data22.mpPercent;if((!(((typeof data26 == "number") && (!(data26 % 1) && !isNaN(data26))) && (isFinite(data26)))) && (data26 !== null)){const err38 = {instancePath:instancePath+"/recovery/mpPercent",schemaPath:"#/$defs/ItemBrowseRecovery/properties/mpPercent/type",keyword:"type",params:{type: schema62.properties.mpPercent.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/recovery",schemaPath:"#/$defs/ItemBrowseRecovery/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}var _valid3 = _errs63 === errors;valid16 = valid16 || _valid3;const _errs75 = errors;if(data22 !== null){const err40 = {instancePath:instancePath+"/recovery",schemaPath:"#/properties/recovery/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}var _valid3 = _errs75 === errors;valid16 = valid16 || _valid3;if(!valid16){const err41 = {instancePath:instancePath+"/recovery",schemaPath:"#/properties/recovery/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}else {errors = _errs62;if(vErrors !== null){if(_errs62){vErrors.length = _errs62;}else {vErrors = null;}}}}if(data.relationships !== undefined){let data27 = data.relationships;if(data27 && typeof data27 == "object" && !Array.isArray(data27)){for(const key4 in data27){if(!(((((((key4 === "cash-shop-listing") || (key4 === "found-in-container")) || (key4 === "made-by-recipe")) || (key4 === "monster-drop")) || (key4 === "needed-for-quest")) || (key4 === "quest-reward")) || (key4 === "used-in-recipe"))){const err42 = {instancePath:instancePath+"/relationships",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data27["cash-shop-listing"] !== undefined){let data28 = data27["cash-shop-listing"];if((!(((typeof data28 == "number") && (!(data28 % 1) && !isNaN(data28))) && (isFinite(data28)))) && (data28 !== null)){const err43 = {instancePath:instancePath+"/relationships/cash-shop-listing",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/cash-shop-listing/type",keyword:"type",params:{type: schema63.properties["cash-shop-listing"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}if((typeof data28 == "number") && (isFinite(data28))){if(data28 < 0 || isNaN(data28)){const err44 = {instancePath:instancePath+"/relationships/cash-shop-listing",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/cash-shop-listing/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}}if(data27["found-in-container"] !== undefined){let data29 = data27["found-in-container"];if((!(((typeof data29 == "number") && (!(data29 % 1) && !isNaN(data29))) && (isFinite(data29)))) && (data29 !== null)){const err45 = {instancePath:instancePath+"/relationships/found-in-container",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/found-in-container/type",keyword:"type",params:{type: schema63.properties["found-in-container"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}if((typeof data29 == "number") && (isFinite(data29))){if(data29 < 0 || isNaN(data29)){const err46 = {instancePath:instancePath+"/relationships/found-in-container",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/found-in-container/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}}if(data27["made-by-recipe"] !== undefined){let data30 = data27["made-by-recipe"];if((!(((typeof data30 == "number") && (!(data30 % 1) && !isNaN(data30))) && (isFinite(data30)))) && (data30 !== null)){const err47 = {instancePath:instancePath+"/relationships/made-by-recipe",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/made-by-recipe/type",keyword:"type",params:{type: schema63.properties["made-by-recipe"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}if((typeof data30 == "number") && (isFinite(data30))){if(data30 < 0 || isNaN(data30)){const err48 = {instancePath:instancePath+"/relationships/made-by-recipe",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/made-by-recipe/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}}if(data27["monster-drop"] !== undefined){let data31 = data27["monster-drop"];if((!(((typeof data31 == "number") && (!(data31 % 1) && !isNaN(data31))) && (isFinite(data31)))) && (data31 !== null)){const err49 = {instancePath:instancePath+"/relationships/monster-drop",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/monster-drop/type",keyword:"type",params:{type: schema63.properties["monster-drop"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if((typeof data31 == "number") && (isFinite(data31))){if(data31 < 0 || isNaN(data31)){const err50 = {instancePath:instancePath+"/relationships/monster-drop",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/monster-drop/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}}}if(data27["needed-for-quest"] !== undefined){let data32 = data27["needed-for-quest"];if((!(((typeof data32 == "number") && (!(data32 % 1) && !isNaN(data32))) && (isFinite(data32)))) && (data32 !== null)){const err51 = {instancePath:instancePath+"/relationships/needed-for-quest",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/needed-for-quest/type",keyword:"type",params:{type: schema63.properties["needed-for-quest"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}if((typeof data32 == "number") && (isFinite(data32))){if(data32 < 0 || isNaN(data32)){const err52 = {instancePath:instancePath+"/relationships/needed-for-quest",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/needed-for-quest/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}}}if(data27["quest-reward"] !== undefined){let data33 = data27["quest-reward"];if((!(((typeof data33 == "number") && (!(data33 % 1) && !isNaN(data33))) && (isFinite(data33)))) && (data33 !== null)){const err53 = {instancePath:instancePath+"/relationships/quest-reward",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/quest-reward/type",keyword:"type",params:{type: schema63.properties["quest-reward"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}if((typeof data33 == "number") && (isFinite(data33))){if(data33 < 0 || isNaN(data33)){const err54 = {instancePath:instancePath+"/relationships/quest-reward",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/quest-reward/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}}}if(data27["used-in-recipe"] !== undefined){let data34 = data27["used-in-recipe"];if((!(((typeof data34 == "number") && (!(data34 % 1) && !isNaN(data34))) && (isFinite(data34)))) && (data34 !== null)){const err55 = {instancePath:instancePath+"/relationships/used-in-recipe",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/used-in-recipe/type",keyword:"type",params:{type: schema63.properties["used-in-recipe"].type},message:"must be integer,null"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}if((typeof data34 == "number") && (isFinite(data34))){if(data34 < 0 || isNaN(data34)){const err56 = {instancePath:instancePath+"/relationships/used-in-recipe",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/properties/used-in-recipe/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}}}else {const err57 = {instancePath:instancePath+"/relationships",schemaPath:"#/$defs/ItemBrowseRelationshipCounts/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}if(data.requirement !== undefined){let data35 = data.requirement;const _errs96 = errors;let valid21 = false;const _errs97 = errors;if(!(validate35(data35, {instancePath:instancePath+"/requirement",parentData:data,parentDataProperty:"requirement",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate35.errors : vErrors.concat(validate35.errors);errors = vErrors.length;}var _valid4 = _errs97 === errors;valid21 = valid21 || _valid4;const _errs98 = errors;if(data35 !== null){const err58 = {instancePath:instancePath+"/requirement",schemaPath:"#/properties/requirement/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}var _valid4 = _errs98 === errors;valid21 = valid21 || _valid4;if(!valid21){const err59 = {instancePath:instancePath+"/requirement",schemaPath:"#/properties/requirement/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}else {errors = _errs96;if(vErrors !== null){if(_errs96){vErrors.length = _errs96;}else {vErrors = null;}}}}if(data.scroll !== undefined){let data36 = data.scroll;const _errs101 = errors;let valid22 = false;const _errs102 = errors;if(!(validate37(data36, {instancePath:instancePath+"/scroll",parentData:data,parentDataProperty:"scroll",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate37.errors : vErrors.concat(validate37.errors);errors = vErrors.length;}var _valid5 = _errs102 === errors;valid22 = valid22 || _valid5;const _errs103 = errors;if(data36 !== null){const err60 = {instancePath:instancePath+"/scroll",schemaPath:"#/properties/scroll/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}var _valid5 = _errs103 === errors;valid22 = valid22 || _valid5;if(!valid22){const err61 = {instancePath:instancePath+"/scroll",schemaPath:"#/properties/scroll/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err61];}else {vErrors.push(err61);}errors++;}else {errors = _errs101;if(vErrors !== null){if(_errs101){vErrors.length = _errs101;}else {vErrors = null;}}}}if(data.seatingRecovery !== undefined){let data37 = data.seatingRecovery;const _errs106 = errors;let valid23 = false;const _errs107 = errors;if(data37 && typeof data37 == "object" && !Array.isArray(data37)){for(const key5 in data37){if(!((key5 === "hp") || (key5 === "mp"))){const err62 = {instancePath:instancePath+"/seatingRecovery",schemaPath:"#/$defs/ItemBrowseSeatingRecovery/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;}}if(data37.hp !== undefined){let data38 = data37.hp;if((!(((typeof data38 == "number") && (!(data38 % 1) && !isNaN(data38))) && (isFinite(data38)))) && (data38 !== null)){const err63 = {instancePath:instancePath+"/seatingRecovery/hp",schemaPath:"#/$defs/ItemBrowseSeatingRecovery/properties/hp/type",keyword:"type",params:{type: schema71.properties.hp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err63];}else {vErrors.push(err63);}errors++;}}if(data37.mp !== undefined){let data39 = data37.mp;if((!(((typeof data39 == "number") && (!(data39 % 1) && !isNaN(data39))) && (isFinite(data39)))) && (data39 !== null)){const err64 = {instancePath:instancePath+"/seatingRecovery/mp",schemaPath:"#/$defs/ItemBrowseSeatingRecovery/properties/mp/type",keyword:"type",params:{type: schema71.properties.mp.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err64];}else {vErrors.push(err64);}errors++;}}}else {const err65 = {instancePath:instancePath+"/seatingRecovery",schemaPath:"#/$defs/ItemBrowseSeatingRecovery/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}var _valid6 = _errs107 === errors;valid23 = valid23 || _valid6;const _errs115 = errors;if(data37 !== null){const err66 = {instancePath:instancePath+"/seatingRecovery",schemaPath:"#/properties/seatingRecovery/anyOf/1/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}var _valid6 = _errs115 === errors;valid23 = valid23 || _valid6;if(!valid23){const err67 = {instancePath:instancePath+"/seatingRecovery",schemaPath:"#/properties/seatingRecovery/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}else {errors = _errs106;if(vErrors !== null){if(_errs106){vErrors.length = _errs106;}else {vErrors = null;}}}}if(data.sellPrice !== undefined){let data40 = data.sellPrice;if((!(((typeof data40 == "number") && (!(data40 % 1) && !isNaN(data40))) && (isFinite(data40)))) && (data40 !== null)){const err68 = {instancePath:instancePath+"/sellPrice",schemaPath:"#/properties/sellPrice/type",keyword:"type",params:{type: schema51.properties.sellPrice.type},message:"must be integer,null"};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}}if(data.sourceId !== undefined){if(typeof data.sourceId !== "string"){const err69 = {instancePath:instancePath+"/sourceId",schemaPath:"#/properties/sourceId/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}}if(data.types !== undefined){let data42 = data.types;if(Array.isArray(data42)){const len3 = data42.length;for(let i3=0; i3<len3; i3++){let data43 = data42[i3];if(typeof data43 !== "string"){const err70 = {instancePath:instancePath+"/types/" + i3,schemaPath:"#/$defs/ItemBrowseType/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}if(!((((((((((((((((data43 === "upgrade-scroll") || (data43 === "arrow")) || (data43 === "throwing-star")) || (data43 === "bullet")) || (data43 === "chair")) || (data43 === "ore")) || (data43 === "gem")) || (data43 === "pet-food")) || (data43 === "refined-material")) || (data43 === "potion")) || (data43 === "food-buff")) || (data43 === "monster-material")) || (data43 === "holiday-ornament")) || (data43 === "furniture")) || (data43 === "crafting-station")) || (data43 === "meso-pouch"))){const err71 = {instancePath:instancePath+"/types/" + i3,schemaPath:"#/$defs/ItemBrowseType/enum",keyword:"enum",params:{allowedValues: schema72.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}}}else {const err72 = {instancePath:instancePath+"/types",schemaPath:"#/properties/types/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}}}else {const err73 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}validate27.errors = vErrors;return errors === 0;}validate27.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.format === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "format"},message:"must have required property '"+"format"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.contractVersion === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "contractVersion"},message:"must have required property '"+"contractVersion"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.scope === undefined){const err2 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "scope"},message:"must have required property '"+"scope"+"'"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.coverage === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "coverage"},message:"must have required property '"+"coverage"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.records === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "records"},message:"must have required property '"+"records"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}for(const key0 in data){if(!(((((key0 === "contractVersion") || (key0 === "coverage")) || (key0 === "format")) || (key0 === "records")) || (key0 === "scope"))){const err5 = {instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.contractVersion !== undefined){let data0 = data.contractVersion;if(typeof data0 !== "string"){const err6 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(!((data0 === "2.0") || (data0 === "2.1"))){const err7 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/enum",keyword:"enum",params:{allowedValues: schema31.properties.contractVersion.enum},message:"must be equal to one of the allowed values"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.coverage !== undefined){if(!(validate21(data.coverage, {instancePath:instancePath+"/coverage",parentData:data,parentDataProperty:"coverage",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}}if(data.format !== undefined){let data2 = data.format;if(typeof data2 !== "string"){const err8 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if("item-browse-pack/1" !== data2){const err9 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/const",keyword:"const",params:{allowedValue: "item-browse-pack/1"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.records !== undefined){let data3 = data.records;if(data3 && typeof data3 == "object" && !Array.isArray(data3)){for(const key1 in data3){if(!(validate27(data3[key1], {instancePath:instancePath+"/records/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),parentData:data3,parentDataProperty:key1,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate27.errors : vErrors.concat(validate27.errors);errors = vErrors.length;}}}else {const err10 = {instancePath:instancePath+"/records",schemaPath:"#/properties/records/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}if(data.scope !== undefined){let data5 = data.scope;if(data5 && typeof data5 == "object" && !Array.isArray(data5)){if(data5.family_id === undefined){const err11 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "family_id"},message:"must have required property '"+"family_id"+"'"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(data5.build_id === undefined){const err12 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "build_id"},message:"must have required property '"+"build_id"+"'"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if(data5.build_id !== undefined){if(typeof data5.build_id !== "string"){const err13 = {instancePath:instancePath+"/scope/build_id",schemaPath:"#/$defs/BuildScope/properties/build_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data5.family_id !== undefined){if(typeof data5.family_id !== "string"){const err14 = {instancePath:instancePath+"/scope/family_id",schemaPath:"#/$defs/BuildScope/properties/family_id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}else {const err16 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};
|