Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/core/extension/gdextension_interface.schema.json
20987 views
1
{
2
"$schema": "https://json-schema.org/draft/2020-12/schema",
3
"$id": "https://godotengine.org/gdextension_interface.schema.json",
4
"title": "GDExtension Interface",
5
"type": "object",
6
"properties": {
7
"_copyright": {
8
"type": "array",
9
"items": {
10
"type": "string"
11
}
12
},
13
"format_version": {
14
"type": "number",
15
"const": 1
16
},
17
"$schema": {
18
"type": "string",
19
"const": "./gdextension_interface.schema.json"
20
},
21
"types": {
22
"type": "array",
23
"items": {
24
"type": "object",
25
"properties": {
26
"name": {
27
"type": "string"
28
},
29
"kind": {
30
"type": "string",
31
"enum": ["enum", "handle", "alias", "struct", "function"]
32
},
33
"description": {
34
"type": "array",
35
"items": {
36
"type": "string"
37
}
38
},
39
"deprecated": {
40
"type": "object",
41
"properties": {
42
"since": {
43
"type": "string",
44
"pattern": "4\\.[0-9]+"
45
},
46
"message": {
47
"type": "string",
48
"pattern": "\\.$"
49
},
50
"replace_with": {
51
"type": "string"
52
}
53
},
54
"required": ["since"],
55
"additionalProperties": false
56
}
57
},
58
"required": [
59
"name",
60
"kind"
61
],
62
"unevaluatedProperties": false,
63
"allOf": [
64
{
65
"if": {
66
"properties": {
67
"kind": { "const": "enum" }
68
}
69
},
70
"then": {
71
"properties": {
72
"is_bitfield": {
73
"type": "boolean"
74
},
75
"values": {
76
"type": "array",
77
"items": {
78
"type": "object",
79
"properties": {
80
"name": {
81
"type": "string"
82
},
83
"value": {
84
"type": "number"
85
},
86
"description": {
87
"type": "array",
88
"items": {
89
"type": "string"
90
}
91
}
92
},
93
"required": [ "name", "value" ],
94
"additionalProperties": false
95
}
96
}
97
},
98
"required": ["name", "kind", "values"]
99
}
100
},
101
{
102
"if": {
103
"properties": {
104
"kind": { "const": "handle" }
105
}
106
},
107
"then": {
108
"properties": {
109
"parent": {
110
"type": "string"
111
},
112
"is_const": {
113
"type": "boolean"
114
},
115
"is_uninitialized": {
116
"type": "boolean"
117
}
118
}
119
}
120
},
121
{
122
"if": {
123
"properties": {
124
"kind": { "const": "alias" }
125
}
126
},
127
"then": {
128
"properties": {
129
"type": {
130
"type": "string"
131
}
132
},
133
"required": ["name", "kind", "type"]
134
}
135
},
136
{
137
"if": {
138
"properties": {
139
"kind": { "const": "struct" }
140
}
141
},
142
"then": {
143
"properties": {
144
"members": {
145
"type": "array",
146
"items": {
147
"type": "object",
148
"properties": {
149
"name": {
150
"type": "string"
151
},
152
"type": {
153
"type": "string"
154
},
155
"description": {
156
"type": "array",
157
"items": {
158
"type": "string"
159
}
160
}
161
},
162
"required": ["name", "type"],
163
"additionalProperties": false
164
}
165
}
166
},
167
"required": ["name", "kind", "members"]
168
}
169
},
170
{
171
"if": {
172
"properties": {
173
"kind": { "const": "function" }
174
}
175
},
176
"then": {
177
"properties": {
178
"return_value": {
179
"type": "object",
180
"properties": {
181
"type": {
182
"type": "string"
183
},
184
"description": {
185
"type": "array",
186
"items": {
187
"type": "string"
188
}
189
}
190
},
191
"required": ["type"],
192
"additionalProperties": false
193
},
194
"arguments": {
195
"type": "array",
196
"items": {
197
"type": "object",
198
"properties": {
199
"type": {
200
"type": "string"
201
},
202
"name": {
203
"type": "string"
204
},
205
"description": {
206
"type": "array",
207
"items": {
208
"type": "string"
209
}
210
}
211
},
212
"required": ["type"],
213
"additionalProperties": false
214
}
215
}
216
},
217
"required": ["name", "kind", "arguments"]
218
}
219
}
220
]
221
}
222
},
223
"interface": {
224
"type": "array",
225
"items": {
226
"type": "object",
227
"properties": {
228
"name": {
229
"type": "string"
230
},
231
"return_value": {
232
"type": "object",
233
"properties": {
234
"type": {
235
"type": "string"
236
},
237
"description": {
238
"type": "array",
239
"items": {
240
"type": "string"
241
}
242
}
243
},
244
"required": ["type"],
245
"additionalProperties": false
246
},
247
"arguments": {
248
"type": "array",
249
"items": {
250
"type": "object",
251
"properties": {
252
"type": {
253
"type": "string"
254
},
255
"name": {
256
"type": "string"
257
},
258
"description": {
259
"type": "array",
260
"items": {
261
"type": "string"
262
}
263
}
264
},
265
"required": ["type"],
266
"additionalProperties": false
267
}
268
},
269
"description": {
270
"type": "array",
271
"items": {
272
"type": "string"
273
}
274
},
275
"since": {
276
"type": "string",
277
"pattern": "4\\.[0-9]+"
278
},
279
"deprecated": {
280
"type": "object",
281
"properties": {
282
"since": {
283
"type": "string",
284
"pattern": "4\\.[0-9]+"
285
},
286
"message": {
287
"type": "string",
288
"pattern": "\\.$"
289
},
290
"replace_with": {
291
"type": "string"
292
}
293
},
294
"required": ["since"],
295
"additionalProperties": false
296
},
297
"see": {
298
"type": "array",
299
"items": {
300
"type": "string"
301
}
302
},
303
"legacy_type_name": {
304
"type": "string"
305
}
306
},
307
"required": [
308
"name",
309
"arguments",
310
"description",
311
"since"
312
],
313
"additionalProperties": false
314
}
315
}
316
},
317
"required": [
318
"_copyright",
319
"$schema",
320
"format_version",
321
"types",
322
"interface"
323
],
324
"additionalProperties": false
325
}
326
327