@defold-typescript/types 0.40.0 → 0.41.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 (224) hide show
  1. package/api-availability.json +3963 -772
  2. package/api-migrations.json +27 -0
  3. package/api-signatures.json +18069 -10240
  4. package/api-targets.json +448 -11
  5. package/examples/translations.json +560 -89
  6. package/fixtures/messages_doc.json +96 -0
  7. package/generated/b2d.d.ts +680 -4
  8. package/generated/b2d_body.d.ts +29 -103
  9. package/generated/b2d_chain.d.ts +5 -6
  10. package/generated/b2d_fixture.d.ts +34 -38
  11. package/generated/b2d_joint.d.ts +503 -25
  12. package/generated/b2d_shape.d.ts +183 -20
  13. package/generated/b2d_world.d.ts +57 -63
  14. package/generated/buffer.d.ts +16 -15
  15. package/generated/builtin-messages.d.ts +7 -1
  16. package/generated/bullet3d.d.ts +91 -0
  17. package/generated/bullet3d_collision_object.d.ts +433 -0
  18. package/generated/bullet3d_constraint.d.ts +818 -0
  19. package/generated/bullet3d_rigid_body.d.ts +429 -0
  20. package/generated/bullet3d_shape.d.ts +123 -0
  21. package/generated/bullet3d_world.d.ts +492 -0
  22. package/generated/camera.d.ts +29 -32
  23. package/generated/collectionfactory.d.ts +15 -18
  24. package/generated/collectionproxy.d.ts +22 -6
  25. package/generated/compute.d.ts +12 -238
  26. package/generated/crash.d.ts +24 -10
  27. package/generated/editor-vm/http.d.ts +90 -7
  28. package/generated/editor-vm/image.d.ts +7 -7
  29. package/generated/editor-vm/json.d.ts +11 -0
  30. package/generated/editor-vm/localization.d.ts +7 -7
  31. package/generated/editor-vm/tilemap_tiles.d.ts +56 -10
  32. package/generated/editor-vm/zip.d.ts +28 -0
  33. package/generated/editor.d.ts +1496 -430
  34. package/generated/factory.d.ts +21 -25
  35. package/generated/font.d.ts +64 -22
  36. package/generated/go.d.ts +235 -182
  37. package/generated/graphics.d.ts +335 -97
  38. package/generated/gui.d.ts +240 -471
  39. package/generated/html5.d.ts +2 -2
  40. package/generated/http.d.ts +28 -35
  41. package/generated/image.d.ts +105 -72
  42. package/generated/json.d.ts +34 -16
  43. package/generated/kinds/gui-script.d.ts +7 -0
  44. package/generated/kinds/render-script.d.ts +7 -0
  45. package/generated/kinds/script.d.ts +7 -0
  46. package/generated/label.d.ts +77 -7
  47. package/generated/liveupdate.d.ts +13 -10
  48. package/generated/material.d.ts +312 -360
  49. package/generated/model.d.ts +40 -39
  50. package/generated/particlefx.d.ts +19 -28
  51. package/generated/physics.d.ts +365 -133
  52. package/generated/profiler.d.ts +13 -23
  53. package/generated/render.d.ts +237 -297
  54. package/generated/resource.d.ts +664 -583
  55. package/generated/socket.d.ts +120 -133
  56. package/generated/sound.d.ts +62 -31
  57. package/generated/sprite.d.ts +31 -17
  58. package/generated/sys.d.ts +234 -190
  59. package/generated/tilemap.d.ts +21 -16
  60. package/generated/timer.d.ts +34 -21
  61. package/generated/versions/defold-1.12.4/b2d_body.d.ts +0 -7
  62. package/generated/versions/defold-1.12.4/buffer.d.ts +1 -3
  63. package/generated/versions/defold-1.12.4/camera.d.ts +21 -21
  64. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +9 -9
  65. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +2 -2
  66. package/generated/versions/defold-1.12.4/crash.d.ts +2 -2
  67. package/generated/versions/defold-1.12.4/factory.d.ts +15 -16
  68. package/generated/versions/defold-1.12.4/go.d.ts +6 -12
  69. package/generated/versions/defold-1.12.4/gui.d.ts +77 -175
  70. package/generated/versions/defold-1.12.4/html5.d.ts +1 -1
  71. package/generated/versions/defold-1.12.4/http.d.ts +0 -13
  72. package/generated/versions/defold-1.12.4/image.d.ts +16 -33
  73. package/generated/versions/defold-1.12.4/index.d.ts +1 -0
  74. package/generated/versions/defold-1.12.4/json.d.ts +10 -6
  75. package/generated/versions/defold-1.12.4/label.d.ts +2 -3
  76. package/generated/versions/defold-1.12.4/liveupdate.d.ts +5 -3
  77. package/generated/versions/defold-1.12.4/model.d.ts +2 -10
  78. package/generated/versions/defold-1.12.4/particlefx.d.ts +2 -5
  79. package/generated/versions/defold-1.12.4/physics.d.ts +69 -67
  80. package/generated/versions/defold-1.12.4/profiler.d.ts +2 -5
  81. package/generated/versions/defold-1.12.4/render.d.ts +99 -128
  82. package/generated/versions/defold-1.12.4/resource.d.ts +120 -148
  83. package/generated/versions/defold-1.12.4/socket.d.ts +34 -60
  84. package/generated/versions/defold-1.12.4/sound.d.ts +8 -8
  85. package/generated/versions/defold-1.12.4/sprite.d.ts +15 -5
  86. package/generated/versions/defold-1.12.4/sys.d.ts +37 -71
  87. package/generated/versions/defold-1.12.4/tilemap.d.ts +18 -11
  88. package/generated/versions/defold-1.12.4/timer.d.ts +5 -3
  89. package/generated/versions/defold-1.12.4/vmath.d.ts +0 -21
  90. package/generated/versions/defold-1.12.4/window.d.ts +1 -16
  91. package/generated/versions/defold-1.13.0/b2d_body.d.ts +10 -55
  92. package/generated/versions/defold-1.13.0/b2d_fixture.d.ts +25 -25
  93. package/generated/versions/defold-1.13.0/b2d_shape.d.ts +169 -8
  94. package/generated/versions/defold-1.13.0/b2d_world.d.ts +16 -10
  95. package/generated/versions/defold-1.13.0/buffer.d.ts +1 -3
  96. package/generated/versions/defold-1.13.0/camera.d.ts +25 -25
  97. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +9 -9
  98. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +2 -2
  99. package/generated/versions/defold-1.13.0/compute.d.ts +0 -69
  100. package/generated/versions/defold-1.13.0/crash.d.ts +2 -2
  101. package/generated/versions/defold-1.13.0/editor-vm/tilemap_tiles.d.ts +3 -3
  102. package/generated/versions/defold-1.13.0/editor.d.ts +34 -24
  103. package/generated/versions/defold-1.13.0/factory.d.ts +15 -16
  104. package/generated/versions/defold-1.13.0/go.d.ts +6 -12
  105. package/generated/versions/defold-1.13.0/graphics.d.ts +73 -37
  106. package/generated/versions/defold-1.13.0/gui.d.ts +77 -175
  107. package/generated/versions/defold-1.13.0/html5.d.ts +1 -1
  108. package/generated/versions/defold-1.13.0/http.d.ts +0 -13
  109. package/generated/versions/defold-1.13.0/image.d.ts +16 -33
  110. package/generated/versions/defold-1.13.0/index.d.ts +1 -0
  111. package/generated/versions/defold-1.13.0/json.d.ts +10 -6
  112. package/generated/versions/defold-1.13.0/label.d.ts +2 -3
  113. package/generated/versions/defold-1.13.0/liveupdate.d.ts +7 -5
  114. package/generated/versions/defold-1.13.0/material.d.ts +68 -106
  115. package/generated/versions/defold-1.13.0/model.d.ts +2 -10
  116. package/generated/versions/defold-1.13.0/particlefx.d.ts +2 -5
  117. package/generated/versions/defold-1.13.0/physics.d.ts +69 -67
  118. package/generated/versions/defold-1.13.0/profiler.d.ts +2 -5
  119. package/generated/versions/defold-1.13.0/render.d.ts +99 -128
  120. package/generated/versions/defold-1.13.0/resource.d.ts +126 -150
  121. package/generated/versions/defold-1.13.0/socket.d.ts +34 -60
  122. package/generated/versions/defold-1.13.0/sound.d.ts +8 -8
  123. package/generated/versions/defold-1.13.0/sprite.d.ts +15 -5
  124. package/generated/versions/defold-1.13.0/sys.d.ts +37 -71
  125. package/generated/versions/defold-1.13.0/tilemap.d.ts +18 -11
  126. package/generated/versions/defold-1.13.0/timer.d.ts +5 -3
  127. package/generated/versions/defold-1.13.0/vmath.d.ts +0 -21
  128. package/generated/versions/defold-1.13.0/window.d.ts +1 -16
  129. package/generated/versions/defold-1.13.1/b2d.d.ts +33 -0
  130. package/generated/versions/defold-1.13.1/b2d_body.d.ts +636 -0
  131. package/generated/versions/defold-1.13.1/b2d_chain.d.ts +106 -0
  132. package/generated/versions/defold-1.13.1/b2d_fixture.d.ts +157 -0
  133. package/generated/versions/defold-1.13.1/b2d_joint.d.ts +823 -0
  134. package/generated/versions/defold-1.13.1/b2d_shape.d.ts +400 -0
  135. package/generated/versions/defold-1.13.1/b2d_world.d.ts +320 -0
  136. package/generated/versions/defold-1.13.1/buffer.d.ts +189 -0
  137. package/generated/versions/defold-1.13.1/camera.d.ts +303 -0
  138. package/generated/versions/defold-1.13.1/collectionfactory.d.ts +151 -0
  139. package/generated/versions/defold-1.13.1/collectionproxy.d.ts +93 -0
  140. package/generated/versions/defold-1.13.1/compute.d.ts +237 -0
  141. package/generated/versions/defold-1.13.1/crash.d.ts +143 -0
  142. package/generated/versions/defold-1.13.1/editor-vm/http.d.ts +56 -0
  143. package/generated/versions/defold-1.13.1/editor-vm/image.d.ts +48 -0
  144. package/generated/versions/defold-1.13.1/editor-vm/json.d.ts +10 -0
  145. package/generated/versions/defold-1.13.1/editor-vm/localization.d.ts +42 -0
  146. package/generated/versions/defold-1.13.1/editor-vm/tilemap_tiles.d.ts +80 -0
  147. package/generated/versions/defold-1.13.1/editor-vm/zip.d.ts +10 -0
  148. package/generated/versions/defold-1.13.1/editor-vm/zlib.d.ts +24 -0
  149. package/generated/versions/defold-1.13.1/editor.d.ts +1121 -0
  150. package/generated/versions/defold-1.13.1/factory.d.ts +124 -0
  151. package/generated/versions/defold-1.13.1/font.d.ts +81 -0
  152. package/generated/versions/defold-1.13.1/go.d.ts +1107 -0
  153. package/generated/versions/defold-1.13.1/graphics.d.ts +411 -0
  154. package/generated/versions/defold-1.13.1/gui.d.ts +2353 -0
  155. package/generated/versions/defold-1.13.1/html5.d.ts +55 -0
  156. package/generated/versions/defold-1.13.1/http.d.ts +77 -0
  157. package/generated/versions/defold-1.13.1/image.d.ts +131 -0
  158. package/generated/versions/defold-1.13.1/index.d.ts +57 -0
  159. package/generated/versions/defold-1.13.1/json.d.ts +80 -0
  160. package/generated/versions/defold-1.13.1/kinds/editor-script.d.ts +14 -0
  161. package/generated/versions/defold-1.13.1/label.d.ts +93 -0
  162. package/generated/versions/defold-1.13.1/liveupdate.d.ts +142 -0
  163. package/generated/versions/defold-1.13.1/material.d.ts +408 -0
  164. package/generated/versions/defold-1.13.1/model.d.ts +272 -0
  165. package/generated/versions/defold-1.13.1/msg.d.ts +10 -0
  166. package/generated/versions/defold-1.13.1/particlefx.d.ts +163 -0
  167. package/generated/versions/defold-1.13.1/physics.d.ts +559 -0
  168. package/generated/versions/defold-1.13.1/profiler.d.ts +235 -0
  169. package/generated/versions/defold-1.13.1/render.d.ts +1190 -0
  170. package/generated/versions/defold-1.13.1/resource.d.ts +1523 -0
  171. package/generated/versions/defold-1.13.1/socket.d.ts +784 -0
  172. package/generated/versions/defold-1.13.1/sound.d.ts +292 -0
  173. package/generated/versions/defold-1.13.1/sprite.d.ts +175 -0
  174. package/generated/versions/defold-1.13.1/sys.d.ts +678 -0
  175. package/generated/versions/defold-1.13.1/tilemap.d.ts +208 -0
  176. package/generated/versions/defold-1.13.1/timer.d.ts +125 -0
  177. package/generated/versions/defold-1.13.1/types.d.ts +61 -0
  178. package/generated/versions/defold-1.13.1/vmath.d.ts +774 -0
  179. package/generated/versions/defold-1.13.1/window.d.ts +183 -0
  180. package/generated/versions/defold-1.13.1/zlib.d.ts +41 -0
  181. package/generated/vmath.d.ts +1 -21
  182. package/generated/window.d.ts +71 -71
  183. package/identity-vocabulary.json +561 -0
  184. package/index.d.ts +7 -0
  185. package/package.json +13 -2
  186. package/scripts/example-store-io.ts +12 -1
  187. package/scripts/extension-goldens.ts +1 -0
  188. package/scripts/fidelity-baseline.json +146 -46
  189. package/scripts/generate-api-availability.ts +90 -12
  190. package/scripts/generate-api-signatures.ts +12 -2
  191. package/scripts/import-defold-release.ts +85 -24
  192. package/scripts/prose-constants.ts +77 -16
  193. package/scripts/regen.ts +391 -77
  194. package/scripts/shared-handle-methods.ts +53 -0
  195. package/scripts/signature-store-fs.ts +1 -0
  196. package/scripts/sync-api-docs.ts +16 -5
  197. package/src/api-availability.ts +0 -0
  198. package/src/api-doc.ts +201 -3
  199. package/src/api-identity.ts +252 -0
  200. package/src/core-types.ts +26 -3
  201. package/src/correction-pins.ts +49 -0
  202. package/src/doc-comment.ts +104 -11
  203. package/src/doc-corrections.ts +108 -0
  204. package/src/editor-vm-globals.d.ts +5 -2
  205. package/src/emit-dts.ts +2064 -281
  206. package/src/emit-messages.ts +52 -0
  207. package/src/example-store.ts +125 -14
  208. package/src/field-correction-coverage.ts +204 -0
  209. package/src/fnv1a.ts +16 -0
  210. package/src/go-overloads.d.ts +25 -6
  211. package/src/index-base-table.ts +145 -0
  212. package/src/index-slot-classifications.ts +588 -0
  213. package/src/index.ts +38 -5
  214. package/src/library-index-slot-classifications.ts +332 -0
  215. package/src/lifecycle.ts +61 -199
  216. package/src/luals-type-expr.ts +354 -0
  217. package/src/msg-overloads.d.ts +0 -1
  218. package/src/param-correction-provenance.ts +8 -11
  219. package/src/render-overloads.d.ts +0 -15
  220. package/src/return-correction-provenance.ts +58 -16
  221. package/src/sys-overloads.d.ts +48 -0
  222. package/src/vmath-overloads.d.ts +27 -1
  223. package/src/window-event-guard.d.ts +6 -9
  224. package/url-parameters.json +1 -2
