@mapletip/data 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/NOTICE +52 -0
  2. package/README.md +209 -0
  3. package/client/contract-compatibility.d.mts +27 -0
  4. package/client/contract-compatibility.mjs +159 -0
  5. package/client/core.d.ts +150 -0
  6. package/client/core.js +359 -0
  7. package/client/equipment.d.ts +22 -0
  8. package/client/equipment.js +63 -0
  9. package/client/items.d.ts +22 -0
  10. package/client/items.js +63 -0
  11. package/client/media.d.ts +19 -0
  12. package/client/media.js +47 -0
  13. package/client/monster-client.d.ts +35 -0
  14. package/client/monster-client.js +155 -0
  15. package/client/monsters.d.ts +24 -0
  16. package/client/monsters.js +14 -0
  17. package/client/quests.d.ts +31 -0
  18. package/client/quests.js +124 -0
  19. package/client/release.d.ts +63 -0
  20. package/client/release.js +279 -0
  21. package/client/static-client.d.ts +40 -0
  22. package/client/static-client.js +44 -0
  23. package/client/static-domains.d.ts +48 -0
  24. package/client/static-domains.js +113 -0
  25. package/generated/contract-2-catalog-fact.d.ts +51 -0
  26. package/generated/equipment-catalog-2.d.ts +434 -0
  27. package/generated/equipment-catalog-2.validator.js +17 -0
  28. package/generated/equipment-detail-2.d.ts +350 -0
  29. package/generated/equipment-detail-2.validator.js +17 -0
  30. package/generated/equipment-evidence-pack-2.d.ts +243 -0
  31. package/generated/equipment-evidence-pack-2.validator.js +17 -0
  32. package/generated/equipment-pack-2.validator.js +17 -0
  33. package/generated/equipment-relationship-pack-2.d.ts +170 -0
  34. package/generated/equipment-relationship-pack-2.validator.js +17 -0
  35. package/generated/item-catalog-2.d.ts +366 -0
  36. package/generated/item-catalog-2.validator.js +17 -0
  37. package/generated/item-detail-2.d.ts +540 -0
  38. package/generated/item-detail-2.validator.js +17 -0
  39. package/generated/item-evidence-pack-2.d.ts +243 -0
  40. package/generated/item-evidence-pack-2.validator.js +17 -0
  41. package/generated/item-pack-2.validator.js +17 -0
  42. package/generated/item-relationship-pack-2.d.ts +170 -0
  43. package/generated/item-relationship-pack-2.validator.js +17 -0
  44. package/generated/media-catalog-2.d.ts +133 -0
  45. package/generated/media-catalog-2.validator.js +17 -0
  46. package/generated/media-detail-2.d.ts +125 -0
  47. package/generated/media-detail-2.validator.js +17 -0
  48. package/generated/media-pack-2.validator.js +17 -0
  49. package/generated/monster-catalog-2.d.ts +230 -0
  50. package/generated/monster-catalog-2.validator.js +17 -0
  51. package/generated/monster-catalog.d.ts +224 -0
  52. package/generated/monster-catalog.validator.js +1 -0
  53. package/generated/monster-core-relationship-pack-2.d.ts +208 -0
  54. package/generated/monster-core-relationship-pack-2.validator.js +17 -0
  55. package/generated/monster-detail-2.d.ts +372 -0
  56. package/generated/monster-detail-2.validator.js +17 -0
  57. package/generated/monster-detail.d.ts +799 -0
  58. package/generated/monster-detail.validator.js +17 -0
  59. package/generated/monster-evidence-pack-2.d.ts +378 -0
  60. package/generated/monster-evidence-pack-2.validator.js +17 -0
  61. package/generated/monster-evidence-pack.d.ts +269 -0
  62. package/generated/monster-evidence-pack.validator.js +17 -0
  63. package/generated/monster-location-pack-2.validator.js +1 -0
  64. package/generated/monster-pack-2.validator.js +17 -0
  65. package/generated/monster-pack.validator.js +17 -0
  66. package/generated/monster-relationship-pack.d.ts +126 -0
  67. package/generated/monster-relationship-pack.validator.js +1 -0
  68. package/generated/product-manifest.d.ts +188 -0
  69. package/generated/product-manifest.validator.js +1 -0
  70. package/generated/quest-auxiliary-pack-2.d.ts +391 -0
  71. package/generated/quest-auxiliary-pack-2.validator.js +17 -0
  72. package/generated/quest-browse-pack-2.d.ts +353 -0
  73. package/generated/quest-browse-pack-2.validator.js +17 -0
  74. package/generated/quest-catalog-2.d.ts +501 -0
  75. package/generated/quest-catalog-2.validator.js +17 -0
  76. package/generated/quest-evidence-pack-2.d.ts +269 -0
  77. package/generated/quest-evidence-pack-2.validator.js +17 -0
  78. package/generated/quest-pack-2.d.ts +410 -0
  79. package/generated/quest-pack-2.validator.js +17 -0
  80. package/generated/quest-relationship-pack-2.d.ts +868 -0
  81. package/generated/quest-relationship-pack-2.validator.js +17 -0
  82. package/generated/release-build-index.d.ts +42 -0
  83. package/generated/release-build-index.validator.js +1 -0
  84. package/generated/release-manifest.d.ts +24 -0
  85. package/generated/release-manifest.validator.js +1 -0
  86. package/generated/release-pin.d.ts +12 -0
  87. package/generated/release-pin.validator.js +1 -0
  88. package/package.json +155 -0
