summer-engine 4.3.0 → 4.5.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +3 -1
- package/.codex-plugin/plugin.json +5 -3
- package/.cursor-plugin/plugin.json +4 -2
- package/.factory-plugin/plugin.json +4 -2
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +87 -0
- package/README.md +67 -27
- package/commands/start.md +19 -15
- package/commands/summer.md +1 -0
- package/dist/cli/command-usage.d.ts +3 -1
- package/dist/cli/command-usage.js +10 -4
- package/dist/cli/commands/create.d.ts +1 -25
- package/dist/cli/commands/create.js +10 -138
- package/dist/cli/commands/dev.d.ts +66 -0
- package/dist/cli/commands/dev.js +234 -0
- package/dist/cli/commands/install.d.ts +15 -58
- package/dist/cli/commands/install.js +31 -481
- package/dist/cli/commands/login.js +1 -1
- package/dist/cli/commands/ops.d.ts +17 -1
- package/dist/cli/commands/ops.js +97 -9
- package/dist/cli/commands/preview.d.ts +58 -0
- package/dist/cli/commands/preview.js +181 -0
- package/dist/cli/commands/run.d.ts +1 -17
- package/dist/cli/commands/run.js +17 -206
- package/dist/cli/index.js +5 -0
- package/dist/core/agent-host.d.ts +3 -0
- package/dist/core/agent-host.js +1 -1
- package/dist/core/api-client.d.ts +10 -2
- package/dist/core/api-client.js +13 -8
- package/dist/core/capabilities/agent-playbook.js +1 -0
- package/dist/core/capabilities/apps.d.ts +9 -9
- package/dist/core/capabilities/asset-import.d.ts +4 -1
- package/dist/core/capabilities/asset-import.js +15 -6
- package/dist/core/capabilities/capture-gameplay.js +1 -1
- package/dist/core/capabilities/connect-signal.d.ts +2 -2
- package/dist/core/capabilities/content-make/index.d.ts +81 -0
- package/dist/core/capabilities/content-make/index.js +706 -0
- package/dist/core/capabilities/content-make/media.d.ts +57 -0
- package/dist/core/capabilities/content-make/media.js +172 -0
- package/dist/core/capabilities/content-make/plan.d.ts +130 -0
- package/dist/core/capabilities/content-make/plan.js +433 -0
- package/dist/core/capabilities/content-make/render.d.ts +64 -0
- package/dist/core/capabilities/content-make/render.js +370 -0
- package/dist/core/capabilities/content-make/study.d.ts +13 -0
- package/dist/core/capabilities/content-make/study.js +165 -0
- package/dist/core/capabilities/content-make/types.d.ts +173 -0
- package/dist/core/capabilities/content-make/types.js +6 -0
- package/dist/core/capabilities/content-make/voice.d.ts +7 -0
- package/dist/core/capabilities/content-make/voice.js +27 -0
- package/dist/core/capabilities/events.d.ts +2 -2
- package/dist/core/capabilities/export-game.d.ts +4 -1
- package/dist/core/capabilities/export-game.js +4 -3
- package/dist/core/capabilities/export-presets.d.ts +2 -1
- package/dist/core/capabilities/export-presets.js +2 -1
- package/dist/core/capabilities/go-live.d.ts +14 -0
- package/dist/core/capabilities/go-live.js +408 -0
- package/dist/core/capabilities/image-generation.d.ts +6 -6
- package/dist/core/capabilities/item-manifest.d.ts +92 -0
- package/dist/core/capabilities/item-manifest.js +247 -0
- package/dist/core/capabilities/placement.d.ts +7 -7
- package/dist/core/capabilities/projects-local.d.ts +68 -0
- package/dist/core/capabilities/projects-local.js +172 -0
- package/dist/core/capabilities/publish-build.d.ts +13 -2
- package/dist/core/capabilities/publish-build.js +87 -21
- package/dist/core/capabilities/publish-download.js +1 -1
- package/dist/core/capabilities/runtime-control.d.ts +7 -2
- package/dist/core/capabilities/runtime-control.js +27 -1
- package/dist/core/capabilities/seeing/args.d.ts +2 -2
- package/dist/core/capabilities/store-checks.d.ts +45 -0
- package/dist/core/capabilities/store-checks.js +85 -0
- package/dist/core/capabilities/store-details.d.ts +37 -0
- package/dist/core/capabilities/store-details.js +94 -0
- package/dist/core/capabilities/summer-bundle.d.ts +21 -2
- package/dist/core/capabilities/summer-bundle.js +54 -7
- package/dist/core/capabilities/sync-items.d.ts +89 -0
- package/dist/core/capabilities/sync-items.js +352 -0
- package/dist/core/capabilities/tool-dispatch.js +66 -6
- package/dist/core/capabilities/video-ogv.d.ts +49 -0
- package/dist/core/capabilities/video-ogv.js +260 -0
- package/dist/core/capability-skew.js +2 -2
- package/dist/core/cli-usage-beacon.js +26 -2
- package/dist/core/cli-usage.d.ts +5 -2
- package/dist/core/cli-usage.js +8 -2
- package/dist/core/engine-install.d.ts +53 -0
- package/dist/core/engine-install.js +93 -0
- package/dist/core/engine-installer.d.ts +134 -0
- package/dist/core/engine-installer.js +760 -0
- package/dist/core/engine-launch.d.ts +126 -0
- package/dist/core/engine-launch.js +398 -0
- package/dist/core/engine-self-start.d.ts +63 -0
- package/dist/core/engine-self-start.js +282 -0
- package/dist/core/engine.d.ts +7 -1
- package/dist/core/engine.js +9 -2
- package/dist/core/error-codes.d.ts +4 -1
- package/dist/core/error-codes.js +7 -3
- package/dist/core/library-read.d.ts +2 -2
- package/dist/core/library-search.d.ts +2 -2
- package/dist/core/local-project.d.ts +50 -0
- package/dist/core/local-project.js +234 -0
- package/dist/core/ops/areas.js +9 -3
- package/dist/core/ops/catalog.d.ts +9 -0
- package/dist/core/ops/catalog.js +56 -4
- package/dist/core/ops/engine-answer.d.ts +4 -1
- package/dist/core/ops/engine-answer.js +16 -3
- package/dist/core/ops/engine.js +4 -4
- package/dist/core/ops/save-files.d.ts +6 -1
- package/dist/core/ops/save-files.js +67 -50
- package/dist/core/ops/search.js +9 -2
- package/dist/core/preview/input.d.ts +35 -0
- package/dist/core/preview/input.js +105 -0
- package/dist/core/preview/launch-config.d.ts +52 -0
- package/dist/core/preview/launch-config.js +137 -0
- package/dist/core/preview/page.d.ts +22 -0
- package/dist/core/preview/page.js +232 -0
- package/dist/core/preview/preview-source.d.ts +179 -0
- package/dist/core/preview/preview-source.js +350 -0
- package/dist/core/preview/server.d.ts +26 -0
- package/dist/core/preview/server.js +218 -0
- package/dist/core/telemetry.d.ts +20 -16
- package/dist/core/telemetry.js +92 -16
- package/dist/core/templates.d.ts +20 -0
- package/dist/core/templates.js +300 -3
- package/dist/core/tool-profiles.d.ts +2 -2
- package/dist/core/tool-profiles.js +1 -0
- package/dist/core/usage-fields.d.ts +41 -0
- package/dist/core/usage-fields.js +150 -0
- package/dist/core/util/sleep.d.ts +3 -0
- package/dist/core/util/sleep.js +12 -0
- package/dist/mcp/ops-surface.js +28 -2
- package/dist/mcp/server.d.ts +14 -4
- package/dist/mcp/server.js +42 -8
- package/dist/mcp/tool-surface.d.ts +8 -0
- package/dist/mcp/tool-surface.js +19 -2
- package/dist/mcp/tools/creator-tools.js +92 -14
- package/dist/mcp/tools/debug-tools.js +2 -0
- package/dist/mcp/tools/local-project-tools.d.ts +6 -0
- package/dist/mcp/tools/local-project-tools.js +33 -0
- package/dist/mcp/tools/navigation-tools.js +2 -1
- package/dist/mcp/tools/project-tools.js +5 -8
- package/dist/mcp/tools/seeing-tools.js +1 -1
- package/dist/mcp/tools/visual-tools.js +1 -1
- package/dist/mcp/tools/with-engine.js +1 -1
- package/gemini-extension.json +3 -1
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +18 -5
- package/library/skills/README.md +12 -8
- package/library/skills/animated-loop/SKILL.md +10 -16
- package/library/skills/cinematic-cutscene/SKILL.md +7 -18
- package/library/skills/headless-scripting/SKILL.md +7 -4
- package/library/skills/in-game-purchases/SKILL.md +25 -8
- package/library/skills/in-game-purchases/resource.yaml +2 -1
- package/library/skills/launch-ready/SKILL.md +351 -0
- package/library/skills/launch-ready/resource.yaml +45 -0
- package/library/skills/make-content/SKILL.md +202 -0
- package/library/skills/make-content/resource.yaml +32 -0
- package/library/skills/make-game/SKILL.md +2 -0
- package/library/skills/make-game/resource.yaml +2 -1
- package/library/skills/navigate-summer/SKILL.md +4 -2
- package/library/skills/new-project/SKILL.md +15 -22
- package/library/skills/new-project/resource.yaml +2 -1
- package/library/skills/painted-25d-world/SKILL.md +366 -0
- package/library/skills/painted-25d-world/_building-blocks/blender-route.md +33 -0
- package/library/skills/painted-25d-world/_building-blocks/blockout_builder.gd +149 -0
- package/library/skills/painted-25d-world/_building-blocks/capture_paint_view.gd +32 -0
- package/library/skills/painted-25d-world/_building-blocks/paint_projection.gdshader +23 -0
- package/library/skills/painted-25d-world/_building-blocks/paintcam_check.gd +25 -0
- package/library/skills/painted-25d-world/_building-blocks/painted_door.gd +17 -0
- package/library/skills/painted-25d-world/_building-blocks/painted_location.gd +56 -0
- package/library/skills/painted-25d-world/_building-blocks/painted_player.gd +125 -0
- package/library/skills/painted-25d-world/_building-blocks/painted_world.gd +111 -0
- package/library/skills/painted-25d-world/_building-blocks/tools/cam.py +57 -0
- package/library/skills/painted-25d-world/_building-blocks/tools/detail4k.py +81 -0
- package/library/skills/painted-25d-world/_building-blocks/tools/overlay.py +17 -0
- package/library/skills/painted-25d-world/_building-blocks/tools/preview.py +60 -0
- package/library/skills/painted-25d-world/resource.yaml +39 -0
- package/library/skills/publish-your-game/SKILL.md +13 -14
- package/library/skills/publish-your-game/resource.yaml +4 -3
- package/library/skills/release-checklist/SKILL.md +188 -0
- package/library/skills/release-checklist/resource.yaml +40 -0
- package/library/skills/release-readiness/SKILL.md +1 -1
- package/library/skills/release-readiness/resource.yaml +1 -1
- package/library/skills/store-art/SKILL.md +1 -1
- package/library/skills/store-art/resource.yaml +1 -1
- package/library/skills/store-listing/SKILL.md +1 -1
- package/library/skills/store-listing/resource.yaml +1 -1
- package/library/skills/summer-cli/SKILL.md +2 -0
- package/library/skills/summer-store/SKILL.md +295 -39
- package/library/skills/summer-store/resource.yaml +9 -3
- package/library/skills/trailer-shot/SKILL.md +3 -3
- package/library/templates/README.md +5 -0
- package/library/tools/content-make/resource.yaml +132 -0
- package/library/tools/frame-shot/GUIDE.md +1 -1
- package/library/tools/go-live/resource.yaml +67 -0
- package/library/tools/import-from-url/GUIDE.md +1 -0
- package/library/tools/import-from-url-batch/GUIDE.md +1 -1
- package/library/tools/play/GUIDE.md +2 -0
- package/library/tools/projects-create-local/resource.yaml +55 -0
- package/library/tools/projects-open-local/resource.yaml +51 -0
- package/library/tools/publish-build/resource.yaml +3 -3
- package/library/tools/screenshot/GUIDE.md +1 -1
- package/library/tools/store-set-details/resource.yaml +114 -0
- package/library/tools/sync-items/resource.yaml +72 -0
- package/package.json +1 -1
- package/registry/generated/aliases.json +6 -0
- package/registry/generated/counts.json +3 -3
- package/registry/generated/gemini-extension.json +3 -1
- package/registry/generated/index.json +463 -37
- package/registry/generated/marketplace.claude.json +1 -1
- package/registry/generated/plugin.claude-directory.json +4 -2
- package/registry/generated/plugin.claude.json +3 -1
- package/registry/generated/plugin.codex.json +5 -3
- package/registry/generated/plugin.cursor.json +4 -2
- package/registry/generated/plugin.factory.json +4 -2
- package/registry/generated/server.json +2 -2
- package/registry/generated/skills-index.md +12 -8
- package/registry/generated/skills-registry.json +62 -5
- package/registry/operations/legacy-names.json +40 -0
- package/registry/operations/public-catalog.json +10144 -387
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
id: tool/content-make
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Make a piece of content for a game. Copies a library reference beat for beat with footage on this computer, checks it, saves it to Review.
|
|
5
|
+
use_when:
|
|
6
|
+
- '"make a piece of content for this"'
|
|
7
|
+
- '"clip what we just built"'
|
|
8
|
+
- '"make today''s TikTok for my game"'
|
|
9
|
+
- '"copy this reference with our footage"'
|
|
10
|
+
- a daily run that puts one finished piece per game in Review (claim the queued make request)
|
|
11
|
+
- a Change the team pressed on Today (claim; it answers needs_changes)
|
|
12
|
+
- revising a piece after the team asked for changes (same workDir)
|
|
13
|
+
do_not_use_when:
|
|
14
|
+
- posting - the team posts from Review; nothing is posted from here
|
|
15
|
+
- generating video or pictures - it cuts the game's real footage
|
|
16
|
+
- the game has no footage on this computer - record some first (capture mode, a screen recording)
|
|
17
|
+
- writing the words - the caller writes our lines; it never invents them and never reuses the reference's
|
|
18
|
+
facets:
|
|
19
|
+
lifecycle:
|
|
20
|
+
- launch
|
|
21
|
+
domains:
|
|
22
|
+
- creator
|
|
23
|
+
- video
|
|
24
|
+
compatibility:
|
|
25
|
+
engine: ">=4.6"
|
|
26
|
+
source: official
|
|
27
|
+
license: MIT
|
|
28
|
+
status: preview
|
|
29
|
+
aliases:
|
|
30
|
+
- summer_content_make
|
|
31
|
+
implementation:
|
|
32
|
+
module: src/core/capabilities/content-make/index.ts
|
|
33
|
+
export: contentMake
|
|
34
|
+
surfaces:
|
|
35
|
+
mcp:
|
|
36
|
+
tool_name: summer_content_make
|
|
37
|
+
remote: true
|
|
38
|
+
input_schema:
|
|
39
|
+
type: object
|
|
40
|
+
properties:
|
|
41
|
+
contentGameId:
|
|
42
|
+
type: string
|
|
43
|
+
description: The game's Content id, from content.list_games. Not needed with workDir.
|
|
44
|
+
teamId:
|
|
45
|
+
type: string
|
|
46
|
+
description: From team.list, when the person has more than one team.
|
|
47
|
+
referenceId:
|
|
48
|
+
type: string
|
|
49
|
+
description: The reference to copy, from content.list_references. Without it the best fit for today is picked (a format the game has not posted, what changed in the repo, its breakout).
|
|
50
|
+
footage:
|
|
51
|
+
type: array
|
|
52
|
+
items:
|
|
53
|
+
type: string
|
|
54
|
+
description: Folders (or files) of the game's footage on this computer - clips, stills, and the game's own music. Notes in a folder's shots.json or a clip's <clip>.json help match shots. Default ./content/footage.
|
|
55
|
+
lines:
|
|
56
|
+
type: array
|
|
57
|
+
items:
|
|
58
|
+
type: string
|
|
59
|
+
description: Our words, one per reference beat ("" for a beat without words), from the needs_words answer - the reference's pattern, true to the game, never its own words.
|
|
60
|
+
voiceFile:
|
|
61
|
+
type: string
|
|
62
|
+
description: The lines recorded in the team's own voice (wav, mp3, m4a), when the reference speaks (needs_voice).
|
|
63
|
+
title:
|
|
64
|
+
type: string
|
|
65
|
+
description: The piece's title in Review (also the YouTube title).
|
|
66
|
+
caption:
|
|
67
|
+
type: string
|
|
68
|
+
description: The post caption - one dry line and a question, no hashtags.
|
|
69
|
+
hashtags:
|
|
70
|
+
type: array
|
|
71
|
+
items:
|
|
72
|
+
type: string
|
|
73
|
+
description: 3-5 tags, the game's tag first. Default the kit's core tags.
|
|
74
|
+
note:
|
|
75
|
+
type: string
|
|
76
|
+
description: What to make it about ("the new boss", or commit lines like "3f2a1c9 Add waiting room"); weighs the reference pick and becomes the why.
|
|
77
|
+
claim:
|
|
78
|
+
type: boolean
|
|
79
|
+
description: Make a queued make request (the daily scheduler's, or a Change pressed on Today) and report every stage to it - the one named by requestId, else the team's oldest; nothing_queued when none, needs_changes for a revision.
|
|
80
|
+
requestId:
|
|
81
|
+
type: string
|
|
82
|
+
description: The make request to claim, from content.make.
|
|
83
|
+
learningIds:
|
|
84
|
+
type: array
|
|
85
|
+
items:
|
|
86
|
+
type: string
|
|
87
|
+
description: The kit learnings (content.get_kit learnings, listed in needs_words) the words and choices applied.
|
|
88
|
+
workDir:
|
|
89
|
+
type: string
|
|
90
|
+
description: The work folder an earlier call answered - continues that piece where it stopped.
|
|
91
|
+
out:
|
|
92
|
+
type: string
|
|
93
|
+
description: Where the work goes (pieces, the reference videos and footage measurements). Default ~/.summer/content.
|
|
94
|
+
music:
|
|
95
|
+
type: string
|
|
96
|
+
description: The game's own music for a reference with a song (never the reference's audio). Default the first song in the footage folders.
|
|
97
|
+
font:
|
|
98
|
+
type: string
|
|
99
|
+
description: The game's caption font file (.ttf or .otf).
|
|
100
|
+
referenceFile:
|
|
101
|
+
type: string
|
|
102
|
+
description: The reference video, when it cannot be fetched (yt-dlp).
|
|
103
|
+
repo:
|
|
104
|
+
type: string
|
|
105
|
+
description: The game's repo, for what changed today. Default the working directory.
|
|
106
|
+
stage:
|
|
107
|
+
type: string
|
|
108
|
+
enum:
|
|
109
|
+
- plan
|
|
110
|
+
- all
|
|
111
|
+
description: plan stops after the plan, to change shots in plan.json first.
|
|
112
|
+
upload:
|
|
113
|
+
type: boolean
|
|
114
|
+
description: false renders and checks only; nothing is uploaded.
|
|
115
|
+
replan:
|
|
116
|
+
type: boolean
|
|
117
|
+
description: Throw away the plan and map the shots again.
|
|
118
|
+
status:
|
|
119
|
+
type: string
|
|
120
|
+
enum:
|
|
121
|
+
- draft
|
|
122
|
+
- in_review
|
|
123
|
+
description: Override where it lands - in_review even with failed checks, or draft.
|
|
124
|
+
additionalProperties: false
|
|
125
|
+
authority:
|
|
126
|
+
filesystem: true
|
|
127
|
+
editor_mutation: false
|
|
128
|
+
network: true
|
|
129
|
+
credentials: false
|
|
130
|
+
publish: false
|
|
131
|
+
evidence_checks:
|
|
132
|
+
- none
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# summer_frame_shot
|
|
2
2
|
|
|
3
|
-
Smart framing: find good camera poses for a shot type automatically, measured in-engine against the real geometry.
|
|
3
|
+
Smart framing: find good camera poses for a shot type automatically, measured in-engine against the real geometry. It runs in the open editor; use it to look at the scene as a player would.
|
|
4
4
|
|
|
5
5
|
shot: establishing (wide), eye_level (from a spawn node at player eye height), low_angle (hero, near the ground looking up: the camera moves closer and widens its FOV instead of sinking into the ground), detail (close-up), corridor (down a lane or corridor found inside the subject by a free-space scan, preferring the view in from its open end, walls on both sides).
|
|
6
6
|
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
id: tool/go-live
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: "Take a store game live: release its checked Build, publish its page, watch until players get it or name the failing check and fix. Confirm-gated."
|
|
5
|
+
use_when:
|
|
6
|
+
- '"make my game live"'
|
|
7
|
+
- '"publish my game to players now"'
|
|
8
|
+
- '"is my game live yet"'
|
|
9
|
+
- '"release the build I uploaded"'
|
|
10
|
+
- after summer_publish_build reports every automated check passed
|
|
11
|
+
- watching a game until players get it, or finding which automated check failed
|
|
12
|
+
do_not_use_when:
|
|
13
|
+
- the user has not approved taking this exact store page and Build live
|
|
14
|
+
- the game is not uploaded yet - summer_export_game, then summer_publish_build
|
|
15
|
+
- store page text, art or price - store.update_listing, store.set_art, pricing.set_base
|
|
16
|
+
- the release checklist before going live - skill/release-checklist
|
|
17
|
+
facets:
|
|
18
|
+
lifecycle:
|
|
19
|
+
- launch
|
|
20
|
+
domains:
|
|
21
|
+
- creator
|
|
22
|
+
- deployment
|
|
23
|
+
compatibility:
|
|
24
|
+
engine: ">=4.6"
|
|
25
|
+
related:
|
|
26
|
+
skills:
|
|
27
|
+
- skill/release-checklist
|
|
28
|
+
- skill/publish-your-game
|
|
29
|
+
source: official
|
|
30
|
+
license: MIT
|
|
31
|
+
status: preview
|
|
32
|
+
aliases:
|
|
33
|
+
- summer_go_live
|
|
34
|
+
implementation:
|
|
35
|
+
module: src/core/capabilities/go-live.ts
|
|
36
|
+
export: goLive
|
|
37
|
+
surfaces:
|
|
38
|
+
mcp:
|
|
39
|
+
tool_name: summer_go_live
|
|
40
|
+
remote: true
|
|
41
|
+
input_schema:
|
|
42
|
+
type: object
|
|
43
|
+
properties:
|
|
44
|
+
gameId:
|
|
45
|
+
type: string
|
|
46
|
+
description: The store game id (from games.list). Without it the call fails with game_required and lists your store games.
|
|
47
|
+
publicationId:
|
|
48
|
+
type: string
|
|
49
|
+
description: "The bundle Build to release: publicationId from summer_publish_build. Default: the newest uploaded export."
|
|
50
|
+
confirm:
|
|
51
|
+
type: boolean
|
|
52
|
+
default: false
|
|
53
|
+
description: Set true only after the user approves taking this exact page and Build live.
|
|
54
|
+
waitSeconds:
|
|
55
|
+
type: integer
|
|
56
|
+
minimum: 0
|
|
57
|
+
maximum: 1800
|
|
58
|
+
description: How long to watch before answering (default 600). On waiting, call again to keep watching.
|
|
59
|
+
additionalProperties: false
|
|
60
|
+
authority:
|
|
61
|
+
filesystem: false
|
|
62
|
+
editor_mutation: false
|
|
63
|
+
network: true
|
|
64
|
+
credentials: false
|
|
65
|
+
publish: true
|
|
66
|
+
evidence_checks:
|
|
67
|
+
- none
|
|
@@ -6,5 +6,6 @@ Use this for:
|
|
|
6
6
|
- 3D models (.glb, .gltf, .obj)
|
|
7
7
|
- Textures (.png, .jpg, .webp)
|
|
8
8
|
- Audio (.ogg, .wav, .mp3)
|
|
9
|
+
- Video (.mp4, .mov, .webm, .ogv): Summer Engine plays only Ogg Theora, so any other video is converted to .ogv first and lands at the path with .ogv; the answer names it.
|
|
9
10
|
|
|
10
11
|
The path is auto-inferred from the URL filename if not specified. After import, the asset is immediately usable in scenes.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# summer_import_from_url_batch
|
|
2
2
|
|
|
3
|
-
Download multiple files from URLs in one operation. Performs a single filesystem scan after all downloads, which is faster than importing one at a time.
|
|
3
|
+
Download multiple files from URLs in one operation. Performs a single filesystem scan after all downloads, which is faster than importing one at a time. A video (.mp4, .mov, .webm) is converted to Ogg Theora first and lands at its path with .ogv.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Start the game. With no parameters it runs QUIETLY inside Summer Engine's viewport (the 'main' instance); scene runs one level or UI screen instead of the main scene.
|
|
4
4
|
|
|
5
|
+
Playing the game in the editor's real window is allowed and expected: then summer_screenshot target:'game' to see it, summer_stop when done. One editor at a time.
|
|
6
|
+
|
|
5
7
|
QUIET BY DEFAULT (focus:false, PlayGame agent:true): the user usually works on the same machine, so the EDITOR stays put. It does not switch to the Game tab or take keyboard focus (nor follow the game's later focus report), and skips the render-health self-check that would misread the untouched Game view as a GPU failure and flip the user's embed setting. Quiet play does NOT hide the game: it runs embedded in the Game view (visible if that tab is open) and is the running game for summer_is_running / summer_screenshot target:'game' / summer_get_diagnostics. With "Embed Game on Play" off the game gets its own OS window; engines with --summer-background (0.5.66+) open it without taking focus. The result echoes agent_quiet:true when honoured; without agent_quiet the engine predates quiet play and most likely took focus (posture_note says so). focus:true launches like the toolbar Play button (Game tab + focus): ONLY when the user is watching and asked to see the game come up.
|
|
6
8
|
|
|
7
9
|
After starting, confirm boot with summer_is_running (boot time varies; never sleep a guessed delay), then summer_get_diagnostics for runtime errors.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
id: tool/projects-create-local
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: 'Create a project on this computer. Writes a template (3d-basic by default) to a folder, no shell needed. Returns projectPath. Next: projects.open_local.'
|
|
5
|
+
use_when:
|
|
6
|
+
- '"make me a game"'
|
|
7
|
+
- '"start a new Summer project"'
|
|
8
|
+
- '"create a 3d project on my computer"'
|
|
9
|
+
- no editor is open and this session has no project (engine_not_running says so)
|
|
10
|
+
- an agent with no shell (Claude Desktop, a chat app) starts a game
|
|
11
|
+
do_not_use_when:
|
|
12
|
+
- a plan of concept art on Summer's server - projects.create
|
|
13
|
+
- the folder already holds the project - projects.open_local opens it
|
|
14
|
+
- an agent with a shell - npx -y summer-engine@latest dev installs, creates and opens in one step
|
|
15
|
+
facets:
|
|
16
|
+
lifecycle:
|
|
17
|
+
- build
|
|
18
|
+
domains:
|
|
19
|
+
- project
|
|
20
|
+
- editor
|
|
21
|
+
compatibility:
|
|
22
|
+
engine: ">=4.6"
|
|
23
|
+
source: official
|
|
24
|
+
license: MIT
|
|
25
|
+
status: stable
|
|
26
|
+
aliases:
|
|
27
|
+
- summer_projects_create_local
|
|
28
|
+
implementation:
|
|
29
|
+
module: src/core/capabilities/projects-local.ts
|
|
30
|
+
export: createLocalProject
|
|
31
|
+
surfaces:
|
|
32
|
+
mcp:
|
|
33
|
+
tool_name: summer_projects_create_local
|
|
34
|
+
remote: false
|
|
35
|
+
input_schema:
|
|
36
|
+
type: object
|
|
37
|
+
properties:
|
|
38
|
+
template:
|
|
39
|
+
type: string
|
|
40
|
+
description: Template slug (docs.search finds them) - 3d-basic (default), empty, 3d-third-person-controller, 2d-platformer, ...
|
|
41
|
+
name:
|
|
42
|
+
type: string
|
|
43
|
+
description: The project's name and folder name. Default my-game (or the template's name).
|
|
44
|
+
dir:
|
|
45
|
+
type: string
|
|
46
|
+
description: The project folder - a new or empty folder, not inside another project; ~ is home. Default <name> next to the session's project, in the session's folder, or in ~/Documents/Summer.
|
|
47
|
+
additionalProperties: false
|
|
48
|
+
authority:
|
|
49
|
+
filesystem: true
|
|
50
|
+
editor_mutation: false
|
|
51
|
+
network: true
|
|
52
|
+
credentials: false
|
|
53
|
+
publish: false
|
|
54
|
+
evidence_checks:
|
|
55
|
+
- none
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
id: tool/projects-open-local
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: 'Open a project in Summer Engine. Waits until it connects; installs the engine only with install: true (the person''s yes). Next: engine.get_project_context.'
|
|
5
|
+
use_when:
|
|
6
|
+
- '"open my game in Summer"'
|
|
7
|
+
- '"open the editor"'
|
|
8
|
+
- engine_not_running and the session has a project, or after projects.create_local
|
|
9
|
+
- an agent with no shell (Claude Desktop, a chat app) needs the editor
|
|
10
|
+
do_not_use_when:
|
|
11
|
+
- the person has not said yes to installing Summer Engine (about 660 MB) - call it without install; it says when the engine is missing
|
|
12
|
+
- another project is open in Summer Engine - it names it; switch the editor first
|
|
13
|
+
- download links for the person to install by hand - projects.open_in_engine
|
|
14
|
+
facets:
|
|
15
|
+
lifecycle:
|
|
16
|
+
- build
|
|
17
|
+
domains:
|
|
18
|
+
- project
|
|
19
|
+
- editor
|
|
20
|
+
compatibility:
|
|
21
|
+
engine: ">=4.6"
|
|
22
|
+
source: official
|
|
23
|
+
license: MIT
|
|
24
|
+
status: stable
|
|
25
|
+
aliases:
|
|
26
|
+
- summer_projects_open_local
|
|
27
|
+
implementation:
|
|
28
|
+
module: src/core/capabilities/projects-local.ts
|
|
29
|
+
export: openLocalProject
|
|
30
|
+
surfaces:
|
|
31
|
+
mcp:
|
|
32
|
+
tool_name: summer_projects_open_local
|
|
33
|
+
remote: false
|
|
34
|
+
input_schema:
|
|
35
|
+
type: object
|
|
36
|
+
properties:
|
|
37
|
+
path:
|
|
38
|
+
type: string
|
|
39
|
+
description: The project folder (holds project.godot), e.g. projectPath from summer_projects_create_local. Default this session's project.
|
|
40
|
+
install:
|
|
41
|
+
type: boolean
|
|
42
|
+
description: Install Summer Engine first when it is missing. Set true only after the person said yes.
|
|
43
|
+
additionalProperties: false
|
|
44
|
+
authority:
|
|
45
|
+
filesystem: true
|
|
46
|
+
editor_mutation: false
|
|
47
|
+
network: true
|
|
48
|
+
credentials: false
|
|
49
|
+
publish: false
|
|
50
|
+
evidence_checks:
|
|
51
|
+
- none
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: tool/publish-build
|
|
2
2
|
kind: tool
|
|
3
3
|
version: 1.0.1
|
|
4
|
-
summary: Upload an export
|
|
4
|
+
summary: "Upload an export to the creator's store game, confirm-gated: a bundle as a Build with its per-platform checks, or a web or native download."
|
|
5
5
|
use_when:
|
|
6
6
|
- '"upload my game to summer.games"'
|
|
7
7
|
- '"publish this build to my store page"'
|
|
@@ -14,7 +14,7 @@ do_not_use_when:
|
|
|
14
14
|
- the user has not approved the exact game, file, digest, version and publish choice
|
|
15
15
|
- the game is not exported yet — summer_export_game first
|
|
16
16
|
- store page text, art or price — store.update_listing, store.set_art (hosted, after summer login --store)
|
|
17
|
-
- making the build live —
|
|
17
|
+
- making the build live — summer_go_live
|
|
18
18
|
- what players get now — store.status
|
|
19
19
|
facets:
|
|
20
20
|
lifecycle:
|
|
@@ -51,7 +51,7 @@ input_schema:
|
|
|
51
51
|
publish:
|
|
52
52
|
type: boolean
|
|
53
53
|
default: false
|
|
54
|
-
description: "Bundles only: also
|
|
54
|
+
description: "Bundles only: also make the Build available to players once its checks pass. summer_go_live does this, the release and the store page in one step."
|
|
55
55
|
platform:
|
|
56
56
|
type: string
|
|
57
57
|
enum:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Capture a frame from Summer Engine and return it as an image you can look at directly.
|
|
4
4
|
|
|
5
|
-
Use this to visually verify your work: scene layout, asset placement, scale, framing, missing/untextured assets, or runtime gameplay state. You see the actual pixels — no description layer in between. Lighting and materials are only truthfully shown by the "viewport" and "game" targets — see the note on "scene" below.
|
|
5
|
+
Use this to visually verify your work (it reads the real open editor or game window; that is allowed and expected): scene layout, asset placement, scale, framing, missing/untextured assets, or runtime gameplay state. You see the actual pixels — no description layer in between. Lighting and materials are only truthfully shown by the "viewport" and "game" targets — see the note on "scene" below.
|
|
6
6
|
|
|
7
7
|
target:
|
|
8
8
|
"viewport" (default) — the editor's CURRENT view (whatever scene/tab is open). No game boot. Use for edit-time checks of how the scene looks right now.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
id: tool/store-set-details
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: "Fill store page sections update_listing lacks: genres, features, credits, languages, requirements, content survey, AI disclosure. Never publishes."
|
|
5
|
+
use_when:
|
|
6
|
+
- '"fill in the age rating questionnaire"'
|
|
7
|
+
- '"add the AI disclosure to my store page"'
|
|
8
|
+
- '"set my game''s genres and features"'
|
|
9
|
+
- '"list the languages my game supports"'
|
|
10
|
+
- '"add system requirements to the store page"'
|
|
11
|
+
- store.get_listing shows contentSurvey, aiDisclosure, genres or credits empty
|
|
12
|
+
do_not_use_when:
|
|
13
|
+
- title, tagline, descriptions, tags, platforms, content rating, release stage or support link - store.update_listing
|
|
14
|
+
- store art, trailer or sound - store.set_art, store.set_trailer, store.set_sound
|
|
15
|
+
- taking the page live - summer_go_live
|
|
16
|
+
facets:
|
|
17
|
+
lifecycle:
|
|
18
|
+
- launch
|
|
19
|
+
domains:
|
|
20
|
+
- creator
|
|
21
|
+
- deployment
|
|
22
|
+
compatibility:
|
|
23
|
+
engine: ">=4.6"
|
|
24
|
+
related:
|
|
25
|
+
skills:
|
|
26
|
+
- skill/release-checklist
|
|
27
|
+
- skill/store-listing
|
|
28
|
+
source: official
|
|
29
|
+
license: MIT
|
|
30
|
+
status: preview
|
|
31
|
+
aliases:
|
|
32
|
+
- summer_store_set_details
|
|
33
|
+
implementation:
|
|
34
|
+
module: src/core/capabilities/store-details.ts
|
|
35
|
+
export: setStoreDetails
|
|
36
|
+
surfaces:
|
|
37
|
+
mcp:
|
|
38
|
+
tool_name: summer_store_set_details
|
|
39
|
+
remote: true
|
|
40
|
+
input_schema:
|
|
41
|
+
type: object
|
|
42
|
+
properties:
|
|
43
|
+
gameId:
|
|
44
|
+
type: string
|
|
45
|
+
description: The store game id (from games.list).
|
|
46
|
+
genres:
|
|
47
|
+
type: array
|
|
48
|
+
items:
|
|
49
|
+
type: string
|
|
50
|
+
description: Genre tag ids (category genre in store.get_listing tags), 1 to 5, in the creator's order; null clears them.
|
|
51
|
+
features:
|
|
52
|
+
type: array
|
|
53
|
+
items:
|
|
54
|
+
type: string
|
|
55
|
+
enum: [single_player, online_multiplayer, local_multiplayer, online_coop, local_coop, cross_platform, controller_full, controller_partial, cloud_saves, plays_in_browser, level_editor, achievements, in_game_purchases]
|
|
56
|
+
description: What the game offers, from the store's closed list; null clears them.
|
|
57
|
+
credits:
|
|
58
|
+
type: object
|
|
59
|
+
properties:
|
|
60
|
+
developer: {type: string}
|
|
61
|
+
publisher: {type: string}
|
|
62
|
+
franchise: {type: string}
|
|
63
|
+
required: [developer]
|
|
64
|
+
description: Who made and published it, each 1 to 120 characters; omit publisher or franchise when there is none.
|
|
65
|
+
languageSupport:
|
|
66
|
+
type: array
|
|
67
|
+
items:
|
|
68
|
+
type: object
|
|
69
|
+
properties:
|
|
70
|
+
code: {type: string}
|
|
71
|
+
interface: {type: boolean}
|
|
72
|
+
fullAudio: {type: boolean}
|
|
73
|
+
subtitles: {type: boolean}
|
|
74
|
+
required: [code, interface, fullAudio, subtitles]
|
|
75
|
+
description: One entry per language (BCP 47 code such as en, pt-br, zh-hans), up to 30, each with at least one kind of support.
|
|
76
|
+
systemRequirements:
|
|
77
|
+
type: object
|
|
78
|
+
description: "Desktop hardware: { windows | macos | linux: { minimum: { os, processor, memory, graphics, storage, network, notes }, recommended? } }."
|
|
79
|
+
contentSurvey:
|
|
80
|
+
type: object
|
|
81
|
+
properties:
|
|
82
|
+
violence: {type: string, enum: [none, fantasy, realistic]}
|
|
83
|
+
bloodGore: {type: string, enum: [none, mild, intense]}
|
|
84
|
+
sexualContent: {type: string, enum: [none, suggestive, explicit]}
|
|
85
|
+
nudity: {type: string, enum: [none, partial, full]}
|
|
86
|
+
language: {type: string, enum: [none, mild, strong]}
|
|
87
|
+
substances: {type: string, enum: [none, referenced, used]}
|
|
88
|
+
gambling: {type: string, enum: [none, simulated, realMoney]}
|
|
89
|
+
userGeneratedContent: {type: boolean}
|
|
90
|
+
onlineInteraction: {type: boolean}
|
|
91
|
+
inGamePurchases: {type: boolean}
|
|
92
|
+
notes: {type: string}
|
|
93
|
+
required: [violence, bloodGore, sexualContent, nudity, language, substances, gambling, userGeneratedContent, onlineInteraction, inGamePurchases]
|
|
94
|
+
description: The mature-content questionnaire; every answer is required and none is an answer.
|
|
95
|
+
aiDisclosure:
|
|
96
|
+
type: object
|
|
97
|
+
properties:
|
|
98
|
+
uses:
|
|
99
|
+
type: array
|
|
100
|
+
items:
|
|
101
|
+
type: string
|
|
102
|
+
enum: [assets, code, generatedGameplay]
|
|
103
|
+
description: {type: string}
|
|
104
|
+
required: [uses]
|
|
105
|
+
description: How AI was used to make the game; uses [] means no AI. generatedGameplay needs a description of what is generated and its guardrails.
|
|
106
|
+
additionalProperties: false
|
|
107
|
+
authority:
|
|
108
|
+
filesystem: false
|
|
109
|
+
editor_mutation: false
|
|
110
|
+
network: true
|
|
111
|
+
credentials: false
|
|
112
|
+
publish: false
|
|
113
|
+
evidence_checks:
|
|
114
|
+
- none
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
id: tool/sync-items
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Sync summer.items.json to the store game by item slug - a plan, then the owner's approval in Studio. Needs the store sign-in (summer login --store).
|
|
5
|
+
use_when:
|
|
6
|
+
- '"add these items to my game"'
|
|
7
|
+
- '"sync my items to staging"'
|
|
8
|
+
- '"put the same items in production"'
|
|
9
|
+
- '"change the price of emote_ponder"'
|
|
10
|
+
- creating or revising store items from summer.items.json, matched by slug
|
|
11
|
+
- making the staging game and the production game carry the same items
|
|
12
|
+
do_not_use_when:
|
|
13
|
+
- the user has not approved the exact plan for this gateway and game
|
|
14
|
+
- more than 50 items change at once - one approval takes 50; confirm each listed batch with slugs
|
|
15
|
+
- the store sign-in is for the other environment - after changing SUMMER_GATEWAY_URL and SUMMER_MCP_RESOURCE_URL, run summer login --store --force first
|
|
16
|
+
- releasing or activating an item for players - after Summer approves it, the owner activates each item in Studio (Review activation); players can buy it only while the game is live
|
|
17
|
+
- Passport collectibles (stamps, pins, badges) - a Passport item with the same slug is blocked, never synced
|
|
18
|
+
- retiring or deleting an item - items the file does not name are listed, never changed
|
|
19
|
+
- the game's own price or store page - store.update_listing, pricing.set_base
|
|
20
|
+
facets:
|
|
21
|
+
lifecycle:
|
|
22
|
+
- launch
|
|
23
|
+
domains:
|
|
24
|
+
- creator
|
|
25
|
+
- deployment
|
|
26
|
+
compatibility:
|
|
27
|
+
engine: ">=4.6"
|
|
28
|
+
related:
|
|
29
|
+
skills:
|
|
30
|
+
- skill/summer-store
|
|
31
|
+
source: official
|
|
32
|
+
license: MIT
|
|
33
|
+
status: preview
|
|
34
|
+
aliases:
|
|
35
|
+
- summer_sync_items
|
|
36
|
+
implementation:
|
|
37
|
+
module: src/core/capabilities/sync-items.ts
|
|
38
|
+
export: syncItems
|
|
39
|
+
surfaces:
|
|
40
|
+
mcp:
|
|
41
|
+
tool_name: summer_sync_items
|
|
42
|
+
remote: true
|
|
43
|
+
input_schema:
|
|
44
|
+
type: object
|
|
45
|
+
properties:
|
|
46
|
+
gameId:
|
|
47
|
+
type: string
|
|
48
|
+
description: The store game id on this gateway (from games.list). Staging and production games have different ids. Without it the call fails with game_required and lists your store games. Switching between staging and production takes SUMMER_GATEWAY_URL and SUMMER_MCP_RESOURCE_URL, then "summer login --store --force" (one store sign-in per machine).
|
|
49
|
+
project:
|
|
50
|
+
type: string
|
|
51
|
+
description: Project folder with project.godot and summer.items.json. Defaults to the MCP's bound project, then the working directory.
|
|
52
|
+
file:
|
|
53
|
+
type: string
|
|
54
|
+
description: The items file, relative to the project. Default summer.items.json.
|
|
55
|
+
slugs:
|
|
56
|
+
type: array
|
|
57
|
+
items:
|
|
58
|
+
type: string
|
|
59
|
+
description: Only these items (their slugs); the rest of the file is left out of the plan. Confirm a plan of more than 50 changed items one batch (from batches) at a time.
|
|
60
|
+
confirm:
|
|
61
|
+
type: boolean
|
|
62
|
+
default: false
|
|
63
|
+
description: Set true only after the user approves the plan.
|
|
64
|
+
additionalProperties: false
|
|
65
|
+
authority:
|
|
66
|
+
filesystem: true
|
|
67
|
+
editor_mutation: false
|
|
68
|
+
network: true
|
|
69
|
+
credentials: false
|
|
70
|
+
publish: true
|
|
71
|
+
evidence_checks:
|
|
72
|
+
- none
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "summer-engine",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"description": "MCP server, CLI and skills for Summer Engine, the game engine built for AI. Connect Claude Code, Cursor, Codex and other agents to build, test and publish full games to summer.games.",
|
|
5
5
|
"mcpName": "io.github.SummerEngine/summer",
|
|
6
6
|
"keywords": [
|
|
@@ -122,6 +122,7 @@
|
|
|
122
122
|
"summer_clear_console": "tool/clear-console",
|
|
123
123
|
"summer_connect_ports": "tool/connect-ports",
|
|
124
124
|
"summer_connect_signal": "tool/connect-signal",
|
|
125
|
+
"summer_content_make": "tool/content-make",
|
|
125
126
|
"summer_create_debug_report": "tool/create-debug-report",
|
|
126
127
|
"summer_create_scene": "tool/create-scene",
|
|
127
128
|
"summer_debug_views": "tool/debug-views",
|
|
@@ -154,6 +155,7 @@
|
|
|
154
155
|
"summer_get_scene_tree": "tool/get-scene-tree",
|
|
155
156
|
"summer_get_script_errors": "tool/get-script-errors",
|
|
156
157
|
"summer_get_studio_workflow": "tool/get-studio-workflow",
|
|
158
|
+
"summer_go_live": "tool/go-live",
|
|
157
159
|
"summer_grep": "tool/grep",
|
|
158
160
|
"summer_import_asset": "tool/import-asset",
|
|
159
161
|
"summer_import_asset_by_id": "tool/import-asset-by-id",
|
|
@@ -177,6 +179,8 @@
|
|
|
177
179
|
"summer_place_adjacent": "tool/place-adjacent",
|
|
178
180
|
"summer_play": "tool/play",
|
|
179
181
|
"summer_project_setting": "tool/project-setting",
|
|
182
|
+
"summer_projects_create_local": "tool/projects-create-local",
|
|
183
|
+
"summer_projects_open_local": "tool/projects-open-local",
|
|
180
184
|
"summer_publish_build": "tool/publish-build",
|
|
181
185
|
"summer_raycast": "tool/raycast",
|
|
182
186
|
"summer_read_file": "tool/read-file",
|
|
@@ -207,6 +211,8 @@
|
|
|
207
211
|
"summer_starcast": "tool/starcast",
|
|
208
212
|
"summer_start_game_task": "tool/start-game-task",
|
|
209
213
|
"summer_stop": "tool/stop",
|
|
214
|
+
"summer_store_set_details": "tool/store-set-details",
|
|
215
|
+
"summer_sync_items": "tool/sync-items",
|
|
210
216
|
"summer_test_placement": "tool/test-placement",
|
|
211
217
|
"summer_ui_actions": "tool/ui-actions",
|
|
212
218
|
"summer_ui_activate": "tool/ui-activate",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED from integrations/gemini — do not edit; npm run generate:registry",
|
|
3
3
|
"name": "summer",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.5.0",
|
|
5
5
|
"description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. The Summer Engine MCP server, context primer and game-dev skills.",
|
|
6
6
|
"contextFileName": "GEMINI.md",
|
|
7
7
|
"mcpServers": {
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
"./library/skills/in-game-purchases/",
|
|
73
73
|
"./library/skills/instantiate-asset-pack/",
|
|
74
74
|
"./library/skills/investigating-bugs/",
|
|
75
|
+
"./library/skills/make-content/",
|
|
75
76
|
"./library/skills/make-game/",
|
|
76
77
|
"./library/skills/multiplayer/",
|
|
77
78
|
"./library/skills/multiplayer-movement/",
|
|
@@ -89,6 +90,7 @@
|
|
|
89
90
|
"./library/skills/procedural-animation/",
|
|
90
91
|
"./library/skills/prop-model/",
|
|
91
92
|
"./library/skills/publish-your-game/",
|
|
93
|
+
"./library/skills/release-checklist/",
|
|
92
94
|
"./library/skills/release-readiness/",
|
|
93
95
|
"./library/skills/remote-deploy/",
|
|
94
96
|
"./library/skills/retarget/",
|