@bct-app/game-model 0.1.0 → 0.1.1

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 (43) hide show
  1. package/README.md +14 -10
  2. package/dist/index.d.ts +1172 -30
  3. package/dist/json-schema/ability-execution-timing.schema.json +8 -0
  4. package/dist/json-schema/ability.schema.json +2268 -0
  5. package/dist/json-schema/alignment-enum.schema.json +8 -0
  6. package/dist/json-schema/base-source.schema.json +64 -0
  7. package/dist/{schemas → json-schema}/character-basic-kind.schema.json +1 -1
  8. package/dist/{schemas → json-schema}/character-kind.schema.json +1 -1
  9. package/dist/json-schema/character.schema.json +123 -0
  10. package/dist/json-schema/chat-message-content.schema.json +65 -0
  11. package/dist/json-schema/chat-message-group.schema.json +37 -0
  12. package/dist/json-schema/chat-message-operation.schema.json +30 -0
  13. package/dist/json-schema/chat-message.schema.json +133 -0
  14. package/dist/json-schema/conversation.schema.json +252 -0
  15. package/dist/{schemas → json-schema}/effect.schema.json +375 -133
  16. package/dist/{schemas → json-schema}/game.schema.json +3 -16
  17. package/dist/json-schema/index.json +36 -0
  18. package/dist/{schemas → json-schema}/input.schema.json +108 -89
  19. package/dist/{schemas → json-schema}/message.schema.json +259 -35
  20. package/dist/json-schema/nomination.schema.json +29 -0
  21. package/dist/json-schema/operation.schema.json +28 -0
  22. package/dist/json-schema/player-display-format.schema.json +13 -0
  23. package/dist/json-schema/player-reminder.schema.json +19 -0
  24. package/dist/json-schema/player.schema.json +104 -0
  25. package/dist/json-schema/populated-character.schema.json +2344 -0
  26. package/dist/json-schema/populated-script.schema.json +2397 -0
  27. package/dist/json-schema/reminder.schema.json +24 -0
  28. package/dist/json-schema/room-create.schema.json +23 -0
  29. package/dist/json-schema/room-defaults.schema.json +72 -0
  30. package/dist/json-schema/room.schema.json +24 -0
  31. package/dist/json-schema/runtime-game.schema.json +162 -0
  32. package/dist/json-schema/script.schema.json +57 -0
  33. package/dist/json-schema/seat-side-enum.schema.json +9 -0
  34. package/dist/json-schema/special-message-kind.schema.json +7 -0
  35. package/dist/json-schema/target.schema.json +305 -0
  36. package/dist/json-schema/timeline.schema.json +87 -0
  37. package/dist/{schemas → json-schema}/view.schema.json +68 -42
  38. package/dist/zod.d.mts +4038 -0
  39. package/dist/zod.d.ts +4038 -0
  40. package/dist/zod.js +1129 -0
  41. package/dist/zod.mjs +1058 -0
  42. package/package.json +30 -15
  43. package/dist/schemas/index.json +0 -9
