executable-stories-formatters 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,6 +10,10 @@
10
10
  "type": "object",
11
11
  "description": "Top-level raw run containing all test cases and run metadata.",
12
12
  "properties": {
13
+ "$schema": {
14
+ "type": "string",
15
+ "description": "Optional pointer to this schema, so editors validate the file as the adapter writes it. Ignored by the CLI."
16
+ },
13
17
  "schemaVersion": {
14
18
  "type": "integer",
15
19
  "const": 1,
@@ -17,7 +21,9 @@
17
21
  },
18
22
  "testCases": {
19
23
  "type": "array",
20
- "items": { "$ref": "#/$defs/RawTestCase" },
24
+ "items": {
25
+ "$ref": "#/$defs/RawTestCase"
26
+ },
21
27
  "description": "All test cases from the run."
22
28
  },
23
29
  "startedAtMs": {
@@ -51,12 +57,16 @@
51
57
  "description": "Arbitrary runner-specific metadata. Escape hatch for data not covered by the schema."
52
58
  }
53
59
  },
54
- "required": ["schemaVersion", "testCases", "projectRoot"],
60
+ "required": [
61
+ "schemaVersion",
62
+ "testCases",
63
+ "projectRoot"
64
+ ],
55
65
  "additionalProperties": false
56
66
  },
57
67
  "RawTestCase": {
58
68
  "type": "object",
59
- "description": "A single test case result. Only 'status' is required everything else is optional to support plain unit tests without BDD metadata.",
69
+ "description": "A single test case result. Only 'status' is required \u2014 everything else is optional to support plain unit tests without BDD metadata.",
60
70
  "properties": {
61
71
  "externalId": {
62
72
  "type": "string",
@@ -68,7 +78,9 @@
68
78
  },
69
79
  "titlePath": {
70
80
  "type": "array",
71
- "items": { "type": "string" },
81
+ "items": {
82
+ "type": "string"
83
+ },
72
84
  "description": "Full title path from describe/suite blocks down to the test name."
73
85
  },
74
86
  "story": {
@@ -108,12 +120,16 @@
108
120
  },
109
121
  "stepEvents": {
110
122
  "type": "array",
111
- "items": { "$ref": "#/$defs/RawStepEvent" },
123
+ "items": {
124
+ "$ref": "#/$defs/RawStepEvent"
125
+ },
112
126
  "description": "Step-level execution events from the framework (if available)."
113
127
  },
114
128
  "attachments": {
115
129
  "type": "array",
116
- "items": { "$ref": "#/$defs/RawAttachment" },
130
+ "items": {
131
+ "$ref": "#/$defs/RawAttachment"
132
+ },
117
133
  "description": "Attachments such as screenshots, logs, or other artifacts."
118
134
  },
119
135
  "meta": {
@@ -135,12 +151,23 @@
135
151
  "description": "Project name (e.g., Playwright project like 'chromium', 'firefox')."
136
152
  }
137
153
  },
138
- "required": ["status"],
154
+ "required": [
155
+ "status"
156
+ ],
139
157
  "additionalProperties": false
140
158
  },
141
159
  "RawStatus": {
142
160
  "type": "string",
143
- "enum": ["pass", "fail", "skip", "todo", "pending", "timeout", "interrupted", "unknown"],
161
+ "enum": [
162
+ "pass",
163
+ "fail",
164
+ "skip",
165
+ "todo",
166
+ "pending",
167
+ "timeout",
168
+ "interrupted",
169
+ "unknown"
170
+ ],
144
171
  "description": "Permissive test status from any framework. Mapped to canonical status (passed/failed/skipped/pending) during canonicalization."
145
172
  },
146
173
  "StoryMeta": {
@@ -154,26 +181,38 @@
154
181
  },
155
182
  "steps": {
156
183
  "type": "array",
157
- "items": { "$ref": "#/$defs/StoryStep" },
184
+ "items": {
185
+ "$ref": "#/$defs/StoryStep"
186
+ },
158
187
  "description": "BDD steps in this scenario. Can be empty or omitted for progressive enrichment."
159
188
  },