@@ -0,0 +1 @@
1
+ "use strict";export const validate = validate20;export default validate20;const schema31 = {"$defs":{"BuildScope":{"description":"Build scope specifying the game family and concrete build identity.","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"],"type":"object"},"Coverage":{"description":"Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).","oneOf":[{"const":"complete","description":"100% of upstream source records represented.","type":"string"},{"const":"partial","description":"Bounded or deliberate subset.","type":"string"},{"const":"unknown","description":"Upstream source completeness cannot be certified.","type":"string"},{"const":"unsupported","description":"Domain or capability not provided by upstream.","type":"string"}]},"FactState":{"description":"State-tagged fact representation according to contracts.md § Shared semantic shapes.","oneOf":[{"description":"Fact is positively known and observed.","properties":{"state":{"const":"known","type":"string"},"value":{"description":"Observed value.","type":"string"}},"required":["state","value"],"type":"object"},{"description":"Fact is unobserved or incomplete in upstream source.","properties":{"reason":{"description":"Reason for absence if known.","type":["string","null"]},"state":{"const":"unknown","type":"string"}},"required":["state"],"type":"object"},{"description":"Upstream source capability is unsupported.","properties":{"capability":{"description":"Name of the unsupported capability.","type":"string"},"state":{"const":"unsupported","type":"string"}},"required":["state","capability"],"type":"object"}]},"FactState2":{"description":"State-tagged fact representation according to contracts.md § Shared semantic shapes.","oneOf":[{"description":"Fact is positively known and observed.","properties":{"state":{"const":"known","type":"string"},"value":{"$ref":"#/$defs/SafeInt64","description":"Observed value."}},"required":["state","value"],"type":"object"},{"description":"Fact is unobserved or incomplete in upstream source.","properties":{"reason":{"description":"Reason for absence if known.","type":["string","null"]},"state":{"const":"unknown","type":"string"}},"required":["state"],"type":"object"},{"description":"Upstream source capability is unsupported.","properties":{"capability":{"description":"Name of the unsupported capability.","type":"string"},"state":{"const":"unsupported","type":"string"}},"required":["state","capability"],"type":"object"}]},"FactState3":{"description":"State-tagged fact representation according to contracts.md § Shared semantic shapes.","oneOf":[{"description":"Fact is positively known and observed.","properties":{"state":{"const":"known","type":"string"},"value":{"description":"Observed value.","type":"boolean"}},"required":["state","value"],"type":"object"},{"description":"Fact is unobserved or incomplete in upstream source.","properties":{"reason":{"description":"Reason for absence if known.","type":["string","null"]},"state":{"const":"unknown","type":"string"}},"required":["state"],"type":"object"},{"description":"Upstream source capability is unsupported.","properties":{"capability":{"description":"Name of the unsupported capability.","type":"string"},"state":{"const":"unsupported","type":"string"}},"required":["state","capability"],"type":"object"}]},"MonsterCatalogRecord":{"description":"Compact monster catalog record for browsing and faceted filtering.","properties":{"boss":{"$ref":"#/$defs/FactState3","description":"Boss classification flag."},"dropCount":{"description":"Number of selected drop-evidence rows.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"exp":{"$ref":"#/$defs/FactState2","description":"EXP reward."},"hp":{"$ref":"#/$defs/FactState2","description":"Maximum HP."},"key":{"description":"Deterministic public entity key.","type":"string"},"level":{"$ref":"#/$defs/FactState2","description":"Monster level."},"locationCount":{"description":"Number of individual admitted map placements.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"name":{"$ref":"#/$defs/FactState","description":"Localized display name."},"questCount":{"description":"Number of selected Quest objective observations.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"sourceIdentity":{"$ref":"#/$defs/SourceIdentity","description":"Upstream source coordinates."}},"required":["key","sourceIdentity","name","level","hp","exp","boss","dropCount","locationCount","questCount"],"type":"object"},"SafeInt64":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"SourceIdentity":{"description":"Upstream source identity coordinates.","properties":{"discriminator":{"description":"Explicit source discriminator when one ID has multiple records (empty or omitted when unused).","type":["string","null"]},"id":{"description":"Exact upstream source identifier (e.g., '0100100').","type":"string"},"namespace":{"description":"Source namespace (e.g., 'wz.mob', 'wz.item', 'wz.map'). None when missing or ambiguous.","type":["string","null"]}},"required":["id"],"type":"object"}},"$schema":"https://json-schema.org/draft/2020-12/schema","description":"Standalone monster catalog file ('catalog.json').","properties":{"contractVersion":{"description":"Wire contract version ('major.minor').","pattern":"^1\\.(0|[1-9][0-9]*)$","type":"string"},"coverage":{"$ref":"#/$defs/Coverage","description":"Completeness of the catalog."},"format":{"const":"mapletip.monster-catalog","description":"Format identifier ('mapletip.monster-catalog').","type":"string"},"recordCount":{"description":"Total number of monster records.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"records":{"description":"Array of compact catalog records.","items":{"$ref":"#/$defs/MonsterCatalogRecord"},"type":"array"},"scope":{"$ref":"#/$defs/BuildScope","description":"Target build scope."}},"required":["format","contractVersion","scope","coverage","recordCount","records"],"title":"MonsterCatalog","type":"object"};const schema32 = {"description":"Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).","oneOf":[{"const":"complete","description":"100% of upstream source records represented.","type":"string"},{"const":"partial","description":"Bounded or deliberate subset.","type":"string"},{"const":"unknown","description":"Upstream source completeness cannot be certified.","type":"string"},{"const":"unsupported","description":"Domain or capability not provided by upstream.","type":"string"}]};const schema39 = {"description":"Build scope specifying the game family and concrete build identity.","properties":{"build_id":{"description":"Exact build identity (e.g., 'gms-v83', 'cw-cot2').","type":"string"},"family_id":{"description":"Family identity (e.g., 'gms', 'classic-world').","type":"string"}},"required":["family_id","build_id"],"type":"object"};const pattern4 = new RegExp("^1\\.(0|[1-9][0-9]*)$", "u");const schema33 = {"description":"Compact monster catalog record for browsing and faceted filtering.","properties":{"boss":{"$ref":"#/$defs/FactState3","description":"Boss classification flag."},"dropCount":{"description":"Number of selected drop-evidence rows.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"exp":{"$ref":"#/$defs/FactState2","description":"EXP reward."},"hp":{"$ref":"#/$defs/FactState2","description":"Maximum HP."},"key":{"description":"Deterministic public entity key.","type":"string"},"level":{"$ref":"#/$defs/FactState2","description":"Monster level."},"locationCount":{"description":"Number of individual admitted map placements.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"name":{"$ref":"#/$defs/FactState","description":"Localized display name."},"questCount":{"description":"Number of selected Quest objective observations.","format":"uint","maximum":9007199254740991,"minimum":0,"type":"integer"},"sourceIdentity":{"$ref":"#/$defs/SourceIdentity","description":"Upstream source coordinates."}},"required":["key","sourceIdentity","name","level","hp","exp","boss","dropCount","locationCount","questCount"],"type":"object"};const schema34 = {"description":"State-tagged fact representation according to contracts.md § Shared semantic shapes.","oneOf":[{"description":"Fact is positively known and observed.","properties":{"state":{"const":"known","type":"string"},"value":{"description":"Observed value.","type":"boolean"}},"required":["state","value"],"type":"object"},{"description":"Fact is unobserved or incomplete in upstream source.","properties":{"reason":{"description":"Reason for absence if known.","type":["string","null"]},"state":{"const":"unknown","type":"string"}},"required":["state"],"type":"object"},{"description":"Upstream source capability is unsupported.","properties":{"capability":{"description":"Name of the unsupported capability.","type":"string"},"state":{"const":"unsupported","type":"string"}},"required":["state","capability"],"type":"object"}]};const schema37 = {"description":"State-tagged fact representation according to contracts.md § Shared semantic shapes.","oneOf":[{"description":"Fact is positively known and observed.","properties":{"state":{"const":"known","type":"string"},"value":{"description":"Observed value.","type":"string"}},"required":["state","value"],"type":"object"},{"description":"Fact is unobserved or incomplete in upstream source.","properties":{"reason":{"description":"Reason for absence if known.","type":["string","null"]},"state":{"const":"unknown","type":"string"}},"required":["state"],"type":"object"},{"description":"Upstream source capability is unsupported.","properties":{"capability":{"description":"Name of the unsupported capability.","type":"string"},"state":{"const":"unsupported","type":"string"}},"required":["state","capability"],"type":"object"}]};const schema38 = {"description":"Upstream source identity coordinates.","properties":{"discriminator":{"description":"Explicit source discriminator when one ID has multiple records (empty or omitted when unused).","type":["string","null"]},"id":{"description":"Exact upstream source identifier (e.g., '0100100').","type":"string"},"namespace":{"description":"Source namespace (e.g., 'wz.mob', 'wz.item', 'wz.map'). None when missing or ambiguous.","type":["string","null"]}},"required":["id"],"type":"object"};const schema35 = {"description":"State-tagged fact representation according to contracts.md § Shared semantic shapes.","oneOf":[{"description":"Fact is positively known and observed.","properties":{"state":{"const":"known","type":"string"},"value":{"$ref":"#/$defs/SafeInt64","description":"Observed value."}},"required":["state","value"],"type":"object"},{"description":"Fact is unobserved or incomplete in upstream source.","properties":{"reason":{"description":"Reason for absence if known.","type":["string","null"]},"state":{"const":"unknown","type":"string"}},"required":["state"],"type":"object"},{"description":"Upstream source capability is unsupported.","properties":{"capability":{"description":"Name of the unsupported capability.","type":"string"},"state":{"const":"unsupported","type":"string"}},"required":["state","capability"],"type":"object"}]};const schema36 = {"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"};function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err0 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.value === undefined){const err1 = {instancePath,schemaPath:"#/oneOf/0/required",keyword:"required",params:{missingProperty: "value"},message:"must have required property '"+"value"+"'"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.state !== undefined){let data0 = data.state;if(typeof data0 !== "string"){const err2 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if("known" !== data0){const err3 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/0/properties/state/const",keyword:"const",params:{allowedValue: "known"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}if(data.value !== undefined){let data1 = data.value;if(!(((typeof data1 == "number") && (!(data1 % 1) && !isNaN(data1))) && (isFinite(data1)))){const err4 = {instancePath:instancePath+"/value",schemaPath:"#/$defs/SafeInt64/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 9007199254740991 || isNaN(data1)){const err5 = {instancePath:instancePath+"/value",schemaPath:"#/$defs/SafeInt64/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data1 < -9007199254740991 || isNaN(data1)){const err6 = {instancePath:instancePath+"/value",schemaPath:"#/$defs/SafeInt64/minimum",keyword:"minimum",params:{comparison: ">=", limit: -9007199254740991},message:"must be >= -9007199254740991"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}}else {const err7 = {instancePath,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;var props0 = {};props0.state = true;props0.value = true;}const _errs8 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err8 = {instancePath,schemaPath:"#/oneOf/1/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.reason !== undefined){let data2 = data.reason;if((typeof data2 !== "string") && (data2 !== null)){const err9 = {instancePath:instancePath+"/reason",schemaPath:"#/oneOf/1/properties/reason/type",keyword:"type",params:{type: schema35.oneOf[1].properties.reason.type},message:"must be string,null"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}if(data.state !== undefined){let data3 = data.state;if(typeof data3 !== "string"){const err10 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if("unknown" !== data3){const err11 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/1/properties/state/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}}else {const err12 = {instancePath,schemaPath:"#/oneOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}var _valid0 = _errs8 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;if(props0 !== true){props0 = props0 || {};props0.reason = true;props0.state = true;}}const _errs14 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.state === undefined){const err13 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}if(data.capability === undefined){const err14 = {instancePath,schemaPath:"#/oneOf/2/required",keyword:"required",params:{missingProperty: "capability"},message:"must have required property '"+"capability"+"'"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}if(data.capability !== undefined){if(typeof data.capability !== "string"){const err15 = {instancePath:instancePath+"/capability",schemaPath:"#/oneOf/2/properties/capability/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}if(data.state !== undefined){let data5 = data.state;if(typeof data5 !== "string"){const err16 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if("unsupported" !== data5){const err17 = {instancePath:instancePath+"/state",schemaPath:"#/oneOf/2/properties/state/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath,schemaPath:"#/oneOf/2/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}var _valid0 = _errs14 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 2];}else {if(_valid0){valid0 = true;passing0 = 2;if(props0 !== true){props0 = props0 || {};props0.capability = true;props0.state = true;}}}}if(!valid0){const err19 = {instancePath,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate22.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate22.evaluated = {"dynamicProps":true,"dynamicItems":false};function validate21(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(data && typeof data == "object" && !Array.isArray(data)){if(data.key === undefined){const err0 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "key"},message:"must have required property '"+"key"+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.sourceIdentity === undefined){const err1 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "sourceIdentity"},message:"must have required property '"+"sourceIdentity"+"'"};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.level === undefined){const err3 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "level"},message:"must have required property '"+"level"+"'"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.hp === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "hp"},message:"must have required property '"+"hp"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.exp === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "exp"},message:"must have required property '"+"exp"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.boss === undefined){const err6 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "boss"},message:"must have required property '"+"boss"+"'"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data.dropCount === undefined){const err7 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "dropCount"},message:"must have required property '"+"dropCount"+"'"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data.locationCount === undefined){const err8 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "locationCount"},message:"must have required property '"+"locationCount"+"'"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data.questCount === undefined){const err9 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "questCount"},message:"must have required property '"+"questCount"+"'"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(data.boss !== undefined){let data0 = data.boss;const _errs3 = errors;let valid2 = false;let passing0 = null;const _errs4 = errors;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(data0.state === undefined){const err10 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf/0/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(data0.value === undefined){const err11 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf/0/required",keyword:"required",params:{missingProperty: "value"},message:"must have required property '"+"value"+"'"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}if(data0.state !== undefined){let data1 = data0.state;if(typeof data1 !== "string"){const err12 = {instancePath:instancePath+"/boss/state",schemaPath:"#/$defs/FactState3/oneOf/0/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if("known" !== data1){const err13 = {instancePath:instancePath+"/boss/state",schemaPath:"#/$defs/FactState3/oneOf/0/properties/state/const",keyword:"const",params:{allowedValue: "known"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}if(data0.value !== undefined){if(typeof data0.value !== "boolean"){const err14 = {instancePath:instancePath+"/boss/value",schemaPath:"#/$defs/FactState3/oneOf/0/properties/value/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}else {const err15 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}var _valid0 = _errs4 === errors;if(_valid0){valid2 = true;passing0 = 0;var props0 = {};props0.state = true;props0.value = true;}const _errs10 = errors;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(data0.state === undefined){const err16 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf/1/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}if(data0.reason !== undefined){let data3 = data0.reason;if((typeof data3 !== "string") && (data3 !== null)){const err17 = {instancePath:instancePath+"/boss/reason",schemaPath:"#/$defs/FactState3/oneOf/1/properties/reason/type",keyword:"type",params:{type: schema34.oneOf[1].properties.reason.type},message:"must be string,null"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(data0.state !== undefined){let data4 = data0.state;if(typeof data4 !== "string"){const err18 = {instancePath:instancePath+"/boss/state",schemaPath:"#/$defs/FactState3/oneOf/1/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}if("unknown" !== data4){const err19 = {instancePath:instancePath+"/boss/state",schemaPath:"#/$defs/FactState3/oneOf/1/properties/state/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}}else {const err20 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}var _valid0 = _errs10 === errors;if(_valid0 && valid2){valid2 = false;passing0 = [passing0, 1];}else {if(_valid0){valid2 = true;passing0 = 1;if(props0 !== true){props0 = props0 || {};props0.reason = true;props0.state = true;}}const _errs16 = errors;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(data0.state === undefined){const err21 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf/2/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}if(data0.capability === undefined){const err22 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf/2/required",keyword:"required",params:{missingProperty: "capability"},message:"must have required property '"+"capability"+"'"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(data0.capability !== undefined){if(typeof data0.capability !== "string"){const err23 = {instancePath:instancePath+"/boss/capability",schemaPath:"#/$defs/FactState3/oneOf/2/properties/capability/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}if(data0.state !== undefined){let data6 = data0.state;if(typeof data6 !== "string"){const err24 = {instancePath:instancePath+"/boss/state",schemaPath:"#/$defs/FactState3/oneOf/2/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}if("unsupported" !== data6){const err25 = {instancePath:instancePath+"/boss/state",schemaPath:"#/$defs/FactState3/oneOf/2/properties/state/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}}else {const err26 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf/2/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}var _valid0 = _errs16 === errors;if(_valid0 && valid2){valid2 = false;passing0 = [passing0, 2];}else {if(_valid0){valid2 = true;passing0 = 2;if(props0 !== true){props0 = props0 || {};props0.capability = true;props0.state = true;}}}}if(!valid2){const err27 = {instancePath:instancePath+"/boss",schemaPath:"#/$defs/FactState3/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}else {errors = _errs3;if(vErrors !== null){if(_errs3){vErrors.length = _errs3;}else {vErrors = null;}}}}if(data.dropCount !== undefined){let data7 = data.dropCount;if(!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))){const err28 = {instancePath:instancePath+"/dropCount",schemaPath:"#/properties/dropCount/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}if((typeof data7 == "number") && (isFinite(data7))){if(data7 > 9007199254740991 || isNaN(data7)){const err29 = {instancePath:instancePath+"/dropCount",schemaPath:"#/properties/dropCount/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}if(data7 < 0 || isNaN(data7)){const err30 = {instancePath:instancePath+"/dropCount",schemaPath:"#/properties/dropCount/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}}if(data.exp !== undefined){if(!(validate22(data.exp, {instancePath:instancePath+"/exp",parentData:data,parentDataProperty:"exp",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}}if(data.hp !== undefined){if(!(validate22(data.hp, {instancePath:instancePath+"/hp",parentData:data,parentDataProperty:"hp",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}}if(data.key !== undefined){if(typeof data.key !== "string"){const err31 = {instancePath:instancePath+"/key",schemaPath:"#/properties/key/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}if(data.level !== undefined){if(!(validate22(data.level, {instancePath:instancePath+"/level",parentData:data,parentDataProperty:"level",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}}if(data.locationCount !== undefined){let data12 = data.locationCount;if(!(((typeof data12 == "number") && (!(data12 % 1) && !isNaN(data12))) && (isFinite(data12)))){const err32 = {instancePath:instancePath+"/locationCount",schemaPath:"#/properties/locationCount/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}if((typeof data12 == "number") && (isFinite(data12))){if(data12 > 9007199254740991 || isNaN(data12)){const err33 = {instancePath:instancePath+"/locationCount",schemaPath:"#/properties/locationCount/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(data12 < 0 || isNaN(data12)){const err34 = {instancePath:instancePath+"/locationCount",schemaPath:"#/properties/locationCount/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}}if(data.name !== undefined){let data13 = data.name;const _errs33 = errors;let valid7 = false;let passing1 = null;const _errs34 = errors;if(data13 && typeof data13 == "object" && !Array.isArray(data13)){if(data13.state === undefined){const err35 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf/0/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}if(data13.value === undefined){const err36 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf/0/required",keyword:"required",params:{missingProperty: "value"},message:"must have required property '"+"value"+"'"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}if(data13.state !== undefined){let data14 = data13.state;if(typeof data14 !== "string"){const err37 = {instancePath:instancePath+"/name/state",schemaPath:"#/$defs/FactState/oneOf/0/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}if("known" !== data14){const err38 = {instancePath:instancePath+"/name/state",schemaPath:"#/$defs/FactState/oneOf/0/properties/state/const",keyword:"const",params:{allowedValue: "known"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}if(data13.value !== undefined){if(typeof data13.value !== "string"){const err39 = {instancePath:instancePath+"/name/value",schemaPath:"#/$defs/FactState/oneOf/0/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}}else {const err40 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}var _valid1 = _errs34 === errors;if(_valid1){valid7 = true;passing1 = 0;var props4 = {};props4.state = true;props4.value = true;}const _errs40 = errors;if(data13 && typeof data13 == "object" && !Array.isArray(data13)){if(data13.state === undefined){const err41 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf/1/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}if(data13.reason !== undefined){let data16 = data13.reason;if((typeof data16 !== "string") && (data16 !== null)){const err42 = {instancePath:instancePath+"/name/reason",schemaPath:"#/$defs/FactState/oneOf/1/properties/reason/type",keyword:"type",params:{type: schema37.oneOf[1].properties.reason.type},message:"must be string,null"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}if(data13.state !== undefined){let data17 = data13.state;if(typeof data17 !== "string"){const err43 = {instancePath:instancePath+"/name/state",schemaPath:"#/$defs/FactState/oneOf/1/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}if("unknown" !== data17){const err44 = {instancePath:instancePath+"/name/state",schemaPath:"#/$defs/FactState/oneOf/1/properties/state/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}}else {const err45 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}var _valid1 = _errs40 === errors;if(_valid1 && valid7){valid7 = false;passing1 = [passing1, 1];}else {if(_valid1){valid7 = true;passing1 = 1;if(props4 !== true){props4 = props4 || {};props4.reason = true;props4.state = true;}}const _errs46 = errors;if(data13 && typeof data13 == "object" && !Array.isArray(data13)){if(data13.state === undefined){const err46 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf/2/required",keyword:"required",params:{missingProperty: "state"},message:"must have required property '"+"state"+"'"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}if(data13.capability === undefined){const err47 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf/2/required",keyword:"required",params:{missingProperty: "capability"},message:"must have required property '"+"capability"+"'"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}if(data13.capability !== undefined){if(typeof data13.capability !== "string"){const err48 = {instancePath:instancePath+"/name/capability",schemaPath:"#/$defs/FactState/oneOf/2/properties/capability/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}if(data13.state !== undefined){let data19 = data13.state;if(typeof data19 !== "string"){const err49 = {instancePath:instancePath+"/name/state",schemaPath:"#/$defs/FactState/oneOf/2/properties/state/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if("unsupported" !== data19){const err50 = {instancePath:instancePath+"/name/state",schemaPath:"#/$defs/FactState/oneOf/2/properties/state/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}}}else {const err51 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf/2/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}var _valid1 = _errs46 === errors;if(_valid1 && valid7){valid7 = false;passing1 = [passing1, 2];}else {if(_valid1){valid7 = true;passing1 = 2;if(props4 !== true){props4 = props4 || {};props4.capability = true;props4.state = true;}}}}if(!valid7){const err52 = {instancePath:instancePath+"/name",schemaPath:"#/$defs/FactState/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}else {errors = _errs33;if(vErrors !== null){if(_errs33){vErrors.length = _errs33;}else {vErrors = null;}}}}if(data.questCount !== undefined){let data20 = data.questCount;if(!(((typeof data20 == "number") && (!(data20 % 1) && !isNaN(data20))) && (isFinite(data20)))){const err53 = {instancePath:instancePath+"/questCount",schemaPath:"#/properties/questCount/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}if((typeof data20 == "number") && (isFinite(data20))){if(data20 > 9007199254740991 || isNaN(data20)){const err54 = {instancePath:instancePath+"/questCount",schemaPath:"#/properties/questCount/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}if(data20 < 0 || isNaN(data20)){const err55 = {instancePath:instancePath+"/questCount",schemaPath:"#/properties/questCount/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}}}if(data.sourceIdentity !== undefined){let data21 = data.sourceIdentity;if(data21 && typeof data21 == "object" && !Array.isArray(data21)){if(data21.id === undefined){const err56 = {instancePath:instancePath+"/sourceIdentity",schemaPath:"#/$defs/SourceIdentity/required",keyword:"required",params:{missingProperty: "id"},message:"must have required property '"+"id"+"'"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}if(data21.discriminator !== undefined){let data22 = data21.discriminator;if((typeof data22 !== "string") && (data22 !== null)){const err57 = {instancePath:instancePath+"/sourceIdentity/discriminator",schemaPath:"#/$defs/SourceIdentity/properties/discriminator/type",keyword:"type",params:{type: schema38.properties.discriminator.type},message:"must be string,null"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}if(data21.id !== undefined){if(typeof data21.id !== "string"){const err58 = {instancePath:instancePath+"/sourceIdentity/id",schemaPath:"#/$defs/SourceIdentity/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}}if(data21.namespace !== undefined){let data24 = data21.namespace;if((typeof data24 !== "string") && (data24 !== null)){const err59 = {instancePath:instancePath+"/sourceIdentity/namespace",schemaPath:"#/$defs/SourceIdentity/properties/namespace/type",keyword:"type",params:{type: schema38.properties.namespace.type},message:"must be string,null"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}}}else {const err60 = {instancePath:instancePath+"/sourceIdentity",schemaPath:"#/$defs/SourceIdentity/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}}}else {const err61 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err61];}else {vErrors.push(err61);}errors++;}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {"props":{"boss":true,"dropCount":true,"exp":true,"hp":true,"key":true,"level":true,"locationCount":true,"name":true,"questCount":true,"sourceIdentity":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.recordCount === undefined){const err4 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "recordCount"},message:"must have required property '"+"recordCount"+"'"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}if(data.records === undefined){const err5 = {instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: "records"},message:"must have required property '"+"records"+"'"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}if(data.contractVersion !== undefined){let data0 = data.contractVersion;if(typeof data0 === "string"){if(!pattern4.test(data0)){const err6 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/pattern",keyword:"pattern",params:{pattern: "^1\\.(0|[1-9][0-9]*)$"},message:"must match pattern \""+"^1\\.(0|[1-9][0-9]*)$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+"/contractVersion",schemaPath:"#/properties/contractVersion/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.coverage !== undefined){let data1 = data.coverage;const _errs5 = errors;let valid2 = false;let passing0 = null;const _errs6 = errors;if(typeof data1 !== "string"){const err8 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if("complete" !== data1){const err9 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/0/const",keyword:"const",params:{allowedValue: "complete"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}var _valid0 = _errs6 === errors;if(_valid0){valid2 = true;passing0 = 0;}const _errs8 = errors;if(typeof data1 !== "string"){const err10 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/1/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if("partial" !== data1){const err11 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/1/const",keyword:"const",params:{allowedValue: "partial"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid0 = _errs8 === errors;if(_valid0 && valid2){valid2 = false;passing0 = [passing0, 1];}else {if(_valid0){valid2 = true;passing0 = 1;}const _errs10 = errors;if(typeof data1 !== "string"){const err12 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/2/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}if("unknown" !== data1){const err13 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/2/const",keyword:"const",params:{allowedValue: "unknown"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}var _valid0 = _errs10 === errors;if(_valid0 && valid2){valid2 = false;passing0 = [passing0, 2];}else {if(_valid0){valid2 = true;passing0 = 2;}const _errs12 = errors;if(typeof data1 !== "string"){const err14 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/3/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}if("unsupported" !== data1){const err15 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf/3/const",keyword:"const",params:{allowedValue: "unsupported"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}var _valid0 = _errs12 === errors;if(_valid0 && valid2){valid2 = false;passing0 = [passing0, 3];}else {if(_valid0){valid2 = true;passing0 = 3;}}}}if(!valid2){const err16 = {instancePath:instancePath+"/coverage",schemaPath:"#/$defs/Coverage/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {errors = _errs5;if(vErrors !== null){if(_errs5){vErrors.length = _errs5;}else {vErrors = null;}}}}if(data.format !== undefined){let data2 = data.format;if(typeof data2 !== "string"){const err17 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}if("mapletip.monster-catalog" !== data2){const err18 = {instancePath:instancePath+"/format",schemaPath:"#/properties/format/const",keyword:"const",params:{allowedValue: "mapletip.monster-catalog"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}if(data.recordCount !== undefined){let data3 = data.recordCount;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){const err19 = {instancePath:instancePath+"/recordCount",schemaPath:"#/properties/recordCount/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 9007199254740991 || isNaN(data3)){const err20 = {instancePath:instancePath+"/recordCount",schemaPath:"#/properties/recordCount/maximum",keyword:"maximum",params:{comparison: "<=", limit: 9007199254740991},message:"must be <= 9007199254740991"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}if(data3 < 0 || isNaN(data3)){const err21 = {instancePath:instancePath+"/recordCount",schemaPath:"#/properties/recordCount/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}if(data.records !== undefined){let data4 = data.records;if(Array.isArray(data4)){const len0 = data4.length;for(let i0=0; i0<len0; i0++){if(!(validate21(data4[i0], {instancePath:instancePath+"/records/" + i0,parentData:data4,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}}}else {const err22 = {instancePath:instancePath+"/records",schemaPath:"#/properties/records/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}}if(data.scope !== undefined){let data6 = data.scope;if(data6 && typeof data6 == "object" && !Array.isArray(data6)){if(data6.family_id === undefined){const err23 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "family_id"},message:"must have required property '"+"family_id"+"'"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}if(data6.build_id === undefined){const err24 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/required",keyword:"required",params:{missingProperty: "build_id"},message:"must have required property '"+"build_id"+"'"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}if(data6.build_id !== undefined){if(typeof data6.build_id !== "string"){const err25 = {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 = [err25];}else {vErrors.push(err25);}errors++;}}if(data6.family_id !== undefined){if(typeof data6.family_id !== "string"){const err26 = {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 = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/scope",schemaPath:"#/$defs/BuildScope/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}}else {const err28 = {instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":{"contractVersion":true,"coverage":true,"format":true,"recordCount":true,"records":true,"scope":true},"dynamicProps":false,"dynamicItems":false};
@@ -0,0 +1,208 @@
1
+ /* Generated automatically from Rust-owned wire definitions. Do not edit. */
2
+
3
+ /**
4
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
5
+ * `source-null`; only `Absent` carries a complete-coverage witness.
6
+ */
7
+ export type FactState2 =
8
+ | (
9
+ | {
10
+ source?: SourceRef | null;
11
+ state: "known";
12
+ value: RawValue;
13
+ }
14
+ | {
15
+ reason: StateReason;
16
+ source?: SourceRef | null;
17
+ state: "unknown";
18
+ }
19
+ | {
20
+ coverageKey: CoverageKey;
21
+ state: "absent";
22
+ }
23
+ | {
24
+ capability: Capability;
25
+ source?: SourceRef | null;
26
+ state: "unsupported";
27
+ }
28
+ )
29
+ | undefined;
30
+ export type LogicalSourceAddress = string;
31
+ /**
32
+ * A scalar source observation that preserves the source value kind.
33
+ */
34
+ export type RawScalar =
35
+ | {
36
+ kind: "integer";
37
+ value: SafeInt64;
38
+ }
39
+ | {
40
+ kind: "real";
41
+ value: number;
42
+ }
43
+ | {
44
+ kind: "text";
45
+ value: string;
46
+ }
47
+ | {
48
+ kind: "boolean";
49
+ value: boolean;
50
+ }
51
+ | {
52
+ kind: "bytes";
53
+ value: number[];
54
+ }
55
+ | {
56
+ kind: "source-null";
57
+ };
58
+ export type SafeInt64 = number;
59
+ export type StateReason = string;
60
+ export type CoverageKey = string;
61
+ export type Capability = string;
62
+ /**
63
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
64
+ * `source-null`; only `Absent` carries a complete-coverage witness.
65
+ */
66
+ export type FactState3 =
67
+ | (
68
+ | {
69
+ source?: SourceRef | null;
70
+ state: "known";
71
+ value: EntityRef;
72
+ }
73
+ | {
74
+ reason: StateReason;
75
+ source?: SourceRef | null;
76
+ state: "unknown";
77
+ }
78
+ | {
79
+ coverageKey: CoverageKey;
80
+ state: "absent";
81
+ }
82
+ | {
83
+ capability: Capability;
84
+ source?: SourceRef | null;
85
+ state: "unsupported";
86
+ }
87
+ )
88
+ | undefined;
89
+ /**
90
+ * Shared entity-reference states. The generic parameter brands resolved keys
91
+ * for the target domain without changing their JSON representation.
92
+ */
93
+ export type EntityRef =
94
+ | {
95
+ key: EntityKey;
96
+ state: "resolved";
97
+ }
98
+ | {
99
+ sourceId: RawSourceId;
100
+ state: "unresolved";
101
+ }
102
+ | {
103
+ candidateKeys: EntityKey[];
104
+ state: "ambiguous";
105
+ }
106
+ | {
107
+ reason: StateReason;
108
+ state: "unavailable";
109
+ };
110
+ export type EntityKey = string;
111
+ export type RawSourceId = string;
112
+
113
+ export interface MonsterCoreRelationshipPackV2 {
114
+ contractVersion: "2.0";
115
+ format: "mapletip.monster-core-relationship-pack-2";
116
+ recordKind: string;
117
+ records: {
118
+ [k: string]: MonsterCoreRelationshipPageV2 | undefined;
119
+ };
120
+ scope: BuildScope;
121
+ }
122
+ export interface MonsterCoreRelationshipPageV2 {
123
+ collection: string;
124
+ occurrences: MonsterCoreOccurrenceV2[];
125
+ ownerKey?: string | null;
126
+ }
127
+ /**
128
+ * One source occurrence retained by a selected Monster-core collection.
129
+ */
130
+ export interface MonsterCoreOccurrenceV2 {
131
+ /**
132
+ * Selected source and normalized fields, keyed by inventory field name.
133
+ */
134
+ fields: {
135
+ [k: string]: FactState2 | undefined;
136
+ };
137
+ /**
138
+ * Stable key derived from build, source identity, collection and occurrence address.
139
+ */
140
+ occurrenceKey: string;
141
+ /**
142
+ * Stable public key of the occurrence's Monster, `MobSkill`, or group owner.
143
+ */
144
+ ownerKey?: string | null;
145
+ /**
146
+ * Canonical target references; raw source IDs remain in `fields`.
147
+ */
148
+ references: {
149
+ [k: string]: FactState3 | undefined;
150
+ };
151
+ /**
152
+ * Exact logical source path when it was retained by normalization.
153
+ */
154
+ sourcePath:
155
+ | {
156
+ source?: SourceRef | null;
157
+ state: "known";
158
+ value: LogicalSourceAddress;
159
+ }
160
+ | {
161
+ reason: StateReason;
162
+ source?: SourceRef | null;
163
+ state: "unknown";
164
+ }
165
+ | {
166
+ coverageKey: CoverageKey;
167
+ state: "absent";
168
+ }
169
+ | {
170
+ capability: Capability;
171
+ source?: SourceRef | null;
172
+ state: "unsupported";
173
+ };
174
+ }
175
+ /**
176
+ * Source attribution for a fact or raw observation.
177
+ */
178
+ export interface SourceRef {
179
+ /**
180
+ * Optional logical address within the source; never a local file path.
181
+ */
182
+ logicalAddress?: LogicalSourceAddress | null;
183
+ /**
184
+ * Source family or source kind, preserved as supplied by the producer.
185
+ */
186
+ sourceKind: string;
187
+ }
188
+ /**
189
+ * A raw value and its optional source attribution.
190
+ */
191
+ export interface RawValue {
192
+ scalar: RawScalar;
193
+ source?: SourceRef | null;
194
+ }
195
+ /**
196
+ * Build scope specifying the game family and concrete build identity.
197
+ */
198
+ export interface BuildScope {
199
+ /**
200
+ * Exact build identity (e.g., 'gms-v83', 'cw-cot2').
201
+ */
202
+ build_id: string;
203
+ /**
204
+ * Family identity (e.g., 'gms', 'classic-world').
205
+ */
206
+ family_id: string;
207
+ [k: string]: unknown | undefined;
208
+ }