@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,868 @@
1
+ /* Generated automatically from Rust-owned wire definitions. Do not edit. */
2
+
3
+ /**
4
+ * Shared collection state. `Known` is non-empty; absence requires complete
5
+ * source coverage and is never inferred from a missing row.
6
+ */
7
+ export type CollectionState8 =
8
+ | {
9
+ items: NonEmptyVec_QuestDialogueLine;
10
+ state: "known";
11
+ }
12
+ | {
13
+ coverageKey: CoverageKey;
14
+ state: "absent";
15
+ }
16
+ | {
17
+ items: QuestDialogueLine[];
18
+ reason: StateReason;
19
+ state: "partial";
20
+ }
21
+ | {
22
+ reason: StateReason;
23
+ state: "unknown";
24
+ }
25
+ | {
26
+ capability: Capability;
27
+ state: "unsupported";
28
+ };
29
+ /**
30
+ * @minItems 1
31
+ */
32
+ export type NonEmptyVec_QuestDialogueLine = [QuestDialogueLine, ...QuestDialogueLine[]];
33
+ /**
34
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
35
+ * `source-null`; only `Absent` carries a complete-coverage witness.
36
+ */
37
+ export type FactState3 =
38
+ | {
39
+ source?: SourceRef | null;
40
+ state: "known";
41
+ value: string;
42
+ }
43
+ | {
44
+ reason: StateReason;
45
+ source?: SourceRef | null;
46
+ state: "unknown";
47
+ }
48
+ | {
49
+ coverageKey: CoverageKey;
50
+ state: "absent";
51
+ }
52
+ | {
53
+ capability: Capability;
54
+ source?: SourceRef | null;
55
+ state: "unsupported";
56
+ };
57
+ export type LogicalSourceAddress = string;
58
+ export type StateReason = string;
59
+ export type CoverageKey = string;
60
+ export type Capability = string;
61
+ /**
62
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
63
+ * `source-null`; only `Absent` carries a complete-coverage witness.
64
+ */
65
+ export type FactState5 =
66
+ | {
67
+ source?: SourceRef | null;
68
+ state: "known";
69
+ value: SafeInt64;
70
+ }
71
+ | {
72
+ reason: StateReason;
73
+ source?: SourceRef | null;
74
+ state: "unknown";
75
+ }
76
+ | {
77
+ coverageKey: CoverageKey;
78
+ state: "absent";
79
+ }
80
+ | {
81
+ capability: Capability;
82
+ source?: SourceRef | null;
83
+ state: "unsupported";
84
+ };
85
+ export type SafeInt64 = number;
86
+ /**
87
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
88
+ * `source-null`; only `Absent` carries a complete-coverage witness.
89
+ */
90
+ export type FactState =
91
+ | {
92
+ source?: SourceRef | null;
93
+ state: "known";
94
+ value: QuestPhase;
95
+ }
96
+ | {
97
+ reason: StateReason;
98
+ source?: SourceRef | null;
99
+ state: "unknown";
100
+ }
101
+ | {
102
+ coverageKey: CoverageKey;
103
+ state: "absent";
104
+ }
105
+ | {
106
+ capability: Capability;
107
+ source?: SourceRef | null;
108
+ state: "unsupported";
109
+ };
110
+ /**
111
+ * Literal Quest state-key phase. Unknown keys remain `FactState::Unknown`.
112
+ */
113
+ export type QuestPhase = "start" | "complete";
114
+ /**
115
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
116
+ * `source-null`; only `Absent` carries a complete-coverage witness.
117
+ */
118
+ export type FactState4 =
119
+ | {
120
+ source?: SourceRef | null;
121
+ state: "known";
122
+ value: TextToken[];
123
+ }
124
+ | {
125
+ reason: StateReason;
126
+ source?: SourceRef | null;
127
+ state: "unknown";
128
+ }
129
+ | {
130
+ coverageKey: CoverageKey;
131
+ state: "absent";
132
+ }
133
+ | {
134
+ capability: Capability;
135
+ source?: SourceRef | null;
136
+ state: "unsupported";
137
+ };
138
+ /**
139
+ * Lossless text token stream used by authored Quest text.
140
+ */
141
+ export type TextToken =
142
+ | {
143
+ k: "text";
144
+ text: string;
145
+ }
146
+ | {
147
+ k: "newline";
148
+ raw: string;
149
+ }
150
+ | {
151
+ code: string;
152
+ k: "raw-code";
153
+ }
154
+ | {
155
+ code: string;
156
+ id: string;
157
+ k: "npc";
158
+ }
159
+ | {
160
+ code: string;
161
+ id: string;
162
+ k: "item";
163
+ }
164
+ | {
165
+ code: string;
166
+ id: string;
167
+ k: "monster";
168
+ }
169
+ | {
170
+ code: string;
171
+ id: string;
172
+ k: "map";
173
+ }
174
+ | {
175
+ code: string;
176
+ id: string;
177
+ k: "skill";
178
+ }
179
+ | {
180
+ code: string;
181
+ id: string;
182
+ k: "item-count";
183
+ }
184
+ | {
185
+ code: string;
186
+ id: string;
187
+ k: "item-icon";
188
+ }
189
+ | {
190
+ code: string;
191
+ id: string;
192
+ k: "skill-icon";
193
+ }
194
+ | {
195
+ k: "player-name";
196
+ variant?: string | null;
197
+ }
198
+ | {
199
+ index: string;
200
+ k: "choice-start";
201
+ }
202
+ | {
203
+ k: "choice-end";
204
+ }
205
+ | {
206
+ k: "progress";
207
+ percent: string;
208
+ }
209
+ | {
210
+ k: "image";
211
+ path: string;
212
+ };
213
+ /**
214
+ * Shared collection state. `Known` is non-empty; absence requires complete
215
+ * source coverage and is never inferred from a missing row.
216
+ */
217
+ export type CollectionState7 =
218
+ | {
219
+ items: NonEmptyVec_QuestLocalizedText;
220
+ state: "known";
221
+ }
222
+ | {
223
+ coverageKey: CoverageKey;
224
+ state: "absent";
225
+ }
226
+ | {
227
+ items: QuestLocalizedText[];
228
+ reason: StateReason;
229
+ state: "partial";
230
+ }
231
+ | {
232
+ reason: StateReason;
233
+ state: "unknown";
234
+ }
235
+ | {
236
+ capability: Capability;
237
+ state: "unsupported";
238
+ };
239
+ /**
240
+ * @minItems 1
241
+ */
242
+ export type NonEmptyVec_QuestLocalizedText = [QuestLocalizedText, ...QuestLocalizedText[]];
243
+ export type EntityKey = string;
244
+ /**
245
+ * Shared collection state. `Known` is non-empty; absence requires complete
246
+ * source coverage and is never inferred from a missing row.
247
+ */
248
+ export type CollectionState5 =
249
+ | {
250
+ items: NonEmptyVec_QuestAuxiliaryOccurrence;
251
+ state: "known";
252
+ }
253
+ | {
254
+ coverageKey: CoverageKey;
255
+ state: "absent";
256
+ }
257
+ | {
258
+ items: QuestAuxiliaryOccurrence[];
259
+ reason: StateReason;
260
+ state: "partial";
261
+ }
262
+ | {
263
+ reason: StateReason;
264
+ state: "unknown";
265
+ }
266
+ | {
267
+ capability: Capability;
268
+ state: "unsupported";
269
+ };
270
+ /**
271
+ * @minItems 1
272
+ */
273
+ export type NonEmptyVec_QuestAuxiliaryOccurrence = [QuestAuxiliaryOccurrence, ...QuestAuxiliaryOccurrence[]];
274
+ /**
275
+ * Auxiliary Quest relationship payload, tagged by its observed source collection.
276
+ *
277
+ * Large variants intentionally mirror the approved wire shape. Indirection
278
+ * would not reduce serialized size and would make construction less direct.
279
+ */
280
+ export type QuestAuxiliaryKind =
281
+ | {
282
+ kind: "category";
283
+ value: {
284
+ categoryKey: FactState3;
285
+ categoryLabel: FactState3;
286
+ };
287
+ }
288
+ | {
289
+ kind: "cot2-extra";
290
+ value: {
291
+ destination?: EntityRef3 | null;
292
+ destinationCoverage: FactState2;
293
+ destinationTypedVersion: FactState2;
294
+ expByLevel: FactState2;
295
+ performByDay: FactState2;
296
+ quest?: EntityRef | null;
297
+ questCoverage: FactState2;
298
+ questTypedVersion: FactState2;
299
+ };
300
+ }
301
+ | {
302
+ kind: "exclusive";
303
+ value: {
304
+ groupKey: string;
305
+ ordinal: SafeInt64;
306
+ target: EntityRef;
307
+ targetCoverage: FactState2;
308
+ targetTypedVersion: FactState2;
309
+ };
310
+ }
311
+ | {
312
+ kind: "party-rank";
313
+ value: {
314
+ rankValue: FactState2;
315
+ };
316
+ }
317
+ | {
318
+ kind: "recurring-definition";
319
+ value: {
320
+ groupKey: FactState2;
321
+ infoText: FactState3;
322
+ recurrenceType: FactState2;
323
+ };
324
+ }
325
+ | {
326
+ kind: "recurring-member";
327
+ value: {
328
+ /**
329
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
330
+ * `source-null`; only `Absent` carries a complete-coverage witness.
331
+ */
332
+ container:
333
+ | {
334
+ source?: SourceRef | null;
335
+ state: "known";
336
+ value: RawValue;
337
+ }
338
+ | {
339
+ reason: StateReason;
340
+ source?: SourceRef | null;
341
+ state: "unknown";
342
+ }
343
+ | {
344
+ coverageKey: CoverageKey;
345
+ state: "absent";
346
+ }
347
+ | {
348
+ capability: Capability;
349
+ source?: SourceRef | null;
350
+ state: "unsupported";
351
+ };
352
+ groupKey: string;
353
+ ordinal: SafeInt64;
354
+ target: EntityRef;
355
+ targetCoverage: FactState2;
356
+ targetTypedVersion: FactState2;
357
+ };
358
+ };
359
+ /**
360
+ * Shared entity-reference states. The generic parameter brands resolved keys
361
+ * for the target domain without changing their JSON representation.
362
+ */
363
+ export type EntityRef3 =
364
+ | {
365
+ key: EntityKey;
366
+ state: "resolved";
367
+ }
368
+ | {
369
+ sourceId: RawSourceId;
370
+ state: "unresolved";
371
+ }
372
+ | {
373
+ candidateKeys: EntityKey[];
374
+ state: "ambiguous";
375
+ }
376
+ | {
377
+ reason: StateReason;
378
+ state: "unavailable";
379
+ };
380
+ export type RawSourceId = string;
381
+ /**
382
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
383
+ * `source-null`; only `Absent` carries a complete-coverage witness.
384
+ */
385
+ export type FactState2 =
386
+ | {
387
+ source?: SourceRef | null;
388
+ state: "known";
389
+ value: RawValue;
390
+ }
391
+ | {
392
+ reason: StateReason;
393
+ source?: SourceRef | null;
394
+ state: "unknown";
395
+ }
396
+ | {
397
+ coverageKey: CoverageKey;
398
+ state: "absent";
399
+ }
400
+ | {
401
+ capability: Capability;
402
+ source?: SourceRef | null;
403
+ state: "unsupported";
404
+ };
405
+ /**
406
+ * A scalar source observation that preserves the source value kind.
407
+ */
408
+ export type RawScalar =
409
+ | {
410
+ kind: "integer";
411
+ value: SafeInt64;
412
+ }
413
+ | {
414
+ kind: "real";
415
+ value: number;
416
+ }
417
+ | {
418
+ kind: "text";
419
+ value: string;
420
+ }
421
+ | {
422
+ kind: "boolean";
423
+ value: boolean;
424
+ }
425
+ | {
426
+ kind: "bytes";
427
+ value: number[];
428
+ }
429
+ | {
430
+ kind: "source-null";
431
+ };
432
+ /**
433
+ * Shared entity-reference states. The generic parameter brands resolved keys
434
+ * for the target domain without changing their JSON representation.
435
+ */
436
+ export type EntityRef =
437
+ | {
438
+ key: EntityKey;
439
+ state: "resolved";
440
+ }
441
+ | {
442
+ sourceId: RawSourceId;
443
+ state: "unresolved";
444
+ }
445
+ | {
446
+ candidateKeys: EntityKey[];
447
+ state: "ambiguous";
448
+ }
449
+ | {
450
+ reason: StateReason;
451
+ state: "unavailable";
452
+ };
453
+ /**
454
+ * Shared collection state. `Known` is non-empty; absence requires complete
455
+ * source coverage and is never inferred from a missing row.
456
+ */
457
+ export type CollectionState4 =
458
+ | {
459
+ items: NonEmptyVec_QuestDependencyRecord;
460
+ state: "known";
461
+ }
462
+ | {
463
+ coverageKey: CoverageKey;
464
+ state: "absent";
465
+ }
466
+ | {
467
+ items: QuestDependencyRecord[];
468
+ reason: StateReason;
469
+ state: "partial";
470
+ }
471
+ | {
472
+ reason: StateReason;
473
+ state: "unknown";
474
+ }
475
+ | {
476
+ capability: Capability;
477
+ state: "unsupported";
478
+ };
479
+ /**
480
+ * @minItems 1
481
+ */
482
+ export type NonEmptyVec_QuestDependencyRecord = [QuestDependencyRecord, ...QuestDependencyRecord[]];
483
+ /**
484
+ * Direction of a Quest dependency projection relative to the record that carries it.
485
+ */
486
+ export type QuestDependencyDirection = "forward" | "reverse";
487
+ /**
488
+ * Shared collection state. `Known` is non-empty; absence requires complete
489
+ * source coverage and is never inferred from a missing row.
490
+ */
491
+ export type CollectionState =
492
+ | {
493
+ items: NonEmptyVec_QuestRequirementRecord;
494
+ state: "known";
495
+ }
496
+ | {
497
+ coverageKey: CoverageKey;
498
+ state: "absent";
499
+ }
500
+ | {
501
+ items: QuestRequirementRecord[];
502
+ reason: StateReason;
503
+ state: "partial";
504
+ }
505
+ | {
506
+ reason: StateReason;
507
+ state: "unknown";
508
+ }
509
+ | {
510
+ capability: Capability;
511
+ state: "unsupported";
512
+ };
513
+ /**
514
+ * @minItems 1
515
+ */
516
+ export type NonEmptyVec_QuestRequirementRecord = [QuestRequirementRecord, ...QuestRequirementRecord[]];
517
+ /**
518
+ * @minItems 1
519
+ */
520
+ export type NonEmptyVec_QuestMonsterCountGroupMember = [
521
+ QuestMonsterCountGroupMember,
522
+ ...QuestMonsterCountGroupMember[]
523
+ ];
524
+ /**
525
+ * Shared entity-reference states. The generic parameter brands resolved keys
526
+ * for the target domain without changing their JSON representation.
527
+ */
528
+ export type EntityRef2 =
529
+ | {
530
+ key: EntityKey;
531
+ state: "resolved";
532
+ }
533
+ | {
534
+ sourceId: RawSourceId;
535
+ state: "unresolved";
536
+ }
537
+ | {
538
+ candidateKeys: EntityKey[];
539
+ state: "ambiguous";
540
+ }
541
+ | {
542
+ reason: StateReason;
543
+ state: "unavailable";
544
+ };
545
+ /**
546
+ * Shared collection state. `Known` is non-empty; absence requires complete
547
+ * source coverage and is never inferred from a missing row.
548
+ */
549
+ export type CollectionState3 =
550
+ | {
551
+ items: NonEmptyVec_QuestRewardRecord;
552
+ state: "known";
553
+ }
554
+ | {
555
+ coverageKey: CoverageKey;
556
+ state: "absent";
557
+ }
558
+ | {
559
+ items: QuestRewardRecord[];
560
+ reason: StateReason;
561
+ state: "partial";
562
+ }
563
+ | {
564
+ reason: StateReason;
565
+ state: "unknown";
566
+ }
567
+ | {
568
+ capability: Capability;
569
+ state: "unsupported";
570
+ };
571
+ /**
572
+ * @minItems 1
573
+ */
574
+ export type NonEmptyVec_QuestRewardRecord = [QuestRewardRecord, ...QuestRewardRecord[]];
575
+ /**
576
+ * Shared collection state. `Known` is non-empty; absence requires complete
577
+ * source coverage and is never inferred from a missing row.
578
+ */
579
+ export type CollectionState6 =
580
+ | {
581
+ items: NonEmptyVec_QuestStateText;
582
+ state: "known";
583
+ }
584
+ | {
585
+ coverageKey: CoverageKey;
586
+ state: "absent";
587
+ }
588
+ | {
589
+ items: QuestStateText[];
590
+ reason: StateReason;
591
+ state: "partial";
592
+ }
593
+ | {
594
+ reason: StateReason;
595
+ state: "unknown";
596
+ }
597
+ | {
598
+ capability: Capability;
599
+ state: "unsupported";
600
+ };
601
+ /**
602
+ * @minItems 1
603
+ */
604
+ export type NonEmptyVec_QuestStateText = [QuestStateText, ...QuestStateText[]];
605
+
606
+ /**
607
+ * Bounded pack of Quest relationship records keyed by stable record key.
608
+ */
609
+ export interface QuestRelationshipPack {
610
+ contractVersion: "2.0";
611
+ format: "mapletip.quest-relationship-pack-2";
612
+ records: {
613
+ [k: string]: QuestRelationshipRecord | undefined;
614
+ };
615
+ scope: BuildScope;
616
+ }
617
+ /**
618
+ * One relationship page for one exact Quest owner.
619
+ */
620
+ export interface QuestRelationshipRecord {
621
+ dialogue: CollectionState8;
622
+ localizedTexts: CollectionState7;
623
+ ownerKey: EntityKey;
624
+ recordKey: string;
625
+ relationships: QuestRelationships;
626
+ stateTexts: CollectionState6;
627
+ }
628
+ /**
629
+ * One authored Quest dialogue line; source paths remain evidence references.
630
+ */
631
+ export interface QuestDialogueLine {
632
+ evidenceKey: string;
633
+ locale: FactState3;
634
+ occurrenceKey: string;
635
+ ordinal: FactState5;
636
+ phase: FactState;
637
+ sourceOrdinal: FactState5;
638
+ stateKey: SafeInt64;
639
+ text: FactState3;
640
+ tokens: FactState4;
641
+ }
642
+ /**
643
+ * Source attribution for a fact or raw observation.
644
+ */
645
+ export interface SourceRef {
646
+ /**
647
+ * Optional logical address within the source; never a local file path.
648
+ */
649
+ logicalAddress?: LogicalSourceAddress | null;
650
+ /**
651
+ * Source family or source kind, preserved as supplied by the producer.
652
+ */
653
+ sourceKind: string;
654
+ }
655
+ /**
656
+ * Locale-keyed authored Quest text.
657
+ */
658
+ export interface QuestLocalizedText {
659
+ fieldKey: FactState3;
660
+ locale: FactState3;
661
+ occurrenceKey: string;
662
+ text: FactState3;
663
+ tokens: FactState4;
664
+ }
665
+ /**
666
+ * Collection pages owned by one canonical Quest source relationship.
667
+ */
668
+ export interface QuestRelationships {
669
+ auxiliary: CollectionState5;
670
+ dependencies: CollectionState4;
671
+ requirements: CollectionState;
672
+ rewards: CollectionState3;
673
+ }
674
+ /**
675
+ * One auxiliary relationship occurrence.
676
+ */
677
+ export interface QuestAuxiliaryOccurrence {
678
+ evidenceKey: string;
679
+ occurrenceKey: string;
680
+ value: QuestAuxiliaryKind;
681
+ }
682
+ /**
683
+ * A raw value and its optional source attribution.
684
+ */
685
+ export interface RawValue {
686
+ scalar: RawScalar;
687
+ source?: SourceRef | null;
688
+ }
689
+ /**
690
+ * Projection of a Quest-to-Quest requirement or reward occurrence (ruling 3.2-R7).
691
+ *
692
+ * A dependency is never a new source observation: its `occurrence_key` and `evidence_key` are
693
+ * those of the requirement/reward record it projects, and no source value is copied. A forward
694
+ * record sits on the owner Quest; a reverse record sits on the resolved target Quest and exists
695
+ * only when the target resolves to a Quest of the same build. `target` names the counterpart
696
+ * Quest: the canonical edge target on a forward record, the owner on a reverse record.
697
+ * `target_coverage` and `target_typed_version` describe the target of the canonical edge and are
698
+ * identical on both directions.
699
+ */
700
+ export interface QuestDependencyRecord {
701
+ direction: QuestDependencyDirection;
702
+ evidenceKey: string;
703
+ occurrenceKey: string;
704
+ relationKind: FactState2;
705
+ target: EntityRef;
706
+ targetCoverage: FactState2;
707
+ targetTypedVersion: FactState2;
708
+ }
709
+ /**
710
+ * Canonical Quest-owned requirement occurrence.
711
+ */
712
+ export interface QuestRequirementRecord {
713
+ evidenceKey: string;
714
+ kind: FactState2;
715
+ occurrenceKey: string;
716
+ ordinal: SafeInt64;
717
+ phase: FactState;
718
+ stateKey: SafeInt64;
719
+ target?: EntityRef;
720
+ targetCoverage?: FactState2;
721
+ targetKind?: FactState2;
722
+ targetTypedVersion?: FactState2;
723
+ value: QuestRequirementValue;
724
+ }
725
+ /**
726
+ * Raw-neutral values retained on a Quest requirement occurrence.
727
+ */
728
+ export interface QuestRequirementValue {
729
+ acquireFlag?: FactState2;
730
+ amount?: FactState2;
731
+ conditionText?: FactState2;
732
+ levelCondition?: FactState2;
733
+ maxValue?: FactState2;
734
+ minValue?: FactState2;
735
+ mobKill?: QuestRequirementMobKillValue;
736
+ orderValue?: FactState2;
737
+ scriptName?: FactState2;
738
+ stateValue?: FactState2;
739
+ textValue?: FactState2;
740
+ }
741
+ /**
742
+ * Count-group source evidence on a mob-kill requirement.
743
+ */
744
+ export interface QuestRequirementMobKillValue {
745
+ /**
746
+ * Present only for a resolved count group; absent and known-empty remain distinct.
747
+ */
748
+ countGroupMembers?:
749
+ | {
750
+ items: NonEmptyVec_QuestMonsterCountGroupMember;
751
+ state: "known";
752
+ }
753
+ | {
754
+ coverageKey: CoverageKey;
755
+ state: "absent";
756
+ }
757
+ | {
758
+ items: QuestMonsterCountGroupMember[];
759
+ reason: StateReason;
760
+ state: "partial";
761
+ }
762
+ | {
763
+ reason: StateReason;
764
+ state: "unknown";
765
+ }
766
+ | {
767
+ capability: Capability;
768
+ state: "unsupported";
769
+ };
770
+ /**
771
+ * Shared fact state. SQL NULL is represented by `Unknown` with reason
772
+ * `source-null`; only `Absent` carries a complete-coverage witness.
773
+ */
774
+ countGroupSourceId:
775
+ | {
776
+ source?: SourceRef | null;
777
+ state: "known";
778
+ value: RawValue;
779
+ }
780
+ | {
781
+ reason: StateReason;
782
+ source?: SourceRef | null;
783
+ state: "unknown";
784
+ }
785
+ | {
786
+ coverageKey: CoverageKey;
787
+ state: "absent";
788
+ }
789
+ | {
790
+ capability: Capability;
791
+ source?: SourceRef | null;
792
+ state: "unsupported";
793
+ };
794
+ }
795
+ /**
796
+ * One Monster occurrence projected from a Quest count-group observation.
797
+ */
798
+ export interface QuestMonsterCountGroupMember {
799
+ memberOrdinal: SafeInt64;
800
+ occurrenceKey: string;
801
+ sourceId: FactState2;
802
+ target: EntityRef2;
803
+ }
804
+ /**
805
+ * Canonical Quest-owned reward occurrence.
806
+ */
807
+ export interface QuestRewardRecord {
808
+ evidenceKey: string;
809
+ kind: FactState2;
810
+ occurrenceKey: string;
811
+ ordinal: SafeInt64;
812
+ phase: FactState;
813
+ stateKey: SafeInt64;
814
+ target?: EntityRef;
815
+ targetCoverage?: FactState2;
816
+ targetKind?: FactState2;
817
+ targetTypedVersion?: FactState2;
818
+ value: QuestRewardValue;
819
+ }
820
+ /**
821
+ * Raw-neutral values retained on a Quest reward occurrence.
822
+ */
823
+ export interface QuestRewardValue {
824
+ acquireFlag?: FactState2;
825
+ amount?: FactState2;
826
+ dateExpire?: FactState2;
827
+ gender?: FactState2;
828
+ grantMode?: FactState2;
829
+ grantWeight?: FactState2;
830
+ itemEffect?: FactState2;
831
+ itemQuantity?: FactState2;
832
+ jobMask?: FactState2;
833
+ masterLevel?: FactState2;
834
+ nameOverride?: FactState2;
835
+ onlyMasterLevel?: FactState2;
836
+ orderValue?: FactState2;
837
+ period?: FactState2;
838
+ potentialGrade?: FactState2;
839
+ prob?: FactState2;
840
+ skillLevel?: FactState2;
841
+ stateValue?: FactState2;
842
+ textValue?: FactState2;
843
+ varValue?: FactState2;
844
+ }
845
+ /**
846
+ * Authored Quest state text at one literal source key.
847
+ */
848
+ export interface QuestStateText {
849
+ locale: FactState3;
850
+ occurrenceKey: string;
851
+ stateKey: SafeInt64;
852
+ text: FactState3;
853
+ tokens: FactState4;
854
+ }
855
+ /**
856
+ * Build scope specifying the game family and concrete build identity.
857
+ */
858
+ export interface BuildScope {
859
+ /**
860
+ * Exact build identity (e.g., 'gms-v83', 'cw-cot2').
861
+ */
862
+ build_id: string;
863
+ /**
864
+ * Family identity (e.g., 'gms', 'classic-world').
865
+ */
866
+ family_id: string;
867
+ [k: string]: unknown | undefined;
868
+ }