@tiwater/office-mcp 0.14.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/office/README.md +10 -10
  2. package/office/contracts/docx_apply_font_policy.schema.json +73 -0
  3. package/office/contracts/docx_apply_toc_style_policy.schema.json +49 -0
  4. package/office/contracts/docx_collapse_trailing_empty_paragraphs.schema.json +26 -0
  5. package/office/contracts/docx_collapse_trailing_empty_section.schema.json +26 -0
  6. package/office/contracts/docx_compare.schema.json +19 -0
  7. package/office/contracts/docx_copy_table_range.schema.json +111 -0
  8. package/office/contracts/docx_delete_body_drawing_before_paragraph.schema.json +50 -0
  9. package/office/contracts/docx_delete_body_paragraph.schema.json +50 -0
  10. package/office/contracts/docx_delete_body_range.schema.json +65 -0
  11. package/office/contracts/docx_delete_comments.schema.json +48 -0
  12. package/office/contracts/docx_delete_table_rows.schema.json +57 -0
  13. package/office/contracts/docx_export_json.schema.json +20 -0
  14. package/office/contracts/docx_find_literal.schema.json +46 -0
  15. package/office/contracts/docx_freeze_fields.schema.json +26 -0
  16. package/office/contracts/docx_insert_body_image.schema.json +65 -0
  17. package/office/contracts/docx_insert_body_range.schema.json +62 -0
  18. package/office/contracts/docx_insert_table_columns.schema.json +61 -0
  19. package/office/contracts/docx_insert_table_rows.schema.json +130 -0
  20. package/office/contracts/docx_inspect.schema.json +20 -0
  21. package/office/contracts/docx_inspect_tables.schema.json +20 -0
  22. package/office/contracts/docx_list_objects.schema.json +42 -0
  23. package/office/contracts/docx_mark_fields_dirty.schema.json +26 -0
  24. package/office/contracts/docx_merge_table_cells.schema.json +80 -0
  25. package/office/contracts/docx_read_object.schema.json +24 -0
  26. package/office/contracts/docx_replace_body_text.schema.json +48 -0
  27. package/office/contracts/docx_replace_drawing_image.schema.json +56 -0
  28. package/office/contracts/docx_replace_header_text.schema.json +48 -0
  29. package/office/contracts/docx_replace_style_ids.schema.json +29 -0
  30. package/office/contracts/docx_replace_table_rows.schema.json +136 -0
  31. package/office/contracts/docx_sanitize_fields.schema.json +26 -0
  32. package/office/contracts/docx_set_anchored_text.schema.json +48 -0
  33. package/office/contracts/docx_set_body_paragraph_keep_lines.schema.json +49 -0
  34. package/office/contracts/docx_set_body_paragraph_keep_next.schema.json +49 -0
  35. package/office/contracts/docx_set_footer_paragraph_text.schema.json +55 -0
  36. package/office/contracts/docx_set_footer_run_text.schema.json +61 -0
  37. package/office/contracts/docx_set_footer_table_cell_run_text.schema.json +79 -0
  38. package/office/contracts/docx_set_footer_table_cell_text.schema.json +67 -0
  39. package/office/contracts/docx_set_header_paragraph_font_size.schema.json +56 -0
  40. package/office/contracts/docx_set_header_paragraph_text.schema.json +55 -0
  41. package/office/contracts/docx_set_header_run_text.schema.json +61 -0
  42. package/office/contracts/docx_set_header_table_cell_run_text.schema.json +79 -0
  43. package/office/contracts/docx_set_header_table_cell_text.schema.json +67 -0
  44. package/office/contracts/docx_set_paragraph_run_text.schema.json +55 -0
  45. package/office/contracts/docx_set_paragraph_text.schema.json +49 -0
  46. package/office/contracts/docx_set_table_cell_alignment.schema.json +62 -0
  47. package/office/contracts/docx_set_table_cell_font_size.schema.json +62 -0
  48. package/office/contracts/docx_set_table_cell_no_wrap.schema.json +61 -0
  49. package/office/contracts/docx_set_table_cell_rich_text.schema.json +96 -0
  50. package/office/contracts/docx_set_table_cell_run_text.schema.json +73 -0
  51. package/office/contracts/docx_set_table_cell_text.schema.json +64 -0
  52. package/office/contracts/docx_set_table_row_cant_split.schema.json +55 -0
  53. package/office/contracts/docx_set_table_row_height.schema.json +59 -0
  54. package/office/contracts/docx_set_table_row_keep_next.schema.json +55 -0
  55. package/office/contracts/docx_set_table_row_repeat_as_header.schema.json +119 -0
  56. package/office/contracts/docx_set_table_width.schema.json +60 -0
  57. package/office/contracts/docx_start_section.schema.json +52 -0
  58. package/office/contracts/docx_strip_direct_formatting.schema.json +19 -0
  59. package/office/contracts/docx_unmerge_table_column_cells.schema.json +63 -0
  60. package/office/contracts/docx_unmerge_table_row_cells.schema.json +57 -0
  61. package/office/contracts/docx_validate.schema.json +14 -0
  62. package/office/contracts/docx_validate_font_policy.schema.json +48 -0
  63. package/office/contracts/docx_validate_toc_style_policy.schema.json +24 -0
  64. package/office/contracts/office_render_pdf.schema.json +27 -0
  65. package/office/contracts/pptx_apply_format.schema.json +74 -0
  66. package/office/contracts/pptx_apply_template.schema.json +111 -0
  67. package/office/contracts/pptx_export_json.schema.json +20 -0
  68. package/office/contracts/pptx_inspect.schema.json +20 -0
  69. package/office/contracts/pptx_replace_picture_image.schema.json +57 -0
  70. package/office/contracts/pptx_set_shape_geometry.schema.json +76 -0
  71. package/office/contracts/pptx_validate.schema.json +14 -0
  72. package/office/contracts/tiwater-office-provider-contract-manifest-v1.json +955 -0
  73. package/office/contracts/xlsx_convert_legacy.schema.json +24 -0
  74. package/office/contracts/xlsx_copy_row.schema.json +59 -0
  75. package/office/contracts/xlsx_delete_rows.schema.json +56 -0
  76. package/office/contracts/xlsx_expand_section_rows.schema.json +70 -0
  77. package/office/contracts/xlsx_export_json.schema.json +24 -0
  78. package/office/contracts/xlsx_insert_rows.schema.json +62 -0
  79. package/office/contracts/xlsx_inspect.schema.json +20 -0
  80. package/office/contracts/xlsx_set_cell_number_format.schema.json +54 -0
  81. package/office/contracts/xlsx_set_cell_value.schema.json +78 -0
  82. package/office/contracts/xlsx_set_column_width.schema.json +55 -0
  83. package/office/contracts/xlsx_set_page_setup.schema.json +90 -0
  84. package/office/contracts/xlsx_set_print_area.schema.json +49 -0
  85. package/office/contracts/xlsx_set_range_values.schema.json +75 -0
  86. package/office/contracts/xlsx_set_rich_text_cell_value.schema.json +57 -0
  87. package/office/contracts/xlsx_set_row_page_breaks.schema.json +53 -0
  88. package/office/contracts/xlsx_validate.schema.json +14 -0
  89. package/office/index.mjs +188 -493
  90. package/package.json +2 -7