160
189
  "tags": {
161
190
  "type": "array",
162
- "items": { "type": "string" },
191
+ "items": {
192
+ "type": "string"
193
+ },
163
194
  "description": "Tags for filtering and categorization (e.g., ['smoke', 'auth'])."
164
195
  },
165
196
  "tickets": {
166
197
  "type": "array",
167
198
  "items": {
168
199
  "oneOf": [
169
- { "type": "string" },
200
+ {
201
+ "type": "string"
202
+ },
170
203
  {
171
204
  "type": "object",
172
205
  "properties": {
173
- "id": { "type": "string" },
174
- "url": { "type": "string" }
206
+ "id": {
207
+ "type": "string"
208
+ },
209
+ "url": {
210
+ "type": "string"
211
+ }
175
212
  },
176
- "required": ["id"],
213
+ "required": [
214
+ "id"
215
+ ],
177
216
  "additionalProperties": false
178
217
  }
179
218
  ]
@@ -182,7 +221,9 @@
182
221
  },
183
222
  "covers": {
184
223
  "type": "array",
185
- "items": { "type": "string" },
224
+ "items": {
225
+ "type": "string"
226
+ },
186
227
  "description": "Product-code paths/globs this scenario exercises (project-root-relative). Used to map code changes to at-risk scenarios."
187
228
  },
188
229
  "meta": {
@@ -191,12 +232,16 @@
191
232
  },
192
233
  "suitePath": {
193
234
  "type": "array",
194
- "items": { "type": "string" },
235
+ "items": {
236
+ "type": "string"
237
+ },
195
238
  "description": "Parent describe/suite names for hierarchical grouping."
196
239
  },
197
240
  "docs": {
198
241
  "type": "array",
199
- "items": { "$ref": "#/$defs/DocEntry" },
242
+ "items": {
243
+ "$ref": "#/$defs/DocEntry"
244
+ },
200
245
  "description": "Story-level documentation entries (before any steps)."
201
246
  },
202
247
  "sourceOrder": {
@@ -206,11 +251,15 @@
206
251
  },
207
252
  "otelSpans": {
208
253
  "type": "array",
209
- "items": { "type": "object" },
254
+ "items": {
255
+ "type": "object"
256
+ },
210
257
  "description": "OpenTelemetry spans captured for this scenario (from autotel), used to render a trace waterfall."
211
258
  }
212
259
  },
213
- "required": ["scenario"],
260
+ "required": [
261
+ "scenario"
262
+ ],
214
263
  "additionalProperties": false
215
264
  },
216
265
  "StoryStep": {
@@ -229,7 +278,9 @@
229
278
  },
230
279
  "docs": {
231
280
  "type": "array",
232
- "items": { "$ref": "#/$defs/DocEntry" },
281
+ "items": {
282
+ "$ref": "#/$defs/DocEntry"
283
+ },
233
284
  "description": "Rich documentation entries attached to this step."
234
285
  },
235
286
  "id": {
@@ -246,23 +297,36 @@
246
297
  "description": "Step-level duration in milliseconds (from startTimer/endTimer)."
247
298
  }
248
299
  },
249
- "required": ["keyword", "text"],
300
+ "required": [
301
+ "keyword",
302
+ "text"
303
+ ],
250
304
  "additionalProperties": false
251
305
  },
252
306
  "StepKeyword": {
253
307
  "type": "string",
254
- "description": "BDD step keyword. Case-insensitive 'given' and 'Given' are both accepted. Normalized to title case during processing.",
308
+ "description": "BDD step keyword. Case-insensitive \u2014 'given' and 'Given' are both accepted. Normalized to title case during processing.",
255
309
  "pattern": "^[Gg]iven$|^[Ww]hen$|^[Tt]hen$|^[Aa]nd$|^[Bb]ut$"
256
310
  },
257
311
  "StepMode": {
258
312
  "type": "string",
259
- "enum": ["normal", "skip", "only", "todo", "fails", "concurrent"],
313
+ "enum": [
314
+ "normal",
315
+ "skip",
316
+ "only",
317
+ "todo",
318
+ "fails",
319
+ "concurrent"
320
+ ],
260
321
  "description": "Step execution mode for documentation rendering."
261
322
  },
