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