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