262
323
  "DocPhase": {
263
324
  "type": "string",
264
- "enum": ["static", "runtime"],
265
- "description": "When the doc entry was added — 'static' at definition time, 'runtime' during execution."
325
+ "enum": [
326
+ "static",
327
+ "runtime"
328
+ ],
329
+ "description": "When the doc entry was added \u2014 'static' at definition time, 'runtime' during execution."
266
330
  },
267
331
  "DocEntry": {
268
332
  "description": "A documentation entry attached to a story or step. Discriminated union on the 'kind' field.",
@@ -271,163 +335,395 @@
271
335
  "type": "object",
272
336
  "description": "Free-text note.",
273
337
  "properties": {
274
- "kind": { "const": "note" },
275
- "text": { "type": "string" },
276
- "phase": { "$ref": "#/$defs/DocPhase" },
277
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
338
+ "kind": {
339
+ "const": "note"
340
+ },
341
+ "text": {
342
+ "type": "string"
343
+ },
344
+ "phase": {
345
+ "$ref": "#/$defs/DocPhase"
346
+ },
347
+ "children": {
348
+ "type": "array",
349
+ "items": {
350
+ "$ref": "#/$defs/DocEntry"
351
+ },
352
+ "description": "Nested child doc entries for grouping."
353
+ }
278
354
  },
279
- "required": ["kind", "text", "phase"],
355
+ "required": [
356
+ "kind",
357
+ "text",
358
+ "phase"
359
+ ],
280
360
  "additionalProperties": false
281
361
  },
282
362
  {
283
363
  "type": "object",
284
364
  "description": "Tag(s) for categorization.",
285
365
  "properties": {
286
- "kind": { "const": "tag" },
366
+ "kind": {
367
+ "const": "tag"
368
+ },
287
369
  "names": {
288
370
  "type": "array",
289
- "items": { "type": "string" }
371
+ "items": {
372
+ "type": "string"
373
+ }
374
+ },
375
+ "phase": {
376
+ "$ref": "#/$defs/DocPhase"
290
377
  },
291
- "phase": { "$ref": "#/$defs/DocPhase" },
292
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
378
+ "children": {
379
+ "type": "array",
380
+ "items": {
381
+ "$ref": "#/$defs/DocEntry"
382
+ },
383
+ "description": "Nested child doc entries for grouping."
384
+ }
293
385
  },
294
- "required": ["kind", "names", "phase"],
386
+ "required": [
387
+ "kind",
388
+ "names",
389
+ "phase"
390
+ ],
295
391
  "additionalProperties": false
296
392
  },
297
393
  {
298
394
  "type": "object",
299
395
  "description": "Key-value pair.",
300
396
  "properties": {
301
- "kind": { "const": "kv" },
302
- "label": { "type": "string" },
397
+ "kind": {
398
+ "const": "kv"
399
+ },
400
+ "label": {
401
+ "type": "string"
402
+ },
303
403
  "value": {},
304
- "phase": { "$ref": "#/$defs/DocPhase" },
305
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
404
+ "phase": {
405
+ "$ref": "#/$defs/DocPhase"
406
+ },
407
+ "children": {
408
+ "type": "array",
409
+ "items": {
410
+ "$ref": "#/$defs/DocEntry"
411
+ },
412
+ "description": "Nested child doc entries for grouping."
413
+ }
306
414
  },
307
- "required": ["kind", "label", "value", "phase"],
415
+ "required": [
416
+ "kind",
417
+ "label",
418
+ "value",
419
+ "phase"
420
+ ],
308
421
  "additionalProperties": false
309
422
  },
310
423
  {
311
424
  "type": "object",
312
425
  "description": "Code block with optional language.",
313
426
  "properties": {
314
- "kind": { "const": "code" },
315
- "label": { "type": "string" },
316
- "content": { "type": "string" },
317
- "lang": { "type": "string" },
318
- "phase": { "$ref": "#/$defs/DocPhase" },
319
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
427
+ "kind": {
428
+ "const": "code"
429
+ },
430
+ "label": {
431
+ "type": "string"
432
+ },
433
+ "content": {
434
+ "type": "string"
435
+ },
436
+ "lang": {
437
+ "type": "string"
438
+ },
439
+ "phase": {
440
+ "$ref": "#/$defs/DocPhase"
441
+ },
442
+ "children": {
443
+ "type": "array",
444
+ "items": {
445
+ "$ref": "#/$defs/DocEntry"
446
+ },
447
+ "description": "Nested child doc entries for grouping."
448
+ }
320
449
  },
321
- "required": ["kind", "label", "content", "phase"],
450
+ "required": [
451
+ "kind",
452
+ "label",
453
+ "content",
454
+ "phase"
455
+ ],
322
456
  "additionalProperties": false
323
457
  },