@@ -0,0 +1,2397 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string"
7
+ },
8
+ "name": {
9
+ "type": "string"
10
+ },
11
+ "cover": {
12
+ "type": "string"
13
+ },
14
+ "characters": {
15
+ "default": [],
16
+ "type": "array",
17
+ "items": {
18
+ "type": "object",
19
+ "properties": {
20
+ "id": {
21
+ "type": "string"
22
+ },
23
+ "name": {
24
+ "type": "string"
25
+ },
26
+ "key": {
27
+ "type": "string"
28
+ },
29
+ "icon": {
30
+ "type": "string"
31
+ },
32
+ "kind": {
33
+ "default": "Townsfolk",
34
+ "$ref": "#/$defs/CharacterBasicKind"
35
+ },
36
+ "skill": {
37
+ "anyOf": [
38
+ {
39
+ "type": "string"
40
+ },
41
+ {
42
+ "type": "null"
43
+ }
44
+ ]
45
+ },
46
+ "saying": {
47
+ "anyOf": [
48
+ {
49
+ "type": "string"
50
+ },
51
+ {
52
+ "type": "null"
53
+ }
54
+ ]
55
+ },
56
+ "tags": {
57
+ "anyOf": [
58
+ {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ {
65
+ "type": "null"
66
+ }
67
+ ]
68
+ },
69
+ "abilities": {
70
+ "default": [],
71
+ "type": "array",
72
+ "items": {
73
+ "$ref": "#/$defs/Ability"
74
+ }
75
+ },
76
+ "createdAt": {
77
+ "default": "2026-04-11T23:19:10.201Z",
78
+ "type": "string",
79
+ "format": "date-time",
80
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
81
+ }
82
+ },
83
+ "required": [
84
+ "id",
85
+ "name",
86
+ "key",
87
+ "kind",
88
+ "abilities",
89
+ "createdAt"
90
+ ],
91
+ "additionalProperties": false
92
+ }
93
+ },
94
+ "orderInFirstNight": {
95
+ "default": [],
96
+ "type": "array",
97
+ "items": {
98
+ "type": "string"
99
+ }
100
+ },
101
+ "orderInOtherNight": {
102
+ "default": [],
103
+ "type": "array",
104
+ "items": {
105
+ "type": "string"
106
+ }
107
+ },
108
+ "isEnabled": {
109
+ "default": false,
110
+ "type": "boolean"
111
+ },
112
+ "createdAt": {
113
+ "default": "2026-04-11T23:19:10.201Z",
114
+ "type": "string",
115
+ "format": "date-time",
116
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
117
+ }
118
+ },
119
+ "required": [
120
+ "id",
121
+ "name",
122
+ "cover",
123
+ "characters",
124
+ "orderInFirstNight",
125
+ "orderInOtherNight",
126
+ "isEnabled",
127
+ "createdAt"
128
+ ],
129
+ "additionalProperties": false,
130
+ "$defs": {
131
+ "CharacterBasicKind": {
132
+ "type": "string",
133
+ "enum": [
134
+ "Townsfolk",
135
+ "Outsiders",
136
+ "Minions",
137
+ "Demons"
138
+ ],
139
+ "id": "CharacterBasicKind",
140
+ "title": "角色基本类别",
141
+ "description": "角色基本类别定义了游戏中角色的基本分类,通常用于技能选项中需要指定角色类别的情况"
142
+ },
143
+ "Ability": {
144
+ "type": "object",
145
+ "properties": {
146
+ "id": {
147
+ "$ref": "#/$defs/__schema0"
148
+ },
149
+ "name": {
150
+ "$ref": "#/$defs/__schema1"
151
+ },
152
+ "description": {
153
+ "$ref": "#/$defs/__schema2"
154
+ },
155
+ "bio": {
156
+ "$ref": "#/$defs/__schema3"
157
+ },
158
+ "stage": {
159
+ "$ref": "#/$defs/__schema4"
160
+ },
161
+ "category": {
162
+ "$ref": "#/$defs/__schema5"
163
+ },
164
+ "executionTiming": {
165
+ "$ref": "#/$defs/__schema6"
166
+ },
167
+ "tags": {
168
+ "$ref": "#/$defs/__schema7"
169
+ },
170
+ "inputs": {
171
+ "$ref": "#/$defs/__schema8"
172
+ },
173
+ "views": {
174
+ "$ref": "#/$defs/__schema40"
175
+ },
176
+ "effects": {
177
+ "$ref": "#/$defs/__schema59"
178
+ },
179
+ "messages": {
180
+ "$ref": "#/$defs/__schema89"
181
+ },
182
+ "scope": {
183
+ "$ref": "#/$defs/__schema98"
184
+ },
185
+ "createdAt": {
186
+ "$ref": "#/$defs/__schema99"
187
+ }
188
+ },
189
+ "required": [
190
+ "id",
191
+ "name",
192
+ "description",
193
+ "stage",
194
+ "category",
195
+ "executionTiming",
196
+ "inputs",
197
+ "views",
198
+ "effects",
199
+ "messages",
200
+ "scope",
201
+ "createdAt"
202
+ ],
203
+ "additionalProperties": false,
204
+ "id": "Ability",
205
+ "title": "能力",
206
+ "description": "游戏中的能力,包含其效果、输入、展示等信息"
207
+ },
208
+ "__schema0": {
209
+ "type": "string"
210
+ },
211
+ "__schema1": {
212
+ "type": "string"
213
+ },
214
+ "__schema2": {
215
+ "type": "string"
216
+ },
217
+ "__schema3": {
218
+ "type": "string"
219
+ },
220
+ "__schema4": {
221
+ "default": "PLAYING",
222
+ "type": "string",
223
+ "enum": [
224
+ "PREPARE",
225
+ "CHARACTER_SELECTION",
226
+ "PLAYING"
227
+ ]
228
+ },
229
+ "__schema5": {
230
+ "default": "CHARACTER",
231
+ "type": "string",
232
+ "enum": [
233
+ "CHARACTER",
234
+ "STORYTELLER"
235
+ ]
236
+ },
237
+ "__schema6": {
238
+ "default": "NORMAL",
239
+ "type": "string",
240
+ "enum": [
241
+ "NORMAL",
242
+ "DEFER_TO_END"
243
+ ]
244
+ },
245
+ "__schema7": {
246
+ "anyOf": [
247
+ {
248
+ "type": "array",
249
+ "items": {
250
+ "type": "string"
251
+ }
252
+ },
253
+ {
254
+ "type": "null"
255
+ }
256
+ ]
257
+ },
258
+ "__schema8": {
259
+ "default": [],
260
+ "type": "array",
261
+ "items": {
262
+ "oneOf": [
263
+ {
264
+ "$ref": "#/$defs/PlayerInput"
265
+ },
266
+ {
267
+ "$ref": "#/$defs/CharacterInput"
268
+ },
269
+ {
270
+ "$ref": "#/$defs/AlignmentInput"
271
+ },
272
+ {
273
+ "$ref": "#/$defs/CharacterKindInput"
274
+ },
275
+ {
276
+ "$ref": "#/$defs/BooleanInput"
277
+ },
278
+ {
279
+ "$ref": "#/$defs/NumberInput"
280
+ },
281
+ {
282
+ "$ref": "#/$defs/TextInput"
283
+ },
284
+ {
285
+ "$ref": "#/$defs/StatusInput"
286
+ },
287
+ {
288
+ "$ref": "#/$defs/ReminderInput"
289
+ },
290
+ {
291
+ "$ref": "#/$defs/PlayerReminderInput"
292
+ },
293
+ {
294
+ "$ref": "#/$defs/SeatSideInput"
295
+ }
296
+ ]
297
+ }
298
+ },
299
+ "PlayerInput": {
300
+ "type": "object",
301
+ "properties": {
302
+ "title": {
303
+ "$ref": "#/$defs/__schema9"
304
+ },
305
+ "footer": {
306
+ "$ref": "#/$defs/__schema10"
307
+ },
308
+ "readonly": {
309
+ "$ref": "#/$defs/__schema11"
310
+ },
311
+ "type": {
312
+ "$ref": "#/$defs/__schema12"
313
+ },
314
+ "layout": {
315
+ "$ref": "#/$defs/__schema13"
316
+ },
317
+ "kinds": {
318
+ "$ref": "#/$defs/__schema14"
319
+ },
320
+ "filterToken": {
321
+ "$ref": "#/$defs/__schema15"
322
+ },
323
+ "range": {
324
+ "$ref": "#/$defs/__schema16"
325
+ }
326
+ },
327
+ "required": [
328
+ "type",
329
+ "layout",
330
+ "kinds"
331
+ ],
332
+ "additionalProperties": false,
333
+ "id": "PlayerInput",
334
+ "title": "玩家输入",
335
+ "description": "提供一个玩家的输入,通常用于需要指定玩家的技能选项"
336
+ },
337
+ "__schema9": {
338
+ "type": "string"
339
+ },
340
+ "__schema10": {
341
+ "type": "string"
342
+ },
343
+ "__schema11": {
344
+ "type": "boolean"
345
+ },
346
+ "__schema12": {
347
+ "type": "string",
348
+ "const": "PLAYER"
349
+ },
350
+ "__schema13": {
351
+ "default": "ROUND",
352
+ "type": "string",
353
+ "enum": [
354
+ "ROUND",
355
+ "ROW"
356
+ ]
357
+ },
358
+ "__schema14": {
359
+ "default": [
360
+ "Townsfolk",
361
+ "Outsiders",
362
+ "Minions",
363
+ "Demons"
364
+ ],
365
+ "type": "array",
366
+ "items": {
367
+ "$ref": "#/$defs/CharacterBasicKind"
368
+ }
369
+ },
370
+ "__schema15": {
371
+ "type": "string"
372
+ },
373
+ "__schema16": {
374
+ "$ref": "#/$defs/Range"
375
+ },
376
+ "Range": {
377
+ "anyOf": [
378
+ {
379
+ "$ref": "#/$defs/__schema17"
380
+ },
381
+ {
382
+ "$ref": "#/$defs/__schema20"
383
+ }
384
+ ],
385
+ "id": "Range",
386
+ "title": "范围模型",
387
+ "description": "表示一个数值范围,可以是一个固定值或者一个区间"
388
+ },
389
+ "__schema17": {
390
+ "type": "array",
391
+ "prefixItems": [
392
+ {
393
+ "$ref": "#/$defs/__schema18"
394
+ },
395
+ {
396
+ "$ref": "#/$defs/__schema19"
397
+ }
398
+ ]
399
+ },
400
+ "__schema18": {
401
+ "type": "number"
402
+ },
403
+ "__schema19": {
404
+ "type": "number"
405
+ },
406
+ "__schema20": {
407
+ "type": "array",
408
+ "prefixItems": [
409
+ {
410
+ "type": "number"
411
+ }
412
+ ]
413
+ },
414
+ "CharacterInput": {
415
+ "type": "object",
416
+ "properties": {
417
+ "title": {
418
+ "$ref": "#/$defs/__schema9"
419
+ },
420
+ "footer": {
421
+ "$ref": "#/$defs/__schema10"
422
+ },
423
+ "readonly": {
424
+ "$ref": "#/$defs/__schema11"
425
+ },
426
+ "type": {
427
+ "$ref": "#/$defs/__schema21"
428
+ },
429
+ "kinds": {
430
+ "$ref": "#/$defs/__schema22"
431
+ },
432
+ "filterToken": {
433
+ "$ref": "#/$defs/__schema23"
434
+ },
435
+ "range": {
436
+ "$ref": "#/$defs/__schema24"
437
+ }
438
+ },
439
+ "required": [
440
+ "type",
441
+ "kinds"
442
+ ],
443
+ "additionalProperties": false,
444
+ "id": "CharacterInput",
445
+ "title": "角色输入",
446
+ "description": "提供一个角色的输入,通常用于需要指定角色的技能选项"
447
+ },
448
+ "__schema21": {
449
+ "type": "string",
450
+ "const": "CHARACTER"
451
+ },
452
+ "__schema22": {
453
+ "default": [
454
+ "Townsfolk",
455
+ "Outsiders",
456
+ "Minions",
457
+ "Demons"
458
+ ],
459
+ "type": "array",
460
+ "items": {
461
+ "$ref": "#/$defs/CharacterBasicKind"
462
+ }
463
+ },
464
+ "__schema23": {
465
+ "type": "string"
466
+ },
467
+ "__schema24": {
468
+ "$ref": "#/$defs/Range"
469
+ },
470
+ "AlignmentInput": {
471
+ "type": "object",
472
+ "properties": {
473
+ "title": {
474
+ "$ref": "#/$defs/__schema9"
475
+ },
476
+ "footer": {
477
+ "$ref": "#/$defs/__schema10"
478
+ },
479
+ "readonly": {
480
+ "$ref": "#/$defs/__schema11"
481
+ },
482
+ "type": {
483
+ "$ref": "#/$defs/__schema25"
484
+ }
485
+ },
486
+ "required": [
487
+ "type"
488
+ ],
489
+ "additionalProperties": false,
490
+ "id": "AlignmentInput",
491
+ "title": "阵营选择",
492
+ "description": "提供一个阵营的选择,通常用于需要指定阵营的技能选项"
493
+ },
494
+ "__schema25": {
495
+ "type": "string",
496
+ "const": "ALIGNMENT"
497
+ },
498
+ "CharacterKindInput": {
499
+ "type": "object",
500
+ "properties": {
501
+ "title": {
502
+ "$ref": "#/$defs/__schema9"
503
+ },
504
+ "footer": {
505
+ "$ref": "#/$defs/__schema10"
506
+ },
507
+ "readonly": {
508
+ "$ref": "#/$defs/__schema11"
509
+ },
510
+ "type": {
511
+ "$ref": "#/$defs/__schema26"
512
+ }
513
+ },
514
+ "required": [
515
+ "type"
516
+ ],
517
+ "additionalProperties": false,
518
+ "id": "CharacterKindInput",
519
+ "title": "角色类别输入",
520
+ "description": "提供一个角色类别的输入,通常用于需要指定角色类型的技能选项"
521
+ },
522
+ "__schema26": {
523
+ "type": "string",
524
+ "const": "CHARACTER_KIND"
525
+ },
526
+ "BooleanInput": {
527
+ "type": "object",
528
+ "properties": {
529
+ "title": {
530
+ "$ref": "#/$defs/__schema9"
531
+ },
532
+ "footer": {
533
+ "$ref": "#/$defs/__schema10"
534
+ },
535
+ "readonly": {
536
+ "$ref": "#/$defs/__schema11"
537
+ },
538
+ "type": {
539
+ "$ref": "#/$defs/__schema27"
540
+ },
541
+ "prompt": {
542
+ "$ref": "#/$defs/__schema28"
543
+ },
544
+ "style": {
545
+ "$ref": "#/$defs/__schema29"
546
+ },
547
+ "defaultValue": {
548
+ "$ref": "#/$defs/__schema30"
549
+ },
550
+ "texts": {
551
+ "$ref": "#/$defs/__schema31"
552
+ }
553
+ },
554
+ "required": [
555
+ "type",
556
+ "style",
557
+ "defaultValue",
558
+ "texts"
559
+ ],
560
+ "additionalProperties": false,
561
+ "id": "BooleanInput",
562
+ "title": "布尔选择",
563
+ "description": "提供一个布尔值的选择,通常用于开关类的选项"
564
+ },
565
+ "__schema27": {
566
+ "type": "string",
567
+ "const": "BOOLEAN"
568
+ },
569
+ "__schema28": {
570
+ "type": "string"
571
+ },
572
+ "__schema29": {
573
+ "default": "SWITCH",
574
+ "type": "string",
575
+ "enum": [
576
+ "RADIO",
577
+ "SWITCH"
578
+ ]
579
+ },
580
+ "__schema30": {
581
+ "default": false,
582
+ "type": "boolean"
583
+ },
584
+ "__schema31": {
585
+ "default": [
586
+ "否",
587
+ "是"
588
+ ],
589
+ "type": "array",
590
+ "prefixItems": [
591
+ {
592
+ "type": "string"
593
+ },
594
+ {
595
+ "type": "string"
596
+ }
597
+ ]
598
+ },
599
+ "NumberInput": {
600
+ "type": "object",
601
+ "properties": {
602
+ "title": {
603
+ "$ref": "#/$defs/__schema9"
604
+ },
605
+ "footer": {
606
+ "$ref": "#/$defs/__schema10"
607
+ },
608
+ "readonly": {
609
+ "$ref": "#/$defs/__schema11"
610
+ },
611
+ "type": {
612
+ "$ref": "#/$defs/__schema32"
613
+ },
614
+ "range": {
615
+ "$ref": "#/$defs/__schema33"
616
+ },
617
+ "style": {
618
+ "$ref": "#/$defs/__schema34"
619
+ }
620
+ },
621
+ "required": [
622
+ "type",
623
+ "range",
624
+ "style"
625
+ ],
626
+ "additionalProperties": false,
627
+ "id": "NumberInput",
628
+ "title": "数字输入",
629
+ "description": "提供一个数字的输入,通常用于需要指定数值的技能选项"
630
+ },
631
+ "__schema32": {
632
+ "type": "string",
633
+ "const": "NUMBER"
634
+ },
635
+ "__schema33": {
636
+ "default": [
637
+ 1
638
+ ],
639
+ "$ref": "#/$defs/Range"
640
+ },
641
+ "__schema34": {
642
+ "default": "SELECTION",
643
+ "type": "string",
644
+ "enum": [
645
+ "SELECTION",
646
+ "INPUT"
647
+ ]
648
+ },
649
+ "TextInput": {
650
+ "type": "object",
651
+ "properties": {
652
+ "title": {
653
+ "$ref": "#/$defs/__schema9"
654
+ },
655
+ "footer": {
656
+ "$ref": "#/$defs/__schema10"
657
+ },
658
+ "readonly": {
659
+ "$ref": "#/$defs/__schema11"
660
+ },
661
+ "type": {
662
+ "$ref": "#/$defs/__schema35"
663
+ }
664
+ },
665
+ "required": [
666
+ "type"
667
+ ],
668
+ "additionalProperties": false,
669
+ "id": "TextInput",
670
+ "title": "文本输入",
671
+ "description": "提供一个文本的输入,通常用于需要指定文本的技能选项"
672
+ },
673
+ "__schema35": {
674
+ "type": "string",
675
+ "const": "TEXT"
676
+ },
677
+ "StatusInput": {
678
+ "type": "object",
679
+ "properties": {
680
+ "title": {
681
+ "$ref": "#/$defs/__schema9"
682
+ },
683
+ "footer": {
684
+ "$ref": "#/$defs/__schema10"
685
+ },
686
+ "readonly": {
687
+ "$ref": "#/$defs/__schema11"
688
+ },
689
+ "type": {
690
+ "$ref": "#/$defs/__schema36"
691
+ }
692
+ },
693
+ "required": [
694
+ "type"
695
+ ],
696
+ "additionalProperties": false,
697
+ "id": "StatusInput",
698
+ "title": "状态输入",
699
+ "description": "提供一个状态的输入,通常用于需要指定状态的技能选项"
700
+ },
701
+ "__schema36": {
702
+ "type": "string",
703
+ "const": "STATUS"
704
+ },
705
+ "ReminderInput": {
706
+ "type": "object",
707
+ "properties": {
708
+ "title": {
709
+ "$ref": "#/$defs/__schema9"
710
+ },
711
+ "footer": {
712
+ "$ref": "#/$defs/__schema10"
713
+ },
714
+ "readonly": {
715
+ "$ref": "#/$defs/__schema11"
716
+ },
717
+ "type": {
718
+ "$ref": "#/$defs/__schema37"
719
+ }
720
+ },
721
+ "required": [
722
+ "type"
723
+ ],
724
+ "additionalProperties": false,
725
+ "id": "ReminderInput",
726
+ "title": "提示输入",
727
+ "description": "提供一个提示的输入,通常用于需要给玩家展示信息的技能选项"
728
+ },
729
+ "__schema37": {
730
+ "type": "string",
731
+ "const": "REMINDER"
732
+ },
733
+ "PlayerReminderInput": {
734
+ "type": "object",
735
+ "properties": {
736
+ "title": {
737
+ "$ref": "#/$defs/__schema9"
738
+ },
739
+ "footer": {
740
+ "$ref": "#/$defs/__schema10"
741
+ },
742
+ "readonly": {
743
+ "$ref": "#/$defs/__schema11"
744
+ },
745
+ "type": {
746
+ "$ref": "#/$defs/__schema38"
747
+ }
748
+ },
749
+ "required": [
750
+ "type"
751
+ ],
752
+ "additionalProperties": false,
753
+ "id": "PlayerReminderInput",
754
+ "title": "玩家提示输入",
755
+ "description": "提供一个玩家提示的输入,通常用于需要给特定玩家展示信息的技能选项"
756
+ },
757
+ "__schema38": {
758
+ "type": "string",
759
+ "const": "PLAYER_REMINDER"
760
+ },
761
+ "SeatSideInput": {
762
+ "type": "object",
763
+ "properties": {
764
+ "title": {
765
+ "$ref": "#/$defs/__schema9"
766
+ },
767
+ "footer": {
768
+ "$ref": "#/$defs/__schema10"
769
+ },
770
+ "readonly": {
771
+ "$ref": "#/$defs/__schema11"
772
+ },
773
+ "type": {
774
+ "$ref": "#/$defs/__schema39"
775
+ }
776
+ },
777
+ "required": [
778
+ "type"
779
+ ],
780
+ "additionalProperties": false,
781
+ "id": "SeatSideInput",
782
+ "title": "座位选择",
783
+ "description": "提供一个座位的选择,通常用于需要指定座位的技能选项"
784
+ },
785
+ "__schema39": {
786
+ "type": "string",
787
+ "const": "SEAT_SIDE"
788
+ },
789
+ "__schema40": {
790
+ "default": [],
791
+ "type": "array",
792
+ "items": {
793
+ "oneOf": [
794
+ {
795
+ "$ref": "#/$defs/CharacterView"
796
+ },
797
+ {
798
+ "$ref": "#/$defs/CharacterKindView"
799
+ },
800
+ {
801
+ "$ref": "#/$defs/AlignmentView"
802
+ },
803
+ {
804
+ "$ref": "#/$defs/NumberView"
805
+ },
806
+ {
807
+ "$ref": "#/$defs/PlayerView"
808
+ },
809
+ {
810
+ "$ref": "#/$defs/BooleanView"
811
+ },
812
+ {
813
+ "$ref": "#/$defs/TextView"
814
+ },
815
+ {
816
+ "$ref": "#/$defs/StatusView"
817
+ },
818
+ {
819
+ "$ref": "#/$defs/ReminderView"
820
+ },
821
+ {
822
+ "$ref": "#/$defs/PlayerReminderView"
823
+ },
824
+ {
825
+ "$ref": "#/$defs/SeatSideView"
826
+ }
827
+ ]
828
+ }
829
+ },
830
+ "CharacterView": {
831
+ "type": "object",
832
+ "properties": {
833
+ "source": {
834
+ "$ref": "#/$defs/BaseSource"
835
+ },
836
+ "type": {
837
+ "$ref": "#/$defs/__schema44"
838
+ }
839
+ },
840
+ "required": [
841
+ "source",
842
+ "type"
843
+ ],
844
+ "additionalProperties": false,
845
+ "id": "CharacterView",
846
+ "title": "角色选择视图",
847
+ "description": "提供一个角色的选择视图,通常用于需要指定角色的技能选项"
848
+ },
849
+ "BaseSource": {
850
+ "oneOf": [
851
+ {
852
+ "$ref": "#/$defs/__schema41"
853
+ },
854
+ {
855
+ "$ref": "#/$defs/__schema42"
856
+ }
857
+ ],
858
+ "id": "BaseSource",
859
+ "title": "基础来源模型",
860
+ "description": "基础来源模型,包含来自技能载荷和常量两种来源,常量来源包含一个任意值"
861
+ },
862
+ "__schema41": {
863
+ "type": "object",
864
+ "properties": {
865
+ "from": {
866
+ "type": "string",
867
+ "const": "PAYLOAD"
868
+ },
869
+ "value": {
870
+ "anyOf": [
871
+ {
872
+ "default": 0,
873
+ "type": "number",
874
+ "minimum": 0
875
+ },
876
+ {
877
+ "default": [
878
+ 0
879
+ ],
880
+ "type": "array",
881
+ "items": {
882
+ "type": "number",
883
+ "minimum": 0
884
+ }
885
+ }
886
+ ]
887
+ }
888
+ },
889
+ "required": [
890
+ "from",
891
+ "value"
892
+ ],
893
+ "additionalProperties": false
894
+ },
895
+ "__schema42": {
896
+ "type": "object",
897
+ "properties": {
898
+ "from": {
899
+ "$ref": "#/$defs/__schema43"
900
+ },
901
+ "value": {}
902
+ },
903
+ "required": [
904
+ "from",
905
+ "value"
906
+ ],
907
+ "additionalProperties": false
908
+ },
909
+ "__schema43": {
910
+ "type": "string",
911
+ "const": "CONSTANT"
912
+ },
913
+ "__schema44": {
914
+ "type": "string",
915
+ "const": "CHARACTER"
916
+ },
917
+ "CharacterKindView": {
918
+ "type": "object",
919
+ "properties": {
920
+ "source": {
921
+ "$ref": "#/$defs/BaseSource"
922
+ },
923
+ "type": {
924
+ "$ref": "#/$defs/__schema45"
925
+ }
926
+ },
927
+ "required": [
928
+ "source",
929
+ "type"
930
+ ],
931
+ "additionalProperties": false,
932
+ "id": "CharacterKindView",
933
+ "title": "角色类型视图",
934
+ "description": "提供一个角色类型的选择视图,通常用于需要指定角色类型的技能选项"
935
+ },
936
+ "__schema45": {
937
+ "type": "string",
938
+ "const": "CHARACTER_KIND"
939
+ },
940
+ "AlignmentView": {
941
+ "type": "object",
942
+ "properties": {
943
+ "source": {
944
+ "$ref": "#/$defs/BaseSource"
945
+ },
946
+ "type": {
947
+ "$ref": "#/$defs/__schema46"
948
+ }
949
+ },
950
+ "required": [
951
+ "source",
952
+ "type"
953
+ ],
954
+ "additionalProperties": false,
955
+ "id": "AlignmentView",
956
+ "title": "阵营选择视图",
957
+ "description": "提供一个阵营的选择视图,通常用于需要指定阵营的技能选项"
958
+ },
959
+ "__schema46": {
960
+ "type": "string",
961
+ "const": "ALIGNMENT"
962
+ },
963
+ "NumberView": {
964
+ "type": "object",
965
+ "properties": {
966
+ "source": {
967
+ "$ref": "#/$defs/BaseSource"
968
+ },
969
+ "type": {
970
+ "$ref": "#/$defs/__schema47"
971
+ }
972
+ },
973
+ "required": [
974
+ "source",
975
+ "type"
976
+ ],
977
+ "additionalProperties": false,
978
+ "id": "NumberView",
979
+ "title": "数字选择视图",
980
+ "description": "提供一个数字的选择视图,通常用于需要指定数字的技能选项"
981
+ },
982
+ "__schema47": {
983
+ "type": "string",
984
+ "const": "NUMBER"
985
+ },
986
+ "PlayerView": {
987
+ "type": "object",
988
+ "properties": {
989
+ "source": {
990
+ "$ref": "#/$defs/BaseSource"
991
+ },
992
+ "type": {
993
+ "$ref": "#/$defs/__schema48"
994
+ }
995
+ },
996
+ "required": [
997
+ "source",
998
+ "type"
999
+ ],
1000
+ "additionalProperties": false,
1001
+ "id": "PlayerView",
1002
+ "title": "玩家选择视图",
1003
+ "description": "提供一个玩家的选择视图,通常用于需要指定玩家的技能选项"
1004
+ },
1005
+ "__schema48": {
1006
+ "type": "string",
1007
+ "const": "PLAYER"
1008
+ },
1009
+ "BooleanView": {
1010
+ "type": "object",
1011
+ "properties": {
1012
+ "source": {
1013
+ "$ref": "#/$defs/BaseSource"
1014
+ },
1015
+ "type": {
1016
+ "$ref": "#/$defs/__schema49"
1017
+ },
1018
+ "texts": {
1019
+ "$ref": "#/$defs/__schema50"
1020
+ },
1021
+ "style": {
1022
+ "$ref": "#/$defs/__schema51"
1023
+ }
1024
+ },
1025
+ "required": [
1026
+ "source",
1027
+ "type",
1028
+ "texts",
1029
+ "style"
1030
+ ],
1031
+ "additionalProperties": false,
1032
+ "id": "BooleanView",
1033
+ "title": "布尔选择视图",
1034
+ "description": "提供一个布尔选择视图,通常用于需要选择是或否的技能选项"
1035
+ },
1036
+ "__schema49": {
1037
+ "type": "string",
1038
+ "const": "BOOLEAN"
1039
+ },
1040
+ "__schema50": {
1041
+ "default": [
1042
+ "否",
1043
+ "是"
1044
+ ],
1045
+ "type": "array",
1046
+ "prefixItems": [
1047
+ {
1048
+ "default": "否",
1049
+ "type": "string"
1050
+ },
1051
+ {
1052
+ "default": "是",
1053
+ "type": "string"
1054
+ }
1055
+ ]
1056
+ },
1057
+ "__schema51": {
1058
+ "default": [
1059
+ "ICON"
1060
+ ],
1061
+ "type": "array",
1062
+ "items": {
1063
+ "type": "string",
1064
+ "enum": [
1065
+ "ICON",
1066
+ "TEXT"
1067
+ ]
1068
+ }
1069
+ },
1070
+ "TextView": {
1071
+ "type": "object",
1072
+ "properties": {
1073
+ "source": {
1074
+ "$ref": "#/$defs/BaseSource"
1075
+ },
1076
+ "type": {
1077
+ "$ref": "#/$defs/__schema52"
1078
+ },
1079
+ "color": {
1080
+ "$ref": "#/$defs/__schema53"
1081
+ },
1082
+ "fontSize": {
1083
+ "$ref": "#/$defs/__schema54"
1084
+ }
1085
+ },
1086
+ "required": [
1087
+ "source",
1088
+ "type",
1089
+ "color",
1090
+ "fontSize"
1091
+ ],
1092
+ "additionalProperties": false,
1093
+ "id": "TextView",
1094
+ "title": "文本视图",
1095
+ "description": "提供一个文本的视图,通常用于需要显示文本的技能选项"
1096
+ },
1097
+ "__schema52": {
1098
+ "type": "string",
1099
+ "const": "TEXT"
1100
+ },
1101
+ "__schema53": {
1102
+ "default": "#000000",
1103
+ "type": "string"
1104
+ },
1105
+ "__schema54": {
1106
+ "default": 14,
1107
+ "type": "number"
1108
+ },
1109
+ "StatusView": {
1110
+ "type": "object",
1111
+ "properties": {
1112
+ "source": {
1113
+ "$ref": "#/$defs/BaseSource"
1114
+ },
1115
+ "type": {
1116
+ "$ref": "#/$defs/__schema55"
1117
+ }
1118
+ },
1119
+ "required": [
1120
+ "source",
1121
+ "type"
1122
+ ],
1123
+ "additionalProperties": false,
1124
+ "id": "StatusView",
1125
+ "title": "状态视图",
1126
+ "description": "提供一个状态的选择视图,通常用于需要指定状态的技能选项"
1127
+ },
1128
+ "__schema55": {
1129
+ "type": "string",
1130
+ "const": "STATUS"
1131
+ },
1132
+ "ReminderView": {
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "source": {
1136
+ "$ref": "#/$defs/BaseSource"
1137
+ },
1138
+ "type": {
1139
+ "$ref": "#/$defs/__schema56"
1140
+ }
1141
+ },
1142
+ "required": [
1143
+ "source",
1144
+ "type"
1145
+ ],
1146
+ "additionalProperties": false,
1147
+ "id": "ReminderView",
1148
+ "title": "提醒视图",
1149
+ "description": "提供一个提醒的视图,通常用于需要显示提醒的技能选项"
1150
+ },
1151
+ "__schema56": {
1152
+ "type": "string",
1153
+ "const": "REMINDER"
1154
+ },
1155
+ "PlayerReminderView": {
1156
+ "type": "object",
1157
+ "properties": {
1158
+ "source": {
1159
+ "$ref": "#/$defs/BaseSource"
1160
+ },
1161
+ "type": {
1162
+ "$ref": "#/$defs/__schema57"
1163
+ }
1164
+ },
1165
+ "required": [
1166
+ "source",
1167
+ "type"
1168
+ ],
1169
+ "additionalProperties": false,
1170
+ "id": "PlayerReminderView",
1171
+ "title": "玩家提醒视图",
1172
+ "description": "提供一个玩家提醒的视图,通常用于需要显示玩家提醒的技能选项"
1173
+ },
1174
+ "__schema57": {
1175
+ "type": "string",
1176
+ "const": "PLAYER_REMINDER"
1177
+ },
1178
+ "SeatSideView": {
1179
+ "type": "object",
1180
+ "properties": {
1181
+ "source": {
1182
+ "$ref": "#/$defs/BaseSource"
1183
+ },
1184
+ "type": {
1185
+ "$ref": "#/$defs/__schema58"
1186
+ }
1187
+ },
1188
+ "required": [
1189
+ "source",
1190
+ "type"
1191
+ ],
1192
+ "additionalProperties": false,
1193
+ "id": "SeatSideView",
1194
+ "title": "座位视图",
1195
+ "description": "提供一个座位的选择视图,通常用于需要指定座位的技能选项"
1196
+ },
1197
+ "__schema58": {
1198
+ "type": "string",
1199
+ "const": "SEAT_SIDE"
1200
+ },
1201
+ "__schema59": {
1202
+ "default": [],
1203
+ "type": "array",
1204
+ "items": {
1205
+ "oneOf": [
1206
+ {
1207
+ "$ref": "#/$defs/AbilityChangeEffect"
1208
+ },
1209
+ {
1210
+ "$ref": "#/$defs/AlignmentChangeEffect"
1211
+ },
1212
+ {
1213
+ "$ref": "#/$defs/CharacterCountEffect"
1214
+ },
1215
+ {
1216
+ "$ref": "#/$defs/CharacterChangeEffect"
1217
+ },
1218
+ {
1219
+ "$ref": "#/$defs/CharacterPerceptionEffect"
1220
+ },
1221
+ {
1222
+ "$ref": "#/$defs/StatusEffect"
1223
+ },
1224
+ {
1225
+ "$ref": "#/$defs/SeatEffect"
1226
+ },
1227
+ {
1228
+ "$ref": "#/$defs/GameEffect"
1229
+ },
1230
+ {
1231
+ "$ref": "#/$defs/ReminderEffect"
1232
+ },
1233
+ {
1234
+ "$ref": "#/$defs/RemoveReminderEffect"
1235
+ }
1236
+ ]
1237
+ }
1238
+ },
1239
+ "AbilityChangeEffect": {
1240
+ "type": "object",
1241
+ "properties": {
1242
+ "type": {
1243
+ "$ref": "#/$defs/__schema60"
1244
+ },
1245
+ "source": {
1246
+ "$ref": "#/$defs/__schema61"
1247
+ },
1248
+ "target": {
1249
+ "$ref": "#/$defs/TargetModel"
1250
+ }
1251
+ },
1252
+ "required": [
1253
+ "type",
1254
+ "source",
1255
+ "target"
1256
+ ],
1257
+ "additionalProperties": false,
1258
+ "id": "AbilityChangeEffect",
1259
+ "title": "技能变化效果模型",
1260
+ "description": "表示改变目标技能的技能效果模型,包含一个来源和一个目标"
1261
+ },
1262
+ "__schema60": {
1263
+ "type": "string",
1264
+ "const": "ABILITY_CHANGE"
1265
+ },
1266
+ "__schema61": {
1267
+ "oneOf": [
1268
+ {
1269
+ "$ref": "#/$defs/__schema41"
1270
+ },
1271
+ {
1272
+ "type": "object",
1273
+ "properties": {
1274
+ "from": {
1275
+ "$ref": "#/$defs/__schema43"
1276
+ },
1277
+ "value": {
1278
+ "type": "string"
1279
+ }
1280
+ },
1281
+ "required": [
1282
+ "from",
1283
+ "value"
1284
+ ],
1285
+ "additionalProperties": false
1286
+ }
1287
+ ]
1288
+ },
1289
+ "TargetModel": {
1290
+ "oneOf": [
1291
+ {
1292
+ "$ref": "#/$defs/__schema62"
1293
+ },
1294
+ {
1295
+ "$ref": "#/$defs/__schema63"
1296
+ },
1297
+ {
1298
+ "$ref": "#/$defs/__schema64"
1299
+ },
1300
+ {
1301
+ "$ref": "#/$defs/__schema66"
1302
+ }
1303
+ ],
1304
+ "id": "TargetModel",
1305
+ "title": "目标模型",
1306
+ "description": "表示技能效果的目标,包含来自技能载荷、技能施放者和动态规则三种来源"
1307
+ },
1308
+ "__schema62": {
1309
+ "type": "object",
1310
+ "properties": {
1311
+ "from": {
1312
+ "type": "string",
1313
+ "const": "PAYLOAD"
1314
+ },
1315
+ "value": {
1316
+ "anyOf": [
1317
+ {
1318
+ "type": "number",
1319
+ "minimum": 0
1320
+ },
1321
+ {
1322
+ "type": "array",
1323
+ "items": {
1324
+ "type": "number",
1325
+ "minimum": 0
1326
+ }
1327
+ }
1328
+ ]
1329
+ }
1330
+ },
1331
+ "required": [
1332
+ "from",
1333
+ "value"
1334
+ ],
1335
+ "additionalProperties": false
1336
+ },
1337
+ "__schema63": {
1338
+ "type": "object",
1339
+ "properties": {
1340
+ "from": {
1341
+ "type": "string",
1342
+ "const": "EFFECTOR"
1343
+ }
1344
+ },
1345
+ "required": [
1346
+ "from"
1347
+ ],
1348
+ "additionalProperties": false
1349
+ },
1350
+ "__schema64": {
1351
+ "type": "object",
1352
+ "properties": {
1353
+ "from": {
1354
+ "type": "string",
1355
+ "const": "DYNAMIC"
1356
+ },
1357
+ "anchor": {
1358
+ "oneOf": [
1359
+ {
1360
+ "type": "object",
1361
+ "properties": {
1362
+ "from": {
1363
+ "type": "string",
1364
+ "const": "EFFECTOR"
1365
+ }
1366
+ },
1367
+ "required": [
1368
+ "from"
1369
+ ],
1370
+ "additionalProperties": false
1371
+ },
1372
+ {
1373
+ "type": "object",
1374
+ "properties": {
1375
+ "from": {
1376
+ "type": "string",
1377
+ "const": "PAYLOAD"
1378
+ },
1379
+ "value": {
1380
+ "anyOf": [
1381
+ {
1382
+ "type": "number",
1383
+ "minimum": 0
1384
+ },
1385
+ {
1386
+ "type": "array",
1387
+ "items": {
1388
+ "type": "number",
1389
+ "minimum": 0
1390
+ }
1391
+ }
1392
+ ]
1393
+ }
1394
+ },
1395
+ "required": [
1396
+ "from",
1397
+ "value"
1398
+ ],
1399
+ "additionalProperties": false
1400
+ },
1401
+ {
1402
+ "type": "object",
1403
+ "properties": {
1404
+ "from": {
1405
+ "type": "string",
1406
+ "const": "STATIC"
1407
+ },
1408
+ "value": {
1409
+ "type": "number",
1410
+ "minimum": 1
1411
+ }
1412
+ },
1413
+ "required": [
1414
+ "from",
1415
+ "value"
1416
+ ],
1417
+ "additionalProperties": false
1418
+ }
1419
+ ]
1420
+ },
1421
+ "selector": {
1422
+ "type": "object",
1423
+ "properties": {
1424
+ "scope": {
1425
+ "default": "BOTH_SIDES",
1426
+ "anyOf": [
1427
+ {
1428
+ "type": "string",
1429
+ "enum": [
1430
+ "BOTH_SIDES",
1431
+ "LEFT_SIDE",
1432
+ "RIGHT_SIDE"
1433
+ ]
1434
+ },
1435
+ {
1436
+ "$ref": "#/$defs/__schema65"
1437
+ }
1438
+ ]
1439
+ }
1440
+ },
1441
+ "required": [
1442
+ "scope"
1443
+ ],
1444
+ "additionalProperties": false
1445
+ },
1446
+ "where": {
1447
+ "type": "object",
1448
+ "properties": {
1449
+ "mode": {
1450
+ "default": "ALL",
1451
+ "type": "string",
1452
+ "enum": [
1453
+ "ALL",
1454
+ "ANY"
1455
+ ]
1456
+ },
1457
+ "conditions": {
1458
+ "default": [],
1459
+ "type": "array",
1460
+ "items": {
1461
+ "type": "object",
1462
+ "properties": {
1463
+ "field": {
1464
+ "type": "string",
1465
+ "enum": [
1466
+ "CHARACTER_KIND",
1467
+ "IS_DEAD",
1468
+ "SEAT"
1469
+ ]
1470
+ },
1471
+ "operator": {
1472
+ "default": "EQ",
1473
+ "type": "string",
1474
+ "enum": [
1475
+ "EQ",
1476
+ "IN"
1477
+ ]
1478
+ },
1479
+ "value": {
1480
+ "anyOf": [
1481
+ {
1482
+ "anyOf": [
1483
+ {
1484
+ "type": "string"
1485
+ },
1486
+ {
1487
+ "type": "boolean"
1488
+ },
1489
+ {
1490
+ "type": "number",
1491
+ "minimum": 1
1492
+ },
1493
+ {
1494
+ "type": "array",
1495
+ "items": {
1496
+ "type": "string"
1497
+ }
1498
+ },
1499
+ {
1500
+ "type": "array",
1501
+ "items": {
1502
+ "type": "number",
1503
+ "minimum": 1
1504
+ }
1505
+ }
1506
+ ]
1507
+ },
1508
+ {
1509
+ "$ref": "#/$defs/__schema65"
1510
+ }
1511
+ ]
1512
+ }
1513
+ },
1514
+ "required": [
1515
+ "field",
1516
+ "operator",
1517
+ "value"
1518
+ ],
1519
+ "additionalProperties": false
1520
+ }
1521
+ }
1522
+ },
1523
+ "required": [
1524
+ "mode",
1525
+ "conditions"
1526
+ ],
1527
+ "additionalProperties": false
1528
+ },
1529
+ "limit": {
1530
+ "anyOf": [
1531
+ {
1532
+ "type": "integer",
1533
+ "exclusiveMinimum": 0,
1534
+ "maximum": 9007199254740991
1535
+ },
1536
+ {
1537
+ "$ref": "#/$defs/__schema65"
1538
+ }
1539
+ ]
1540
+ }
1541
+ },
1542
+ "required": [
1543
+ "from"
1544
+ ],
1545
+ "additionalProperties": false
1546
+ },
1547
+ "__schema65": {
1548
+ "type": "object",
1549
+ "properties": {
1550
+ "from": {
1551
+ "type": "string",
1552
+ "const": "PAYLOAD"
1553
+ },
1554
+ "value": {
1555
+ "anyOf": [
1556
+ {
1557
+ "type": "number",
1558
+ "minimum": 0
1559
+ },
1560
+ {
1561
+ "type": "array",
1562
+ "items": {
1563
+ "type": "number",
1564
+ "minimum": 0
1565
+ }
1566
+ }
1567
+ ]
1568
+ }
1569
+ },
1570
+ "required": [
1571
+ "from",
1572
+ "value"
1573
+ ],
1574
+ "additionalProperties": false
1575
+ },
1576
+ "__schema66": {
1577
+ "type": "object",
1578
+ "properties": {
1579
+ "from": {
1580
+ "type": "string",
1581
+ "const": "CUSTOM"
1582
+ },
1583
+ "value": {}
1584
+ },
1585
+ "required": [
1586
+ "from",
1587
+ "value"
1588
+ ],
1589
+ "additionalProperties": false
1590
+ },
1591
+ "AlignmentChangeEffect": {
1592
+ "type": "object",
1593
+ "properties": {
1594
+ "type": {
1595
+ "$ref": "#/$defs/__schema67"
1596
+ },
1597
+ "source": {
1598
+ "$ref": "#/$defs/__schema68"
1599
+ },
1600
+ "target": {
1601
+ "$ref": "#/$defs/TargetModel"
1602
+ }
1603
+ },
1604
+ "required": [
1605
+ "type",
1606
+ "source",
1607
+ "target"
1608
+ ],
1609
+ "additionalProperties": false,
1610
+ "id": "AlignmentChangeEffect",
1611
+ "title": "阵营变化效果模型",
1612
+ "description": "表示改变目标阵营的技能效果模型,包含一个来源和一个目标"
1613
+ },
1614
+ "__schema67": {
1615
+ "type": "string",
1616
+ "const": "ALIGNMENT_CHANGE"
1617
+ },
1618
+ "__schema68": {
1619
+ "oneOf": [
1620
+ {
1621
+ "$ref": "#/$defs/__schema41"
1622
+ },
1623
+ {
1624
+ "$ref": "#/$defs/__schema69"
1625
+ },
1626
+ {
1627
+ "type": "object",
1628
+ "properties": {
1629
+ "from": {
1630
+ "$ref": "#/$defs/__schema43"
1631
+ },
1632
+ "value": {
1633
+ "$ref": "#/$defs/__schema70"
1634
+ }
1635
+ },
1636
+ "required": [
1637
+ "from",
1638
+ "value"
1639
+ ],
1640
+ "additionalProperties": false
1641
+ }
1642
+ ]
1643
+ },
1644
+ "__schema69": {
1645
+ "type": "object",
1646
+ "properties": {
1647
+ "from": {
1648
+ "type": "string",
1649
+ "const": "EFFECTOR"
1650
+ }
1651
+ },
1652
+ "required": [
1653
+ "from"
1654
+ ],
1655
+ "additionalProperties": false
1656
+ },
1657
+ "__schema70": {
1658
+ "type": "string",
1659
+ "enum": [
1660
+ "GOOD",
1661
+ "EVIL"
1662
+ ]
1663
+ },
1664
+ "CharacterCountEffect": {
1665
+ "type": "object",
1666
+ "properties": {
1667
+ "type": {
1668
+ "$ref": "#/$defs/__schema71"
1669
+ },
1670
+ "source": {
1671
+ "$ref": "#/$defs/__schema72"
1672
+ },
1673
+ "kind": {
1674
+ "$ref": "#/$defs/__schema73"
1675
+ },
1676
+ "value": {
1677
+ "$ref": "#/$defs/__schema74"
1678
+ }
1679
+ },
1680
+ "required": [
1681
+ "type"
1682
+ ],
1683
+ "additionalProperties": false,
1684
+ "id": "CharacterCountEffect",
1685
+ "title": "角色数量变化效果模型",
1686
+ "description": "表示改变某类角色数量的技能效果模型,包含角色类别和变化值"
1687
+ },
1688
+ "__schema71": {
1689
+ "type": "string",
1690
+ "const": "CHARACTER_COUNT_CHANGE"
1691
+ },
1692
+ "__schema72": {
1693
+ "oneOf": [
1694
+ {
1695
+ "type": "object",
1696
+ "properties": {
1697
+ "from": {
1698
+ "$ref": "#/$defs/__schema43"
1699
+ },
1700
+ "value": {
1701
+ "type": "object",
1702
+ "properties": {
1703
+ "kind": {
1704
+ "$ref": "#/$defs/CharacterBasicKind"
1705
+ },
1706
+ "value": {
1707
+ "type": "number"
1708
+ }
1709
+ },
1710
+ "required": [
1711
+ "kind",
1712
+ "value"
1713
+ ],
1714
+ "additionalProperties": false
1715
+ }
1716
+ },
1717
+ "required": [
1718
+ "from",
1719
+ "value"
1720
+ ],
1721
+ "additionalProperties": false
1722
+ }
1723
+ ]
1724
+ },
1725
+ "__schema73": {
1726
+ "$ref": "#/$defs/CharacterBasicKind"
1727
+ },
1728
+ "__schema74": {
1729
+ "type": "number"
1730
+ },
1731
+ "CharacterChangeEffect": {
1732
+ "type": "object",
1733
+ "properties": {
1734
+ "type": {
1735
+ "$ref": "#/$defs/__schema75"
1736
+ },
1737
+ "source": {
1738
+ "$ref": "#/$defs/__schema76"
1739
+ },
1740
+ "target": {
1741
+ "$ref": "#/$defs/TargetModel"
1742
+ }
1743
+ },
1744
+ "required": [
1745
+ "type",
1746
+ "source",
1747
+ "target"
1748
+ ],
1749
+ "additionalProperties": false,
1750
+ "id": "CharacterChangeEffect",
1751
+ "title": "角色变化效果模型",
1752
+ "description": "表示改变角色身份的技能效果模型,包含一个来源和一个目标"
1753
+ },
1754
+ "__schema75": {
1755
+ "type": "string",
1756
+ "const": "CHARACTER_CHANGE"
1757
+ },
1758
+ "__schema76": {
1759
+ "oneOf": [
1760
+ {
1761
+ "$ref": "#/$defs/__schema41"
1762
+ },
1763
+ {
1764
+ "$ref": "#/$defs/__schema69"
1765
+ },
1766
+ {
1767
+ "type": "object",
1768
+ "properties": {
1769
+ "from": {
1770
+ "$ref": "#/$defs/__schema43"
1771
+ },
1772
+ "value": {
1773
+ "type": "string"
1774
+ }
1775
+ },
1776
+ "required": [
1777
+ "from",
1778
+ "value"
1779
+ ],
1780
+ "additionalProperties": false
1781
+ }
1782
+ ]
1783
+ },
1784
+ "CharacterPerceptionEffect": {
1785
+ "type": "object",
1786
+ "properties": {
1787
+ "type": {
1788
+ "$ref": "#/$defs/__schema77"
1789
+ },
1790
+ "source": {
1791
+ "$ref": "#/$defs/__schema76"
1792
+ },
1793
+ "target": {
1794
+ "$ref": "#/$defs/TargetModel"
1795
+ },
1796
+ "followPriority": {
1797
+ "$ref": "#/$defs/__schema78"
1798
+ }
1799
+ },
1800
+ "required": [
1801
+ "type",
1802
+ "source",
1803
+ "target"
1804
+ ],
1805
+ "additionalProperties": false,
1806
+ "id": "CharacterPerceptionEffect",
1807
+ "title": "感知角色变化效果模型",
1808
+ "description": "表示改变角色感知身份的技能效果模型,包含一个来源、一个目标和可选优先级"
1809
+ },
1810
+ "__schema77": {
1811
+ "type": "string",
1812
+ "const": "PERCEIVED_CHARACTER_CHANGE"
1813
+ },
1814
+ "__schema78": {
1815
+ "type": "boolean"
1816
+ },
1817
+ "StatusEffect": {
1818
+ "type": "object",
1819
+ "properties": {
1820
+ "type": {
1821
+ "$ref": "#/$defs/__schema79"
1822
+ },
1823
+ "source": {
1824
+ "$ref": "#/$defs/__schema80"
1825
+ },
1826
+ "target": {
1827
+ "$ref": "#/$defs/TargetModel"
1828
+ }
1829
+ },
1830
+ "required": [
1831
+ "type",
1832
+ "source",
1833
+ "target"
1834
+ ],
1835
+ "additionalProperties": false,
1836
+ "id": "StatusEffect",
1837
+ "title": "状态变化效果模型",
1838
+ "description": "表示改变目标状态的技能效果模型,包含一个来源和一个目标"
1839
+ },
1840
+ "__schema79": {
1841
+ "type": "string",
1842
+ "const": "STATUS_CHANGE"
1843
+ },
1844
+ "__schema80": {
1845
+ "oneOf": [
1846
+ {
1847
+ "$ref": "#/$defs/__schema41"
1848
+ },
1849
+ {
1850
+ "type": "object",
1851
+ "properties": {
1852
+ "from": {
1853
+ "$ref": "#/$defs/__schema43"
1854
+ },
1855
+ "value": {
1856
+ "type": "string",
1857
+ "enum": [
1858
+ "DEAD",
1859
+ "ALIVE"
1860
+ ]
1861
+ }
1862
+ },
1863
+ "required": [
1864
+ "from",
1865
+ "value"
1866
+ ],
1867
+ "additionalProperties": false
1868
+ }
1869
+ ]
1870
+ },
1871
+ "SeatEffect": {
1872
+ "type": "object",
1873
+ "properties": {
1874
+ "type": {
1875
+ "$ref": "#/$defs/__schema81"
1876
+ },
1877
+ "source": {
1878
+ "$ref": "#/$defs/__schema82"
1879
+ },
1880
+ "target": {
1881
+ "$ref": "#/$defs/TargetModel"
1882
+ }
1883
+ },
1884
+ "required": [
1885
+ "type",
1886
+ "source",
1887
+ "target"
1888
+ ],
1889
+ "additionalProperties": false,
1890
+ "id": "SeatEffect",
1891
+ "title": "座位变化效果模型",
1892
+ "description": "表示改变目标座位的技能效果模型,包含一个来源和一个目标"
1893
+ },
1894
+ "__schema81": {
1895
+ "type": "string",
1896
+ "const": "SEAT_CHANGE"
1897
+ },
1898
+ "__schema82": {
1899
+ "oneOf": [
1900
+ {
1901
+ "$ref": "#/$defs/__schema41"
1902
+ },
1903
+ {
1904
+ "$ref": "#/$defs/__schema69"
1905
+ },
1906
+ {
1907
+ "type": "object",
1908
+ "properties": {
1909
+ "from": {
1910
+ "$ref": "#/$defs/__schema43"
1911
+ },
1912
+ "value": {
1913
+ "type": "number",
1914
+ "minimum": 1
1915
+ }
1916
+ },
1917
+ "required": [
1918
+ "from",
1919
+ "value"
1920
+ ],
1921
+ "additionalProperties": false
1922
+ }
1923
+ ]
1924
+ },
1925
+ "GameEffect": {
1926
+ "type": "object",
1927
+ "properties": {
1928
+ "type": {
1929
+ "$ref": "#/$defs/__schema83"
1930
+ },
1931
+ "source": {
1932
+ "$ref": "#/$defs/GameSource"
1933
+ }
1934
+ },
1935
+ "required": [
1936
+ "type",
1937
+ "source"
1938
+ ],
1939
+ "additionalProperties": false,
1940
+ "id": "GameEffect",
1941
+ "title": "游戏变化效果模型",
1942
+ "description": "表示改变游戏状态的技能效果模型,包含一个来源"
1943
+ },
1944
+ "__schema83": {
1945
+ "type": "string",
1946
+ "const": "GAME_CHANGE"
1947
+ },
1948
+ "GameSource": {
1949
+ "oneOf": [
1950
+ {
1951
+ "$ref": "#/$defs/__schema41"
1952
+ },
1953
+ {
1954
+ "$ref": "#/$defs/__schema84"
1955
+ }
1956
+ ],
1957
+ "id": "GameSource",
1958
+ "title": "游戏来源模型",
1959
+ "description": "表示获取游戏变更信息的来源模型,包含来自技能载荷和常量两种来源"
1960
+ },
1961
+ "__schema84": {
1962
+ "type": "object",
1963
+ "properties": {
1964
+ "from": {
1965
+ "$ref": "#/$defs/__schema43"
1966
+ },
1967
+ "value": {
1968
+ "$ref": "#/$defs/__schema70"
1969
+ }
1970
+ },
1971
+ "required": [
1972
+ "from",
1973
+ "value"
1974
+ ],
1975
+ "additionalProperties": false
1976
+ },
1977
+ "ReminderEffect": {
1978
+ "type": "object",
1979
+ "properties": {
1980
+ "type": {
1981
+ "$ref": "#/$defs/__schema85"
1982
+ },
1983
+ "source": {
1984
+ "$ref": "#/$defs/__schema86"
1985
+ },
1986
+ "target": {
1987
+ "$ref": "#/$defs/TargetModel"
1988
+ }
1989
+ },
1990
+ "required": [
1991
+ "type",
1992
+ "source",
1993
+ "target"
1994
+ ],
1995
+ "additionalProperties": false,
1996
+ "id": "ReminderEffect",
1997
+ "title": "添加标记效果模型",
1998
+ "description": "表示为目标添加标记的技能效果模型,包含一个来源和一个目标"
1999
+ },
2000
+ "__schema85": {
2001
+ "type": "string",
2002
+ "const": "REMINDER_ADD"
2003
+ },
2004
+ "__schema86": {
2005
+ "oneOf": [
2006
+ {
2007
+ "$ref": "#/$defs/__schema41"
2008
+ },
2009
+ {
2010
+ "type": "object",
2011
+ "properties": {
2012
+ "from": {
2013
+ "$ref": "#/$defs/__schema43"
2014
+ },
2015
+ "value": {
2016
+ "type": "object",
2017
+ "properties": {
2018
+ "mark": {
2019
+ "type": "string",
2020
+ "minLength": 1
2021
+ },
2022
+ "color": {
2023
+ "type": "string"
2024
+ },
2025
+ "description": {
2026
+ "type": "string"
2027
+ },
2028
+ "duration": {
2029
+ "type": "number",
2030
+ "minimum": 0
2031
+ }
2032
+ },
2033
+ "required": [
2034
+ "mark"
2035
+ ],
2036
+ "additionalProperties": false
2037
+ }
2038
+ },
2039
+ "required": [
2040
+ "from",
2041
+ "value"
2042
+ ],
2043
+ "additionalProperties": false
2044
+ }
2045
+ ]
2046
+ },
2047
+ "RemoveReminderEffect": {
2048
+ "type": "object",
2049
+ "properties": {
2050
+ "type": {
2051
+ "$ref": "#/$defs/__schema87"
2052
+ },
2053
+ "source": {
2054
+ "$ref": "#/$defs/__schema88"
2055
+ },
2056
+ "target": {
2057
+ "$ref": "#/$defs/TargetModel"
2058
+ }
2059
+ },
2060
+ "required": [
2061
+ "type",
2062
+ "source",
2063
+ "target"
2064
+ ],
2065
+ "additionalProperties": false,
2066
+ "id": "RemoveReminderEffect",
2067
+ "title": "移除标记效果模型",
2068
+ "description": "表示从目标移除标记的技能效果模型,包含一个来源和一个目标"
2069
+ },
2070
+ "__schema87": {
2071
+ "type": "string",
2072
+ "const": "REMINDER_REMOVE"
2073
+ },
2074
+ "__schema88": {
2075
+ "oneOf": [
2076
+ {
2077
+ "$ref": "#/$defs/__schema41"
2078
+ },
2079
+ {
2080
+ "type": "object",
2081
+ "properties": {
2082
+ "from": {
2083
+ "$ref": "#/$defs/__schema43"
2084
+ },
2085
+ "value": {
2086
+ "type": "number",
2087
+ "minimum": 0
2088
+ }
2089
+ },
2090
+ "required": [
2091
+ "from",
2092
+ "value"
2093
+ ],
2094
+ "additionalProperties": false
2095
+ }
2096
+ ]
2097
+ },
2098
+ "__schema89": {
2099
+ "default": [],
2100
+ "type": "array",
2101
+ "items": {
2102
+ "$ref": "#/$defs/Message"
2103
+ }
2104
+ },
2105
+ "Message": {
2106
+ "type": "object",
2107
+ "properties": {
2108
+ "targets": {
2109
+ "$ref": "#/$defs/__schema90"
2110
+ },
2111
+ "content": {
2112
+ "$ref": "#/$defs/__schema91"
2113
+ }
2114
+ },
2115
+ "required": [
2116
+ "targets",
2117
+ "content"
2118
+ ],
2119
+ "additionalProperties": false,
2120
+ "id": "Message",
2121
+ "title": "技能消息模型",
2122
+ "description": "技能消息模型定义了技能执行过程中需要展示的信息内容和相关的目标"
2123
+ },
2124
+ "__schema90": {
2125
+ "minItems": 1,
2126
+ "type": "array",
2127
+ "items": {
2128
+ "$ref": "#/$defs/TargetModel"
2129
+ }
2130
+ },
2131
+ "__schema91": {
2132
+ "minItems": 1,
2133
+ "type": "array",
2134
+ "items": {
2135
+ "$ref": "#/$defs/MessageTemplateSegmentModel"
2136
+ }
2137
+ },
2138
+ "MessageTemplateSegmentModel": {
2139
+ "anyOf": [
2140
+ {
2141
+ "$ref": "#/$defs/__schema92"
2142
+ },
2143
+ {
2144
+ "$ref": "#/$defs/__schema93"
2145
+ },
2146
+ {
2147
+ "$ref": "#/$defs/__schema96"
2148
+ },
2149
+ {
2150
+ "$ref": "#/$defs/__schema97"
2151
+ }
2152
+ ],
2153
+ "id": "MessageTemplateSegmentModel",
2154
+ "title": "消息模板段模型",
2155
+ "description": "消息模板段模型定义了技能消息中每个段的内容和类型,可以是纯文本、带有特定格式的玩家信息、其他类型的数值信息,或者特殊的预设信息"
2156
+ },
2157
+ "__schema92": {
2158
+ "type": "object",
2159
+ "properties": {
2160
+ "type": {
2161
+ "type": "string",
2162
+ "const": "TEXT"
2163
+ },
2164
+ "value": {
2165
+ "type": "string"
2166
+ }
2167
+ },
2168
+ "required": [
2169
+ "type",
2170
+ "value"
2171
+ ],
2172
+ "additionalProperties": false
2173
+ },
2174
+ "__schema93": {
2175
+ "oneOf": [
2176
+ {
2177
+ "type": "object",
2178
+ "properties": {
2179
+ "type": {
2180
+ "type": "string",
2181
+ "const": "PAYLOAD"
2182
+ },
2183
+ "value": {
2184
+ "$ref": "#/$defs/__schema94"
2185
+ },
2186
+ "payloadType": {
2187
+ "type": "string",
2188
+ "const": "PLAYER"
2189
+ },
2190
+ "options": {
2191
+ "$ref": "#/$defs/__schema95"
2192
+ }
2193
+ },
2194
+ "required": [
2195
+ "type",
2196
+ "value",
2197
+ "payloadType",
2198
+ "options"
2199
+ ],
2200
+ "additionalProperties": false
2201
+ },
2202
+ {
2203
+ "type": "object",
2204
+ "properties": {
2205
+ "type": {
2206
+ "type": "string",
2207
+ "const": "PAYLOAD"
2208
+ },
2209
+ "value": {
2210
+ "$ref": "#/$defs/__schema94"
2211
+ },
2212
+ "payloadType": {
2213
+ "type": "string",
2214
+ "const": "BOOLEAN"
2215
+ },
2216
+ "options": {
2217
+ "type": "object",
2218
+ "properties": {
2219
+ "texts": {
2220
+ "type": "array",
2221
+ "prefixItems": [
2222
+ {
2223
+ "type": "string"
2224
+ },
2225
+ {
2226
+ "type": "string"
2227
+ }
2228
+ ]
2229
+ },
2230
+ "style": {
2231
+ "type": "array",
2232
+ "items": {
2233
+ "type": "string",
2234
+ "enum": [
2235
+ "ICON",
2236
+ "TEXT"
2237
+ ]
2238
+ }
2239
+ },
2240
+ "colors": {
2241
+ "type": "array",
2242
+ "prefixItems": [
2243
+ {
2244
+ "type": "string"
2245
+ },
2246
+ {
2247
+ "type": "string"
2248
+ }
2249
+ ]
2250
+ }
2251
+ },
2252
+ "additionalProperties": false
2253
+ }
2254
+ },
2255
+ "required": [
2256
+ "type",
2257
+ "value",
2258
+ "payloadType"
2259
+ ],
2260
+ "additionalProperties": false
2261
+ },
2262
+ {
2263
+ "type": "object",
2264
+ "properties": {
2265
+ "type": {
2266
+ "type": "string",
2267
+ "const": "PAYLOAD"
2268
+ },
2269
+ "value": {
2270
+ "$ref": "#/$defs/__schema94"
2271
+ },
2272
+ "payloadType": {
2273
+ "type": "string",
2274
+ "enum": [
2275
+ "CHARACTER",
2276
+ "CHARACTER_KIND",
2277
+ "ALIGNMENT",
2278
+ "NUMBER",
2279
+ "TEXT",
2280
+ "STATUS",
2281
+ "REMINDER",
2282
+ "PLAYER_REMINDER",
2283
+ "SEAT_SIDE"
2284
+ ]
2285
+ },
2286
+ "options": {
2287
+ "default": {},
2288
+ "type": "object",
2289
+ "properties": {},
2290
+ "additionalProperties": false
2291
+ }
2292
+ },
2293
+ "required": [
2294
+ "type",
2295
+ "value",
2296
+ "payloadType",
2297
+ "options"
2298
+ ],
2299
+ "additionalProperties": false
2300
+ }
2301
+ ]
2302
+ },
2303
+ "__schema94": {
2304
+ "anyOf": [
2305
+ {
2306
+ "type": "number",
2307
+ "minimum": 0
2308
+ },
2309
+ {
2310
+ "type": "array",
2311
+ "items": {
2312
+ "type": "number",
2313
+ "minimum": 0
2314
+ }
2315
+ }
2316
+ ]
2317
+ },
2318
+ "__schema95": {
2319
+ "default": {
2320
+ "format": "NUMBER_AND_CHARACTER"
2321
+ },
2322
+ "type": "object",
2323
+ "properties": {
2324
+ "format": {
2325
+ "$ref": "#/$defs/PlayerDisplayFormat"
2326
+ }
2327
+ },
2328
+ "required": [
2329
+ "format"
2330
+ ],
2331
+ "additionalProperties": false
2332
+ },
2333
+ "PlayerDisplayFormat": {
2334
+ "type": "string",
2335
+ "enum": [
2336
+ "NUMBER_AND_CHARACTER",
2337
+ "NUMBER_ONLY",
2338
+ "CHARACTER_ONLY",
2339
+ "ALIGNMENT_ONLY"
2340
+ ],
2341
+ "id": "PlayerDisplayFormat",
2342
+ "title": "玩家显示格式",
2343
+ "description": "定义了玩家信息在技能消息中的显示格式"
2344
+ },
2345
+ "__schema96": {
2346
+ "type": "object",
2347
+ "properties": {
2348
+ "type": {
2349
+ "type": "string",
2350
+ "const": "EFFECTOR"
2351
+ },
2352
+ "options": {
2353
+ "$ref": "#/$defs/__schema95"
2354
+ }
2355
+ },
2356
+ "required": [
2357
+ "type",
2358
+ "options"
2359
+ ],
2360
+ "additionalProperties": false
2361
+ },
2362
+ "__schema97": {
2363
+ "type": "object",
2364
+ "properties": {
2365
+ "type": {
2366
+ "type": "string",
2367
+ "const": "SPECIAL"
2368
+ },
2369
+ "kind": {
2370
+ "type": "string",
2371
+ "enum": [
2372
+ "SPY"
2373
+ ]
2374
+ }
2375
+ },
2376
+ "required": [
2377
+ "type",
2378
+ "kind"
2379
+ ],
2380
+ "additionalProperties": false
2381
+ },
2382
+ "__schema98": {
2383
+ "default": "STORYTELLER_ONLY",
2384
+ "type": "string",
2385
+ "enum": [
2386
+ "EVERYONE",
2387
+ "STORYTELLER_ONLY"
2388
+ ]
2389
+ },
2390
+ "__schema99": {
2391
+ "default": "2026-04-11T23:19:10.200Z",
2392
+ "type": "string",
2393
+ "format": "date-time",
2394
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
2395
+ }
2396
+ }
2397
+ }