@maccesar/titools 5.2.0 → 5.2.1
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.
- package/CONTRIBUTING.md +69 -0
- package/README.md +80 -72
- package/agents/ti-pro.md +1 -1
- package/commands/ti-audit.md +2 -2
- package/docs/examples.md +91 -0
- package/docs/knowledge-index.md +57 -0
- package/lib/downloader.js +1 -1
- package/package.json +4 -2
- package/skills/purgetss/references/multi-density-images.md +1 -1
- package/skills/ti-admob-unified/SKILL.md +21 -7
- package/skills/ti-admob-unified/assets/example/app.js +229 -25
- package/skills/ti-admob-unified/assets/example/lib/ads.js +30 -2
- package/skills/ti-admob-unified/assets/example/library-usage.js +33 -1
- package/skills/ti-admob-unified/references/api-reference.md +39 -16
- package/skills/ti-admob-unified/references/banners.md +9 -9
- package/skills/ti-admob-unified/references/contributing.md +14 -9
- package/skills/ti-admob-unified/references/dependencies.md +31 -25
- package/skills/ti-admob-unified/references/fullscreen.md +43 -28
- package/skills/ti-admob-unified/references/game-monetization.md +138 -7
- package/skills/ti-admob-unified/references/getting-started.md +75 -31
- package/skills/ti-admob-unified/references/index.md +5 -2
- package/skills/ti-admob-unified/references/integration.md +8 -6
- package/skills/ti-admob-unified/references/library.md +41 -10
- package/skills/ti-admob-unified/references/mediation-parity.md +17 -0
- package/skills/ti-admob-unified/references/mediation.md +22 -9
- package/skills/ti-admob-unified/references/migration.md +11 -7
- package/skills/ti-admob-unified/references/module-changelog.md +41 -11
- package/skills/ti-admob-unified/references/privacy.md +35 -8
- package/skills/ti-admob-unified/references/production.md +67 -0
- package/skills/ti-admob-unified/references/rewarded-interstitial.md +101 -0
- package/skills/ti-admob-unified/references/roadmap.md +28 -31
- package/skills/ti-admob-unified/references/source-notes.md +51 -4
- package/skills/ti-admob-unified/references/source-snapshot.json +249 -45
- package/skills/ti-admob-unified/references/third-party-notices.md +4 -4
- package/skills/ti-game/SKILL.md +23 -6
- package/skills/ti-game/references/api.md +34 -30
- package/skills/ti-game/references/debugging-performance.md +18 -9
- package/skills/ti-game/references/examples.md +103 -20
- package/skills/ti-game/references/input.md +101 -0
- package/skills/ti-game/references/patterns.md +39 -15
- package/skills/ti-game/references/physics.md +80 -52
- package/skills/ti-game/references/project-setup.md +118 -56
- package/skills/ti-game/references/recipes-action.md +107 -8
- package/skills/ti-game/references/recipes-adventure-effects.md +41 -9
- package/skills/ti-game/references/roadmap.md +10 -3
- package/skills/ti-game/references/source-notes.md +81 -0
- package/skills/ti-game/references/tilemaps.md +12 -4
- package/skills/ti-synthengine/SKILL.md +81 -95
- package/skills/ti-synthengine/assets/example/README.md +84 -0
- package/skills/ti-synthengine/assets/example/app.js +1178 -0
- package/skills/ti-synthengine/assets/example/lib/sequenceOwner.js +83 -0
- package/skills/ti-synthengine/assets/example/lib/sequenceScore.js +25 -0
- package/skills/ti-synthengine/references/advanced-examples.md +174 -0
- package/skills/ti-synthengine/references/android-sim80-correction-evidence.zip +0 -0
- package/skills/ti-synthengine/references/android-sim80-correction.json +162 -0
- package/skills/ti-synthengine/references/api.md +434 -380
- package/skills/ti-synthengine/references/audio-engine.md +157 -230
- package/skills/ti-synthengine/references/bypass-physical-recheck-evidence.zip +0 -0
- package/skills/ti-synthengine/references/examples.md +123 -253
- package/skills/ti-synthengine/references/frontier-android-evidence.zip +0 -0
- package/skills/ti-synthengine/references/frontier-ipad-evidence.zip +0 -0
- package/skills/ti-synthengine/references/frontier-physical-validation.json +1918 -0
- package/skills/ti-synthengine/references/guide.md +188 -156
- package/skills/ti-synthengine/references/performance-review-evidence.zip +0 -0
- package/skills/ti-synthengine/references/performance-review.json +1146 -0
- package/skills/ti-synthengine/references/physical-validation.json +1457 -0
- package/skills/ti-synthengine/references/recipes-interaction.md +549 -0
- package/skills/ti-synthengine/references/recipes.md +423 -599
- package/skills/ti-synthengine/references/recommendations.md +63 -113
- package/skills/ti-synthengine/references/sound-design.md +134 -258
- package/skills/ti-synthengine/references/source-notes.md +93 -105
- package/skills/ti-synthengine/references/source-snapshot.json +379 -32
- package/skills/ti-synthengine/references/stats-performance.md +64 -20
- package/skills/ti-synthengine/references/studio-validation.json +6202 -0
- package/skills/ti-synthengine/references/troubleshooting.md +109 -121
- package/skills/ti-synthengine/references/unified-bypass-performance.json +22425 -0
- package/skills/ti-synthengine/references/unified-validation.json +314 -0
- package/AGENTS-VERCEL-RESEARCH.md +0 -175
|
@@ -1,29 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"module": "ti.admob.unified",
|
|
3
3
|
"version": "1.0.0",
|
|
4
|
-
"release_status": "
|
|
4
|
+
"release_status": "public 1.0.0",
|
|
5
5
|
"repository": "macCesar/ti.admob.unified",
|
|
6
|
-
"commit": "
|
|
7
|
-
"copied": "2026-10-
|
|
6
|
+
"commit": "034843299b2984253988e0ffccb9f6a1c91682c9",
|
|
7
|
+
"copied": "2026-10-24",
|
|
8
8
|
"files": [
|
|
9
9
|
{
|
|
10
10
|
"source": "documentation/fullscreen.md",
|
|
11
11
|
"destination": "references/fullscreen.md",
|
|
12
|
-
"source_sha256": "
|
|
13
|
-
"mirrored_sha256": "
|
|
12
|
+
"source_sha256": "ba3af8803a6bd44431468a68ab2b4b57f6f4fc893da723ff8b39ed5d37595ec9",
|
|
13
|
+
"mirrored_sha256": "64e6ad2a706f4f48371f6c51cd32b6a96a735b6147422000ee712e1b7fbdb279",
|
|
14
14
|
"links": [
|
|
15
15
|
{
|
|
16
16
|
"original": "../example/app.js",
|
|
17
17
|
"mirrored": "../assets/example/app.js"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"original": "rewarded-interstitial.md",
|
|
21
|
+
"mirrored": "rewarded-interstitial.md"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"link_fixes": [
|
|
25
|
+
{
|
|
26
|
+
"original_markdown": "Pass initial configuration to the factory. Later assignments to the five configuration properties affect the next request on both platforms. An already loaded ad keeps the configuration of its original request.",
|
|
27
|
+
"mirrored_markdown": "Pass initial configuration to the factory. Later assignments to `adUnitId`, `keywords`, `requestAgent` and `extras` affect the next request on both platforms; an already loaded ad keeps its original request configuration. `autoReload` is a live close policy: both native ports read its current value when the shown ad closes, so changing it while an ad is loaded or presented changes whether that close starts another load. It does not present another ad or retry a load/show failure.",
|
|
28
|
+
"reason": "Both native fullscreen dismissal callbacks read the current autoReload property; the four request-targeting options apply on the next load. Verified by the parallel native contract audit; official source unchanged."
|
|
18
29
|
}
|
|
19
30
|
]
|
|
20
31
|
},
|
|
21
32
|
{
|
|
22
33
|
"source": "documentation/mediation.md",
|
|
23
34
|
"destination": "references/mediation.md",
|
|
24
|
-
"source_sha256": "
|
|
25
|
-
"mirrored_sha256": "
|
|
35
|
+
"source_sha256": "b990727c53c33753970ae5875a29a617dcf3e713b81f0a0e54fe5ff847fdc17f",
|
|
36
|
+
"mirrored_sha256": "b0244e516af711574c62d517ab6dc04a816b250af3395cff5bf43ffbee45c03d",
|
|
26
37
|
"links": [
|
|
38
|
+
{
|
|
39
|
+
"original": "../DEPENDENCIES.md",
|
|
40
|
+
"mirrored": "dependencies.md"
|
|
41
|
+
},
|
|
27
42
|
{
|
|
28
43
|
"original": "../DEPENDENCIES.md",
|
|
29
44
|
"mirrored": "dependencies.md"
|
|
@@ -45,8 +60,8 @@
|
|
|
45
60
|
{
|
|
46
61
|
"source": "documentation/integration.md",
|
|
47
62
|
"destination": "references/integration.md",
|
|
48
|
-
"source_sha256": "
|
|
49
|
-
"mirrored_sha256": "
|
|
63
|
+
"source_sha256": "e56f555b0471dd1d60ee64d397e026431321e9b7eed6320a8ebf18c3116e6d8e",
|
|
64
|
+
"mirrored_sha256": "c49f8eaa727ef39d65350cddc6d6f29ff62a31f13ed4099b1fc61dad403d4c3e",
|
|
50
65
|
"links": [
|
|
51
66
|
{
|
|
52
67
|
"original": "../example/lib/ads.js",
|
|
@@ -83,14 +98,18 @@
|
|
|
83
98
|
{
|
|
84
99
|
"original": "privacy.md",
|
|
85
100
|
"mirrored": "privacy.md"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"original": "production.md",
|
|
104
|
+
"mirrored": "production.md"
|
|
86
105
|
}
|
|
87
106
|
]
|
|
88
107
|
},
|
|
89
108
|
{
|
|
90
109
|
"source": "documentation/third-party-notices.md",
|
|
91
110
|
"destination": "references/third-party-notices.md",
|
|
92
|
-
"source_sha256": "
|
|
93
|
-
"mirrored_sha256": "
|
|
111
|
+
"source_sha256": "42b64eb4e99e77ede21aeff8767917a11c4bba44e3a0388e396bebdacf6313cb",
|
|
112
|
+
"mirrored_sha256": "8afdfabddb1d8c2cef2a104aae9242f23317f72f812649552cc6c1293857bea8",
|
|
94
113
|
"links": [
|
|
95
114
|
{
|
|
96
115
|
"original": "../DEPENDENCIES.md",
|
|
@@ -101,13 +120,25 @@
|
|
|
101
120
|
{
|
|
102
121
|
"source": "documentation/privacy.md",
|
|
103
122
|
"destination": "references/privacy.md",
|
|
104
|
-
"source_sha256": "
|
|
105
|
-
"mirrored_sha256": "
|
|
123
|
+
"source_sha256": "527cf14f1445ff36af7e0728cebfc50cd681caa869210678ec869248389b9d08",
|
|
124
|
+
"mirrored_sha256": "999172264e7ebef16cadf90fae197e80d1ad4f88c5cdfe904882d998ac94b1c9",
|
|
106
125
|
"links": [
|
|
107
126
|
{
|
|
108
127
|
"original": "getting-started.md#optional-if-the-application-requests-att",
|
|
109
128
|
"mirrored": "getting-started.md#optional-if-the-application-requests-att"
|
|
110
129
|
},
|
|
130
|
+
{
|
|
131
|
+
"original": "api-reference.md#automatic-adapter-discovery",
|
|
132
|
+
"mirrored": "api-reference.md#automatic-adapter-discovery"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"original": "getting-started.md#ios",
|
|
136
|
+
"mirrored": "getting-started.md#ios"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"original": "library.md#privacy-and-diagnostics",
|
|
140
|
+
"mirrored": "library.md#privacy-and-diagnostics"
|
|
141
|
+
},
|
|
111
142
|
{
|
|
112
143
|
"original": "getting-started.md#ios",
|
|
113
144
|
"mirrored": "getting-started.md#ios"
|
|
@@ -117,8 +148,8 @@
|
|
|
117
148
|
{
|
|
118
149
|
"source": "documentation/migration.md",
|
|
119
150
|
"destination": "references/migration.md",
|
|
120
|
-
"source_sha256": "
|
|
121
|
-
"mirrored_sha256": "
|
|
151
|
+
"source_sha256": "b98d0ee3b2f30563fc446cf592ee266e60ac14350e5e5113dbb6942b0561b29c",
|
|
152
|
+
"mirrored_sha256": "677f931c29f6fca77d7beed8ebbee91d378c16c5b704b1c44eca739baf7b7ce8",
|
|
122
153
|
"links": [
|
|
123
154
|
{
|
|
124
155
|
"original": "mediation.md",
|
|
@@ -149,8 +180,8 @@
|
|
|
149
180
|
{
|
|
150
181
|
"source": "documentation/getting-started.md",
|
|
151
182
|
"destination": "references/getting-started.md",
|
|
152
|
-
"source_sha256": "
|
|
153
|
-
"mirrored_sha256": "
|
|
183
|
+
"source_sha256": "902dbfefa6a6a01920cd4dd970c065af6306a937782d655b7a932400ebca61a1",
|
|
184
|
+
"mirrored_sha256": "d3a46fb707a5e6c1f0586518b08f4d55f4e36e4e5a8623faa7bd8be58af17393",
|
|
154
185
|
"links": [
|
|
155
186
|
{
|
|
156
187
|
"original": "mediation.md",
|
|
@@ -179,14 +210,18 @@
|
|
|
179
210
|
{
|
|
180
211
|
"original": "banners.md",
|
|
181
212
|
"mirrored": "banners.md"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"original": "production.md",
|
|
216
|
+
"mirrored": "production.md"
|
|
182
217
|
}
|
|
183
218
|
]
|
|
184
219
|
},
|
|
185
220
|
{
|
|
186
221
|
"source": "documentation/library.md",
|
|
187
222
|
"destination": "references/library.md",
|
|
188
|
-
"source_sha256": "
|
|
189
|
-
"mirrored_sha256": "
|
|
223
|
+
"source_sha256": "b49578baf6255d73e4142bf98f630b8d0f0533b2c2f662288b1b26647c5c9453",
|
|
224
|
+
"mirrored_sha256": "baeaebaee30bd7129fcae827f34bf2cb87eee21ce61c887ecae62fa3c8b085a4",
|
|
190
225
|
"links": [
|
|
191
226
|
{
|
|
192
227
|
"original": "../example/lib/ads.js",
|
|
@@ -196,6 +231,14 @@
|
|
|
196
231
|
"original": "../example/app.js",
|
|
197
232
|
"mirrored": "../assets/example/app.js"
|
|
198
233
|
},
|
|
234
|
+
{
|
|
235
|
+
"original": "rewarded-interstitial.md",
|
|
236
|
+
"mirrored": "rewarded-interstitial.md"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"original": "privacy.md#requestconsentconfig",
|
|
240
|
+
"mirrored": "privacy.md#requestconsentconfig"
|
|
241
|
+
},
|
|
199
242
|
{
|
|
200
243
|
"original": "../example/library-usage.js",
|
|
201
244
|
"mirrored": "../assets/example/library-usage.js"
|
|
@@ -205,8 +248,8 @@
|
|
|
205
248
|
{
|
|
206
249
|
"source": "documentation/index.md",
|
|
207
250
|
"destination": "references/index.md",
|
|
208
|
-
"source_sha256": "
|
|
209
|
-
"mirrored_sha256": "
|
|
251
|
+
"source_sha256": "0f8d359b08e2cf8a5454855d1745ef0772e4b98f46ce9b151aa4a1d79bfe0c72",
|
|
252
|
+
"mirrored_sha256": "f9b9c0ae7c85eb141599ea1534bc797d07fb0fc1a532b9cd956cf374c1ba9909",
|
|
210
253
|
"links": [
|
|
211
254
|
{
|
|
212
255
|
"original": "getting-started.md",
|
|
@@ -236,6 +279,14 @@
|
|
|
236
279
|
"original": "fullscreen.md",
|
|
237
280
|
"mirrored": "fullscreen.md"
|
|
238
281
|
},
|
|
282
|
+
{
|
|
283
|
+
"original": "rewarded-interstitial.md",
|
|
284
|
+
"mirrored": "rewarded-interstitial.md"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"original": "production.md",
|
|
288
|
+
"mirrored": "production.md"
|
|
289
|
+
},
|
|
239
290
|
{
|
|
240
291
|
"original": "api-reference.md",
|
|
241
292
|
"mirrored": "api-reference.md"
|
|
@@ -273,16 +324,37 @@
|
|
|
273
324
|
{
|
|
274
325
|
"source": "documentation/banners.md",
|
|
275
326
|
"destination": "references/banners.md",
|
|
276
|
-
"source_sha256": "
|
|
277
|
-
"mirrored_sha256": "
|
|
278
|
-
"links": [
|
|
327
|
+
"source_sha256": "77c17dbe9eebf1e41b63cfb6d47cf2a6dcd649603953586f7e2294dab5545b4d",
|
|
328
|
+
"mirrored_sha256": "288488df04ce86515ea90b932f044b281d3c9abb18f02708c0eb0bfe2ededdb0",
|
|
329
|
+
"links": [
|
|
330
|
+
{
|
|
331
|
+
"original": "#full-lifecycle-example",
|
|
332
|
+
"mirrored": "#full-lifecycle-example"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"original": "library.md#banners",
|
|
336
|
+
"mirrored": "library.md#banners"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"original": "#who-pauses-a-banner",
|
|
340
|
+
"mirrored": "#who-pauses-a-banner"
|
|
341
|
+
}
|
|
342
|
+
]
|
|
279
343
|
},
|
|
280
344
|
{
|
|
281
345
|
"source": "documentation/api-reference.md",
|
|
282
346
|
"destination": "references/api-reference.md",
|
|
283
|
-
"source_sha256": "
|
|
284
|
-
"mirrored_sha256": "
|
|
347
|
+
"source_sha256": "0979f275e0ede231927d8344db62ef8cb8ca2bd2f20ec77cf9ef51069bab4e4b",
|
|
348
|
+
"mirrored_sha256": "65ed507a194f40be0b5952e4a2c61a429e648aa7748907f4b16cbd049f3a4899",
|
|
285
349
|
"links": [
|
|
350
|
+
{
|
|
351
|
+
"original": "#mediation-diagnostics",
|
|
352
|
+
"mirrored": "#mediation-diagnostics"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"original": "migration.md#generic-mediation-diagnostics",
|
|
356
|
+
"mirrored": "migration.md#generic-mediation-diagnostics"
|
|
357
|
+
},
|
|
286
358
|
{
|
|
287
359
|
"original": "mediation.md#missing-configuration-and-startup-errors",
|
|
288
360
|
"mirrored": "mediation.md#missing-configuration-and-startup-errors"
|
|
@@ -295,6 +367,10 @@
|
|
|
295
367
|
"original": "banners.md#creation-properties",
|
|
296
368
|
"mirrored": "banners.md#creation-properties"
|
|
297
369
|
},
|
|
370
|
+
{
|
|
371
|
+
"original": "rewarded-interstitial.md",
|
|
372
|
+
"mirrored": "rewarded-interstitial.md"
|
|
373
|
+
},
|
|
298
374
|
{
|
|
299
375
|
"original": "fullscreen.md#the-four-hour-window",
|
|
300
376
|
"mirrored": "fullscreen.md#the-four-hour-window"
|
|
@@ -315,6 +391,10 @@
|
|
|
315
391
|
"original": "fullscreen.md#events",
|
|
316
392
|
"mirrored": "fullscreen.md#events"
|
|
317
393
|
},
|
|
394
|
+
{
|
|
395
|
+
"original": "#reserved-and-unavailable-apis",
|
|
396
|
+
"mirrored": "#reserved-and-unavailable-apis"
|
|
397
|
+
},
|
|
318
398
|
{
|
|
319
399
|
"original": "mediation.md",
|
|
320
400
|
"mirrored": "mediation.md"
|
|
@@ -326,17 +406,17 @@
|
|
|
326
406
|
],
|
|
327
407
|
"link_fixes": [
|
|
328
408
|
{
|
|
329
|
-
"original_markdown": "[
|
|
330
|
-
"mirrored_markdown": "[
|
|
331
|
-
"reason": "
|
|
409
|
+
"original_markdown": "The five configuration properties `adUnitId` (String), `autoReload` (Boolean), `keywords` (String[]), `requestAgent` (String) and `extras` (Object) are readable and writable on both platforms. Changes affect the next load and do not replace an already loaded ad. `autoReload` defaults to `false`; targeting is omitted when unset. Extras retain String, Boolean and numeric primitive values. Internal load/presentation state and native SDK delegate methods are not application APIs.",
|
|
410
|
+
"mirrored_markdown": "The five configuration properties `adUnitId` (String), `autoReload` (Boolean), `keywords` (String[]), `requestAgent` (String) and `extras` (Object) are readable and writable on both platforms. Changes to the four request options affect the next load and do not replace an already loaded ad. `autoReload` defaults to `false` and is read live when the shown ad closes; changing it while an ad is loaded or presented changes whether that close starts a reload. It never automatically presents the replacement or retries a failure. Targeting is omitted when unset. Extras retain String, Boolean and numeric primitive values. Internal load/presentation state and native SDK delegate methods are not application APIs.",
|
|
411
|
+
"reason": "Both native fullscreen dismissal callbacks read the current autoReload property; the four request-targeting options apply on the next load. Verified by the parallel native contract audit; official source unchanged."
|
|
332
412
|
}
|
|
333
413
|
]
|
|
334
414
|
},
|
|
335
415
|
{
|
|
336
416
|
"source": "DEPENDENCIES.md",
|
|
337
417
|
"destination": "references/dependencies.md",
|
|
338
|
-
"source_sha256": "
|
|
339
|
-
"mirrored_sha256": "
|
|
418
|
+
"source_sha256": "61de90e3b992ff02c1c6866355d352ceaa58f5940a5aa56128ad31e66410de42",
|
|
419
|
+
"mirrored_sha256": "024f3512ae027e179789866f02854cbb258cf00d8507ea51e7d64dc0e2da8488",
|
|
340
420
|
"links": [
|
|
341
421
|
{
|
|
342
422
|
"original": "documentation/mediation.md#unity-consent-with-the-pinned-adapter",
|
|
@@ -347,25 +427,33 @@
|
|
|
347
427
|
{
|
|
348
428
|
"source": "ROADMAP.md",
|
|
349
429
|
"destination": "references/roadmap.md",
|
|
350
|
-
"source_sha256": "
|
|
351
|
-
"mirrored_sha256": "
|
|
430
|
+
"source_sha256": "7246cee85a0133a1a39584254d2b55ce1a0926965da65cae2399f25170d6a8f0",
|
|
431
|
+
"mirrored_sha256": "6fbd7e626e28f24e9299d116c1a3a285164154f7b312ead9f782dcd40d95b814",
|
|
352
432
|
"links": [
|
|
353
433
|
{
|
|
354
|
-
"original": "DEPENDENCIES.md
|
|
355
|
-
"mirrored": "dependencies.md
|
|
434
|
+
"original": "DEPENDENCIES.md",
|
|
435
|
+
"mirrored": "dependencies.md"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"original": "documentation/production.md",
|
|
439
|
+
"mirrored": "production.md"
|
|
356
440
|
}
|
|
357
441
|
]
|
|
358
442
|
},
|
|
359
443
|
{
|
|
360
444
|
"source": "CONTRIBUTING.md",
|
|
361
445
|
"destination": "references/contributing.md",
|
|
362
|
-
"source_sha256": "
|
|
363
|
-
"mirrored_sha256": "
|
|
446
|
+
"source_sha256": "30fe1065aeb758c476b995626c593ed8d63c55581466424b0c4e75ddefab9624",
|
|
447
|
+
"mirrored_sha256": "e8303f51c6c566f7f2748be11ef58f1e7f544a92e08b3a886728b8e1a48a9dae",
|
|
364
448
|
"links": [
|
|
365
449
|
{
|
|
366
450
|
"original": "DEPENDENCIES.md",
|
|
367
451
|
"mirrored": "dependencies.md"
|
|
368
452
|
},
|
|
453
|
+
{
|
|
454
|
+
"original": "#adding-a-network",
|
|
455
|
+
"mirrored": "#adding-a-network"
|
|
456
|
+
},
|
|
369
457
|
{
|
|
370
458
|
"original": "DEPENDENCIES.md",
|
|
371
459
|
"mirrored": "dependencies.md"
|
|
@@ -391,8 +479,8 @@
|
|
|
391
479
|
{
|
|
392
480
|
"source": "CHANGELOG.md",
|
|
393
481
|
"destination": "references/module-changelog.md",
|
|
394
|
-
"source_sha256": "
|
|
395
|
-
"mirrored_sha256": "
|
|
482
|
+
"source_sha256": "100a54cdc5fc0ff76867deabf307e9f64fc74567b828dac6e9ce10eb0392cc2f",
|
|
483
|
+
"mirrored_sha256": "bf7c46d8f782b59223e90ec1ea6dc88455e2e053f7cd18a86fe20fec18f1d7ff",
|
|
396
484
|
"links": [
|
|
397
485
|
{
|
|
398
486
|
"original": "DEPENDENCIES.md",
|
|
@@ -418,23 +506,139 @@
|
|
|
418
506
|
{
|
|
419
507
|
"source": "example/lib/ads.js",
|
|
420
508
|
"destination": "assets/example/lib/ads.js",
|
|
421
|
-
"source_sha256": "
|
|
422
|
-
"mirrored_sha256": "
|
|
509
|
+
"source_sha256": "eb87bab951614ea71721ebb72868c30a0d656818f365e88ef1df635b0deca546",
|
|
510
|
+
"mirrored_sha256": "eb87bab951614ea71721ebb72868c30a0d656818f365e88ef1df635b0deca546",
|
|
423
511
|
"links": []
|
|
424
512
|
},
|
|
425
513
|
{
|
|
426
514
|
"source": "example/library-usage.js",
|
|
427
515
|
"destination": "assets/example/library-usage.js",
|
|
428
|
-
"source_sha256": "
|
|
429
|
-
"mirrored_sha256": "
|
|
516
|
+
"source_sha256": "fed548dee9481f00d039e51e50b94a3989c4fe972410e9c5e0962d9e525be682",
|
|
517
|
+
"mirrored_sha256": "fed548dee9481f00d039e51e50b94a3989c4fe972410e9c5e0962d9e525be682",
|
|
430
518
|
"links": []
|
|
431
519
|
},
|
|
432
520
|
{
|
|
433
521
|
"source": "example/app.js",
|
|
434
522
|
"destination": "assets/example/app.js",
|
|
435
|
-
"source_sha256": "
|
|
436
|
-
"mirrored_sha256": "
|
|
523
|
+
"source_sha256": "76d38793c94e205f97102e807dfa69df730e4136e84a530abeb7defd884c3d2c",
|
|
524
|
+
"mirrored_sha256": "76d38793c94e205f97102e807dfa69df730e4136e84a530abeb7defd884c3d2c",
|
|
437
525
|
"links": []
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"source": "documentation/production.md",
|
|
529
|
+
"destination": "references/production.md",
|
|
530
|
+
"source_sha256": "a6e6a8a7209918a3fdfcf75ba4db6c9712dde0254141b7de09301a88102099fa",
|
|
531
|
+
"links": [
|
|
532
|
+
{
|
|
533
|
+
"original": "getting-started.md",
|
|
534
|
+
"mirrored": "getting-started.md"
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"original": "../ROADMAP.md#release-readiness",
|
|
538
|
+
"mirrored": "roadmap.md#release-readiness"
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"original": "library.md",
|
|
542
|
+
"mirrored": "library.md"
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
"original": "banners.md",
|
|
546
|
+
"mirrored": "banners.md"
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
"original": "rewarded-interstitial.md",
|
|
550
|
+
"mirrored": "rewarded-interstitial.md"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"original": "fullscreen.md",
|
|
554
|
+
"mirrored": "fullscreen.md"
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
"original": "library.md#fullscreen-ads",
|
|
558
|
+
"mirrored": "library.md#fullscreen-ads"
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"original": "mediation.md",
|
|
562
|
+
"mirrored": "mediation.md"
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"original": "../DEPENDENCIES.md",
|
|
566
|
+
"mirrored": "dependencies.md"
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"original": "../ROADMAP.md#release-readiness",
|
|
570
|
+
"mirrored": "roadmap.md#release-readiness"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"original": "library.md#cleanup",
|
|
574
|
+
"mirrored": "library.md#cleanup"
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"original": "api-reference.md#common-google-mobile-ads-error-codes",
|
|
578
|
+
"mirrored": "api-reference.md#common-google-mobile-ads-error-codes"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"original": "api-reference.md",
|
|
582
|
+
"mirrored": "api-reference.md"
|
|
583
|
+
}
|
|
584
|
+
],
|
|
585
|
+
"mirrored_sha256": "0a799f5e88d7b6653f2d9779c087dfe85867a15fab4b9bb5e066175fbfd7f8fd"
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
"source": "documentation/rewarded-interstitial.md",
|
|
589
|
+
"destination": "references/rewarded-interstitial.md",
|
|
590
|
+
"source_sha256": "d6837ff0e3a9ab322285abef5c3b918ceeb45a46ec5a8e06997664ba0a013978",
|
|
591
|
+
"links": [
|
|
592
|
+
{
|
|
593
|
+
"original": "../example/app.js",
|
|
594
|
+
"mirrored": "../assets/example/app.js"
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"original": "library.md#fullscreen-ads",
|
|
598
|
+
"mirrored": "library.md#fullscreen-ads"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"original": "fullscreen.md#creation-properties",
|
|
602
|
+
"mirrored": "fullscreen.md#creation-properties"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"original": "fullscreen.md#events",
|
|
606
|
+
"mirrored": "fullscreen.md#events"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"original": "../example/app.js",
|
|
610
|
+
"mirrored": "../assets/example/app.js"
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"original": "../example/library-usage.js",
|
|
614
|
+
"mirrored": "../assets/example/library-usage.js"
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"original": "../ROADMAP.md#release-readiness",
|
|
618
|
+
"mirrored": "roadmap.md#release-readiness"
|
|
619
|
+
}
|
|
620
|
+
],
|
|
621
|
+
"mirrored_sha256": "6414d936021a776b666f4c7f19f64eec58dfdc5d1eab236dc8fa55909f170044"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"source": "MEDIATION_COMPARISON.md",
|
|
625
|
+
"destination": "references/mediation-parity.md",
|
|
626
|
+
"source_sha256": "66c2fc72fcdacc0b0c4fff294afa7217daa7f9fa06d04a501f1d43193e4e87a7",
|
|
627
|
+
"links": [
|
|
628
|
+
{
|
|
629
|
+
"original": "documentation/mediation.md",
|
|
630
|
+
"mirrored": "mediation.md"
|
|
631
|
+
}
|
|
632
|
+
],
|
|
633
|
+
"mirrored_sha256": "1b9e519e90d3f773baa222cf87ea11f0138bea1f6196d8076abbd4e1e401ca0f"
|
|
634
|
+
}
|
|
635
|
+
],
|
|
636
|
+
"source_state": "committed",
|
|
637
|
+
"excluded_documents": [
|
|
638
|
+
{
|
|
639
|
+
"source": "README.md",
|
|
640
|
+
"source_sha256": "38e1438d35248f29f35b543de1286765c66b1946ee81491662933b07c105d228",
|
|
641
|
+
"reason": "Public overview and entry navigation are represented by the complete getting-started, API, privacy, production, integration, mediation, roadmap, contributing and dependency mirrors; screenshot HTML and repository badges are not integration requirements. Any future source change still triggers review."
|
|
438
642
|
}
|
|
439
643
|
]
|
|
440
644
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
> Source snapshot: official ti.admob.unified 1.0.0 documentation at commit `
|
|
1
|
+
> Source snapshot: official ti.admob.unified 1.0.0 documentation at release source commit `034843299b2984253988e0ffccb9f6a1c91682c9` (copied 2026-10-24). Relative links rebased for this skill.
|
|
2
2
|
|
|
3
3
|
# Third-party SDK notices
|
|
4
4
|
|
|
@@ -9,9 +9,9 @@ The core `ti.admob.unified` includes Google Mobile Ads and UMP. Each optional ne
|
|
|
9
9
|
| Component | Owner | Terms or license |
|
|
10
10
|
| ----------------------------------------------------- | -------------------------- | ------------------------------------------------------------------- |
|
|
11
11
|
| Google Mobile Ads, UMP, and Google mediation adapters | Google LLC | [Google APIs Terms of Service](https://developers.google.com/terms) |
|
|
12
|
-
| AppLovin SDK | AppLovin Corp. | [AppLovin
|
|
12
|
+
| AppLovin SDK | AppLovin Corp. | [AppLovin SDK EULA](https://legal.applovin.com/eula/) and [publisher policies](https://legal.applovin.com/policies-publishers/) |
|
|
13
13
|
| Meta Audience Network SDK | Meta Platforms, Inc. | [Meta Platform Terms](https://developers.facebook.com/terms/) |
|
|
14
|
-
| InMobi SDK | InMobi Technology Services | [InMobi publisher
|
|
14
|
+
| InMobi SDK | InMobi Technology Services | [InMobi publisher policy](https://advertising.inmobi.com/publisher-policy) |
|
|
15
15
|
| Unity Ads and Unity support libraries | Unity Technologies | [Unity Terms of Service](https://unity.com/legal/terms-of-service) |
|
|
16
16
|
| Liftoff Monetize/Vungle SDK | Liftoff Mobile, Inc. | [Liftoff Monetize terms](https://publisher.vungle.com/LICENSE.html) |
|
|
17
17
|
|
|
@@ -19,4 +19,4 @@ The exact versions are recorded in [the dependency inventory](dependencies.md).
|
|
|
19
19
|
|
|
20
20
|
Android also distributes Guava as a utility dependency. Guava uses the [Apache License 2.0](https://github.com/google/guava/blob/master/LICENSE) and is not an advertising SDK.
|
|
21
21
|
|
|
22
|
-
The InMobi and
|
|
22
|
+
The InMobi, Liftoff and Unity Android complements also pin OkHttp 5.4.0 and Okio 3.18.2. OkHttp and its Okio dependency use the Apache License 2.0; preserve their distributed license notices. See [OkHttp](https://github.com/lysine-dev/okhttp/blob/main/LICENSE.txt) and [Okio](https://github.com/lysine-dev/okio/blob/main/LICENSE.txt).
|
package/skills/ti-game/SKILL.md
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ti-game
|
|
3
|
-
description: "Use when a Titanium app declares ti.game in tiapp.xml, imports require('ti.game'), or needs a 2D game built or reviewed with that native engine: sprites, native movement, collisions, tile layers, camera, HUD, audio, particles, or
|
|
3
|
+
description: "Use when a Titanium app declares ti.game in tiapp.xml, imports require('ti.game'), or needs a 2D game built or reviewed with that native engine: sprites, native movement, collisions, tile layers, camera, HUD, audio, particles, touch, keyboard/mouse actions or gamepads. Covers Alloy and Classic on Android, iOS and Mac Catalyst. Do not use for unrelated game engines or ordinary Titanium UI."
|
|
4
4
|
allowed-tools: Read, Grep, Glob, Edit, Write, Bash(node *)
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# ti.game — native 2D games for Titanium SDK
|
|
8
8
|
|
|
9
|
-
`ti.game` is Michael Gangolf's OpenGL ES 2.0
|
|
9
|
+
`ti.game` is Michael Gangolf's native sprite engine for Titanium: OpenGL ES 2.0 on Android and Metal on iPhone, iPad and Mac Catalyst. JavaScript describes the scene and reacts to discrete events; Android and iOS run rendering, animation, physics, collision, gestures, audio, particles, ropes, tile layers, camera work, and telemetry natively.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Reviewed on **2026-10-23** against `macCesar/ti.game@2bf5f82`, based on
|
|
12
|
+
upstream `m1ga/ti.game@88e181c`. Both manifests declare **`1.0.0`** and
|
|
13
|
+
minimum Titanium SDK **`13.4.0`**; documented builds use **`13.4.1.GA`**.
|
|
14
|
+
The fork's documentation/build adjustments and upstream engine are recorded
|
|
15
|
+
separately in [references/source-notes.md](references/source-notes.md).
|
|
16
|
+
Identify installed artifacts by source commit and ZIP hash; the version alone
|
|
17
|
+
does not prove these capabilities or publication of the fork.
|
|
12
18
|
|
|
13
19
|
The skill applies to **Classic and Alloy** projects. Nothing here requires PurgeTSS.
|
|
14
20
|
|
|
@@ -25,6 +31,8 @@ Open the references relevant to the task before proposing code. Do not answer fr
|
|
|
25
31
|
| Task | Read first |
|
|
26
32
|
| --- | --- |
|
|
27
33
|
| Exact methods, properties, defaults, event payloads, percentages | [references/api.md](references/api.md) |
|
|
34
|
+
| Keyboard, mouse, named actions, contexts, focus and controller ownership | [references/input.md](references/input.md) |
|
|
35
|
+
| Source pins, upstream/fork differences, audit limits | [references/source-notes.md](references/source-notes.md) |
|
|
28
36
|
| Install, Classic/Alloy structure, assets, cleanup, lifecycle | [references/project-setup.md](references/project-setup.md) |
|
|
29
37
|
| Choose a runnable upstream example | [references/examples.md](references/examples.md) |
|
|
30
38
|
| Choose or tune a physical model, derive equations/units, diagnose FPS-dependent motion | [references/physics.md](references/physics.md) |
|
|
@@ -63,6 +71,7 @@ Do not move sprites from `setInterval`, `requestAnimationFrame`, or a JS loop. P
|
|
|
63
71
|
| Chain, tether, cape | `Game.createRope()` |
|
|
64
72
|
| Pause or slow the scene while still drawing | `gameView.timeScale` |
|
|
65
73
|
| Measure FPS, frame time, and draw calls | `debug: { hud: true }` or the `performance` event |
|
|
74
|
+
| Map keyboard, mouse and gamepad buttons to actions | `inputMap`, `inputContext`, `actiondown` / `actionup`, `focusInput()` |
|
|
66
75
|
| Read a game controller | GameView `buttondown`/`buttonup`, `stick`, `trigger` (names normalized across pads) |
|
|
67
76
|
| Wrap the world around horizontally | `gameView.worldWrapX` + per-sprite `wrapWorldX` |
|
|
68
77
|
| React to the force of a hit | `solidimpact` with a per-sprite `impactThreshold` |
|
|
@@ -114,6 +123,7 @@ win.open();
|
|
|
114
123
|
|
|
115
124
|
## Non-negotiable invariants
|
|
116
125
|
|
|
126
|
+
- For keyboard/mouse, read the focused input contract and consuming-app plist requirements before coding; keep native text fields and overlaid controls usable.
|
|
117
127
|
- Build surface-dependent content from the GameView's guarded `resize` event. `Ti.Platform.displayCaps` is not the scene surface and can include system bars or different units.
|
|
118
128
|
- Coordinates use a top-left origin, y increases downward, and `(x, y)` is the sprite anchor. Durations crossing the JS boundary are milliseconds.
|
|
119
129
|
- `solidWith` blocks; `collidesWith` reports `collision`/`collisionend`. They are independent. A sized sprite without a sheet is a valid invisible solid or trigger.
|
|
@@ -131,12 +141,19 @@ When sources disagree, use this order:
|
|
|
131
141
|
|
|
132
142
|
1. Android and iOS native proxy/engine code for actual behavior and parity.
|
|
133
143
|
2. `example/*.js` for combinations exercised by the module, not code-quality conventions.
|
|
134
|
-
3. Upstream `README.md` and `
|
|
144
|
+
3. Upstream `README.md` and `tutorial.md` for intended public usage.
|
|
135
145
|
4. Upstream `TODO.md` for what remains partial or absent.
|
|
136
146
|
|
|
137
|
-
|
|
147
|
+
The reviewed launcher has **35 demos**: 34 mobile touch scenes plus
|
|
148
|
+
Configurable Input on Mac. Helpers and layout/focus behavior are cataloged in
|
|
149
|
+
[references/examples.md](references/examples.md). Source inspection and host
|
|
150
|
+
regressions do not certify installed binaries or physical-device behavior.
|
|
138
151
|
|
|
139
|
-
|
|
152
|
+
Current damping lets effective unopposed acceleration build speed from rest, and a zero-delta rope update
|
|
153
|
+
freezes its initialized geometry. Older `3bea2f4` behavior is historical; read
|
|
154
|
+
[references/physics.md](references/physics.md) for the current equations,
|
|
155
|
+
remaining step-size limits and regression boundaries. Input focus and Mac
|
|
156
|
+
right/middle mouse limitations belong in [references/input.md](references/input.md).
|
|
140
157
|
|
|
141
158
|
## Before returning code
|
|
142
159
|
|