324
458
  {
325
459
  "type": "object",
326
460
  "description": "Markdown table.",
327
461
  "properties": {
328
- "kind": { "const": "table" },
329
- "label": { "type": "string" },
462
+ "kind": {
463
+ "const": "table"
464
+ },
465
+ "label": {
466
+ "type": "string"
467
+ },
330
468
  "columns": {
331
469
  "type": "array",
332
- "items": { "type": "string" }
470
+ "items": {
471
+ "type": "string"
472
+ }
333
473
  },
334
474
  "rows": {
335
475
  "type": "array",
336
476
  "items": {
337
477
  "type": "array",
338
- "items": { "type": "string" }
478
+ "items": {
479
+ "type": "string"
480
+ }
339
481
  }
340
482
  },
341
- "phase": { "$ref": "#/$defs/DocPhase" },
342
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
483
+ "phase": {
484
+ "$ref": "#/$defs/DocPhase"
485
+ },
486
+ "children": {
487
+ "type": "array",
488
+ "items": {
489
+ "$ref": "#/$defs/DocEntry"
490
+ },
491
+ "description": "Nested child doc entries for grouping."
492
+ }
343
493
  },
344
- "required": ["kind", "label", "columns", "rows", "phase"],
494
+ "required": [
495
+ "kind",
496
+ "label",
497
+ "columns",
498
+ "rows",
499
+ "phase"
500
+ ],
345
501
  "additionalProperties": false
346
502
  },
347
503
  {
348
504
  "type": "object",
349
505
  "description": "Hyperlink.",
350
506
  "properties": {
351
- "kind": { "const": "link" },
352
- "label": { "type": "string" },
353
- "url": { "type": "string" },
354
- "phase": { "$ref": "#/$defs/DocPhase" },
355
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
507
+ "kind": {
508
+ "const": "link"
509
+ },
510
+ "label": {
511
+ "type": "string"
512
+ },
513
+ "url": {
514
+ "type": "string"
515
+ },
516
+ "phase": {
517
+ "$ref": "#/$defs/DocPhase"
518
+ },
519
+ "children": {
520
+ "type": "array",
521
+ "items": {
522
+ "$ref": "#/$defs/DocEntry"
523
+ },
524
+ "description": "Nested child doc entries for grouping."
525
+ }
356
526
  },
357
- "required": ["kind", "label", "url", "phase"],
527
+ "required": [
528
+ "kind",
529
+ "label",
530
+ "url",
531
+ "phase"
532
+ ],
358
533
  "additionalProperties": false
359
534
  },
360
535
  {
361
536
  "type": "object",
362
537
  "description": "Titled section with markdown content.",
363
538
  "properties": {
364
- "kind": { "const": "section" },
365
- "title": { "type": "string" },
366
- "markdown": { "type": "string" },
367
- "phase": { "$ref": "#/$defs/DocPhase" },
368
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
539
+ "kind": {
540
+ "const": "section"
541
+ },
542
+ "title": {
543
+ "type": "string"
544
+ },
545
+ "markdown": {
546
+ "type": "string"
547
+ },
548
+ "phase": {
549
+ "$ref": "#/$defs/DocPhase"
550
+ },
551
+ "children": {
552
+ "type": "array",
553
+ "items": {
554
+ "$ref": "#/$defs/DocEntry"
555
+ },
556
+ "description": "Nested child doc entries for grouping."
557
+ }
369
558
  },
370
- "required": ["kind", "title", "markdown", "phase"],
559
+ "required": [
560
+ "kind",
561
+ "title",
562
+ "markdown",
563
+ "phase"
564
+ ],
371
565
  "additionalProperties": false
372
566
  },
