Wrapper Generator Report
Generated by python3 scripts/api_wrapper_generator_report.py --markdown docs/contributing/wrapper-generator-report.md.
Draft wrapper output is written to build/wrapper-generator/drafts during local runs and is not committed.
Role
The wrapper generator turns Godot's extension_api.json into conservative Kotlin wrapper drafts. Its job is to scale API coverage without hand-writing thousands of MethodBind calls, while refusing shapes where Kanama has not defined ABI, ownership, or marshalling policy yet.
Generated drafts are not automatically promoted. A class only becomes public source after review, smoke coverage where practical, and reproducibility checks against the generator output. This keeps broad wrapper growth auditable instead of relying on one-off manual wrappers.
Summary
| Metric |
Count |
| API classes |
1036 |
| Classes with generated output |
845 |
| Classes with complete method generation |
761 |
| Methods generated |
15332/16822 (91.1%) |
| Methods skipped |
1490 |
| Properties generated |
4090/4162 (98.3%) |
| Signals generated |
503/503 (100.0%) |
Skip Categories
| Category |
Skipped Methods |
| Virtual/internal |
1437 |
| Other |
49 |
| Dictionary |
2 |
| Blocked object wrapper |
2 |
Missing Helper Shapes
These are the highest-leverage ptrcall helper shapes to add next, excluding broader data-type policy work.
Top Skip Reasons
| Reason |
Count |
internal/virtual callback methods are not emitted as public wrappers |
1437 |
root Object methods are exposed through the hand-shaped GodotObject policy |
49 |
by design: Dictionary->Dictionary passthrough via the generic Map<String, Any?> helper silently drops non-String keys; shape reverted in 27b06fe6 (editor-LSP only) |
2 |
ownership-sensitive RefCounted lifetime method is hand-shaped |
2 |
Complete Method Classes
These classes have every method covered by the conservative generator. Promotion remains a deliberate API review step.
| Class |
Methods |
Properties |
Signals |
| RenderingServer |
535/535 |
1/1 |
2/2 |
| DisplayServer |
287/287 |
0/0 |
1/1 |
| TextServer |
244/244 |
0/0 |
0/0 |
| Environment |
188/188 |
93/93 |
0/0 |
| PhysicsServer3D |
175/175 |
0/0 |
0/0 |
| NavigationServer3D |
154/154 |
0/0 |
3/3 |
| BaseMaterial3D |
154/154 |
131/131 |
0/0 |
| RichTextLabel |
138/138 |
30/30 |
4/4 |
| NavigationServer2D |
137/137 |
0/0 |
3/3 |
| RenderingDevice |
135/135 |
0/0 |
0/0 |
| Viewport |
130/130 |
50/50 |
2/2 |
| TreeItem |
125/125 |
4/4 |
0/0 |
| PhysicsServer2D |
119/119 |
0/0 |
0/0 |
| ParticleProcessMaterial |
116/116 |
124/124 |
1/1 |
| FontFile |
106/106 |
17/22 |
0/0 |
| PopupMenu |
102/102 |
14/14 |
4/4 |
| LineEdit |
97/97 |
36/36 |
4/4 |
| TileSet |
90/90 |
5/5 |
0/0 |
| CPUParticles3D |
90/90 |
77/77 |
1/1 |
| NavigationAgent3D |
86/86 |
33/33 |
6/6 |
| ItemList |
85/85 |
18/18 |
5/5 |
| Animation |
85/85 |
4/4 |
0/0 |
| SpringBoneSimulator3D |
83/83 |
3/3 |
0/0 |
| OS |
83/83 |
3/3 |
0/0 |
| NavigationAgent2D |
80/80 |
30/30 |
6/6 |
| Input |
77/77 |
5/5 |
1/1 |
| CPUParticles2D |
77/77 |
69/69 |
1/1 |
| Image |
76/76 |
0/1 |
0/0 |
| AccessibilityServer |
75/75 |
0/0 |
0/0 |
| Tree |
72/72 |
16/16 |
15/15 |
| Node3D |
71/71 |
17/17 |
1/1 |
| GLTFState |
71/71 |
31/31 |
0/0 |
| EditorInterface |
71/71 |
2/2 |
0/0 |
| Theme |
69/69 |
3/3 |
0/0 |
| NativeMenu |
69/69 |
0/0 |
0/0 |
| FileAccess |
68/68 |
1/1 |
0/0 |
| LookAtModifier3D |
63/63 |
30/30 |
0/0 |
| GPUParticles3D |
63/63 |
32/32 |
1/1 |
| TextParagraph |
62/62 |
13/13 |
0/0 |
| Label3D |
61/61 |
33/33 |
0/0 |
| TabBar |
60/60 |
14/14 |
8/8 |
| NavigationMesh |
58/58 |
25/26 |
0/0 |
| GPUParticles2D |
57/57 |
26/26 |
1/1 |
| AudioServer |
57/57 |
4/4 |
2/2 |
| Skeleton3D |
56/56 |
4/4 |
6/6 |
| GridMap |
56/56 |
13/13 |
2/2 |
| TileData |
54/54 |
11/11 |
1/1 |
| AnimationPlayer |
54/54 |
12/12 |
2/2 |
| Camera2D |
52/52 |
28/28 |
0/0 |
| TabContainer |
51/51 |
12/12 |
7/7 |
Near Ready Classes
| Class |
Methods |
Properties |
Signals |
Skips |
| Window |
133/134 (99.3%) |
41/41 |
16/16 |
1 |
| CanvasItem |
93/94 (98.9%) |
16/16 |
4/4 |
1 |
| RigidBody3D |
59/60 (98.3%) |
23/23 |
5/5 |
1 |
| RigidBody2D |
58/59 (98.3%) |
23/23 |
5/5 |
1 |
| GraphNode |
42/43 (97.7%) |
3/3 |
2/2 |
1 |
| TextEdit |
249/255 (97.6%) |
47/47 |
7/7 |
6 |
| AnimationMixer |
40/41 (97.6%) |
10/10 |
7/7 |
1 |
| CodeEdit |
114/117 (97.4%) |
22/22 |
5/5 |
3 |
| PhysicalBone3D |
37/38 (97.4%) |
16/16 |
0/0 |
1 |
| TileMap |
61/63 (96.8%) |
5/5 |
1/1 |
2 |
| Range |
23/24 (95.8%) |
10/10 |
2/2 |
1 |
| GraphEdit |
75/79 (94.9%) |
25/25 |
19/19 |
4 |
| TileMapLayer |
55/58 (94.8%) |
13/13 |
1/1 |
3 |
| EditorProperty |
35/37 (94.6%) |
12/12 |
13/13 |
2 |
| AStarGrid2D |
33/35 (94.3%) |
9/9 |
0/0 |
2 |
| CompositorEffect |
14/15 (93.3%) |
7/7 |
0/0 |
1 |
| Control |
181/195 (92.8%) |
61/63 |
10/10 |
14 |
| PrimitiveMesh |
12/13 (92.3%) |
5/5 |
0/0 |
1 |
| VisualInstance3D |
12/13 (92.3%) |
3/3 |
0/0 |
1 |
| BaseButton |
23/25 (92.0%) |
10/10 |
4/4 |
2 |
| CollisionObject3D |
32/35 (91.4%) |
6/6 |
3/3 |
3 |
| Node |
121/133 (91.0%) |
14/14 |
11/11 |
12 |
| GDScriptTextDocument |
19/21 (90.5%) |
0/0 |
0/0 |
2 |
| EditorDock |
27/30 (90.0%) |
12/12 |
2/2 |
3 |
| AStar2D |
25/28 (89.3%) |
1/1 |
0/0 |
3 |
| AStar3D |
25/28 (89.3%) |
1/1 |
0/0 |
3 |
| CollisionObject2D |
36/41 (87.8%) |
5/5 |
5/5 |
5 |
| Translation |
12/14 (85.7%) |
2/3 |
0/0 |
2 |
| SubViewportContainer |
6/7 (85.7%) |
3/3 |
0/0 |
1 |
| Resource |
22/26 (84.6%) |
4/4 |
2/2 |
4 |
| EditorResourcePicker |
10/12 (83.3%) |
4/4 |
2/2 |
2 |
| CameraFeed |
17/21 (81.0%) |
3/3 |
2/2 |
4 |
| EditorContextMenuPlugin |
4/5 (80.0%) |
0/0 |
0/0 |
1 |
Largest Generated Drafts
| Class |
Methods |
Properties |
Signals |
Skips |
| RenderingServer |
535/535 |
1/1 |
2/2 |
0 |
| DisplayServer |
287/287 |
0/0 |
1/1 |
0 |
| TextEdit |
249/255 |
47/47 |
7/7 |
6 |
| TextServer |
244/244 |
0/0 |
0/0 |
0 |
| Environment |
188/188 |
93/93 |
0/0 |
0 |
| Control |
181/195 |
61/63 |
10/10 |
14 |
| PhysicsServer3D |
175/175 |
0/0 |
0/0 |
0 |
| BaseMaterial3D |
154/154 |
131/131 |
0/0 |
0 |
| NavigationServer3D |
154/154 |
0/0 |
3/3 |
0 |
| RichTextLabel |
138/138 |
30/30 |
4/4 |
0 |
| NavigationServer2D |
137/137 |
0/0 |
3/3 |
0 |
| RenderingDevice |
135/135 |
0/0 |
0/0 |
0 |
| Window |
133/134 |
41/41 |
16/16 |
1 |
| Viewport |
130/130 |
50/50 |
2/2 |
0 |
| TreeItem |
125/125 |
4/4 |
0/0 |
0 |
| Node |
121/133 |
14/14 |
11/11 |
12 |
| PhysicsServer2D |
119/119 |
0/0 |
0/0 |
0 |
| ParticleProcessMaterial |
116/116 |
124/124 |
1/1 |
0 |
| CodeEdit |
114/117 |
22/22 |
5/5 |
3 |
| FontFile |
106/106 |
17/22 |
0/0 |
0 |