@@ -0,0 +1,96 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "properties": {
25
+ "tableIndex": {
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "maximum": 9007199254740991
29
+ },
30
+ "rowIndex": {
31
+ "type": "integer",
32
+ "minimum": 0,
33
+ "maximum": 9007199254740991
34
+ },
35
+ "cellIndex": {
36
+ "type": "integer",
37
+ "minimum": 0,
38
+ "maximum": 9007199254740991
39
+ },
40
+ "richText": {
41
+ "type": "array",
42
+ "items": {
43
+ "type": "object",
44
+ "properties": {
45
+ "text": {
46
+ "type": "string"
47
+ },
48
+ "color": {
49
+ "type": "string"
50
+ },
51
+ "underline": {
52
+ "type": "boolean"
53
+ },
54
+ "bold": {
55
+ "type": "boolean"
56
+ },
57
+ "fontName": {
58
+ "type": "string"
59
+ },
60
+ "italic": {
61
+ "type": "boolean"
62
+ },
63
+ "verticalAlignment": {
64
+ "type": "string",
65
+ "enum": [
66
+ "baseline",
67
+ "superscript",
68
+ "subscript"
69
+ ]
70
+ }
71
+ },
72
+ "required": [
73
+ "text"
74
+ ],
75
+ "additionalProperties": false
76
+ }
77
+ }
78
+ },
79
+ "required": [
80
+ "tableIndex",
81
+ "rowIndex",
82
+ "cellIndex",
83
+ "richText"
84
+ ],
85
+ "additionalProperties": false
86
+ }
87
+ }
88
+ },
89
+ "required": [
90
+ "input",
91
+ "output",
92
+ "receiptOutput",
93
+ "changes"
94
+ ],
95
+ "additionalProperties": false
96
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "properties": {
25
+ "tableIndex": {
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "maximum": 9007199254740991
29
+ },
30
+ "rowIndex": {
31
+ "type": "integer",
32
+ "minimum": 0,
33
+ "maximum": 9007199254740991
34
+ },
35
+ "cellIndex": {
36
+ "type": "integer",
37
+ "minimum": 0,
38
+ "maximum": 9007199254740991
39
+ },
40
+ "paragraphIndex": {
41
+ "type": "integer",
42
+ "minimum": 0,
43
+ "maximum": 9007199254740991
44
+ },
45
+ "runIndex": {
46
+ "type": "integer",
47
+ "minimum": 0,
48
+ "maximum": 9007199254740991
49
+ },
50
+ "text": {
51
+ "type": "string"
52
+ }
53
+ },
54
+ "required": [
55
+ "tableIndex",
56
+ "rowIndex",
57
+ "cellIndex",
58
+ "paragraphIndex",
59
+ "runIndex",
60
+ "text"
61
+ ],
62
+ "additionalProperties": false
63
+ }
64
+ }
65
+ },
66
+ "required": [
67
+ "input",
68
+ "output",
69
+ "receiptOutput",
70
+ "changes"
71
+ ],
72
+ "additionalProperties": false
73
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "properties": {
25
+ "tableIndex": {
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "maximum": 9007199254740991
29
+ },
30
+ "rowIndex": {
31
+ "type": "integer",
32
+ "minimum": 0,
33
+ "maximum": 9007199254740991
34
+ },
35
+ "cellIndex": {
36
+ "type": "integer",
37
+ "minimum": 0,
38
+ "maximum": 9007199254740991
39
+ },
40
+ "text": {
41
+ "type": "string"
42
+ },
43
+ "alignment": {
44
+ "type": "string"
45
+ }
46
+ },
47
+ "required": [
48
+ "tableIndex",
49
+ "rowIndex",
50
+ "cellIndex",
51
+ "text"
52
+ ],
53
+ "additionalProperties": false
54
+ }
55
+ }
56
+ },
57
+ "required": [
58
+ "input",
59
+ "output",
60
+ "receiptOutput",
61
+ "changes"
62
+ ],
63
+ "additionalProperties": false
64
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "properties": {
25
+ "tableIndex": {
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "maximum": 9007199254740991
29
+ },
30
+ "rowIndex": {
31
+ "type": "integer",
32
+ "minimum": 0,
33
+ "maximum": 9007199254740991
34
+ },
35
+ "cantSplit": {
36
+ "type": "boolean"
37
+ }
38
+ },
39
+ "required": [
40
+ "tableIndex",
41
+ "rowIndex",
42
+ "cantSplit"
43
+ ],
44
+ "additionalProperties": false
45
+ }
46
+ }
47
+ },
48
+ "required": [
49
+ "input",
50
+ "output",
51
+ "receiptOutput",
52
+ "changes"
53
+ ],
54
+ "additionalProperties": false
55
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "properties": {
25
+ "tableIndex": {
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "maximum": 9007199254740991
29
+ },
30
+ "rowIndex": {
31
+ "type": "integer",
32
+ "minimum": 0,
33
+ "maximum": 9007199254740991
34
+ },
35
+ "height": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ },
39
+ "heightRule": {
40
+ "type": "string"
41
+ }
42
+ },
43
+ "required": [
44
+ "tableIndex",
45
+ "rowIndex",
46
+ "height"
47
+ ],
48
+ "additionalProperties": false
49
+ }
50
+ }
51
+ },
52
+ "required": [
53
+ "input",
54
+ "output",
55
+ "receiptOutput",
56
+ "changes"
57
+ ],
58
+ "additionalProperties": false
59
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "properties": {
25
+ "tableIndex": {
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "maximum": 9007199254740991
29
+ },
30
+ "rowIndex": {
31
+ "type": "integer",
32
+ "minimum": 0,
33
+ "maximum": 9007199254740991
34
+ },
35
+ "keepNext": {
36
+ "type": "boolean"
37
+ }
38
+ },
39
+ "required": [
40
+ "tableIndex",
41
+ "rowIndex",
42
+ "keepNext"
43
+ ],
44
+ "additionalProperties": false
45
+ }
46
+ }
47
+ },
48
+ "required": [
49
+ "input",
50
+ "output",
51
+ "receiptOutput",
52
+ "changes"
53
+ ],
54
+ "additionalProperties": false
55
+ }
@@ -0,0 +1,119 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "anyOf": [
24
+ {
25
+ "type": "object",
26
+ "properties": {
27
+ "tableIndex": {
28
+ "type": "integer",
29
+ "minimum": 0,
30
+ "maximum": 9007199254740991
31
+ },
32
+ "rowIndex": {
33
+ "type": "integer",
34
+ "minimum": 0,
35
+ "maximum": 9007199254740991
36
+ },
37
+ "repeatAsHeader": {
38
+ "type": "boolean"
39
+ }
40
+ },
41
+ "required": [
42
+ "tableIndex",
43
+ "rowIndex",
44
+ "repeatAsHeader"
45
+ ],
46
+ "additionalProperties": false
47
+ },
48
+ {
49
+ "type": "object",
50
+ "properties": {
51
+ "tableIndex": {
52
+ "type": "integer",
53
+ "minimum": 0,
54
+ "maximum": 9007199254740991
55
+ },
56
+ "rowIndex": {
57
+ "type": "integer",
58
+ "minimum": 0,
59
+ "maximum": 9007199254740991
60
+ },
61
+ "repeatAsHeader": {
62
+ "type": "boolean"
63
+ },
64
+ "headerIndex": {
65
+ "type": "integer",
66
+ "minimum": 0,
67
+ "maximum": 9007199254740991
68
+ }
69
+ },
70
+ "required": [
71
+ "tableIndex",
72
+ "rowIndex",
73
+ "repeatAsHeader",
74
+ "headerIndex"
75
+ ],
76
+ "additionalProperties": false
77
+ },
78
+ {
79
+ "type": "object",
80
+ "properties": {
81
+ "tableIndex": {
82
+ "type": "integer",
83
+ "minimum": 0,
84
+ "maximum": 9007199254740991
85
+ },
86
+ "rowIndex": {
87
+ "type": "integer",
88
+ "minimum": 0,
89
+ "maximum": 9007199254740991
90
+ },
91
+ "repeatAsHeader": {
92
+ "type": "boolean"
93
+ },
94
+ "footerIndex": {
95
+ "type": "integer",
96
+ "minimum": 0,
97
+ "maximum": 9007199254740991
98
+ }
99
+ },
100
+ "required": [
101
+ "tableIndex",
102
+ "rowIndex",
103
+ "repeatAsHeader",
104
+ "footerIndex"
105
+ ],
106
+ "additionalProperties": false
107
+ }
108
+ ]
109
+ }
110
+ }
111
+ },
112
+ "required": [
113
+ "input",
114
+ "output",
115
+ "receiptOutput",
116
+ "changes"
117
+ ],
118
+ "additionalProperties": false
119
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "properties": {
25
+ "tableIndex": {
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "maximum": 9007199254740991
29
+ },
30
+ "width": {
31
+ "type": "string",
32
+ "minLength": 1
33
+ },
34
+ "widthType": {
35
+ "type": "string",
36
+ "enum": [
37
+ "pct",
38
+ "dxa",
39
+ "auto",
40
+ "nil"
41
+ ]
42
+ }
43
+ },
44
+ "required": [
45
+ "tableIndex",
46
+ "width",
47
+ "widthType"
48
+ ],
49
+ "additionalProperties": false
50
+ }
51
+ }
52
+ },
53
+ "required": [
54
+ "input",
55
+ "output",
56
+ "receiptOutput",
57
+ "changes"
58
+ ],
59
+ "additionalProperties": false
60
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "description": "New document output path. Existing files are never overwritten."
13
+ },
14
+ "receiptOutput": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "New JSON receipt path. Existing files are never overwritten."
18
+ },
19
+ "changes": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "properties": {
25
+ "findText": {
26
+ "type": "string",
27
+ "minLength": 1
28
+ },
29
+ "orientation": {
30
+ "type": "string",
31
+ "enum": [
32
+ "portrait",
33
+ "landscape"
34
+ ]
35
+ }
36
+ },
37
+ "required": [
38
+ "findText",
39
+ "orientation"
40
+ ],
41
+ "additionalProperties": false
42
+ }
43
+ }
44
+ },
45
+ "required": [
46
+ "input",
47
+ "output",
48
+ "receiptOutput",
49
+ "changes"
50
+ ],
51
+ "additionalProperties": false
52
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "output": {
10
+ "type": "string",
11
+ "minLength": 1
12
+ }
13
+ },
14
+ "required": [
15
+ "input",
16
+ "output"
17
+ ],
18
+ "additionalProperties": false
19
+ }