373
567
  {
374
568
  "type": "object",
375
569
  "description": "Mermaid diagram.",
376
570
  "properties": {
377
- "kind": { "const": "mermaid" },
378
- "code": { "type": "string" },
379
- "title": { "type": "string" },
380
- "phase": { "$ref": "#/$defs/DocPhase" },
381
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
571
+ "kind": {
572
+ "const": "mermaid"
573
+ },
574
+ "code": {
575
+ "type": "string"
576
+ },
577
+ "title": {
578
+ "type": "string"
579
+ },
580
+ "phase": {
581
+ "$ref": "#/$defs/DocPhase"
582
+ },
583
+ "children": {
584
+ "type": "array",
585
+ "items": {
586
+ "$ref": "#/$defs/DocEntry"
587
+ },
588
+ "description": "Nested child doc entries for grouping."
589
+ }
382
590
  },
383
- "required": ["kind", "code", "phase"],
591
+ "required": [
592
+ "kind",
593
+ "code",
594
+ "phase"
595
+ ],
384
596
  "additionalProperties": false
385
597
  },
386
598
  {
387
599
  "type": "object",
388
600
  "description": "Screenshot reference.",
389
601
  "properties": {
390
- "kind": { "const": "screenshot" },
391
- "path": { "type": "string" },
392
- "alt": { "type": "string" },
393
- "phase": { "$ref": "#/$defs/DocPhase" },
394
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
602
+ "kind": {
603
+ "const": "screenshot"
604
+ },
605
+ "path": {
606
+ "type": "string"
607
+ },
608
+ "alt": {
609
+ "type": "string"
610
+ },
611
+ "phase": {
612
+ "$ref": "#/$defs/DocPhase"
613
+ },
614
+ "children": {
615
+ "type": "array",
616
+ "items": {
617
+ "$ref": "#/$defs/DocEntry"
618
+ },
619
+ "description": "Nested child doc entries for grouping."
620
+ }
395
621
  },
396
- "required": ["kind", "path", "phase"],
622
+ "required": [
623
+ "kind",
624
+ "path",
625
+ "phase"
626
+ ],
397
627
  "additionalProperties": false
398
628
  },
399
629
  {
400
630
  "type": "object",
401
631
  "description": "Video reference with optional caption and poster image.",
402
632
  "properties": {
403
- "kind": { "const": "video" },
404
- "path": { "type": "string" },
405
- "caption": { "type": "string" },
406
- "poster": { "type": "string" },
407
- "phase": { "$ref": "#/$defs/DocPhase" },
408
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
633
+ "kind": {
634
+ "const": "video"
635
+ },
636
+ "path": {
637
+ "type": "string"
638
+ },
639
+ "caption": {
640
+ "type": "string"
641
+ },
642
+ "poster": {
643
+ "type": "string"
644
+ },
645
+ "phase": {
646
+ "$ref": "#/$defs/DocPhase"
647
+ },
648
+ "children": {
649
+ "type": "array",
650
+ "items": {
651
+ "$ref": "#/$defs/DocEntry"
652
+ },
653
+ "description": "Nested child doc entries for grouping."
654
+ }
409
655
  },
410
- "required": ["kind", "path", "phase"],
656
+ "required": [
657
+ "kind",
658
+ "path",
659
+ "phase"
660
+ ],
411
661
  "additionalProperties": false
412
662
  },
