@maka/maka-cli 5.59.2 → 5.60.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/typescript/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +13 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/roles.d.ts +33 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/roles.js +93 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/roles.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +4 -2
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +19 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js +46 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- package/bundle/typescript/src/tools/sdk-loader/relocate.js +18 -3
- package/bundle/typescript/src/tools/sdk-loader/relocate.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.60.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 2.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 2.x applications using React.",
|
|
@@ -32,8 +32,9 @@ export declare class BacklogCommand extends Command implements ICommand {
|
|
|
32
32
|
/** One item: what it says, where it stands, and what the books said. */
|
|
33
33
|
private row;
|
|
34
34
|
private statusMark;
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
35
|
+
/** The verdict is about the GAME, not the rulebooks (reframed
|
|
36
|
+
* 2026-08-27). Asking canon whether a stale map mattered graded every
|
|
37
|
+
* real defect out of scope and cited a zoo at it. */
|
|
37
38
|
private verdictTag;
|
|
38
39
|
private explain;
|
|
39
40
|
}
|
|
@@ -62,6 +62,11 @@ export class BacklogCommand extends Command {
|
|
|
62
62
|
// same id the uploaded logs are keyed by, so an item and its
|
|
63
63
|
// transcript can be read side by side.
|
|
64
64
|
sessionId: game?.sessionDir ? game.sessionDir.split(/[\\/]/).pop() : undefined,
|
|
65
|
+
// On a shared run each player stamps their OWN launcher session --
|
|
66
|
+
// different timestamps on different machines -- so without this
|
|
67
|
+
// two reports about the same moment cannot be tied together. Seen
|
|
68
|
+
// for real: one run produced items stamped 00-18-43 and 00-18-15.
|
|
69
|
+
sharedRunId: game?.remoteSession?.id,
|
|
65
70
|
cliVersion: cliVersion(),
|
|
66
71
|
engineVersion: engineVersion(),
|
|
67
72
|
platform: process.platform,
|
|
@@ -126,14 +131,16 @@ export class BacklogCommand extends Command {
|
|
|
126
131
|
default: return '{yellow-fg}[open]{/yellow-fg}';
|
|
127
132
|
}
|
|
128
133
|
}
|
|
129
|
-
/**
|
|
130
|
-
*
|
|
134
|
+
/** The verdict is about the GAME, not the rulebooks (reframed
|
|
135
|
+
* 2026-08-27). Asking canon whether a stale map mattered graded every
|
|
136
|
+
* real defect out of scope and cited a zoo at it. */
|
|
131
137
|
verdictTag(verdict) {
|
|
132
138
|
switch (verdict) {
|
|
133
|
-
case '
|
|
134
|
-
case '
|
|
135
|
-
case '
|
|
136
|
-
|
|
139
|
+
case 'canon-violation': return `{red-fg}breaks the rules:{/red-fg}`;
|
|
140
|
+
case 'bug': return `{red-fg}bug:{/red-fg}`;
|
|
141
|
+
case 'enhancement': return `{yellow-fg}wants building:{/yellow-fg}`;
|
|
142
|
+
case 'works-as-intended': return `{green-fg}working as meant:{/green-fg}`;
|
|
143
|
+
default: return `{cyan-fg}needs detail:{/cyan-fg}`;
|
|
137
144
|
}
|
|
138
145
|
}
|
|
139
146
|
explain(outcome) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/backlog.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/backlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Command, ICommand } from './command.js';
|
|
2
|
+
/**
|
|
3
|
+
* ROLES -- who gets to do what, for the operator.
|
|
4
|
+
*
|
|
5
|
+
* Purely out-of-fiction, like `note` and `backlog`: nothing in the
|
|
6
|
+
* Sixth World knows what a play-tester is. It exists because the
|
|
7
|
+
* play-tester role could otherwise only be handed out by editing
|
|
8
|
+
* GAME_ADMIN_EMAILS-style config and redeploying the site, which is a
|
|
9
|
+
* heavy way to say "yes, you can file bugs" -- and impossible for an
|
|
10
|
+
* account that registered after the last restart.
|
|
11
|
+
*
|
|
12
|
+
* GATED SERVER-SIDE, and only there. The CLI has no idea what roles an
|
|
13
|
+
* account holds and must not pretend to: it asks, and turns a 403 into
|
|
14
|
+
* a sentence. A client that decided its own permissions would be
|
|
15
|
+
* deciding nothing at all.
|
|
16
|
+
*
|
|
17
|
+
* `game-admin` is not grantable through this command. Granting
|
|
18
|
+
* play-tester widens who can file bugs; granting admin widens who can
|
|
19
|
+
* grant. The server owns that line (GRANTABLE_ROLES) -- this command
|
|
20
|
+
* just relays the refusal, so the rule lives in one place.
|
|
21
|
+
*/
|
|
22
|
+
export declare class RolesCommand extends Command implements ICommand {
|
|
23
|
+
protected static verb: string;
|
|
24
|
+
protected static description: string;
|
|
25
|
+
protected static subcommands: {
|
|
26
|
+
usage: string;
|
|
27
|
+
short: string;
|
|
28
|
+
}[];
|
|
29
|
+
execute(args?: string[]): Promise<string>;
|
|
30
|
+
private change;
|
|
31
|
+
private list;
|
|
32
|
+
private explain;
|
|
33
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Command } from './command.js';
|
|
2
|
+
import { hint } from '../utilities/hints.js';
|
|
3
|
+
import { authToken } from '../utilities/cloud-saves.js';
|
|
4
|
+
import { fetchRoles, setRole } from '../utilities/backlog.js';
|
|
5
|
+
/**
|
|
6
|
+
* ROLES -- who gets to do what, for the operator.
|
|
7
|
+
*
|
|
8
|
+
* Purely out-of-fiction, like `note` and `backlog`: nothing in the
|
|
9
|
+
* Sixth World knows what a play-tester is. It exists because the
|
|
10
|
+
* play-tester role could otherwise only be handed out by editing
|
|
11
|
+
* GAME_ADMIN_EMAILS-style config and redeploying the site, which is a
|
|
12
|
+
* heavy way to say "yes, you can file bugs" -- and impossible for an
|
|
13
|
+
* account that registered after the last restart.
|
|
14
|
+
*
|
|
15
|
+
* GATED SERVER-SIDE, and only there. The CLI has no idea what roles an
|
|
16
|
+
* account holds and must not pretend to: it asks, and turns a 403 into
|
|
17
|
+
* a sentence. A client that decided its own permissions would be
|
|
18
|
+
* deciding nothing at all.
|
|
19
|
+
*
|
|
20
|
+
* `game-admin` is not grantable through this command. Granting
|
|
21
|
+
* play-tester widens who can file bugs; granting admin widens who can
|
|
22
|
+
* grant. The server owns that line (GRANTABLE_ROLES) -- this command
|
|
23
|
+
* just relays the refusal, so the rule lives in one place.
|
|
24
|
+
*/
|
|
25
|
+
export class RolesCommand extends Command {
|
|
26
|
+
static verb = 'roles';
|
|
27
|
+
static description = 'Operator tool: who holds which role on maka-cli.com, and hand them out. "roles" lists, "roles grant <email>" makes someone a play-tester, "roles revoke <email>" takes it back. Admin only.';
|
|
28
|
+
static subcommands = [
|
|
29
|
+
{ usage: 'roles', short: 'Who holds what.' },
|
|
30
|
+
{ usage: 'roles grant <email> [role]', short: 'Give someone a role (default play-tester).' },
|
|
31
|
+
{ usage: 'roles revoke <email> [role]', short: 'Take one back.' },
|
|
32
|
+
];
|
|
33
|
+
async execute(args = []) {
|
|
34
|
+
if (this.game?.isAnonymous) {
|
|
35
|
+
return `You're running anonymous -- this runner has no account, so there's nobody to hand a role to.`;
|
|
36
|
+
}
|
|
37
|
+
if (!authToken()) {
|
|
38
|
+
return `Roles live on your maka-cli.com login -- \`maka login\` first.`;
|
|
39
|
+
}
|
|
40
|
+
const sub = (args[0] ?? '').toLowerCase();
|
|
41
|
+
if (sub === 'grant' || sub === 'revoke') {
|
|
42
|
+
return this.change(sub, args[1], args[2]);
|
|
43
|
+
}
|
|
44
|
+
if (args.length > 0 && sub !== 'list') {
|
|
45
|
+
return `"roles" lists; "roles grant <email>" and "roles revoke <email>" change things.`;
|
|
46
|
+
}
|
|
47
|
+
return this.list();
|
|
48
|
+
}
|
|
49
|
+
async change(action, email, role) {
|
|
50
|
+
if (!email) {
|
|
51
|
+
return `Which account? "roles ${action} <email>" -- an email address, not a street name.`;
|
|
52
|
+
}
|
|
53
|
+
const { outcome, message } = await setRole(action, email, role ?? 'play-tester');
|
|
54
|
+
if (outcome === 'ok') {
|
|
55
|
+
const what = role ?? 'play-tester';
|
|
56
|
+
return action === 'grant'
|
|
57
|
+
? `${email} is a ${what} now.${hint(` They'll need to restart the game to pick it up.`)}`
|
|
58
|
+
: `${email} is no longer a ${what}.`;
|
|
59
|
+
}
|
|
60
|
+
// The server's own reason wins when it has one -- that's how "game-admin
|
|
61
|
+
// isn't grantable from in-game" reaches the player rather than a
|
|
62
|
+
// generic refusal that teaches nothing.
|
|
63
|
+
if (outcome === 'rejected' && message)
|
|
64
|
+
return message;
|
|
65
|
+
return this.explain(outcome);
|
|
66
|
+
}
|
|
67
|
+
async list() {
|
|
68
|
+
const { outcome, grantable, holders } = await fetchRoles();
|
|
69
|
+
if (outcome !== 'ok' || !holders)
|
|
70
|
+
return this.explain(outcome);
|
|
71
|
+
if (holders.length === 0)
|
|
72
|
+
return `Nobody holds a role yet.`;
|
|
73
|
+
const lines = [`=== ROLES === (via maka-cli.com)`];
|
|
74
|
+
const width = Math.max(...holders.map(h => (h.email ?? '').length), 8);
|
|
75
|
+
for (const h of holders) {
|
|
76
|
+
lines.push(` ${(h.email ?? '?').padEnd(width)} ${h.roles.join(', ')}`);
|
|
77
|
+
}
|
|
78
|
+
const footer = hint(`"roles grant <email>" hands out: ${(grantable ?? []).join(', ') || 'nothing'}. game-admin isn't grantable here -- it lives in the server's config.`);
|
|
79
|
+
if (footer)
|
|
80
|
+
lines.push('', footer);
|
|
81
|
+
return lines.join('\n');
|
|
82
|
+
}
|
|
83
|
+
explain(outcome) {
|
|
84
|
+
switch (outcome) {
|
|
85
|
+
case 'no-login': return `Roles live on your maka-cli.com login -- \`maka login\` first.`;
|
|
86
|
+
case 'expired': return `Your login's expired -- \`maka login\` again.`;
|
|
87
|
+
case 'forbidden': return `Handing out roles is an admin's job, and this account isn't one.`;
|
|
88
|
+
case 'rejected': return `The server wouldn't take that one.`;
|
|
89
|
+
default: return `The grid isn't answering -- roles are offline right now.`;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=roles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAkB,MAAM,yBAAyB,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IAC7B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;IACtB,MAAM,CAAC,WAAW,GAAG,6LAA6L,CAAC;IAEnN,MAAM,CAAC,WAAW,GAAG;QAC7B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE;QAC5C,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,4CAA4C,EAAE;QAC5F,EAAE,KAAK,EAAE,6BAA6B,EAAE,KAAK,EAAE,gBAAgB,EAAE;KAClE,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;YAC3B,OAAO,8FAA8F,CAAC;QACxG,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO,gEAAgE,CAAC;QAC1E,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACtC,OAAO,gFAAgF,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,MAA0B,EAAE,KAAc,EAAE,IAAa;QAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,yBAAyB,MAAM,mDAAmD,CAAC;QAC5F,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,aAAa,CAAC,CAAC;QACjF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,IAAI,aAAa,CAAC;YACnC,OAAO,MAAM,KAAK,OAAO;gBACvB,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,QAAQ,IAAI,CAAC,kDAAkD,CAAC,EAAE;gBACzF,CAAC,CAAC,GAAG,KAAK,mBAAmB,IAAI,GAAG,CAAC;QACzC,CAAC;QACD,yEAAyE;QACzE,iEAAiE;QACjE,wCAAwC;QACxC,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;QAC3D,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,0BAA0B,CAAC;QAE5D,MAAM,KAAK,GAAG,CAAC,kCAAkC,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,oCAAoC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,uEAAuE,CAAC,CAAC;QAC1K,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,OAAO,CAAC,OAAuB;QACrC,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,UAAU,CAAC,CAAC,OAAO,gEAAgE,CAAC;YACzF,KAAK,SAAS,CAAC,CAAC,OAAO,+CAA+C,CAAC;YACvE,KAAK,WAAW,CAAC,CAAC,OAAO,kEAAkE,CAAC;YAC5F,KAAK,UAAU,CAAC,CAAC,OAAO,oCAAoC,CAAC;YAC7D,OAAO,CAAC,CAAC,OAAO,0DAA0D,CAAC;QAC7E,CAAC;IACH,CAAC"}
|
|
@@ -27,6 +27,7 @@ import { TakeCommand } from './commands/take.js';
|
|
|
27
27
|
import { LootCommand } from './commands/loot.js';
|
|
28
28
|
import { NoteCommand } from './commands/note.js';
|
|
29
29
|
import { BacklogCommand } from './commands/backlog.js';
|
|
30
|
+
import { RolesCommand } from './commands/roles.js';
|
|
30
31
|
import { SinCommand } from './commands/sin.js';
|
|
31
32
|
import { GoCommand } from './commands/go.js';
|
|
32
33
|
import { UseCommand } from './commands/use.js';
|
|
@@ -197,7 +198,7 @@ export default class Game {
|
|
|
197
198
|
/** Verbs that must run on the player's OWN machine even mid-shared-run:
|
|
198
199
|
* they write local files or read local state, and mean nothing to the
|
|
199
200
|
* table. See the guard in handleInput. */
|
|
200
|
-
static LOCAL_ONLY_VERBS = new Set(['note', 'backlog']);
|
|
201
|
+
static LOCAL_ONLY_VERBS = new Set(['note', 'backlog', 'roles']);
|
|
201
202
|
/** An account-less runner: nothing about them leaves this machine.
|
|
202
203
|
* Read by anything that would otherwise push to maka-cli.com -- the
|
|
203
204
|
* backlog command among them. */
|
|
@@ -1643,6 +1644,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
1643
1644
|
CommandFactory.registerCommand('loot', LootCommand);
|
|
1644
1645
|
CommandFactory.registerCommand('note', NoteCommand);
|
|
1645
1646
|
CommandFactory.registerCommand('backlog', BacklogCommand);
|
|
1647
|
+
CommandFactory.registerCommand('roles', RolesCommand);
|
|
1646
1648
|
CommandFactory.registerCommand('sin', SinCommand);
|
|
1647
1649
|
CommandFactory.registerCommand('sins', SinCommand);
|
|
1648
1650
|
CommandFactory.registerCommand('papers', SinCommand);
|
|
@@ -3868,7 +3870,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3868
3870
|
{ title: 'street', entries: [['browse', 'buy'], ['sell'], ['catalog'], ['source', 'procure'], ['work', 'gig'], ['jobs'], ['perform'], ['palm'], ['docwagon'], ['treat'], ['eat'], ['drink'], ['lifestyle'], ['pay']] },
|
|
3869
3871
|
{ title: 'barriers', entries: [['solve'], ['pick'], ['breach'], ['dispel', 'dispell'], ['bluff'], ['unlock'], ['lock']] },
|
|
3870
3872
|
{ title: 'character', entries: [['sheet', 'stats'], ['advance'], ['qualities', 'quality'], ['sin', 'sins', 'papers'], ['initiate', 'submerge'], ['install', 'chrome']] },
|
|
3871
|
-
{ title: 'session', entries: [['help'], ['hints'], ['note'], ['backlog'], ['clear'], ['quit', 'exit']] },
|
|
3873
|
+
{ title: 'session', entries: [['help'], ['hints'], ['note'], ['backlog'], ['roles'], ['clear'], ['quit', 'exit']] },
|
|
3872
3874
|
];
|
|
3873
3875
|
/** Registered but deliberately UNLISTED: reachable as subcommands or
|
|
3874
3876
|
* muscle-memory ("players" folded back under crew after playtesting
|