@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,799 @@
1
+ /* Generated automatically from Rust-owned wire definitions. Do not edit. */
2
+
3
+ /**
4
+ * Confidence in a historical assertion as evidence about a target build.
5
+ */
6
+ export type HistoricalDropConfidence = "maybe";
7
+ /**
8
+ * Kind of evidence attribution attached to a Monster drop pair.
9
+ */
10
+ export type DropEvidenceKind = "native" | "supplemental-historical";
11
+ /**
12
+ * Resolved or unresolved entity reference to the dropped item.
13
+ */
14
+ export type EntityRef = {
15
+ [k: string]: unknown | undefined;
16
+ } & {
17
+ associationState: AssociationState;
18
+ candidateCount?: number | null;
19
+ candidateCoverage: Coverage;
20
+ catalogueMembership: CatalogueMembership;
21
+ evidenceKey?: string | null;
22
+ key?: string | null;
23
+ kind: string;
24
+ namespace?: string | null;
25
+ productCapability: ProductCapability;
26
+ sourceIdentity: SourceIdentity;
27
+ state: RefState;
28
+ typedVersion: TypedVersionState;
29
+ [k: string]: unknown | undefined;
30
+ };
31
+ /**
32
+ * Canonical association state supplied by the B1 normalizer.
33
+ */
34
+ export type AssociationState = "resolved" | "unresolved" | "ambiguous" | "unknown" | "unsupported";
35
+ /**
36
+ * Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).
37
+ */
38
+ export type Coverage = "complete" | "partial" | "unknown" | "unsupported";
39
+ /**
40
+ * Independent catalogue membership state.
41
+ */
42
+ export type CatalogueMembership = "present" | "verified-absent" | "unknown";
43
+ /**
44
+ * Independent public product capability state.
45
+ */
46
+ export type ProductCapability = "implemented" | "not-implemented" | "source-unsupported";
47
+ /**
48
+ * Projection state for a public reference.
49
+ */
50
+ export type RefState = "resolved" | "unresolved" | "ambiguous" | "unknown" | "absent" | "unsupported";
51
+ /**
52
+ * Independent typed-version availability state.
53
+ */
54
+ export type TypedVersionState = "available" | "unavailable" | "unknown";
55
+ export type SafeInt64 = number;
56
+ /**
57
+ * Resolved or unresolved reference to the quest entity.
58
+ */
59
+ export type EntityRef1 = {
60
+ [k: string]: unknown | undefined;
61
+ } & {
62
+ associationState: AssociationState;
63
+ candidateCount?: number | null;
64
+ candidateCoverage: Coverage;
65
+ catalogueMembership: CatalogueMembership;
66
+ evidenceKey?: string | null;
67
+ key?: string | null;
68
+ kind: string;
69
+ namespace?: string | null;
70
+ productCapability: ProductCapability;
71
+ sourceIdentity: SourceIdentity;
72
+ state: RefState;
73
+ typedVersion: TypedVersionState;
74
+ [k: string]: unknown | undefined;
75
+ };
76
+
77
+ /**
78
+ * Monster detail for the declared partial diagnostic scope.
79
+ */
80
+ export interface MonsterDetailRecord {
81
+ /**
82
+ * Wire contract version ('major.minor').
83
+ */
84
+ contractVersion: string;
85
+ /**
86
+ * Lazy pages used when the inline evidence collection would exceed the
87
+ * selected pack target. The inline vector is empty in that mode.
88
+ */
89
+ dropPages?: PagedCollection | null;
90
+ /**
91
+ * Dropped items and evidence links.
92
+ */
93
+ drops: MonsterDropEntry[];
94
+ /**
95
+ * Elemental affinity descriptors ('F:weak', 'I:immune', etc.).
96
+ */
97
+ elements: string[];
98
+ /**
99
+ * Format identifier ('mapletip.monster-detail').
100
+ */
101
+ format: "mapletip.monster-detail";
102
+ /**
103
+ * Deterministic public entity key ('monster-<64 lowercase hex>').
104
+ */
105
+ key: string;
106
+ locations: PagedCollection1;
107
+ /**
108
+ * Monster localized display name.
109
+ */
110
+ name:
111
+ | {
112
+ state: "known";
113
+ /**
114
+ * Observed value.
115
+ */
116
+ value: string;
117
+ [k: string]: unknown | undefined;
118
+ }
119
+ | {
120
+ /**
121
+ * Reason for absence if known.
122
+ */
123
+ reason?: string | null;
124
+ state: "unknown";
125
+ [k: string]: unknown | undefined;
126
+ }
127
+ | {
128
+ /**
129
+ * Name of the unsupported capability.
130
+ */
131
+ capability: string;
132
+ state: "unsupported";
133
+ [k: string]: unknown | undefined;
134
+ };
135
+ /**
136
+ * Lazy pages used when the inline Quest collection would exceed the
137
+ * selected pack target. The inline vector is empty in that mode.
138
+ */
139
+ questPages?: PagedCollection | null;
140
+ /**
141
+ * Associated quest kill objectives.
142
+ */
143
+ quests: MonsterQuestEntry[];
144
+ scope: BuildScope;
145
+ sourceIdentity: SourceIdentity1;
146
+ stats: MonsterStats;
147
+ [k: string]: unknown | undefined;
148
+ }
149
+ /**
150
+ * Paged collection descriptor whose physical packs are bounded by the
151
+ * selected `PackSizePolicy`.
152
+ */
153
+ export interface PagedCollection {
154
+ /**
155
+ * Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).
156
+ */
157
+ coverage: "complete" | "partial" | "unknown" | "unsupported";
158
+ /**
159
+ * Distinct target count if different from observed count.
160
+ */
161
+ mapCount?: number | null;
162
+ /**
163
+ * Total observed count across all occurrences.
164
+ */
165
+ observedCount: number;
166
+ /**
167
+ * Sorted array of page descriptors.
168
+ */
169
+ pages: PageDescriptor[];
170
+ [k: string]: unknown | undefined;
171
+ }
172
+ /**
173
+ * Page descriptor for paged relationship or evidence records.
174
+ */
175
+ export interface PageDescriptor {
176
+ /**
177
+ * Number of items in this page.
178
+ */
179
+ count: number;
180
+ /**
181
+ * Bounded record key for direct fetch.
182
+ */
183
+ recordKey: string;
184
+ /**
185
+ * Record kind ('relationships' or 'evidence').
186
+ */
187
+ recordKind: string;
188
+ [k: string]: unknown | undefined;
189
+ }
190
+ /**
191
+ * Reciprocal item drop association for a monster.
192
+ */
193
+ export interface MonsterDropEntry {
194
+ /**
195
+ * Equipment slot or item category label.
196
+ */
197
+ category?: string | null;
198
+ /**
199
+ * Drop gating conditions (e.g. quest ID or party condition).
200
+ */
201
+ conditions?: string | null;
202
+ /**
203
+ * Optional typed attribution for supplemental historical assertions.
204
+ * Native evidence fields above remain the source observation as admitted.
205
+ */
206
+ evidenceAttribution?: HistoricalEvidenceAttribution | null;
207
+ /**
208
+ * Stable source-derived occurrence key; never a SQLite surrogate ID.
209
+ */
210
+ evidenceId: string;
211
+ /**
212
+ * Evidence source identifier (e.g. 'wz-monsterbook', 'cw-historical-reviewed').
213
+ */
214
+ evidenceSource: string;
215
+ /**
216
+ * Item classification namespace (e.g. 'Equip', 'Consume', 'Etc').
217
+ */
218
+ itemClass?: string | null;
219
+ /**
220
+ * Preserved item display name if known.
221
+ */
222
+ itemName?: string | null;
223
+ itemRef: EntityRef;
224
+ /**
225
+ * Literal ordinal within the source evidence list.
226
+ */
227
+ ordinal: number;
228
+ /**
229
+ * Maximum quantity dropped.
230
+ */
231
+ quantityMax?: SafeInt64 | null;
232
+ /**
233
+ * Minimum quantity dropped.
234
+ */
235
+ quantityMin?: SafeInt64 | null;
236
+ /**
237
+ * Exact nullable `monster_drop_evidence.rate` value if stated by source;
238
+ * the normalizer does not establish a probability scale here.
239
+ */
240
+ rate?: number | null;
241
+ /**
242
+ * Exact nullable `monster_drop_evidence.rate_denominator` value.
243
+ */
244
+ rateDenominator?: SafeInt64 | null;
245
+ /**
246
+ * Exact source path for this evidence occurrence.
247
+ */
248
+ sourcePath: string;
249
+ [k: string]: unknown | undefined;
250
+ }
251
+ /**
252
+ * Group of source assertions supporting one exact public Monster/item pair.
253
+ */
254
+ export interface HistoricalEvidenceAttribution {
255
+ assertions: DropEvidenceAttribution[];
256
+ [k: string]: unknown | undefined;
257
+ }
258
+ /**
259
+ * One source `MonsterBook` assertion retained on a deduplicated CW pair.
260
+ */
261
+ export interface DropEvidenceAttribution {
262
+ attribution: string;
263
+ confidence: HistoricalDropConfidence;
264
+ crosswalkInputSha256: string;
265
+ evidenceKey: string;
266
+ evidenceKind: DropEvidenceKind;
267
+ propertyPath: string;
268
+ reviewReference: string;
269
+ sourceBuild: string;
270
+ sourceIdentity: SourceIdentity;
271
+ sourceInputSha256: string;
272
+ sourceRecordKey: string;
273
+ transform: string;
274
+ [k: string]: unknown | undefined;
275
+ }
276
+ /**
277
+ * Upstream source identity coordinates.
278
+ */
279
+ export interface SourceIdentity {
280
+ /**
281
+ * Explicit source discriminator when one ID has multiple records (empty or omitted when unused).
282
+ */
283
+ discriminator?: string | null;
284
+ /**
285
+ * Exact upstream source identifier (e.g., '0100100').
286
+ */
287
+ id: string;
288
+ /**
289
+ * Source namespace (e.g., 'wz.mob', 'wz.item', 'wz.map'). None when missing or ambiguous.
290
+ */
291
+ namespace?: string | null;
292
+ [k: string]: unknown | undefined;
293
+ }
294
+ /**
295
+ * Paged collection descriptor whose physical packs are bounded by the
296
+ * selected `PackSizePolicy`.
297
+ */
298
+ export interface PagedCollection1 {
299
+ /**
300
+ * Universal completeness and coverage indicator (contracts.md § Shared semantic shapes).
301
+ */
302
+ coverage: "complete" | "partial" | "unknown" | "unsupported";
303
+ /**
304
+ * Distinct target count if different from observed count.
305
+ */
306
+ mapCount?: number | null;
307
+ /**
308
+ * Total observed count across all occurrences.
309
+ */
310
+ observedCount: number;
311
+ /**
312
+ * Sorted array of page descriptors.
313
+ */
314
+ pages: PageDescriptor[];
315
+ [k: string]: unknown | undefined;
316
+ }
317
+ /**
318
+ * Quest requirement association for a monster (kill objective).
319
+ */
320
+ export interface MonsterQuestEntry {
321
+ /**
322
+ * Quest count group ID if this kill objective belongs to a shared defeat pool.
323
+ */
324
+ countGroupId?: string | null;
325
+ /**
326
+ * Required kill quota to complete the objective.
327
+ */
328
+ killCount?: SafeInt64 | null;
329
+ /**
330
+ * Literal count-group member ordinal when this requirement fans out.
331
+ */
332
+ memberOrdinal?: number | null;
333
+ /**
334
+ * Stable source-derived requirement/member occurrence key.
335
+ */
336
+ occurrenceKey: string;
337
+ /**
338
+ * Canonical Quest phase. `null` preserves the normalizer's unknown phase
339
+ * for a state whose interpreted `phase` column is NULL.
340
+ */
341
+ phase: string | null;
342
+ /**
343
+ * Localized quest name.
344
+ */
345
+ questName?: string | null;
346
+ questRef: EntityRef1;
347
+ /**
348
+ * Upstream quest source ID.
349
+ */
350
+ questSourceId: string;
351
+ /**
352
+ * Normalizer-owned requirement kind (for example `mob-kill`).
353
+ */
354
+ requirementKind: string;
355
+ /**
356
+ * Literal requirement ordinal within the Quest state/kind section.
357
+ */
358
+ requirementOrdinal: number;
359
+ /**
360
+ * Exact source path for the requirement occurrence.
361
+ */
362
+ sourcePath: string;
363
+ /**
364
+ * Exact Quest state discriminator from the normalized requirement.
365
+ */
366
+ stateKey: number;
367
+ [k: string]: unknown | undefined;
368
+ }
369
+ /**
370
+ * Build scope.
371
+ */
372
+ export interface BuildScope {
373
+ /**
374
+ * Exact build identity (e.g., 'gms-v83', 'cw-cot2').
375
+ */
376
+ build_id: string;
377
+ /**
378
+ * Family identity (e.g., 'gms', 'classic-world').
379
+ */
380
+ family_id: string;
381
+ [k: string]: unknown | undefined;
382
+ }
383
+ /**
384
+ * Upstream source identity coordinates.
385
+ */
386
+ export interface SourceIdentity1 {
387
+ /**
388
+ * Explicit source discriminator when one ID has multiple records (empty or omitted when unused).
389
+ */
390
+ discriminator?: string | null;
391
+ /**
392
+ * Exact upstream source identifier (e.g., '0100100').
393
+ */
394
+ id: string;
395
+ /**
396
+ * Source namespace (e.g., 'wz.mob', 'wz.item', 'wz.map'). None when missing or ambiguous.
397
+ */
398
+ namespace?: string | null;
399
+ [k: string]: unknown | undefined;
400
+ }
401
+ /**
402
+ * Combat and gameplay statistics.
403
+ */
404
+ export interface MonsterStats {
405
+ /**
406
+ * Accuracy rating.
407
+ */
408
+ acc:
409
+ | {
410
+ state: "known";
411
+ /**
412
+ * Observed value.
413
+ */
414
+ value: number;
415
+ [k: string]: unknown | undefined;
416
+ }
417
+ | {
418
+ /**
419
+ * Reason for absence if known.
420
+ */
421
+ reason?: string | null;
422
+ state: "unknown";
423
+ [k: string]: unknown | undefined;
424
+ }
425
+ | {
426
+ /**
427
+ * Name of the unsupported capability.
428
+ */
429
+ capability: string;
430
+ state: "unsupported";
431
+ [k: string]: unknown | undefined;
432
+ };
433
+ /**
434
+ * Whether monster is classified as a boss.
435
+ */
436
+ boss:
437
+ | {
438
+ state: "known";
439
+ /**
440
+ * Observed value.
441
+ */
442
+ value: boolean;
443
+ [k: string]: unknown | undefined;
444
+ }
445
+ | {
446
+ /**
447
+ * Reason for absence if known.
448
+ */
449
+ reason?: string | null;
450
+ state: "unknown";
451
+ [k: string]: unknown | undefined;
452
+ }
453
+ | {
454
+ /**
455
+ * Name of the unsupported capability.
456
+ */
457
+ capability: string;
458
+ state: "unsupported";
459
+ [k: string]: unknown | undefined;
460
+ };
461
+ /**
462
+ * Evasion rating.
463
+ */
464
+ eva:
465
+ | {
466
+ state: "known";
467
+ /**
468
+ * Observed value.
469
+ */
470
+ value: number;
471
+ [k: string]: unknown | undefined;
472
+ }
473
+ | {
474
+ /**
475
+ * Reason for absence if known.
476
+ */
477
+ reason?: string | null;
478
+ state: "unknown";
479
+ [k: string]: unknown | undefined;
480
+ }
481
+ | {
482
+ /**
483
+ * Name of the unsupported capability.
484
+ */
485
+ capability: string;
486
+ state: "unsupported";
487
+ [k: string]: unknown | undefined;
488
+ };
489
+ /**
490
+ * Exact `monster_version.exp` source value.
491
+ */
492
+ exp:
493
+ | {
494
+ state: "known";
495
+ /**
496
+ * Observed value.
497
+ */
498
+ value: number;
499
+ [k: string]: unknown | undefined;
500
+ }
501
+ | {
502
+ /**
503
+ * Reason for absence if known.
504
+ */
505
+ reason?: string | null;
506
+ state: "unknown";
507
+ [k: string]: unknown | undefined;
508
+ }
509
+ | {
510
+ /**
511
+ * Name of the unsupported capability.
512
+ */
513
+ capability: string;
514
+ state: "unsupported";
515
+ [k: string]: unknown | undefined;
516
+ };
517
+ /**
518
+ * Exact `monster_version.max_hp` source value.
519
+ */
520
+ hp:
521
+ | {
522
+ state: "known";
523
+ /**
524
+ * Observed value.
525
+ */
526
+ value: number;
527
+ [k: string]: unknown | undefined;
528
+ }
529
+ | {
530
+ /**
531
+ * Reason for absence if known.
532
+ */
533
+ reason?: string | null;
534
+ state: "unknown";
535
+ [k: string]: unknown | undefined;
536
+ }
537
+ | {
538
+ /**
539
+ * Name of the unsupported capability.
540
+ */
541
+ capability: string;
542
+ state: "unsupported";
543
+ [k: string]: unknown | undefined;
544
+ };
545
+ /**
546
+ * Exact `monster_version.level` source value.
547
+ */
548
+ level:
549
+ | {
550
+ state: "known";
551
+ /**
552
+ * Observed value.
553
+ */
554
+ value: number;
555
+ [k: string]: unknown | undefined;
556
+ }
557
+ | {
558
+ /**
559
+ * Reason for absence if known.
560
+ */
561
+ reason?: string | null;
562
+ state: "unknown";
563
+ [k: string]: unknown | undefined;
564
+ }
565
+ | {
566
+ /**
567
+ * Name of the unsupported capability.
568
+ */
569
+ capability: string;
570
+ state: "unsupported";
571
+ [k: string]: unknown | undefined;
572
+ };
573
+ /**
574
+ * Exact `monster_version.ma_damage` source value.
575
+ */
576
+ maDamage:
577
+ | {
578
+ state: "known";
579
+ /**
580
+ * Observed value.
581
+ */
582
+ value: number;
583
+ [k: string]: unknown | undefined;
584
+ }
585
+ | {
586
+ /**
587
+ * Reason for absence if known.
588
+ */
589
+ reason?: string | null;
590
+ state: "unknown";
591
+ [k: string]: unknown | undefined;
592
+ }
593
+ | {
594
+ /**
595
+ * Name of the unsupported capability.
596
+ */
597
+ capability: string;
598
+ state: "unsupported";
599
+ [k: string]: unknown | undefined;
600
+ };
601
+ /**
602
+ * Exact `monster_version.md_damage` source value.
603
+ */
604
+ mdDamage:
605
+ | {
606
+ state: "known";
607
+ /**
608
+ * Observed value.
609
+ */
610
+ value: number;
611
+ [k: string]: unknown | undefined;
612
+ }
613
+ | {
614
+ /**
615
+ * Reason for absence if known.
616
+ */
617
+ reason?: string | null;
618
+ state: "unknown";
619
+ [k: string]: unknown | undefined;
620
+ }
621
+ | {
622
+ /**
623
+ * Name of the unsupported capability.
624
+ */
625
+ capability: string;
626
+ state: "unsupported";
627
+ [k: string]: unknown | undefined;
628
+ };
629
+ /**
630
+ * Exact `monster_version.max_mp` source value.
631
+ */
632
+ mp:
633
+ | {
634
+ state: "known";
635
+ /**
636
+ * Observed value.
637
+ */
638
+ value: number;
639
+ [k: string]: unknown | undefined;
640
+ }
641
+ | {
642
+ /**
643
+ * Reason for absence if known.
644
+ */
645
+ reason?: string | null;
646
+ state: "unknown";
647
+ [k: string]: unknown | undefined;
648
+ }
649
+ | {
650
+ /**
651
+ * Name of the unsupported capability.
652
+ */
653
+ capability: string;
654
+ state: "unsupported";
655
+ [k: string]: unknown | undefined;
656
+ };
657
+ /**
658
+ * Exact `monster_version.pa_damage` source value; gameplay meaning is
659
+ * owned by the normalizer, not inferred here.
660
+ */
661
+ paDamage:
662
+ | {
663
+ state: "known";
664
+ /**
665
+ * Observed value.
666
+ */
667
+ value: number;
668
+ [k: string]: unknown | undefined;
669
+ }
670
+ | {
671
+ /**
672
+ * Reason for absence if known.
673
+ */
674
+ reason?: string | null;
675
+ state: "unknown";
676
+ [k: string]: unknown | undefined;
677
+ }
678
+ | {
679
+ /**
680
+ * Name of the unsupported capability.
681
+ */
682
+ capability: string;
683
+ state: "unsupported";
684
+ [k: string]: unknown | undefined;
685
+ };
686
+ /**
687
+ * Exact `monster_version.pd_damage` source value.
688
+ */
689
+ pdDamage:
690
+ | {
691
+ state: "known";
692
+ /**
693
+ * Observed value.
694
+ */
695
+ value: number;
696
+ [k: string]: unknown | undefined;
697
+ }
698
+ | {
699
+ /**
700
+ * Reason for absence if known.
701
+ */
702
+ reason?: string | null;
703
+ state: "unknown";
704
+ [k: string]: unknown | undefined;
705
+ }
706
+ | {
707
+ /**
708
+ * Name of the unsupported capability.
709
+ */
710
+ capability: string;
711
+ state: "unsupported";
712
+ [k: string]: unknown | undefined;
713
+ };
714
+ /**
715
+ * Exact `monster_version.pushed` source value.
716
+ */
717
+ pushed:
718
+ | {
719
+ state: "known";
720
+ /**
721
+ * Observed value.
722
+ */
723
+ value: number;
724
+ [k: string]: unknown | undefined;
725
+ }
726
+ | {
727
+ /**
728
+ * Reason for absence if known.
729
+ */
730
+ reason?: string | null;
731
+ state: "unknown";
732
+ [k: string]: unknown | undefined;
733
+ }
734
+ | {
735
+ /**
736
+ * Name of the unsupported capability.
737
+ */
738
+ capability: string;
739
+ state: "unsupported";
740
+ [k: string]: unknown | undefined;
741
+ };
742
+ /**
743
+ * Exact `monster_version.speed` source value.
744
+ */
745
+ speed:
746
+ | {
747
+ state: "known";
748
+ /**
749
+ * Observed value.
750
+ */
751
+ value: number;
752
+ [k: string]: unknown | undefined;
753
+ }
754
+ | {
755
+ /**
756
+ * Reason for absence if known.
757
+ */
758
+ reason?: string | null;
759
+ state: "unknown";
760
+ [k: string]: unknown | undefined;
761
+ }
762
+ | {
763
+ /**
764
+ * Name of the unsupported capability.
765
+ */
766
+ capability: string;
767
+ state: "unsupported";
768
+ [k: string]: unknown | undefined;
769
+ };
770
+ /**
771
+ * Canonical 0/1 undead flag; unsupported raw codes remain unknown.
772
+ */
773
+ undead:
774
+ | {
775
+ state: "known";
776
+ /**
777
+ * Observed value.
778
+ */
779
+ value: boolean;
780
+ [k: string]: unknown | undefined;
781
+ }
782
+ | {
783
+ /**
784
+ * Reason for absence if known.
785
+ */
786
+ reason?: string | null;
787
+ state: "unknown";
788
+ [k: string]: unknown | undefined;
789
+ }
790
+ | {
791
+ /**
792
+ * Name of the unsupported capability.
793
+ */
794
+ capability: string;
795
+ state: "unsupported";
796
+ [k: string]: unknown | undefined;
797
+ };
798
+ [k: string]: unknown | undefined;
799
+ }