413
663
  {
414
664
  "type": "object",
415
665
  "description": "Embedded HTML rendered in a sandboxed iframe. Exactly one of path/url/content.",
416
666
  "properties": {
417
- "kind": { "const": "html" },
418
- "path": { "type": "string", "description": "Local HTML file path (inlined into the report by default)." },
419
- "url": { "type": "string", "description": "Remote URL rendered via iframe src." },
420
- "content": { "type": "string", "description": "Inline HTML content rendered via iframe srcdoc." },
421
- "title": { "type": "string" },
422
- "height": { "oneOf": [{ "type": "number" }, { "type": "string" }], "description": "Iframe height: number px, string passed through (e.g. '60vh'). Default 400px." },
423
- "phase": { "$ref": "#/$defs/DocPhase" },
424
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
667
+ "kind": {
668
+ "const": "html"
669
+ },
670
+ "path": {
671
+ "type": "string",
672
+ "description": "Local HTML file path (inlined into the report by default)."
673
+ },
674
+ "url": {
675
+ "type": "string",
676
+ "description": "Remote URL rendered via iframe src."
677
+ },
678
+ "content": {
679
+ "type": "string",
680
+ "description": "Inline HTML content rendered via iframe srcdoc."
681
+ },
682
+ "title": {
683
+ "type": "string"
684
+ },
685
+ "height": {
686
+ "oneOf": [
687
+ {
688
+ "type": "number"
689
+ },
690
+ {
691
+ "type": "string"
692
+ }
693
+ ],
694
+ "description": "Iframe height: number \u2192 px, string passed through (e.g. '60vh'). Default 400px."
695
+ },
696
+ "phase": {
697
+ "$ref": "#/$defs/DocPhase"
698
+ },
699
+ "children": {
700
+ "type": "array",
701
+ "items": {
702
+ "$ref": "#/$defs/DocEntry"
703
+ },
704
+ "description": "Nested child doc entries for grouping."
705
+ }
425
706
  },
426
- "required": ["kind", "phase"],
707
+ "required": [
708
+ "kind",
709
+ "phase"
710
+ ],
427
711
  "oneOf": [
428
- { "required": ["path"] },
429
- { "required": ["url"] },
430
- { "required": ["content"] }
712
+ {
713
+ "required": [
714
+ "path"
715
+ ]
716
+ },
717
+ {
718
+ "required": [
719
+ "url"
720
+ ]
721
+ },
722
+ {
723
+ "required": [
724
+ "content"
725
+ ]
726
+ }
431
727
  ],
432
728
  "additionalProperties": false
433
729
  },
@@ -435,13 +731,30 @@
435
731
  "type": "object",
436
732
  "description": "Custom documentation entry with arbitrary data.",
437
733
  "properties": {
438
- "kind": { "const": "custom" },
439
- "type": { "type": "string" },
734
+ "kind": {
735
+ "const": "custom"
736
+ },
737
+ "type": {
738
+ "type": "string"
739
+ },
440
740
  "data": {},
441
- "phase": { "$ref": "#/$defs/DocPhase" },
442
- "children": { "type": "array", "items": { "$ref": "#/$defs/DocEntry" }, "description": "Nested child doc entries for grouping." }
741
+ "phase": {
742
+ "$ref": "#/$defs/DocPhase"
743
+ },
744
+ "children": {
745
+ "type": "array",
746
+ "items": {
747
+ "$ref": "#/$defs/DocEntry"
748
+ },
749
+ "description": "Nested child doc entries for grouping."
750
+ }
443
751
  },
444
- "required": ["kind", "type", "data", "phase"],
752
+ "required": [
753
+ "kind",
754
+ "type",
755
+ "data",
756
+ "phase"
757
+ ],
445
758
  "additionalProperties": false
446
759
  }
447
760
  ]
@@ -468,7 +781,10 @@
468
781
  },
469
782
  "encoding": {
470
783
  "type": "string",
471
- "enum": ["BASE64", "IDENTITY"],
784
+ "enum": [
785
+ "BASE64",
786
+ "IDENTITY"
787
+ ],
472
788
  "description": "Content encoding for an inline body."
473
789
  },
474
790
  "charset": {
@@ -494,12 +810,15 @@
494
810
  "description": "Stable step ID this attachment belongs to (preferred over stepIndex)."
495
811
  }
496
812
  },
497
- "required": ["name", "mediaType"],
813
+ "required": [
814
+ "name",
815
+ "mediaType"
816
+ ],
498
817
  "additionalProperties": false
499
818
  },
500
819
  "RawStepEvent": {
501
820
  "type": "object",
502
- "description": "Step-level execution event from the framework. Optional most frameworks don't provide step-level data.",
821
+ "description": "Step-level execution event from the framework. Optional \u2014 most frameworks don't provide step-level data.",
503
822
  "properties": {
504
823
  "index": {
505
824
  "type": "integer",
@@ -562,7 +881,9 @@
562
881
  "description": "Pull/merge request number."
563
882
  }
564
883
  },
565
- "required": ["name"],
884
+ "required": [
885
+ "name"
886
+ ],
566
887
  "additionalProperties": false
567
888
  }
568
889
  }