@@ -0,0 +1,332 @@
1
+ import type { IndexSlotClassification } from "./index-slot-classifications";
2
+
3
+ // The class records the base the library itself counts from, which TypeScript
4
+ // passes through unchanged, exactly as `INDEX_SLOT_CLASSIFICATIONS` records
5
+ // Defold's.
6
+ type LibraryIndexSlotClassification = Pick<IndexSlotClassification, "class" | "evidence">;
7
+
8
+ const RIVE_LIST_INDEX =
9
+ "passes the index to rive::CommandQueue unchanged, which counts list entries from 0 (-1 appends)";
10
+
11
+ const SPINE_GUI_TRACK_PROSE: Readonly<Record<string, string>> = {
12
+ "gui.cancel_spine": "The track number to cancel (1-based)",
13
+ "gui.get_spine_animation": "The track number to get animation from (1-based)",
14
+ "gui.set_spine_cursor": "The track number to set cursor for (1-based)",
15
+ "gui.get_spine_cursor": "The track number to get cursor from (1-based)",
16
+ "gui.set_spine_playback_rate": "The track number to set playback rate for (1-based)",
17
+ "gui.get_spine_playback_rate": "The track number to get playback rate from (1-based)",
18
+ };
19
+
20
+ // Keyed `<page>/<element>:<param|return|field>:<slot>[:<field>]`, `<page>` being
21
+ // the library page key (`gooey`, `spine.gui`, `rive.cmd`), so a library slot
22
+ // never shares a key with an engine one (`spine.gui` documents `gui.*`). A class
23
+ // field is keyed `<page>/<Typedef>:field:<member>`, a callback argument as a
24
+ // field of its callback slot, and each positional value of an unnamed
25
+ // multi-value return as a field of that return (`cast:return::tile_x`). A
26
+ // typedef method is keyed by its bare name, so one key covers every class of the
27
+ // page that declares that method.
28
+ // `docs-site/app/lib/library-index-slot-gate.test.ts` reds on a scanned slot
29
+ // missing here and on an entry no library page declares.
30
+ export const LIBRARY_INDEX_SLOT_CLASSIFICATIONS: ReadonlyMap<
31
+ string,
32
+ LibraryIndexSlotClassification
33
+ > = new Map<string, LibraryIndexSlotClassification>([
34
+ [
35
+ "boom/z:param:index",
36
+ { class: "not-a-position", evidence: "a draw order: a bigger z draws on top" },
37
+ ],
38
+ [
39
+ "bridge/bridge.daily_rewards.get_current_day:param:on_success:day",
40
+ {
41
+ class: "native-0",
42
+ evidence: "Returns the 0-based index of the reward the player is currently on",
43
+ },
44
+ ],
45
+ [
46
+ "crazygames/crazygames.list_friends:param:page",
47
+ { class: "native-1", evidence: "Page number, starting at 1" },
48
+ ],
49
+ [
50
+ "decore/system:field:index",
51
+ {
52
+ class: "native-1",
53
+ evidence: "internal/ecs.lua:tiny_manageSystems sets systems[j].index = j",
54
+ },
55
+ ],
56
+ [
57
+ "druid/scroll_to_index:param:index",
58
+ {
59
+ class: "native-1",
60
+ evidence:
61
+ "scroll.lua:scroll_to_index clamps to 1 .. #points; data_list.lua:scroll_to_index hands it to grid:get_pos",
62
+ },
63
+ ],
64
+ [
65
+ "druid/get_pos:param:index",
66
+ {
67
+ class: "native-1",
68
+ evidence: "static_grid.lua:get_pos places index 1 at row 0, column 0",
69
+ },
70
+ ],
71
+ [
72
+ "druid/get_index_xy:return:",
73
+ {
74
+ class: "native-1",
75
+ evidence: "static_grid.lua:get_index_xy returns (col + 1) + row * in_row",
76
+ },
77
+ ],
78
+ [
79
+ "druid/get_index:return:",
80
+ {
81
+ class: "native-1",
82
+ evidence: "static_grid.lua:get_index returns get_index_xy's index",
83
+ },
84
+ ],
85
+ [
86
+ "druid/get_index_by_node:return:",
87
+ {
88
+ class: "native-1",
89
+ evidence: "static_grid.lua:get_index_by_node returns the node's key in the nodes array",
90
+ },
91
+ ],
92
+ [
93
+ "druid/add:param:index",
94
+ {
95
+ class: "native-1",
96
+ evidence:
97
+ "static_grid.lua:add and data_list.lua:add insert with helper.insert_with_shift, defaulting to the count + 1",
98
+ },
99
+ ],
100
+ [
101
+ "druid/remove:param:index",
102
+ {
103
+ class: "native-1",
104
+ evidence:
105
+ "static_grid.lua:remove and data_list.lua:remove call helper.remove_with_shift at index",
106
+ },
107
+ ],
108
+ ...["druid/init:param:create_function", "druid/new_data_list:param:create_function"].map(
109
+ (key): [string, LibraryIndexSlotClassification] => [
110
+ key,
111
+ {
112
+ class: "not-a-position",
113
+ evidence: "a callback; data_list.lua passes it the 1-based data index",
114
+ },
115
+ ],
116
+ ),
117
+ ...["cursor_index", "start_index", "end_index"].map(
118
+ (slot): [string, LibraryIndexSlotClassification] => [
119
+ `druid/select_cursor:param:${slot}`,
120
+ {
121
+ class: "native-0",
122
+ evidence:
123
+ "input.lua:select_cursor clamps to 0 .. utf8.len(value); 0 is before the first character",
124
+ },
125
+ ],
126
+ ),
127
+ ...["druid/druid_grid:field:first_index", "druid/druid_grid:field:last_index"].map(
128
+ (key): [string, LibraryIndexSlotClassification] => [
129
+ key,
130
+ {
131
+ class: "native-1",
132
+ evidence:
133
+ "static_grid.lua:_update_indexes takes the least and greatest key of the nodes array",
134
+ },
135
+ ],
136
+ ),
137
+ ...["druid/druid_data_list:field:top_index", "druid/druid_data_list:field:last_index"].map(
138
+ (key): [string, LibraryIndexSlotClassification] => [
139
+ key,
140
+ { class: "native-1", evidence: "data_list.lua:init starts both at 1, the first data index" },
141
+ ],
142
+ ),
143
+ [
144
+ "druid/set_node_index:param:node",
145
+ { class: "not-a-position", evidence: "the node to move; its prose reads `the index of`" },
146
+ ],
147
+ [
148
+ "druid/set_node_index:param:index",
149
+ {
150
+ class: "native-1",
151
+ evidence: "layout.lua:set_node_index calls table.insert(self.entities, index, node)",
152
+ },
153
+ ],
154
+ [
155
+ "event/is_subscribed:return:",
156
+ {
157
+ class: "not-a-position",
158
+ evidence:
159
+ "both unnamed returns share this key: a boolean, then the 1-based callback index (event.lua:is_subscribed); no note fits both",
160
+ },
161
+ ],
162
+ [
163
+ "gooey/set_focus:param:index",
164
+ {
165
+ class: "native-1",
166
+ evidence:
167
+ "gooey.lua:set_focus reads group.components[index]; focus moves over 1 .. #components",
168
+ },
169
+ ],
170
+ [
171
+ "imgui/imgui.set_mouse_button:param:index",
172
+ {
173
+ class: "native-0",
174
+ evidence: "extension_imgui.cpp:imgui_SetMouseButton writes io.MouseDown[index]",
175
+ },
176
+ ],
177
+ [
178
+ "imgui/imgui.table_set_column_index:param:column_index",
179
+ {
180
+ class: "native-0",
181
+ evidence:
182
+ "extension_imgui.cpp:imgui_TableSetColumnIndex passes it to ImGui::TableSetColumnIndex unchanged",
183
+ },
184
+ ],
185
+ ...["imgui.set_style_color", "imgui.push_style_color"].map(
186
+ (fn): [string, LibraryIndexSlotClassification] => [
187
+ `imgui/${fn}:param:color_index`,
188
+ { class: "not-a-position", evidence: "an `imgui.ImGuiCol_*` constant" },
189
+ ],
190
+ ),
191
+ ...[
192
+ "imgui/imgui.font_add_ttf_file:return:font_index",
193
+ "imgui/imgui.font_add_ttf_data:return:font_index",
194
+ "imgui/imgui.font_push:param:font_index",
195
+ ].map((key): [string, LibraryIndexSlotClassification] => [
196
+ key,
197
+ {
198
+ class: "native-0",
199
+ evidence:
200
+ "extension_imgui.cpp:imgui_StoreFont returns Size() - 1, and imgui_GetFont accepts 0 .. Size() - 1",
201
+ },
202
+ ]),
203
+ ...[
204
+ "node_repeat/NodeRepeatAnimation:field:current_frame",
205
+ "sprite_repeat/SpriteRepeatAnimation:field:current_frame",
206
+ ].map((key): [string, LibraryIndexSlotClassification] => [
207
+ key,
208
+ { class: "native-1", evidence: "The 1-based index of the frame shown next" },
209
+ ]),
210
+ [
211
+ "narrator/choose:param:index",
212
+ { class: "native-1", evidence: "story.lua:choose asserts index within 1 .. #choices" },
213
+ ],
214
+ [
215
+ "panthera/panthera_animation:field:animation_keys_index",
216
+ {
217
+ class: "native-1",
218
+ evidence: "panthera.lua:update_animation walks keys from animation_keys_index to #keys",
219
+ },
220
+ ],
221
+ ...[
222
+ ["referenceListViewModelInstance", "index"],
223
+ ["insertViewModelInstanceListViewModel", "index"],
224
+ ["swapViewModelInstanceListValues", "indexa"],
225
+ ["swapViewModelInstanceListValues", "indexb"],
226
+ ["removeViewModelInstanceListViewModelIndex", "index"],
227
+ ].map(([fn, slot]): [string, LibraryIndexSlotClassification] => [
228
+ `rive.cmd/rive.cmd.${fn}:param:${slot}`,
229
+ { class: "native-0", evidence: `script_rive_cmd.cpp:Script_${fn} ${RIVE_LIST_INDEX}` },
230
+ ]),
231
+ ...[
232
+ "get_bundle_list",
233
+ "get_bundle_list_in_group",
234
+ "get_games_list",
235
+ "get_games_group",
236
+ "get_game_keys_group",
237
+ "get_user_games",
238
+ "get_virtual_items",
239
+ "get_virtual_currency",
240
+ "get_virtual_currency_package",
241
+ "get_virtual_items_group",
242
+ "get_sellable_items",
243
+ "get_sellable_items_group",
244
+ "get_reward_chains_list",
245
+ ].map((fn): [string, LibraryIndexSlotClassification] => [
246
+ `shop/shop.${fn}:param:offset`,
247
+ { class: "native-0", evidence: "the count starts from 0" },
248
+ ]),
249
+ [
250
+ "spine/spine.play_anim:param:options:track",
251
+ {
252
+ class: "native-1",
253
+ evidence: "script_spine.cpp defaults track to 1; comp_spine_model.cpp plays on m_Track - 1",
254
+ },
255
+ ],
256
+ [
257
+ "spine/spine.cancel:param:options:track",
258
+ { class: "native-1", evidence: "comp_spine_model.cpp cancels on m_Track - 1" },
259
+ ],
260
+ [
261
+ "spine/spine.play_anim:param:callback_function:message:track",
262
+ { class: "native-1", evidence: "comp_spine_model.cpp sends entry->trackIndex + 1" },
263
+ ],
264
+ [
265
+ "spine.gui/gui.play_spine_anim:param:play_properties:track",
266
+ { class: "native-1", evidence: "The track number for the animation (1-based)" },
267
+ ],
268
+ [
269
+ "spine.gui/gui.play_spine_anim:param:callback_function:message:track",
270
+ { class: "native-1", evidence: "gui_node_spine.cpp sends entry->trackIndex + 1" },
271
+ ],
272
+ ...Object.entries(SPINE_GUI_TRACK_PROSE).map(
273
+ ([fn, evidence]): [string, LibraryIndexSlotClassification] => [
274
+ `spine.gui/${fn}:param:options:track`,
275
+ { class: "native-1", evidence },
276
+ ],
277
+ ),
278
+ [
279
+ "steam/steam.friends_get_friend_by_index:param:iFriend",
280
+ { class: "native-0", evidence: "Is a index of range [0, GetFriendCount())" },
281
+ ],
282
+ [
283
+ "steam/steam.matchmaking_get_lobby_by_index:param:index",
284
+ { class: "native-0", evidence: "from 0 to LobbyMatchList_t.m_nLobbiesMatching" },
285
+ ],
286
+ ...[
287
+ ["matchmaking_get_lobby_member_by_index", "steam_matchmaking.cpp", "GetLobbyMemberByIndex"],
288
+ ["matchmaking_get_lobby_data_by_index", "steam_matchmaking.cpp", "GetLobbyDataByIndex"],
289
+ [
290
+ "user_stats_get_downloaded_leaderboard_entry",
291
+ "steam_userstats.cpp",
292
+ "GetDownloadedLeaderboardEntry",
293
+ ],
294
+ ].map(([fn, file, call]): [string, LibraryIndexSlotClassification] => [
295
+ `steam/steam.${fn}:param:index`,
296
+ { class: "native-0", evidence: `${file} passes it to Steamworks ${call}, which counts from 0` },
297
+ ]),
298
+ [
299
+ "steam/steam.user_stats_get_achievement_name:param:index",
300
+ { class: "native-0", evidence: "Get achievement name iAchievement in [0,GetNumAchievements)" },
301
+ ],
302
+ [
303
+ "steam/steam.matchmaking_get_lobby_chat_entry:param:index",
304
+ { class: "not-a-position", evidence: "the `m_iChatID` a `LobbyChatMsg_t` callback carries" },
305
+ ],
306
+ [
307
+ "tile_raycast/cast:return:",
308
+ {
309
+ class: "not-a-position",
310
+ evidence:
311
+ "a tuple: `hit`, `tile_id`, `intersection_x`, `intersection_y` and `side` address nothing by position; `tile_x`, `tile_y` and `array_id` are keyed on their own",
312
+ },
313
+ ],
314
+ ...(["tile_x", "tile_y"] as const).map((value): [string, LibraryIndexSlotClassification] => [
315
+ `tile_raycast/cast:return::${value}`,
316
+ {
317
+ class: "native-1",
318
+ evidence:
319
+ "Tile coordinates and array indices are 1-based; set_at/get_at subtract 1 from them (tileraycast.cpp)",
320
+ },
321
+ ]),
322
+ [
323
+ "tile_raycast/cast:return::array_id",
324
+ { class: "native-1", evidence: "Tile coordinates and array indices are 1-based" },
325
+ ],
326
+ ...(["set_at", "get_at"] as const).flatMap((fn) =>
327
+ (["tile_x", "tile_y"] as const).map((slot): [string, LibraryIndexSlotClassification] => [
328
+ `tile_raycast/${fn}:param:${slot}`,
329
+ { class: "native-1", evidence: "tileraycast.cpp subtracts 1 from the checked coordinate" },
330
+ ]),
331
+ ),
332
+ ]);