@rpgm-tools/neo-angband-mod-sdk 1.8.0 → 1.10.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/README.md +30 -0
- package/bin/neo-angband-mod-check.mjs +2 -0
- package/dist/manifest.d.ts +4 -2
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/standards.d.ts +7 -4
- package/dist/standards.d.ts.map +1 -1
- package/dist/standards.js +43 -5
- package/dist/standards.js.map +1 -1
- package/docs/AUTHORING.md +10 -8
- package/docs/MOD_COMPATIBILITY.md +72 -17
- package/docs/MOD_LIFECYCLE.md +48 -15
- package/docs/MOD_REACH.md +17 -0
- package/docs/MOD_SEAMS.md +7 -0
- package/docs/PLUGINS.md +8 -3
- package/docs/README.md +10 -7
- package/docs/REQUIREMENTS.md +6 -0
- package/package.json +1 -1
- package/src/manifest.ts +4 -2
- package/src/standards.ts +41 -5
package/README.md
CHANGED
|
@@ -19,6 +19,36 @@ itself does not have one. This package is that pipeline, with no engine attached
|
|
|
19
19
|
so a mod's build script or test can validate a manifest, resolve a load order or
|
|
20
20
|
compose records without pulling in a game.
|
|
21
21
|
|
|
22
|
+
## Tools
|
|
23
|
+
|
|
24
|
+
Two command-line tools ship in this package. They are the validate and bundle
|
|
25
|
+
halves of authoring, living next to the schema they enforce. There is no
|
|
26
|
+
separate `neo-pack` CLI.
|
|
27
|
+
|
|
28
|
+
### `neo-angband-mod-check`
|
|
29
|
+
|
|
30
|
+
Runs the same rules the game enforces at install against a folder:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
npx neo-angband-mod-check path/to/your-mod
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
That includes the manifest schema, the capability grammar (`parseCapability` /
|
|
37
|
+
`CapabilitySet.fromManifest`), the engine range, and the file-list rules a
|
|
38
|
+
schema cannot see (a `plugin.js` with no `modApi`, a committed zip that is not
|
|
39
|
+
declared in `payload.archives`). Exit 0 means the game will accept the mod.
|
|
40
|
+
|
|
41
|
+
### `neo-angband-mod-build`
|
|
42
|
+
|
|
43
|
+
Compiles a mod's TypeScript into the `plugin.js` its folder distributes, and
|
|
44
|
+
enforces the plugin ABI while doing it: no bare imports, one bundled file, a
|
|
45
|
+
default export that looks like a `ModPlugin`. `--check` verifies a committed
|
|
46
|
+
`plugin.js` is current without writing.
|
|
47
|
+
|
|
48
|
+
Scaffolding a new mod repository (CI, license files, GitHub workflows) is not
|
|
49
|
+
a package concern and is not provided here. A new mod is a folder with a
|
|
50
|
+
`manifest.json`; the check is what says whether that folder will install.
|
|
51
|
+
|
|
22
52
|
## Exports
|
|
23
53
|
|
|
24
54
|
| Area | Exports |
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* got it right when somebody else's install fails. This runs the SAME rules the game
|
|
11
11
|
* runs at install time - literally the same functions, imported from the SDK - so a
|
|
12
12
|
* green run here means the game will accept the mod, and a red one names the field.
|
|
13
|
+
* Capability strings go through CapabilitySet.fromManifest, the same function the
|
|
14
|
+
* loader calls, so a typo that used to pass here and fail at load cannot.
|
|
13
15
|
*
|
|
14
16
|
* ARCHIVES. If the folder holds committed .zip files, they are read as the payload
|
|
15
17
|
* the way the installer reads them, so the "does this mod ship plugin.js" questions
|
package/dist/manifest.d.ts
CHANGED
|
@@ -257,8 +257,10 @@ export declare const DEFAULT_PACK_GROUP = "content";
|
|
|
257
257
|
* runtime grants only what a `shape: plugin` pack declares and the user
|
|
258
258
|
* approves; content and tile packs request none. The vocabulary
|
|
259
259
|
* ("command:add", "event:turn-start", "state:*.read", "network:<host>", ...)
|
|
260
|
-
* is enforced by
|
|
261
|
-
*
|
|
260
|
+
* is enforced by parseCapability / CapabilitySet.fromManifest in
|
|
261
|
+
* capabilities.ts. The manifest records the request as strings; checkMod
|
|
262
|
+
* runs that same function, so an unrecognized capability is a check
|
|
263
|
+
* failure rather than a silent accept.
|
|
262
264
|
*/
|
|
263
265
|
export type Capability = string;
|
|
264
266
|
/** How code declared by a plugin-facet pack is executed. */
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,0EAA0E;AAC1E,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAAmC,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,CAAC,GAC/C,WAAW,CAAC,SAAS,CAAC,CAExB;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,CAAC,EAChD,KAAK,EAAE,SAAS,GACf,OAAO,CAET;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAM/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpF,yEAAyE;AACzE,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAK/C,CAAC;AAEF,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EASxC,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,0EAA0E;AAC1E,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAE5C,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAAmC,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,CAAC,GAC/C,WAAW,CAAC,SAAS,CAAC,CAExB;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,CAAC,EAChD,KAAK,EAAE,SAAS,GACf,OAAO,CAET;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAM/C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpF,yEAAyE;AACzE,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAK/C,CAAC;AAEF,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EASxC,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEpD;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,qEAAqE;AACrE,MAAM,WAAW,uBAAuB;IACtC,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IAC9B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qFAAqF;IACrF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAKD,qBAAa,aAAc,SAAQ,KAAK;CAAG;AAE3C,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAkK7D;AAsdD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/standards.d.ts
CHANGED
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
* cannot describe a rule that is not enforced or omit one that is.
|
|
16
16
|
*
|
|
17
17
|
* WHAT IT DOES NOT DUPLICATE. Everything validateManifest already decides is
|
|
18
|
-
* delegated to validateManifest.
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
18
|
+
* delegated to validateManifest. Capability grammar is the same: this module
|
|
19
|
+
* calls CapabilitySet.fromManifest rather than restating parseCapability's
|
|
20
|
+
* patterns. What it adds is the rules that need to see something those two
|
|
21
|
+
* cannot: the FILE LIST, and the join between a validated manifest and the
|
|
22
|
+
* capability model (validateManifest cannot import capabilities.ts without a
|
|
23
|
+
* cycle). Two of the file-list rules below are defects this project actually
|
|
24
|
+
* shipped, both invisible to a validator with no files to look at:
|
|
22
25
|
*
|
|
23
26
|
* - `modApi` is documented as REQUIRED of any pack shipping plugin.js, and nothing
|
|
24
27
|
* enforced it, because validateManifest never sees whether plugin.js is there.
|
package/dist/standards.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards.d.ts","sourceRoot":"","sources":["../src/standards.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"standards.d.ts","sourceRoot":"","sources":["../src/standards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH,uDAAuD;AACvD,eAAO,MAAM,WAAW,cAAc,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuB5D;AAED,wFAAwF;AACxF,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,aAAa,CAAC;AAE1D,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;CAC1G;AAED,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAkBD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,WAAW,EA0SlD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,WAAW,CAoBvD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAmC7C"}
|
package/dist/standards.js
CHANGED
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
* cannot describe a rule that is not enforced or omit one that is.
|
|
16
16
|
*
|
|
17
17
|
* WHAT IT DOES NOT DUPLICATE. Everything validateManifest already decides is
|
|
18
|
-
* delegated to validateManifest.
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
18
|
+
* delegated to validateManifest. Capability grammar is the same: this module
|
|
19
|
+
* calls CapabilitySet.fromManifest rather than restating parseCapability's
|
|
20
|
+
* patterns. What it adds is the rules that need to see something those two
|
|
21
|
+
* cannot: the FILE LIST, and the join between a validated manifest and the
|
|
22
|
+
* capability model (validateManifest cannot import capabilities.ts without a
|
|
23
|
+
* cycle). Two of the file-list rules below are defects this project actually
|
|
24
|
+
* shipped, both invisible to a validator with no files to look at:
|
|
22
25
|
*
|
|
23
26
|
* - `modApi` is documented as REQUIRED of any pack shipping plugin.js, and nothing
|
|
24
27
|
* enforced it, because validateManifest never sees whether plugin.js is there.
|
|
@@ -31,8 +34,9 @@
|
|
|
31
34
|
* "warning" tier that sometimes blocks is how a check becomes something authors
|
|
32
35
|
* learn to ignore.
|
|
33
36
|
*/
|
|
34
|
-
import {
|
|
37
|
+
import { CapabilitySet } from "./capabilities.js";
|
|
35
38
|
import { ManifestError, hasFacet, validateManifest } from "./manifest.js";
|
|
39
|
+
import { compareSemver, satisfies } from "./semver.js";
|
|
36
40
|
/** The file a mod's code lives in, when it has any. */
|
|
37
41
|
export const PLUGIN_FILE = "plugin.js";
|
|
38
42
|
/**
|
|
@@ -250,6 +254,40 @@ export const MOD_REQUIREMENTS = [
|
|
|
250
254
|
}
|
|
251
255
|
},
|
|
252
256
|
},
|
|
257
|
+
{
|
|
258
|
+
id: "capabilities-recognized",
|
|
259
|
+
level: "required",
|
|
260
|
+
title: "Request only capabilities the game knows",
|
|
261
|
+
why: "A capability string is the consent surface a player reads and the gate the " +
|
|
262
|
+
"runtime actually opens. An unrecognized string, or a capability on a pack " +
|
|
263
|
+
"that cannot execute, is refused when the game loads the plugin - after the " +
|
|
264
|
+
"player has already installed it. This check is CapabilitySet.fromManifest, " +
|
|
265
|
+
"the same function the loader calls, so a typo that used to pass here and " +
|
|
266
|
+
"fail there cannot.",
|
|
267
|
+
check: (mod) => {
|
|
268
|
+
const m = manifestObject(mod);
|
|
269
|
+
if (m === null)
|
|
270
|
+
return null;
|
|
271
|
+
let manifest;
|
|
272
|
+
try {
|
|
273
|
+
/* validateManifest first, so this rule never re-describes the schema. A
|
|
274
|
+
* malformed capabilities field (not an array of strings) belongs to
|
|
275
|
+
* manifest-fields; this rule only speaks once there is a PackManifest
|
|
276
|
+
* to hand to the capability model. */
|
|
277
|
+
manifest = validateManifest(m);
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
try {
|
|
283
|
+
CapabilitySet.fromManifest(manifest);
|
|
284
|
+
return null;
|
|
285
|
+
}
|
|
286
|
+
catch (e) {
|
|
287
|
+
return e instanceof Error ? e.message : String(e);
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
},
|
|
253
291
|
{
|
|
254
292
|
id: "plugin-declares-modapi",
|
|
255
293
|
level: "required",
|
package/dist/standards.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards.js","sourceRoot":"","sources":["../src/standards.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards.js","sourceRoot":"","sources":["../src/standards.ts"],"names":[],"mappings":"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"}
|
package/docs/AUTHORING.md
CHANGED
|
@@ -639,14 +639,16 @@ without retaining live game state.
|
|
|
639
639
|
|
|
640
640
|
Input follows the same staged rule. `UiInput` is available to host code through
|
|
641
641
|
the one input door and can represent a continuous direction (vector, magnitude,
|
|
642
|
-
angle) without translating it to a keyboard arrow. A
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
642
|
+
angle) without translating it to a keyboard arrow. A plugin declaring
|
|
643
|
+
`keymap:write` receives `ctx.keymaps` during a live game: `bind(trigger, action)`
|
|
644
|
+
claims a free keyboard trigger, `entries()` lists only that mod's claims, and
|
|
645
|
+
`rebind()` and `remove()` operate only on those claims. It cannot inspect,
|
|
646
|
+
replace, or remove player bindings or another mod's bindings. A player edit takes
|
|
647
|
+
ownership back, and host teardown removes bindings still owned by a mod before it
|
|
648
|
+
is disabled or reloaded. `input-door.ts` remains host infrastructure rather than
|
|
649
|
+
a capability. Player keymaps keep precedence over any later input consumer while
|
|
650
|
+
the root owns input; an active modal, score screen, or run interruption continues
|
|
651
|
+
to receive the player's literal key first.
|
|
650
652
|
|
|
651
653
|
## Knowing which mod a record came from
|
|
652
654
|
|
|
@@ -7,11 +7,13 @@ The short answer, and the target the rest of this document explains:
|
|
|
7
7
|
|
|
8
8
|
> A mod that is pure data should survive engine releases without being
|
|
9
9
|
> republished. A mod that ships code should survive patch and minor releases,
|
|
10
|
-
> and get a release's warning before an ABI change strands it.
|
|
10
|
+
> and get a release's warning before an ABI change strands it. That ABI includes
|
|
11
|
+
> a named subset of `ctx.core`; the rest of that namespace is an escape hatch.
|
|
11
12
|
|
|
12
13
|
Written down on 2026-08-02, after measuring how the four gates actually behaved.
|
|
13
14
|
Three of the four were stricter than they needed to be, and the fourth did not
|
|
14
|
-
exist.
|
|
15
|
+
exist. The fourth is `ctx.core`. A named subset of that namespace is part of the
|
|
16
|
+
promise; the rest of it is an escape hatch.
|
|
15
17
|
|
|
16
18
|
## The four things that can strand a mod
|
|
17
19
|
|
|
@@ -20,7 +22,7 @@ exist.
|
|
|
20
22
|
| 1 | `engine` | a semver range over `ENGINE_VERSION` | **warns** for data, **refuses** code |
|
|
21
23
|
| 2 | `modApi` | the plugin ABI, an integer | refuses outside the accepted window |
|
|
22
24
|
| 3 | a patch target | one `patches` / `fieldPatches` / `removes` ref | **skips that op**, keeps the mod |
|
|
23
|
-
| 4 | `ctx.core` | any
|
|
25
|
+
| 4 | `ctx.core` | a guaranteed name disappearing; any other export a plugin actually calls | the loader still does nothing at load time; a guaranteed name cannot be removed from the engine without an alias or a two-release ABI bump. See below. |
|
|
24
26
|
|
|
25
27
|
### 1. `engine` is a label on data and a gate on code
|
|
26
28
|
|
|
@@ -231,10 +233,10 @@ instead of `values`, say) took down the whole pack, or every installed mod when
|
|
|
231
233
|
the raw error named none of them; it is now refused the same way a missing
|
|
232
234
|
patch target already was.
|
|
233
235
|
|
|
234
|
-
### 4.
|
|
236
|
+
### 4. `ctx.core` is handed over whole; a named subset of it is guaranteed
|
|
235
237
|
|
|
236
238
|
`ModPluginContext.core` is the **live core module namespace** - the whole engine,
|
|
237
|
-
|
|
239
|
+
1,974 runtime exports, deliberately not a curated slice (decision 18, and
|
|
238
240
|
because a curated list is the thing that drifts). The count is not maintained by
|
|
239
241
|
hand: `packages/core/mod-api-surface.json` is the recorded surface and
|
|
240
242
|
`mod-core-surface.test.ts` fails in BOTH directions against it, so a removal and
|
|
@@ -247,12 +249,60 @@ A core function can be renamed without touching any of that, so the one number a
|
|
|
247
249
|
mod author checks says nothing about the surface they spend all their time
|
|
248
250
|
calling.
|
|
249
251
|
|
|
250
|
-
|
|
252
|
+
That width is why the whole namespace cannot carry the compatibility promise: a
|
|
253
|
+
ban on removing any of 1,974 names would freeze the port. First-party plugins
|
|
254
|
+
call 23 of those names at runtime, and those 23 are the part of `ctx.core` the
|
|
255
|
+
promise covers.
|
|
256
|
+
|
|
257
|
+
| Export | `typeof` | Called by |
|
|
258
|
+
|---|---|---|
|
|
259
|
+
| `DDGRID` | object | feature-restoration |
|
|
260
|
+
| `FEAT` | object | bug-fixes, borg |
|
|
261
|
+
| `MON_RACE_FLAG_ENTRIES` | object | borg |
|
|
262
|
+
| `MON_SPELL_ENTRIES` | object | borg |
|
|
263
|
+
| `OptionState` | function | qol |
|
|
264
|
+
| `REST_COMPLETE` | number | borg |
|
|
265
|
+
| `RSF` | object | borg |
|
|
266
|
+
| `Rng` | function | borg |
|
|
267
|
+
| `TV` | object | borg |
|
|
268
|
+
| `describeLookGrid` | function | qol |
|
|
269
|
+
| `gearObjectForUse` | function | feature-restoration |
|
|
270
|
+
| `knownPile` | function | qol |
|
|
271
|
+
| `loc` | function | bug-fixes |
|
|
272
|
+
| `movementTunnelTest` | function | qol |
|
|
273
|
+
| `parseTilePrefs` | function | upstream-catchup |
|
|
274
|
+
| `placeStairs` | function | bug-fixes |
|
|
275
|
+
| `playerConfuseDir` | function | feature-restoration |
|
|
276
|
+
| `setPrefErrorPolicy` | function | qol |
|
|
277
|
+
| `squareIsEmpty` | function | bug-fixes |
|
|
278
|
+
| `squareIsNoStairs` | function | bug-fixes |
|
|
279
|
+
| `squareIsVisibleTrap` | function | qol |
|
|
280
|
+
| `squareNumWallsAdjacent` | function | bug-fixes |
|
|
281
|
+
| `tunnelAux` | function | qol |
|
|
282
|
+
|
|
283
|
+
qol 7, bug-fixes 6, borg 7, feature-restoration 3, upstream-catchup 1. linoleum
|
|
284
|
+
and forge call none: linoleum reaches the game through `host.tiles` and
|
|
285
|
+
`ctx.registries`; forge holds `ctx.core` and does not read a name from it.
|
|
286
|
+
|
|
287
|
+
`packages/core/mod-core-guaranteed.json` is the list, and
|
|
288
|
+
`mod-core-guaranteed.test.ts` fails if any of those names is missing from the
|
|
289
|
+
live namespace a plugin receives, or if its `typeof` has changed. Removing one
|
|
290
|
+
is a compatibility break: keep the old name as an alias, or take the two-release
|
|
291
|
+
`modApi` path. Updating `mod-api-surface.json` is not enough.
|
|
292
|
+
|
|
293
|
+
**Everything else on `ctx.core` is the escape hatch.** A plugin may call it. A
|
|
294
|
+
rename or removal of an unguaranteed name is recorded in the table below and can
|
|
295
|
+
ship in the same release. Prefer a seam (`ModHooks`, `ctx.registries`, a
|
|
296
|
+
capability-gated facade) when one exists. Reaching past those into an
|
|
297
|
+
unguaranteed name is coupling to that engine release.
|
|
298
|
+
|
|
299
|
+
What exists for the rest of the namespace is not a fence but a **ratchet**:
|
|
251
300
|
`packages/core/mod-api-surface.json` records every runtime export, and
|
|
252
301
|
`mod-core-surface.test.ts` fails when the set changes in either direction.
|
|
253
302
|
|
|
254
|
-
- A **removal or rename** fails CI with the names, and
|
|
255
|
-
the old name as an alias or to record the break here
|
|
303
|
+
- A **removal or rename** of an unguaranteed name fails CI with the names, and
|
|
304
|
+
the fix is either to keep the old name as an alias or to record the break here
|
|
305
|
+
and take it knowingly. A guaranteed name cannot take that second path.
|
|
256
306
|
- An **addition** also fails, with a one-line fix
|
|
257
307
|
(`node tools/api-surface.mjs --update`). That is not pedantry: a baseline that
|
|
258
308
|
tolerated additions would go stale, an export added in one release and removed
|
|
@@ -262,9 +312,10 @@ What exists now is not a fence but a **ratchet**:
|
|
|
262
312
|
#### There are two such namespaces now, watched the same way
|
|
263
313
|
|
|
264
314
|
`ctx.authoring` is the mod SDK's public barrel, 94 runtime exports, handed over
|
|
265
|
-
whole
|
|
266
|
-
|
|
267
|
-
|
|
315
|
+
whole for the same reason `ctx.core` is: a curated subset of an authoring API is
|
|
316
|
+
a second list to maintain, and the first thing that happens to a curated list is
|
|
317
|
+
that it lags the function somebody needs. It is ratchet-only. It is not part of
|
|
318
|
+
the named `ctx.core` subset above.
|
|
268
319
|
|
|
269
320
|
Until it was handed to a plugin, a rename inside the SDK was caught by `tsc -b`
|
|
270
321
|
over this repository, because every consumer of it was in the repository. That
|
|
@@ -294,6 +345,7 @@ here for discoverability rather than as a warning.
|
|
|
294
345
|
| unreleased (2026-08-22) | `ctx.reloadGame` | The game's own mod-change reload, so a mod that installed something can apply it: every plugin's `uninstall()` runs, the autoplayer hands the keyboard back, the live character is written down, and the session resumes that character instead of landing on the title screen. Behind `mod:install` rather than a capability of its own, because content composes at load and an install a mod cannot follow with a reload leaves the player holding something the process will never load. Not a permission to reload - a plugin reaches `location` with no grant - it is the four steps a mod cannot take for itself. |
|
|
295
346
|
| unreleased (2026-08-22) | `ctx.installMod(...).lines` | A field on both arms of the existing install outcome: the wording the Mods screen itself prints for that same outcome, including one row per unmet requirement and the author's advice under them. Added because a mod built in the game must fail a requirement in the same words a downloaded mod fails in; `problem` is unchanged and remains one whole sentence. |
|
|
296
347
|
| unreleased (2026-09-01) | `ModRegistryHost.menus.addAction` | A capability-gated additive companion to `menus.register`: a plugin declaring `registry:menu` can add one labelled, namespaced callback row to `core:game-menu`. Existing menu transformers keep their behaviour, and an existing plugin neither calls nor observes the new method, so this is a backward-compatible API addition and does not move `MOD_API_VERSION`. |
|
|
348
|
+
| unreleased (2026-09-05) | `ctx.keymaps.entries`, `.rebind`, and `.remove` | The existing `keymap:write` facade now records an owner for each binding it creates. A mod can enumerate, replace, and remove only its own bindings in the active keyset; it cannot learn, overwrite, or remove player bindings or another mod's. Player keymap edits clear a claim, and the mod-change teardown removes claims that remain, so a disabled mod has no surviving keyboard binding. Existing `bind` remains free-trigger-only, so this is a backward-compatible API addition and does not move `MOD_API_VERSION`. |
|
|
297
349
|
| unreleased (2026-09-02) | API-2 Worker ABI | `modApi: 2` plus `runtime: "worker"` and a mod-relative `workerEntry` selects a dedicated module Worker booted by host code rather than importing `plugin.js` into the renderer. Its independently versioned protocol starts with immutable init data, logs, async preferences, own-asset bytes, bag migration, semantic commands, render-coalesced state and display snapshots, and host-rendered declarative panels. The intended final surface also adds versioned read snapshots, host-cached policies for synchronous paths, async hook decisions with validated patches, declarative registry/content and tile declarations, cached frontend/HUD/region display lists, semantic keymap/debug/wizard/storage operations, and mediated mod lifecycle actions. API-1 is temporarily trusted compatibility code, not a permanent dual-API arrangement; the planned end state is full API-2 cutover for every shipped mod. |
|
|
298
350
|
|
|
299
351
|
#### Removals taken knowingly
|
|
@@ -430,12 +482,15 @@ Nothing else about `UiEntryConfig` moved, and a plugin that only calls
|
|
|
430
482
|
unaffected: every one of those gained an OPTIONAL trailing registry argument and
|
|
431
483
|
behaves exactly as before when it is omitted.
|
|
432
484
|
|
|
433
|
-
**
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
485
|
+
**The rest of `ctx.core` is not frozen.** The ratchet makes a break visible in
|
|
486
|
+
this repository before it reaches a player's browser. Nested keys on a
|
|
487
|
+
guaranteed object (`FEAT.MORE`, `TV.SWORD`, `RSF.BR_FIRE`) follow the same
|
|
488
|
+
shape-change recording as the rest of the engine: the promise is the top-level
|
|
489
|
+
name and its `typeof`, not every property behind it. The remaining pressure
|
|
490
|
+
valve is `ModHooks`, which is a closed interface of eight members that the
|
|
491
|
+
bug-fixes mod alone needed six of - if authors keep reaching past it into
|
|
492
|
+
unguaranteed `ctx.core` names, that is the signal to grow the seam or to add a
|
|
493
|
+
name to the guaranteed subset, not to fence the namespace.
|
|
439
494
|
|
|
440
495
|
## What is *not* a compatibility mechanism
|
|
441
496
|
|
package/docs/MOD_LIFECYCLE.md
CHANGED
|
@@ -92,6 +92,15 @@ deletion - even of cosmetics - violates the "nothing a player earned vanishes
|
|
|
92
92
|
without a trace" guarantee. The prompt is per-save and one-time so it never
|
|
93
93
|
nags; declining leaves everything quarantined and reversible.
|
|
94
94
|
|
|
95
|
+
BUILT. The prompt is put once the game screen is live, keeps first, and
|
|
96
|
+
counts what a purge would destroy; dismissing it keeps, because the question
|
|
97
|
+
has been asked and keeping is the only answer that destroys nothing. The
|
|
98
|
+
answer is recorded in `SavedGame.orphansAcknowledged` and forced to disk
|
|
99
|
+
immediately, so neither answer is re-asked and a purge cannot be undone by a
|
|
100
|
+
crash. `orphanPromptDue` and `purgeOrphans`
|
|
101
|
+
(`packages/core/src/mod/orphan-stash.ts`) are the whole of the engine side;
|
|
102
|
+
purging is the only write in the orphan path.
|
|
103
|
+
|
|
95
104
|
### When a mod's content leaves the game (RATIFIED, decision 19)
|
|
96
105
|
|
|
97
106
|
Quarantine is the storage mechanism; these are the player-facing
|
|
@@ -108,19 +117,35 @@ uninstalled but SHADOWED - a later mod in the load order `removes` or
|
|
|
108
117
|
content as normal on the next descent; no half-loaded mod geometry is
|
|
109
118
|
ever walked.
|
|
110
119
|
- Stranded items. Items whose definition came from the missing mod are
|
|
111
|
-
not dropped and not deleted. They are
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
and
|
|
120
|
+
not dropped and not deleted. They are frozen in the
|
|
121
|
+
`orphans:<id>@<version>` store as inert entries - listed, labelled with
|
|
122
|
+
their origin mod, and not equippable, usable or sellable while the mod
|
|
123
|
+
is absent. Reinstalling the mod puts each one back in the slot it came
|
|
124
|
+
out of: an item that was worn returns to that equipment slot when the
|
|
125
|
+
slot is still free, and one that was carried returns to the pack.
|
|
126
|
+
BUILT, and built AS THE STORE rather than as home stock: the frozen
|
|
127
|
+
entry records the gear handle and the equipment slots it was
|
|
128
|
+
quarantined out of (`packages/core/src/mod/save-blocks.ts`), which is
|
|
129
|
+
what makes the exact restore possible. It occupies no home slot, no
|
|
130
|
+
pack slot and no weight while it waits, so it costs the player nothing
|
|
131
|
+
that a home slot would have cost, and the stash view below is where it
|
|
132
|
+
is seen and reclaimed.
|
|
118
133
|
- The stash view. A dedicated, always-reachable screen lists everything
|
|
119
134
|
currently quarantined - by uninstall OR by another mod's override -
|
|
120
135
|
grouped by the mod that owns it, showing what it is, why it is inert
|
|
121
|
-
("frost
|
|
122
|
-
restore it ("
|
|
136
|
+
("frost is not installed" / "frost is installed but switched off"), and
|
|
137
|
+
what would restore it ("install frost again" / "turn frost back on").
|
|
123
138
|
Nothing a player earned ever vanishes without a trace they can find.
|
|
139
|
+
BUILT: Mods -> "Set aside by a missing mod", screen id
|
|
140
|
+
`core:mod-orphans` (`packages/web/src/mod-orphans.ts`), over the
|
|
141
|
+
read-only model in `packages/core/src/mod/orphan-stash.ts`. The row
|
|
142
|
+
carries the count, and a load that newly freezes something says so on
|
|
143
|
+
the message line naming what it was. Quarantine is keyed on namespace
|
|
144
|
+
PRESENCE, so the screen derives the reason from what the host can see
|
|
145
|
+
now rather than from a reason the store records; the shadowed case
|
|
146
|
+
reaches the same screen through the same route as soon as quarantine
|
|
147
|
+
produces it, because a shadowed entity's own namespace is present and
|
|
148
|
+
the screen already words that state.
|
|
124
149
|
|
|
125
150
|
These recoveries are graceful degradation, not gameplay rollback: they
|
|
126
151
|
preserve what the player has against a tooling change, and do not let the
|
|
@@ -751,9 +776,10 @@ UI next, marketplace last:
|
|
|
751
776
|
marketplace" above), the externally-authored enabled-set/order file, and
|
|
752
777
|
a Vortex/MO2 extension over the shared on-disk format.
|
|
753
778
|
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
779
|
+
Authors check a pack in CI with `neo-angband-mod-check` (the same rules
|
|
780
|
+
the game enforces at install) and produce a distributable `plugin.js`
|
|
781
|
+
with `neo-angband-mod-build`. Both ship in `@rpgm-tools/neo-angband-mod-sdk`.
|
|
782
|
+
The repo carries sample mods that CI installs and runs.
|
|
757
783
|
|
|
758
784
|
---
|
|
759
785
|
|
|
@@ -770,10 +796,17 @@ repo carries sample mods that CI installs and runs.
|
|
|
770
796
|
6. Pre-migration snapshot as operational safety, reconciled with the
|
|
771
797
|
no-save-scum rule. [DECIDED]
|
|
772
798
|
7. Uninstall recovery: stranded characters return to town, mod items are
|
|
773
|
-
quarantined
|
|
774
|
-
stash view surfaces everything quarantined or shadowed. [DECIDED
|
|
799
|
+
quarantined and reactivate in the slot they came out of on reinstall,
|
|
800
|
+
and a stash view surfaces everything quarantined or shadowed. [DECIDED;
|
|
801
|
+
the stash view and the item surfacing are BUILT, see "When a mod's
|
|
802
|
+
content leaves the game" above. The item half is the orphans store
|
|
803
|
+
rather than home stock, because the store records the gear handle and
|
|
804
|
+
equipment slots an item was taken from and the home has no way to carry
|
|
805
|
+
those; the effect a home entry was for - visible, labelled, inert,
|
|
806
|
+
costing no slot - is what the stash view provides. The stranded-location
|
|
807
|
+
half is not built.]
|
|
775
808
|
8. Orphan policy: quarantine by default with a one-time per-save keep/purge
|
|
776
|
-
prompt (keep default); no auto-purge. [DECIDED 2026-07-14]
|
|
809
|
+
prompt (keep default); no auto-purge. [DECIDED 2026-07-14; BUILT]
|
|
777
810
|
9. Integrate with Vortex and the other popular mod managers, and split the
|
|
778
811
|
labour with them: the game keeps rudimentary management (enable/disable,
|
|
779
812
|
per-patch opt-out, a one-step order nudge, conflict report, profiles)
|
package/docs/MOD_REACH.md
CHANGED
|
@@ -1481,6 +1481,23 @@ Ranked by how much of "the whole game can be made over" each one makes moddable.
|
|
|
1481
1481
|
|
|
1482
1482
|
---
|
|
1483
1483
|
|
|
1484
|
+
### Gap 21 current correction, 2026-09-06
|
|
1485
|
+
|
|
1486
|
+
The row above contains historical measurements. The current code-derived record
|
|
1487
|
+
is docs/design/PRESENTATION_OWNER_SEAM.md. Its counts replace the old estimates:
|
|
1488
|
+
the HUD has 3 separately replaceable regions, the terminal has 33 full-screen
|
|
1489
|
+
erase paths plus its 1 compositor repaint, and 40 semantic ScreenView ids are
|
|
1490
|
+
modelled. The full-screen erase ratchet derives 31 region-declared paths, 2
|
|
1491
|
+
pending prompt paths, and 34 including the compositor in
|
|
1492
|
+
packages/web/src/main-regions.test.ts:430 through
|
|
1493
|
+
packages/web/src/main-regions.test.ts:433.
|
|
1494
|
+
|
|
1495
|
+
The presentation owner seam is live for the HUD, menus, and ScreenView paths.
|
|
1496
|
+
Registry:menu still changes rows and now composes with menu presentation rather
|
|
1497
|
+
than replacing it. The two pending prompt paths and screens sharing the
|
|
1498
|
+
core:text fallback remain incomplete. The design records the exact surface list,
|
|
1499
|
+
the host guarantees, and the compatibility fallback rule.
|
|
1500
|
+
|
|
1484
1501
|
## The goal: every dispatch point in this document becomes moddable
|
|
1485
1502
|
|
|
1486
1503
|
**A correction, recorded 2026-08-08.** An earlier revision of this page argued
|
package/docs/MOD_SEAMS.md
CHANGED
|
@@ -610,6 +610,13 @@ Six things about it, and the first two are the ones that will surprise you:
|
|
|
610
610
|
action bar does with its buttons. `modal: true` takes the pointer, takes the
|
|
611
611
|
focus on mount, and gets `role="dialog"`; a plain panel takes neither and gets
|
|
612
612
|
`role="group"`.
|
|
613
|
+
- **The host fits the container to the visual viewport.** On a phone, opening
|
|
614
|
+
the virtual keyboard can leave the layout viewport at its former height while
|
|
615
|
+
shrinking the visible rectangle. The host follows `visualViewport` for the
|
|
616
|
+
panel and the canvas, including its offset, so a modal panel does not extend
|
|
617
|
+
behind the keyboard. A panel that puts fields near its lower edge should still
|
|
618
|
+
call `element.scrollIntoView({ block: "center" })` when a field receives focus:
|
|
619
|
+
a browser may reserve more of the visible rectangle for its own input chrome.
|
|
613
620
|
- **The keyboard is decided per keystroke, by where the caret is.** The game's
|
|
614
621
|
front end has ONE keydown registration - `window`, capture phase, installed at
|
|
615
622
|
import - and every modal handler behind it calls `stopImmediatePropagation`. So
|
package/docs/PLUGINS.md
CHANGED
|
@@ -161,7 +161,7 @@ What `ctx` carries:
|
|
|
161
161
|
| `api` | the ABI version the **host** implements |
|
|
162
162
|
| `engine` | the engine version, if you want to adapt rather than refuse |
|
|
163
163
|
| `flags` | **your** resolved rule toggles: `choices[flag] ?? rule.default`, sliced to the rules your own manifest declares |
|
|
164
|
-
| `core` | the live engine namespace: core's entire public API |
|
|
164
|
+
| `core` | the live engine namespace: core's entire public API. A named subset is guaranteed; the rest is an escape hatch. See [MOD_COMPATIBILITY.md](MOD_COMPATIBILITY.md) |
|
|
165
165
|
| `state` | the live `GameState`. Handed to `register`, `migrateBag`, `controller` and every display seam; **never** to `hooks`, because the host composes hooks before a game exists |
|
|
166
166
|
| `assetUrl` | `(path) => Promise<string \| null>`, a URL for one of *your* files |
|
|
167
167
|
| `data` | your own record files, parsed, keyed without `.json` |
|
|
@@ -1392,8 +1392,13 @@ absent paths leave the exact glyph sink active.
|
|
|
1392
1392
|
|
|
1393
1393
|
The same is true of `UiInput` in `packages/web/src/input-door.ts`. It is the
|
|
1394
1394
|
single device-neutral route by which keyboard and keymap input reaches screens;
|
|
1395
|
-
its direction carries an analog vector and angle.
|
|
1396
|
-
|
|
1395
|
+
its direction carries an analog vector and angle. A plugin that declares and is
|
|
1396
|
+
granted `keymap:write` receives `ctx.keymaps` during a live game. `bind()` claims
|
|
1397
|
+
only a free trigger; `entries()` lists only bindings the calling mod owns; and
|
|
1398
|
+
`rebind()` and `remove()` can change only those owned bindings. A plugin cannot
|
|
1399
|
+
read, overwrite, or remove the player's bindings or another mod's bindings. A
|
|
1400
|
+
player change clears the mod claim, and bindings still owned by a departing mod
|
|
1401
|
+
are removed during host teardown. Stored player keymaps are evaluated first when
|
|
1397
1402
|
the root owns input; score pages, modals, and run interruption retain their
|
|
1398
1403
|
existing literal-key gates, so a mod must not use injected input to outrank the
|
|
1399
1404
|
player's chosen mapping or an active screen.
|
package/docs/README.md
CHANGED
|
@@ -72,9 +72,9 @@ write down at all.
|
|
|
72
72
|
| **Replace the front end**: draw the world yourself, any way you like | **Complete** | gap 9 |
|
|
73
73
|
| Know **where you may draw**: named regions, in grid cells and CSS pixels, on every frame | **Complete** | gap 9 |
|
|
74
74
|
| Drive the game programmatically: an autoplayer, a bot, a test harness | **Complete** | `BORG.md`, `ModPlugin.controller` |
|
|
75
|
-
| Menus: add, reorder, retitle and re-tag **rows** (
|
|
76
|
-
| **Replace the UI**: the HUD,
|
|
77
|
-
| Own a HUD region (messages, vitals, status) with core drawing the ones you do not claim, or **create a region of your own**: ordered, overlapping, transparent, composited, and owning pointer input on the cells it paints | **WIP** | gap 21 |
|
|
75
|
+
| Menus: add, reorder, retitle and re-tag **rows** (registry:menu), then replace the presentation of a supported question | **WIP** | gap 21, PRESENTATION_OWNER_SEAM.md |
|
|
76
|
+
| **Replace the UI**: the HUD, status line, message area, menu presentation, and full screens | **WIP** | gap 21, PRESENTATION_OWNER_SEAM.md |
|
|
77
|
+
| Own a HUD region (messages, vitals, status) with core drawing the ones you do not claim, or **create a region of your own**: ordered, overlapping, transparent, composited, and owning pointer input on the cells it paints | **WIP** | gap 21, PRESENTATION_OWNER_SEAM.md |
|
|
78
78
|
| Retitle, regroup, reorder, re-tag or rebind an existing web keypress command (`registry:menu`); the command's closure stays shell-private | **Complete** | `MOD_REACH.md` row 23 |
|
|
79
79
|
| Rename one of your own rule flags or sections without losing the player's saved choice (`renamedRuleFlags`, `renamedSectionFlags`) | **Complete** | `AUTHORING.md` |
|
|
80
80
|
| Rebind keys, or add a gamepad: `input-door.ts` is host infrastructure, not a seam | **Not yet** | `MOD_SEAMS.md` |
|
|
@@ -157,8 +157,10 @@ that has not been settled.
|
|
|
157
157
|
Scope of record; no repository or code exists yet.
|
|
158
158
|
- Coming as the engine lands them (P7 deliverables): handler registry
|
|
159
159
|
catalog (effects, commands, room builders), the sandbox capability
|
|
160
|
-
reference for scripted plugins, dialog/quest/shop cookbooks,
|
|
161
|
-
|
|
160
|
+
reference for scripted plugins, dialog/quest/shop cookbooks, and
|
|
161
|
+
publishing guidance. Validate and bundle are not in that list:
|
|
162
|
+
`neo-angband-mod-check` and `neo-angband-mod-build` already ship in
|
|
163
|
+
`@rpgm-tools/neo-angband-mod-sdk`.
|
|
162
164
|
|
|
163
165
|
## The first-party mods
|
|
164
166
|
|
|
@@ -446,8 +448,9 @@ version and are called out in release notes.
|
|
|
446
448
|
**`MOD_COMPATIBILITY.md` is the page that answers "will my mod still work".**
|
|
447
449
|
In one line: a data-only mod should survive engine releases without being
|
|
448
450
|
republished, and a mod that ships code gets a release's warning before an ABI
|
|
449
|
-
change strands it. That
|
|
450
|
-
|
|
451
|
+
change strands it. That ABI includes a named subset of `ctx.core`; the rest of
|
|
452
|
+
that namespace is an escape hatch. That page has the mechanisms, the
|
|
453
|
+
measurements behind them, and the list of guaranteed names.
|
|
451
454
|
|
|
452
455
|
## Licensing for mod authors
|
|
453
456
|
|
package/docs/REQUIREMENTS.md
CHANGED
|
@@ -55,6 +55,12 @@ The game shows it beside the mod's name, so a player can tell two mods of the sa
|
|
|
55
55
|
|
|
56
56
|
Without it the mod is offered to every version of the game forever, including the one that changes the thing it depends on. With it, a player is told the mod is too old instead of watching it misbehave. This was advice until it was measured: every mod that had shipped declared one, and the mods that did not were the ones nothing had checked.
|
|
57
57
|
|
|
58
|
+
### Request only capabilities the game knows
|
|
59
|
+
|
|
60
|
+
`capabilities-recognized`
|
|
61
|
+
|
|
62
|
+
A capability string is the consent surface a player reads and the gate the runtime actually opens. An unrecognized string, or a capability on a pack that cannot execute, is refused when the game loads the plugin - after the player has already installed it. This check is CapabilitySet.fromManifest, the same function the loader calls, so a typo that used to pass here and fail there cannot.
|
|
63
|
+
|
|
58
64
|
### Declare modApi if the mod ships plugin.js
|
|
59
65
|
|
|
60
66
|
`plugin-declares-modapi`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rpgm-tools/neo-angband-mod-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "Pack schemas, validation, and tooling for Neo Angband mods (content packs, tile packs, scripted plugins)",
|
|
5
5
|
"license": "GPL-2.0-only",
|
|
6
6
|
"author": "neostryder (RPGM Tools)",
|
package/src/manifest.ts
CHANGED
|
@@ -304,8 +304,10 @@ export const DEFAULT_PACK_GROUP = "content";
|
|
|
304
304
|
* runtime grants only what a `shape: plugin` pack declares and the user
|
|
305
305
|
* approves; content and tile packs request none. The vocabulary
|
|
306
306
|
* ("command:add", "event:turn-start", "state:*.read", "network:<host>", ...)
|
|
307
|
-
* is enforced by
|
|
308
|
-
*
|
|
307
|
+
* is enforced by parseCapability / CapabilitySet.fromManifest in
|
|
308
|
+
* capabilities.ts. The manifest records the request as strings; checkMod
|
|
309
|
+
* runs that same function, so an unrecognized capability is a check
|
|
310
|
+
* failure rather than a silent accept.
|
|
309
311
|
*/
|
|
310
312
|
export type Capability = string;
|
|
311
313
|
|
package/src/standards.ts
CHANGED
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
* cannot describe a rule that is not enforced or omit one that is.
|
|
16
16
|
*
|
|
17
17
|
* WHAT IT DOES NOT DUPLICATE. Everything validateManifest already decides is
|
|
18
|
-
* delegated to validateManifest.
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
18
|
+
* delegated to validateManifest. Capability grammar is the same: this module
|
|
19
|
+
* calls CapabilitySet.fromManifest rather than restating parseCapability's
|
|
20
|
+
* patterns. What it adds is the rules that need to see something those two
|
|
21
|
+
* cannot: the FILE LIST, and the join between a validated manifest and the
|
|
22
|
+
* capability model (validateManifest cannot import capabilities.ts without a
|
|
23
|
+
* cycle). Two of the file-list rules below are defects this project actually
|
|
24
|
+
* shipped, both invisible to a validator with no files to look at:
|
|
22
25
|
*
|
|
23
26
|
* - `modApi` is documented as REQUIRED of any pack shipping plugin.js, and nothing
|
|
24
27
|
* enforced it, because validateManifest never sees whether plugin.js is there.
|
|
@@ -32,8 +35,9 @@
|
|
|
32
35
|
* learn to ignore.
|
|
33
36
|
*/
|
|
34
37
|
|
|
35
|
-
import {
|
|
38
|
+
import { CapabilitySet } from "./capabilities.js";
|
|
36
39
|
import { ManifestError, hasFacet, validateManifest, type PackManifest } from "./manifest.js";
|
|
40
|
+
import { compareSemver, satisfies } from "./semver.js";
|
|
37
41
|
|
|
38
42
|
/** The file a mod's code lives in, when it has any. */
|
|
39
43
|
export const PLUGIN_FILE = "plugin.js";
|
|
@@ -299,6 +303,38 @@ export const MOD_REQUIREMENTS: readonly Requirement[] = [
|
|
|
299
303
|
}
|
|
300
304
|
},
|
|
301
305
|
},
|
|
306
|
+
{
|
|
307
|
+
id: "capabilities-recognized",
|
|
308
|
+
level: "required",
|
|
309
|
+
title: "Request only capabilities the game knows",
|
|
310
|
+
why:
|
|
311
|
+
"A capability string is the consent surface a player reads and the gate the " +
|
|
312
|
+
"runtime actually opens. An unrecognized string, or a capability on a pack " +
|
|
313
|
+
"that cannot execute, is refused when the game loads the plugin - after the " +
|
|
314
|
+
"player has already installed it. This check is CapabilitySet.fromManifest, " +
|
|
315
|
+
"the same function the loader calls, so a typo that used to pass here and " +
|
|
316
|
+
"fail there cannot.",
|
|
317
|
+
check: (mod) => {
|
|
318
|
+
const m = manifestObject(mod);
|
|
319
|
+
if (m === null) return null;
|
|
320
|
+
let manifest: PackManifest;
|
|
321
|
+
try {
|
|
322
|
+
/* validateManifest first, so this rule never re-describes the schema. A
|
|
323
|
+
* malformed capabilities field (not an array of strings) belongs to
|
|
324
|
+
* manifest-fields; this rule only speaks once there is a PackManifest
|
|
325
|
+
* to hand to the capability model. */
|
|
326
|
+
manifest = validateManifest(m);
|
|
327
|
+
} catch {
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
try {
|
|
331
|
+
CapabilitySet.fromManifest(manifest);
|
|
332
|
+
return null;
|
|
333
|
+
} catch (e) {
|
|
334
|
+
return e instanceof Error ? e.message : String(e);
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
},
|
|
302
338
|
{
|
|
303
339
|
id: "plugin-declares-modapi",
|
|
304
340
|
level: "required",
|