@maka/maka-cli 5.122.1 → 5.123.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.
Files changed (366) hide show
  1. package/README.md +64 -64
  2. package/bundle/typescript/package.json +120 -120
  3. package/bundle/typescript/src/README.md +64 -64
  4. package/bundle/typescript/src/commands/aws/aws.command.js +2 -2
  5. package/bundle/typescript/src/commands/aws/ci.sub.cmd.js +5 -5
  6. package/bundle/typescript/src/commands/aws/ckp.sub.cmd.js +12 -12
  7. package/bundle/typescript/src/commands/aws/csg.sub.cmd.js +3 -3
  8. package/bundle/typescript/src/commands/aws/di.sub.cmd.js +8 -8
  9. package/bundle/typescript/src/commands/aws/rkp.sub.cmd.js +5 -5
  10. package/bundle/typescript/src/commands/aws/sth.sub.cmd.js +3 -3
  11. package/bundle/typescript/src/commands/aws/ti.sub.cmd.js +5 -5
  12. package/bundle/typescript/src/commands/build/build.js +16 -16
  13. package/bundle/typescript/src/commands/build/docker.sub.cmd.js +9 -9
  14. package/bundle/typescript/src/commands/create.js +36 -36
  15. package/bundle/typescript/src/commands/debug.js +4 -4
  16. package/bundle/typescript/src/commands/deploy/deploy.command.js +2 -2
  17. package/bundle/typescript/src/commands/deploy/galaxy.sub.cmd.js +2 -2
  18. package/bundle/typescript/src/commands/deploy/github.sub.cmd.js +8 -8
  19. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +14 -10
  20. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +1 -1
  21. package/bundle/typescript/src/commands/env/env.command.js +8 -8
  22. package/bundle/typescript/src/commands/env/set.sub.cmd.js +11 -11
  23. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.d.ts +15 -0
  24. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js +12 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +10 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +40 -14
  28. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +33 -10
  30. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +155 -72
  31. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +15 -6
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +33 -33
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +2 -2
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +5 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +6 -6
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +4 -4
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +20 -0
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +9 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js +7 -3
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js.map +1 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +3 -3
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -3
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +9 -9
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +10 -10
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +7 -7
  67. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -1
  68. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +24 -0
  70. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +95 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +443 -443
  73. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
  74. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +45 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/game.js +120 -9
  76. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/metatypes.d.ts +53 -0
  78. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js +86 -0
  79. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js.map +1 -0
  80. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +214 -208
  81. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +215 -18
  83. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +548 -117
  84. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +9 -9
  86. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +2 -1
  87. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -2
  88. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  89. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +96 -4
  90. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +290 -11
  91. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
  92. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +556 -556
  93. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +1447 -1447
  94. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.d.ts +11 -1
  95. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js +13 -1
  96. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js.map +1 -1
  97. package/bundle/typescript/src/commands/game/sideQuest/skills.d.ts +17 -0
  98. package/bundle/typescript/src/commands/game/sideQuest/skills.js +23 -0
  99. package/bundle/typescript/src/commands/game/sideQuest/skills.js.map +1 -0
  100. package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +76 -3
  101. package/bundle/typescript/src/commands/game/sideQuest/spells.js +48 -21
  102. package/bundle/typescript/src/commands/game/sideQuest/spells.js.map +1 -1
  103. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +8 -0
  104. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +90 -82
  105. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +277 -10
  106. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
  107. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +121 -2
  108. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +342 -18
  109. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
  110. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +65 -2
  111. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +74 -7
  112. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -1
  113. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +1 -1
  114. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  115. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.d.ts +248 -0
  116. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js +38 -0
  117. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js.map +1 -0
  118. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
  119. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +1 -2
  120. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -1
  121. package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js +1 -2
  122. package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js.map +1 -1
  123. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +5 -0
  124. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  125. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +5 -1
  126. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  127. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js +22 -12
  128. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js.map +1 -1
  129. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +1 -2
  130. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
  131. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +1 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +20 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -1
  134. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +2 -2
  135. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +33 -2
  136. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  137. package/bundle/typescript/src/commands/generate.js +2 -2
  138. package/bundle/typescript/src/commands/lint.js +10 -10
  139. package/bundle/typescript/src/commands/login.js +19 -1
  140. package/bundle/typescript/src/commands/login.js.map +1 -1
  141. package/bundle/typescript/src/commands/logout.js +16 -1
  142. package/bundle/typescript/src/commands/logout.js.map +1 -1
  143. package/bundle/typescript/src/commands/maka.cmd.js +26 -26
  144. package/bundle/typescript/src/commands/murder.js +14 -14
  145. package/bundle/typescript/src/commands/proxy.js +13 -13
  146. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +6 -6
  147. package/bundle/typescript/src/commands/run/docker.sub.cmd.js +11 -11
  148. package/bundle/typescript/src/commands/run/run.command.js +24 -24
  149. package/bundle/typescript/src/commands/set/global.sub.cmd.js +8 -8
  150. package/bundle/typescript/src/commands/set/local.sub.cmd.js +2 -2
  151. package/bundle/typescript/src/commands/set/set.command.js +3 -3
  152. package/bundle/typescript/src/commands/testCmd/test.command.js +2 -2
  153. package/bundle/typescript/src/exec.js +0 -0
  154. package/bundle/typescript/src/generators/api.js +11 -11
  155. package/bundle/typescript/src/generators/collection.js +6 -6
  156. package/bundle/typescript/src/generators/hook.js +10 -10
  157. package/bundle/typescript/src/generators/kits/auth/auth.generator.js +2 -2
  158. package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +612 -612
  159. package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +48 -48
  160. package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js +12 -12
  161. package/bundle/typescript/src/generators/kits/esri/esri.generator.js +3 -3
  162. package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js +7 -7
  163. package/bundle/typescript/src/generators/kits/frames/frames.generator.js +16 -16
  164. package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js +2 -2
  165. package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +5 -5
  166. package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js +4 -4
  167. package/bundle/typescript/src/generators/kits/mui/mui.generator.js +22 -22
  168. package/bundle/typescript/src/generators/services/translation.js +5 -5
  169. package/bundle/typescript/src/templates/aws/cloudformation/create-ec2-instance.template +14 -14
  170. package/bundle/typescript/src/templates/meteor/api/api.js +20 -20
  171. package/bundle/typescript/src/templates/meteor/api/api.js.ts +20 -20
  172. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js +50 -50
  173. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js.ts +55 -55
  174. package/bundle/typescript/src/templates/meteor/api/graphql-api.js +63 -63
  175. package/bundle/typescript/src/templates/meteor/api/graphql-api.js.ts +69 -69
  176. package/bundle/typescript/src/templates/meteor/api/methods.js +39 -39
  177. package/bundle/typescript/src/templates/meteor/api/methods.js.ts +40 -40
  178. package/bundle/typescript/src/templates/meteor/api/register-api.js +3 -3
  179. package/bundle/typescript/src/templates/meteor/api/register-api.js.ts +3 -3
  180. package/bundle/typescript/src/templates/meteor/api/resolvers.js +9 -9
  181. package/bundle/typescript/src/templates/meteor/api/resolvers.js.ts +9 -9
  182. package/bundle/typescript/src/templates/meteor/api/typeDefs.js +6 -6
  183. package/bundle/typescript/src/templates/meteor/api/typeDefs.js.ts +6 -6
  184. package/bundle/typescript/src/templates/meteor/app/client/body.html +3 -3
  185. package/bundle/typescript/src/templates/meteor/app/client/head.html +12 -12
  186. package/bundle/typescript/src/templates/meteor/app/client/main.js +15 -15
  187. package/bundle/typescript/src/templates/meteor/app/client/main.js.jsx +15 -15
  188. package/bundle/typescript/src/templates/meteor/app/client/main.js.ts +17 -17
  189. package/bundle/typescript/src/templates/meteor/app/client/main.js.tsx +17 -17
  190. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js +20 -20
  191. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.jsx +107 -107
  192. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.ts +20 -20
  193. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.tsx +108 -108
  194. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js +39 -39
  195. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.jsx +33 -33
  196. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.ts +24 -24
  197. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.tsx +33 -33
  198. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js +9 -9
  199. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -9
  200. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.ts +9 -9
  201. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -9
  202. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js +1 -1
  203. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.jsx +20 -20
  204. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.ts +1 -1
  205. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.tsx +20 -20
  206. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.jsx +28 -28
  207. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.tsx +28 -28
  208. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js +1 -1
  209. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.jsx +95 -95
  210. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.tsx +98 -98
  211. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js +24 -24
  212. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -24
  213. package/bundle/typescript/src/templates/meteor/app/lib/main.js +3 -3
  214. package/bundle/typescript/src/templates/meteor/app/lib/main.js.jsx +3 -3
  215. package/bundle/typescript/src/templates/meteor/app/lib/main.js.ts +3 -3
  216. package/bundle/typescript/src/templates/meteor/app/lib/main.js.tsx +3 -3
  217. package/bundle/typescript/src/templates/meteor/app/maka.d.ts +533 -533
  218. package/bundle/typescript/src/templates/meteor/app/meteor.d.ts +181 -181
  219. package/bundle/typescript/src/templates/meteor/app/public/manifest.json +27 -27
  220. package/bundle/typescript/src/templates/meteor/app/public/sw.js +30 -30
  221. package/bundle/typescript/src/templates/meteor/app/public/sw.js.jsx +30 -30
  222. package/bundle/typescript/src/templates/meteor/app/public/sw.js.ts +30 -30
  223. package/bundle/typescript/src/templates/meteor/app/public/sw.js.tsx +30 -30
  224. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js +179 -179
  225. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.jsx +179 -179
  226. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.ts +179 -179
  227. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.tsx +179 -179
  228. package/bundle/typescript/src/templates/meteor/app/server/main.js +13 -13
  229. package/bundle/typescript/src/templates/meteor/app/server/main.js.jsx +13 -13
  230. package/bundle/typescript/src/templates/meteor/app/server/main.js.ts +14 -14
  231. package/bundle/typescript/src/templates/meteor/app/server/main.js.tsx +14 -14
  232. package/bundle/typescript/src/templates/meteor/app/tsconfig.json +42 -42
  233. package/bundle/typescript/src/templates/meteor/collection/collection.js +51 -51
  234. package/bundle/typescript/src/templates/meteor/collection/collection.js.ts +55 -55
  235. package/bundle/typescript/src/templates/meteor/collection/tests.js +27 -27
  236. package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +27 -27
  237. package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +101 -101
  238. package/bundle/typescript/src/templates/meteor/config/docker-compose.yaml +17 -17
  239. package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -31
  240. package/bundle/typescript/src/templates/meteor/config/pm2.config.js +27 -27
  241. package/bundle/typescript/src/templates/meteor/config/process.env +5 -5
  242. package/bundle/typescript/src/templates/meteor/config/settings.json +11 -11
  243. package/bundle/typescript/src/templates/meteor/config/ssh.json +6 -6
  244. package/bundle/typescript/src/templates/meteor/dbc/config.js +70 -70
  245. package/bundle/typescript/src/templates/meteor/dbc/config.js.ts +70 -70
  246. package/bundle/typescript/src/templates/meteor/dbc/conn.js +37 -37
  247. package/bundle/typescript/src/templates/meteor/dbc/conn.js.ts +37 -37
  248. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js +3 -3
  249. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js.ts +3 -3
  250. package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +150 -150
  251. package/bundle/typescript/src/templates/meteor/method/method.js +48 -48
  252. package/bundle/typescript/src/templates/meteor/method/method.js.ts +48 -48
  253. package/bundle/typescript/src/templates/meteor/package/package.js +37 -37
  254. package/bundle/typescript/src/templates/meteor/package/package.js.jsx +37 -37
  255. package/bundle/typescript/src/templates/meteor/package/package.js.ts +36 -36
  256. package/bundle/typescript/src/templates/meteor/package/package.js.tsx +37 -37
  257. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js +5 -5
  258. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.jsx +5 -5
  259. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.ts +5 -5
  260. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.tsx +5 -5
  261. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js +5 -5
  262. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.jsx +5 -5
  263. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.ts +5 -5
  264. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.tsx +5 -5
  265. package/bundle/typescript/src/templates/meteor/project/.maka/config.json +29 -29
  266. package/bundle/typescript/src/templates/meteor/project/README.md +33 -33
  267. package/bundle/typescript/src/templates/meteor/project/build/README +4 -4
  268. package/bundle/typescript/src/templates/meteor/project/gitignore +10 -10
  269. package/bundle/typescript/src/templates/meteor/project/package.json +29 -29
  270. package/bundle/typescript/src/templates/meteor/publish/publish.js +7 -7
  271. package/bundle/typescript/src/templates/meteor/publish/publish.js.ts +7 -7
  272. package/bundle/typescript/src/templates/meteor/service/logger/logger.js +27 -27
  273. package/bundle/typescript/src/templates/meteor/service/logger/logger.js.ts +27 -27
  274. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css +5 -5
  275. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css.less +5 -5
  276. package/bundle/typescript/src/templates/meteor/template/template-tests.js +1 -1
  277. package/bundle/typescript/src/templates/meteor/template/template-tests.js.jsx +55 -55
  278. package/bundle/typescript/src/templates/meteor/template/template-tests.js.ts +1 -1
  279. package/bundle/typescript/src/templates/meteor/template/template-tests.js.tsx +55 -55
  280. package/bundle/typescript/src/templates/meteor/template/template.css +3 -3
  281. package/bundle/typescript/src/templates/meteor/template/template.css.less +3 -3
  282. package/bundle/typescript/src/templates/meteor/template/template.css.scss +3 -3
  283. package/bundle/typescript/src/templates/meteor/template/template.html +5 -5
  284. package/bundle/typescript/src/templates/meteor/template/template.js +20 -20
  285. package/bundle/typescript/src/templates/meteor/template/template.js.jsx +77 -77
  286. package/bundle/typescript/src/templates/meteor/template/template.js.ts +1 -1
  287. package/bundle/typescript/src/templates/meteor/template/template.js.tsx +89 -89
  288. package/bundle/typescript/src/templates/react/component/component.css +6 -6
  289. package/bundle/typescript/src/templates/react/component/component.css.less +6 -6
  290. package/bundle/typescript/src/templates/react/component/component.css.scss +3 -3
  291. package/bundle/typescript/src/templates/react/component/component.js.jsx +59 -59
  292. package/bundle/typescript/src/templates/react/component/component.js.tsx +65 -65
  293. package/bundle/typescript/src/templates/react/hook/hook.css +3 -3
  294. package/bundle/typescript/src/templates/react/hook/hook.css.scss +3 -3
  295. package/bundle/typescript/src/templates/react/hook/hook.js.jsx +19 -19
  296. package/bundle/typescript/src/templates/react/hook/hook.js.tsx +19 -19
  297. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.jsx +306 -306
  298. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.tsx +350 -350
  299. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +178 -178
  300. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +178 -178
  301. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -59
  302. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -67
  303. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +273 -273
  304. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +275 -275
  305. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +182 -182
  306. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +199 -199
  307. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.jsx +138 -138
  308. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.tsx +153 -153
  309. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.jsx +29 -29
  310. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.tsx +32 -32
  311. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.css +63 -63
  312. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.jsx +153 -153
  313. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.tsx +164 -164
  314. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.css +105 -105
  315. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.jsx +158 -158
  316. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.tsx +166 -166
  317. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.jsx +34 -34
  318. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.tsx +33 -33
  319. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.jsx +53 -53
  320. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.tsx +53 -53
  321. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.jsx +25 -25
  322. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.tsx +25 -25
  323. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.jsx +41 -41
  324. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +34 -34
  325. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.jsx +33 -33
  326. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.tsx +33 -33
  327. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -71
  328. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -71
  329. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -123
  330. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -123
  331. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -56
  332. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -74
  333. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.jsx +43 -43
  334. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.tsx +43 -43
  335. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.jsx +121 -121
  336. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.tsx +117 -117
  337. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.jsx +41 -41
  338. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.tsx +41 -41
  339. package/bundle/typescript/src/templates/react/route/route.js +8 -8
  340. package/bundle/typescript/src/templates/react/route/route.js.jsx +5 -5
  341. package/bundle/typescript/src/templates/react/route/route.js.ts +8 -8
  342. package/bundle/typescript/src/templates/react/route/route.js.tsx +5 -5
  343. package/bundle/typescript/src/templates/react/test/test.js +1 -1
  344. package/bundle/typescript/src/templates/react/test/test.js.jsx +40 -40
  345. package/bundle/typescript/src/templates/react/test/test.js.ts +1 -1
  346. package/bundle/typescript/src/templates/react/test/test.js.tsx +40 -40
  347. package/bundle/typescript/src/templates/service/docker/Dockerfile +54 -54
  348. package/bundle/typescript/src/templates/service/eslint/babel.config.js +16 -16
  349. package/bundle/typescript/src/templates/service/eslint/config.eslint.js +69 -69
  350. package/bundle/typescript/src/templates/service/i18n/i18n.js +33 -33
  351. package/bundle/typescript/src/templates/service/i18n/i18n.js.ts +33 -33
  352. package/bundle/typescript/src/templates/service/i18n/locales.js +3 -3
  353. package/bundle/typescript/src/templates/service/i18n/locales.js.ts +3 -3
  354. package/bundle/typescript/src/templates/service/openssl/openssl.conf +22 -22
  355. package/bundle/typescript/src/templates/service/test/jest/jest.config.js +24 -24
  356. package/bundle/typescript/src/templates/service/test/jest/jest.setup.js +7 -7
  357. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.d.ts +59 -0
  358. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js +120 -0
  359. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js.map +1 -0
  360. package/bundle/typescript/src/tools/mpi/mpi.class.d.ts +16 -0
  361. package/bundle/typescript/src/tools/mpi/mpi.class.js +25 -7
  362. package/bundle/typescript/src/tools/mpi/mpi.class.js.map +1 -1
  363. package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +1 -0
  364. package/bundle/typescript/src/tools/mpi/sdk-runtime.js +29 -0
  365. package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -1
  366. package/package.json +120 -120
@@ -17,9 +17,9 @@
17
17
  *
18
18
  * SO THERE ARE TWO KINDS OF ENTRY NOW, and the difference is visible
19
19
  * rather than inferred:
20
- * - MECHANICAL: carries `bonuses`, moves real dice through
21
- * Player.augBonus and the pool getters that read it.
22
- * - LISTING: carries no `bonuses`, and its `effect` line OPENS with
20
+ * - MECHANICAL: carries `effects`, moves real dice through
21
+ * Player.bonus and the pool getters that read it.
22
+ * - LISTING: carries no `effects`, and its `effect` line OPENS with
23
23
  * COSMETIC_PREFIX below. You can buy it, install it, pay essence for
24
24
  * it and see it on your sheet; it rolls nothing.
25
25
  *
@@ -28,7 +28,7 @@
28
28
  * surface and missed in another -- and IAugmentation's shape is co-owned
29
29
  * with the web chargen's loader, so a new field would be a contract
30
30
  * change for a convention a string carries perfectly well. The pairing
31
- * is enforced by a test, not by discipline: an entry with no bonuses and
31
+ * is enforced by a test, not by discipline: an entry with no effects and
32
32
  * no marker fails, and so does a marked entry that secretly grants dice.
33
33
  *
34
34
  * A LISTING IS NOT A PLACEHOLDER FOR A HOOK NOBODY WROTE. Where the book
@@ -47,7 +47,7 @@ export const AUGMENTATIONS = [
47
47
  cost: 1000,
48
48
  effect: '+1 die on every Matrix pool (a hard line beats any trode net)',
49
49
  wakeLine: 'A cool port sits behind your ear. The Matrix feels one thought closer.',
50
- bonuses: { matrix: 1 },
50
+ effects: [{ type: 'dice', category: 'pools', property: 'matrix', value: 1 }],
51
51
  page: 'p.452', avail: 2, canonCost: 1000,
52
52
  },
53
53
  {
@@ -58,7 +58,7 @@ export const AUGMENTATIONS = [
58
58
  cost: 4000,
59
59
  effect: '+2 dice with a drawn firearm (the crosshair lives in your eye)',
60
60
  wakeLine: 'You look at the far wall and a targeting reticle looks back.',
61
- bonuses: { firearms: 2 },
61
+ effects: [{ type: 'dice', category: 'pools', property: 'firearms', value: 2 }],
62
62
  page: 'p.454', avail: 8, legality: 'R', canonCost: 4000,
63
63
  },
64
64
  // VISION ENHANCEMENT, p.454 eyeware, Rating 1-3. Two sources agree
@@ -76,10 +76,15 @@ export const AUGMENTATIONS = [
76
76
  //
77
77
  // THE LIMIT HALF IS NOT MODELLED, and is named rather than dropped:
78
78
  // canon also adds the Rating to the LIMIT on visual Perception tests.
79
- // IAugmentation.bonuses carries pool dice and nothing else, and its
80
- // shape is co-owned with the web chargen -- a limit field would be a
81
- // contract change for one family. perceptionTest does compute a
82
- // mental limit, so the hook exists if the shape ever opens.
79
+ //
80
+ // THE SHAPE HAS SINCE OPENED. This said "bonuses carries pool dice and
81
+ // nothing else, and a limit field would be a contract change for one
82
+ // family" -- true of the old map, and no longer true: chrome declares
83
+ // `effects` now, and that vocabulary has carried a `limit` arm since
84
+ // the gear pass. So the blocker is gone and only the work remains:
85
+ // adding it means deciding the same question for every rated family,
86
+ // not just this one, which is why it is still written down here rather
87
+ // than done in passing.
83
88
  //
84
89
  // AUDIO ENHANCEMENT IS ITS TWIN AND IS DELIBERATELY ABSENT. The p.454
85
90
  // earware table gives it the identical row and the identical effect
@@ -97,7 +102,7 @@ export const AUGMENTATIONS = [
97
102
  effect: '+1 die on perception (the image sharpens a shade past what eyes do)',
98
103
  wakeLine: 'Edges come back harder than you remember them. The far wall has a texture now.',
99
104
  excludes: ['vision-enhancement-2', 'vision-enhancement-3'],
100
- bonuses: { perception: 1 },
105
+ effects: [{ type: 'dice', category: 'pools', property: 'perception', value: 1 }],
101
106
  page: 'p.454', avail: 3, canonCost: 4000,
102
107
  },
103
108
  {
@@ -109,7 +114,7 @@ export const AUGMENTATIONS = [
109
114
  effect: '+2 dice on perception (the image sharpens a shade past what eyes do)',
110
115
  wakeLine: 'You read a licence plate across the lot and only afterwards wonder how.',
111
116
  excludes: ['vision-enhancement-1', 'vision-enhancement-3'],
112
- bonuses: { perception: 2 },
117
+ effects: [{ type: 'dice', category: 'pools', property: 'perception', value: 2 }],
113
118
  page: 'p.454', avail: 6, canonCost: 8000,
114
119
  },
115
120
  {
@@ -121,7 +126,7 @@ export const AUGMENTATIONS = [
121
126
  effect: '+3 dice on perception (the image sharpens a shade past what eyes do)',
122
127
  wakeLine: 'Nothing in the room is vague any more. It is restful and it is not restful at all.',
123
128
  excludes: ['vision-enhancement-1', 'vision-enhancement-2'],
124
- bonuses: { perception: 3 },
129
+ effects: [{ type: 'dice', category: 'pools', property: 'perception', value: 3 }],
125
130
  page: 'p.454', avail: 9, canonCost: 12000,
126
131
  },
127
132
  {
@@ -132,7 +137,7 @@ export const AUGMENTATIONS = [
132
137
  cost: 5000,
133
138
  effect: '+2 dice on perception tests (low-light, thermographic, flare comp)',
134
139
  wakeLine: 'The dark peels back. You will never see the world the old way again -- literally.',
135
- bonuses: { perception: 2 },
140
+ effects: [{ type: 'dice', category: 'pools', property: 'perception', value: 2 }],
136
141
  page: 'p.454', avail: 6, canonCost: 6000, canonEssence: 0.3,
137
142
  },
138
143
  {
@@ -143,7 +148,10 @@ export const AUGMENTATIONS = [
143
148
  cost: 6000,
144
149
  effect: '+2 unarmed damage, +1 soak (your skeleton is the weapon now)',
145
150
  wakeLine: 'Everything aches at the marrow. You knock a knuckle on the table and dent it.',
146
- bonuses: { soak: 1, 'unarmed-damage': 2 },
151
+ effects: [
152
+ { type: 'dice', category: 'pools', property: 'soak', value: 1 },
153
+ { type: 'dice', category: 'pools', property: 'unarmed-damage', value: 2 },
154
+ ],
147
155
  page: 'p.455', avail: 12, legality: 'R', canonCost: 18000,
148
156
  excludes: ['bone-density-1', 'bone-density-2', 'bone-density-3', 'bone-density-4'],
149
157
  },
@@ -165,7 +173,10 @@ export const AUGMENTATIONS = [
165
173
  cost: 8000,
166
174
  effect: '+1 initiative die, +1 defense die',
167
175
  wakeLine: 'You wake with lightning under your skin. The room moves like it\'s wading through syrup.',
168
- bonuses: { initiative: 1, defense: 1 },
176
+ effects: [
177
+ { type: 'dice', category: 'pools', property: 'initiative', value: 1 },
178
+ { type: 'dice', category: 'pools', property: 'defense', value: 1 },
179
+ ],
169
180
  page: 'p.456', avail: 8, legality: 'R', canonCost: 39000,
170
181
  excludes: ['synaptic-booster'],
171
182
  },
@@ -177,7 +188,10 @@ export const AUGMENTATIONS = [
177
188
  cost: 18000,
178
189
  effect: '+2 initiative dice, +2 defense dice (supersedes Wired Reflexes I)',
179
190
  wakeLine: 'The world drops into slow motion and stays there. Doors take forever to finish opening.',
180
- bonuses: { initiative: 2, defense: 2 },
191
+ effects: [
192
+ { type: 'dice', category: 'pools', property: 'initiative', value: 2 },
193
+ { type: 'dice', category: 'pools', property: 'defense', value: 2 },
194
+ ],
181
195
  page: 'p.456', avail: 12, legality: 'R', canonCost: 149000,
182
196
  excludes: ['synaptic-booster'],
183
197
  },
@@ -199,7 +213,10 @@ export const AUGMENTATIONS = [
199
213
  cost: 16000,
200
214
  effect: '+1 initiative die, +1 defense die -- bioware: a fraction of the essence, twice the price',
201
215
  wakeLine: 'No metal, no ports -- just nerves rebuilt to a faster spec. You feel exactly like yourself, sooner.',
202
- bonuses: { initiative: 1, defense: 1 },
216
+ effects: [
217
+ { type: 'dice', category: 'pools', property: 'initiative', value: 1 },
218
+ { type: 'dice', category: 'pools', property: 'defense', value: 1 },
219
+ ],
203
220
  page: 'p.461', avail: 6, legality: 'R', canonCost: 95000,
204
221
  excludes: ['wired-reflexes-1', 'wired-reflexes-2'],
205
222
  },
@@ -212,7 +229,7 @@ export const AUGMENTATIONS = [
212
229
  cost: 4000,
213
230
  effect: '+1 die on perception (spatial recognizer, and a damper that saves your hearing)',
214
231
  wakeLine: 'The room gains depth you never noticed: a fan two doors down, someone breathing above you.',
215
- bonuses: { perception: 1 },
232
+ effects: [{ type: 'dice', category: 'pools', property: 'perception', value: 1 }],
216
233
  page: 'p.454', avail: 6, canonCost: 4500,
217
234
  },
218
235
  {
@@ -223,7 +240,7 @@ export const AUGMENTATIONS = [
223
240
  cost: 9000,
224
241
  effect: '+2 dice on perception -- sound paints what smoke, darkness, and cover hide',
225
242
  wakeLine: 'You close your eyes and the room is still there, drawn in echoes.',
226
- bonuses: { perception: 2 },
243
+ effects: [{ type: 'dice', category: 'pools', property: 'perception', value: 2 }],
227
244
  page: 'p.453', avail: 10, canonCost: 24000,
228
245
  },
229
246
  // ---- Speed and strength (p.456, p.460) ----
@@ -252,7 +269,7 @@ export const AUGMENTATIONS = [
252
269
  cost: 4500,
253
270
  effect: '+1 defense die (nerve boosters that answer before you do)',
254
271
  wakeLine: 'A dropped cup is in your hand before you have finished flinching.',
255
- bonuses: { defense: 1 },
272
+ effects: [{ type: 'dice', category: 'pools', property: 'defense', value: 1 }],
256
273
  excludes: ['reaction-enhancers-2', 'reaction-enhancers-3', 'wired-reflexes-1', 'wired-reflexes-2', 'wired-reflexes-3', 'synaptic-booster'],
257
274
  page: 'p.456', avail: 5, legality: 'R', canonCost: 13000,
258
275
  },
@@ -264,7 +281,7 @@ export const AUGMENTATIONS = [
264
281
  cost: 13500,
265
282
  effect: '+3 defense dice (nerve boosters that answer before you do)',
266
283
  wakeLine: 'The room fills with things that have not happened yet, and you are already leaning away from them.',
267
- bonuses: { defense: 3 },
284
+ effects: [{ type: 'dice', category: 'pools', property: 'defense', value: 3 }],
268
285
  excludes: ['reaction-enhancers-1', 'reaction-enhancers-2', 'wired-reflexes-1', 'wired-reflexes-2', 'wired-reflexes-3', 'synaptic-booster'],
269
286
  page: 'p.456', avail: 15, legality: 'R', canonCost: 39000,
270
287
  },
@@ -276,7 +293,7 @@ export const AUGMENTATIONS = [
276
293
  cost: 9000,
277
294
  effect: '+2 defense dice (nerve boosters that answer before you do)',
278
295
  wakeLine: 'Someone tosses you a chip and your hand has it before your eyes find it.',
279
- bonuses: { defense: 2 },
296
+ effects: [{ type: 'dice', category: 'pools', property: 'defense', value: 2 }],
280
297
  excludes: ['reaction-enhancers-1', 'reaction-enhancers-3', 'wired-reflexes-1', 'wired-reflexes-2', 'wired-reflexes-3', 'synaptic-booster'],
281
298
  page: 'p.456', avail: 10, legality: 'R', canonCost: 26000,
282
299
  },
@@ -301,7 +318,7 @@ export const AUGMENTATIONS = [
301
318
  effect: '+1 die on athletics (a heart cultured for the long run)',
302
319
  wakeLine: 'You climb the clinic stairs and notice, at the top, that you did not need to notice them.',
303
320
  excludes: ['synthacardium-2', 'synthacardium-3'],
304
- bonuses: { athletics: 1 },
321
+ effects: [{ type: 'dice', category: 'pools', property: 'athletics', value: 1 }],
305
322
  page: 'p.460', avail: 4, canonCost: 30000,
306
323
  },
307
324
  {
@@ -313,7 +330,7 @@ export const AUGMENTATIONS = [
313
330
  effect: '+3 dice on athletics (a heart cultured for the long run)',
314
331
  wakeLine: 'Your pulse settles at a rate that would worry a doctor who did not know. You could run all night.',
315
332
  excludes: ['synthacardium-1', 'synthacardium-2'],
316
- bonuses: { athletics: 3 },
333
+ effects: [{ type: 'dice', category: 'pools', property: 'athletics', value: 3 }],
317
334
  page: 'p.460', avail: 12, canonCost: 90000,
318
335
  },
319
336
  {
@@ -324,7 +341,7 @@ export const AUGMENTATIONS = [
324
341
  cost: 8000,
325
342
  effect: '+2 dice on athletics (a heart cultured for the long run)',
326
343
  wakeLine: 'You take the clinic stairs two at a time and arrive without a breath out of place.',
327
- bonuses: { athletics: 2 },
344
+ effects: [{ type: 'dice', category: 'pools', property: 'athletics', value: 2 }],
328
345
  excludes: ['synthacardium-1', 'synthacardium-3'],
329
346
  page: 'p.460', avail: 8, canonCost: 60000,
330
347
  },
@@ -336,7 +353,10 @@ export const AUGMENTATIONS = [
336
353
  cost: 40000,
337
354
  effect: '+3 initiative dice, +3 defense dice (supersedes the lower tiers -- and costs most of your soul)',
338
355
  wakeLine: 'The world stops pretending to move. You have never been this fast, and never had this little of yourself left.',
339
- bonuses: { initiative: 3, defense: 3 },
356
+ effects: [
357
+ { type: 'dice', category: 'pools', property: 'initiative', value: 3 },
358
+ { type: 'dice', category: 'pools', property: 'defense', value: 3 },
359
+ ],
340
360
  excludes: ['synaptic-booster'],
341
361
  page: 'p.456', avail: 20, legality: 'R', canonCost: 217000,
342
362
  },
@@ -349,7 +369,10 @@ export const AUGMENTATIONS = [
349
369
  cost: 12000,
350
370
  effect: '+3 unarmed damage, +2 soak (the expensive skeleton -- supersedes aluminum lacing)',
351
371
  wakeLine: 'You are heavier by the weight of a small engine, and everything you touch knows it.',
352
- bonuses: { soak: 2, 'unarmed-damage': 3 },
372
+ effects: [
373
+ { type: 'dice', category: 'pools', property: 'soak', value: 2 },
374
+ { type: 'dice', category: 'pools', property: 'unarmed-damage', value: 3 },
375
+ ],
353
376
  excludes: ['bone-lacing', 'bone-density-1', 'bone-density-2', 'bone-density-3', 'bone-density-4'],
354
377
  page: 'p.455', avail: 16, legality: 'R', canonCost: 30000,
355
378
  },
@@ -361,7 +384,10 @@ export const AUGMENTATIONS = [
361
384
  cost: 7000,
362
385
  effect: '+2 dice healing, +1 soak (wounds close while you are still standing in them)',
363
386
  wakeLine: 'The surgical cut is already a pink line. Your blood has learned to be in a hurry.',
364
- bonuses: { healing: 2, soak: 1 },
387
+ effects: [
388
+ { type: 'dice', category: 'pools', property: 'healing', value: 2 },
389
+ { type: 'dice', category: 'pools', property: 'soak', value: 1 },
390
+ ],
365
391
  page: 'p.460', avail: 12, canonCost: 17000,
366
392
  },
367
393
  {
@@ -372,7 +398,11 @@ export const AUGMENTATIONS = [
372
398
  cost: 20000,
373
399
  effect: '+1 attack, +1 soak, +2 athletics -- the whole body runs hot, and eats like it',
374
400
  wakeLine: 'You wake ravenous and burning, a body idling at a speed it was never issued.',
375
- bonuses: { attack: 1, soak: 1, athletics: 2 },
401
+ effects: [
402
+ { type: 'dice', category: 'pools', property: 'attack', value: 1 },
403
+ { type: 'dice', category: 'pools', property: 'soak', value: 1 },
404
+ { type: 'dice', category: 'pools', property: 'athletics', value: 2 },
405
+ ],
376
406
  page: 'p.460', avail: 20, legality: 'R', canonCost: 140000,
377
407
  },
378
408
  // ---- Cultured bioware: the head (p.461) ----
@@ -389,7 +419,7 @@ export const AUGMENTATIONS = [
389
419
  cost: 6500,
390
420
  effect: '+1 die on every Matrix pool (more brain, cultured to fit your skull)',
391
421
  wakeLine: 'A problem you left half-finished last week is suddenly obvious, and you cannot say when that happened.',
392
- bonuses: { matrix: 1 },
422
+ effects: [{ type: 'dice', category: 'pools', property: 'matrix', value: 1 }],
393
423
  excludes: ['cerebral-booster-2', 'cerebral-booster-3'],
394
424
  page: 'p.461', avail: 6, canonCost: 31500,
395
425
  },
@@ -401,7 +431,7 @@ export const AUGMENTATIONS = [
401
431
  cost: 19500,
402
432
  effect: '+3 dice on every Matrix pool (more brain, cultured to fit your skull)',
403
433
  wakeLine: 'You follow four threads at once and none of them frays. The skull feels crowded in a way you have decided to enjoy.',
404
- bonuses: { matrix: 3 },
434
+ effects: [{ type: 'dice', category: 'pools', property: 'matrix', value: 3 }],
405
435
  excludes: ['cerebral-booster-1', 'cerebral-booster-2'],
406
436
  page: 'p.461', avail: 18, canonCost: 94500,
407
437
  },
@@ -413,7 +443,7 @@ export const AUGMENTATIONS = [
413
443
  cost: 13000,
414
444
  effect: '+2 dice on every Matrix pool (more brain, cultured to fit your skull)',
415
445
  wakeLine: 'Thoughts arrive already finished. You catch yourself solving things you had not started.',
416
- bonuses: { matrix: 2 },
446
+ effects: [{ type: 'dice', category: 'pools', property: 'matrix', value: 2 }],
417
447
  excludes: ['cerebral-booster-1', 'cerebral-booster-3'],
418
448
  page: 'p.461', avail: 12, canonCost: 63000,
419
449
  },
@@ -437,7 +467,7 @@ export const AUGMENTATIONS = [
437
467
  cost: 2000,
438
468
  effect: 'ignore 1 box of damage when figuring wound modifiers (the pain arrives, the penalty does not)',
439
469
  wakeLine: 'The first bad news your body sends now arrives without the shouting.',
440
- bonuses: { 'wound-ignore': 1 },
470
+ effects: [{ type: 'dice', category: 'pools', property: 'wound-ignore', value: 1 }],
441
471
  excludes: ['damage-compensator-2', 'damage-compensator-3'],
442
472
  page: 'p.461', avail: 3, legality: 'F', canonCost: 2000,
443
473
  },
@@ -449,7 +479,7 @@ export const AUGMENTATIONS = [
449
479
  cost: 4000,
450
480
  effect: 'ignore 2 boxes of damage when figuring wound modifiers (the pain arrives, the penalty does not)',
451
481
  wakeLine: 'Two floors of the alarm are switched off. The building still burns; you just stop hearing about it so early.',
452
- bonuses: { 'wound-ignore': 2 },
482
+ effects: [{ type: 'dice', category: 'pools', property: 'wound-ignore', value: 2 }],
453
483
  excludes: ['damage-compensator-1', 'damage-compensator-3'],
454
484
  page: 'p.461', avail: 6, legality: 'F', canonCost: 4000,
455
485
  },
@@ -461,7 +491,7 @@ export const AUGMENTATIONS = [
461
491
  cost: 6000,
462
492
  effect: 'ignore 3 boxes of damage when figuring wound modifiers (the pain arrives, the penalty does not)',
463
493
  wakeLine: 'Cut-offs sit in your nerves now, filing the first three screams under "later".',
464
- bonuses: { 'wound-ignore': 3 },
494
+ effects: [{ type: 'dice', category: 'pools', property: 'wound-ignore', value: 3 }],
465
495
  excludes: ['damage-compensator-1', 'damage-compensator-2'],
466
496
  page: 'p.461', avail: 9, legality: 'F', canonCost: 6000,
467
497
  },
@@ -479,7 +509,7 @@ export const AUGMENTATIONS = [
479
509
  cost: 5500,
480
510
  effect: '+1 die on social work -- people like you and cannot say why',
481
511
  wakeLine: 'Conversations go a shade easier all afternoon. Nobody mentions it, including you.',
482
- bonuses: { social: 1 },
512
+ effects: [{ type: 'dice', category: 'pools', property: 'social', value: 1 }],
483
513
  excludes: ['tailored-pheromones-2', 'tailored-pheromones-3'],
484
514
  page: 'p.460', avail: 4, legality: 'R', canonCost: 31000,
485
515
  },
@@ -497,7 +527,7 @@ export const AUGMENTATIONS = [
497
527
  effect: '+3 dice on social work -- people like you and cannot say why',
498
528
  wakeLine: 'A stranger holds a door for you and looks briefly puzzled about why they did.',
499
529
  excludes: ['tailored-pheromones-1', 'tailored-pheromones-2'],
500
- bonuses: { social: 3 },
530
+ effects: [{ type: 'dice', category: 'pools', property: 'social', value: 3 }],
501
531
  page: 'p.460', avail: 12, legality: 'R', canonCost: 93000,
502
532
  },
503
533
  {
@@ -508,7 +538,7 @@ export const AUGMENTATIONS = [
508
538
  cost: 11000,
509
539
  effect: '+2 dice on social work -- people like you and cannot say why',
510
540
  wakeLine: 'Nothing about you looks different. The room warms to you anyway.',
511
- bonuses: { social: 2 },
541
+ effects: [{ type: 'dice', category: 'pools', property: 'social', value: 2 }],
512
542
  excludes: ['tailored-pheromones-1', 'tailored-pheromones-3'],
513
543
  page: 'p.460', avail: 8, legality: 'R', canonCost: 62000,
514
544
  },
@@ -553,7 +583,10 @@ export const AUGMENTATIONS = [
553
583
  cost: 2250,
554
584
  effect: '+1 die on meat-plane attacks and on sneaking (vat-grown fast-twitch fiber)',
555
585
  wakeLine: 'Your hands move a half-beat before you finish deciding to move them.',
556
- bonuses: { attack: 1, sneak: 1 },
586
+ effects: [
587
+ { type: 'dice', category: 'pools', property: 'attack', value: 1 },
588
+ { type: 'dice', category: 'pools', property: 'sneak', value: 1 },
589
+ ],
557
590
  excludes: ['muscle-toner-2', 'muscle-toner-3', 'muscle-toner', 'muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4'],
558
591
  page: 'p.460', avail: 5, legality: 'R', canonCost: 32000,
559
592
  },
@@ -565,7 +598,10 @@ export const AUGMENTATIONS = [
565
598
  cost: 4500,
566
599
  effect: '+2 diece on meat-plane attacks and on sneaking (vat-grown fast-twitch fiber)',
567
600
  wakeLine: 'You catch a falling glass without looking up from the table.',
568
- bonuses: { attack: 2, sneak: 2 },
601
+ effects: [
602
+ { type: 'dice', category: 'pools', property: 'attack', value: 2 },
603
+ { type: 'dice', category: 'pools', property: 'sneak', value: 2 },
604
+ ],
569
605
  excludes: ['muscle-toner-1', 'muscle-toner-3', 'muscle-toner', 'muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4'],
570
606
  page: 'p.460', avail: 10, legality: 'R', canonCost: 64000,
571
607
  },
@@ -577,7 +613,10 @@ export const AUGMENTATIONS = [
577
613
  cost: 7000,
578
614
  effect: '+3 diece on meat-plane attacks and on sneaking (vat-grown fast-twitch fiber)',
579
615
  wakeLine: 'The room has slowed by a fraction nobody else has noticed.',
580
- bonuses: { attack: 3, sneak: 3 },
616
+ effects: [
617
+ { type: 'dice', category: 'pools', property: 'attack', value: 3 },
618
+ { type: 'dice', category: 'pools', property: 'sneak', value: 3 },
619
+ ],
581
620
  excludes: ['muscle-toner-1', 'muscle-toner-2', 'muscle-toner', 'muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4'],
582
621
  page: 'p.460', avail: 15, legality: 'R', canonCost: 96000,
583
622
  },
@@ -589,7 +628,10 @@ export const AUGMENTATIONS = [
589
628
  cost: 9000,
590
629
  effect: '+4 diece on meat-plane attacks and on sneaking (vat-grown fast-twitch fiber)',
591
630
  wakeLine: 'You move like something that was designed to, and the designing shows.',
592
- bonuses: { attack: 4, sneak: 4 },
631
+ effects: [
632
+ { type: 'dice', category: 'pools', property: 'attack', value: 4 },
633
+ { type: 'dice', category: 'pools', property: 'sneak', value: 4 },
634
+ ],
593
635
  excludes: ['muscle-toner-1', 'muscle-toner-2', 'muscle-toner-3', 'muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4'],
594
636
  page: 'p.460', avail: 20, legality: 'R', canonCost: 128000,
595
637
  },
@@ -602,7 +644,7 @@ export const AUGMENTATIONS = [
602
644
  cost: 5500,
603
645
  effect: '+1 die on athletics (grown strength, not bolted-on)',
604
646
  wakeLine: 'Your grip closes on the bed rail a little harder than you meant it to.',
605
- bonuses: { athletics: 1 },
647
+ effects: [{ type: 'dice', category: 'pools', property: 'athletics', value: 1 }],
606
648
  excludes: ['muscle-augmentation-2', 'muscle-augmentation-3', 'muscle-augmentation-4', 'muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4'],
607
649
  page: 'p.460', avail: 5, legality: 'R', canonCost: 31000,
608
650
  },
@@ -614,7 +656,7 @@ export const AUGMENTATIONS = [
614
656
  cost: 11000,
615
657
  effect: '+2 diece on athletics (grown strength, not bolted-on)',
616
658
  wakeLine: 'Your arms sit heavier on the table, and the table complains first.',
617
- bonuses: { athletics: 2 },
659
+ effects: [{ type: 'dice', category: 'pools', property: 'athletics', value: 2 }],
618
660
  excludes: ['muscle-augmentation-1', 'muscle-augmentation-3', 'muscle-augmentation-4', 'muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4'],
619
661
  page: 'p.460', avail: 10, legality: 'R', canonCost: 62000,
620
662
  },
@@ -626,7 +668,7 @@ export const AUGMENTATIONS = [
626
668
  cost: 16500,
627
669
  effect: '+3 diece on athletics (grown strength, not bolted-on)',
628
670
  wakeLine: 'You stand up too fast and the chair goes over behind you.',
629
- bonuses: { athletics: 3 },
671
+ effects: [{ type: 'dice', category: 'pools', property: 'athletics', value: 3 }],
630
672
  excludes: ['muscle-augmentation-1', 'muscle-augmentation-2', 'muscle-augmentation-4', 'muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4'],
631
673
  page: 'p.460', avail: 15, legality: 'R', canonCost: 93000,
632
674
  },
@@ -638,7 +680,7 @@ export const AUGMENTATIONS = [
638
680
  cost: 22000,
639
681
  effect: '+4 diece on athletics (grown strength, not bolted-on)',
640
682
  wakeLine: 'Doors open further than you push them. You are learning to push less.',
641
- bonuses: { athletics: 4 },
683
+ effects: [{ type: 'dice', category: 'pools', property: 'athletics', value: 4 }],
642
684
  excludes: ['muscle-augmentation-1', 'muscle-augmentation-2', 'muscle-augmentation-3', 'muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4'],
643
685
  page: 'p.460', avail: 20, legality: 'R', canonCost: 124000,
644
686
  },
@@ -651,7 +693,7 @@ export const AUGMENTATIONS = [
651
693
  cost: 3000,
652
694
  effect: '+1 soak, and no plating shows in a scan (grown armor, worn under the skin)',
653
695
  wakeLine: 'Your skin looks exactly the same. It is not.',
654
- bonuses: { soak: 1 },
696
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 1 }],
655
697
  excludes: ['orthoskin-2', 'orthoskin-3', 'orthoskin-4', 'dermal-plating', 'dermal-plating-1', 'dermal-plating-2', 'dermal-plating-4', 'dermal-plating-5', 'dermal-plating-6'],
656
698
  page: 'p.460', avail: 4, legality: 'R', canonCost: 6000,
657
699
  },
@@ -663,7 +705,7 @@ export const AUGMENTATIONS = [
663
705
  cost: 6000,
664
706
  effect: '+2 soak, and no plating shows in a scan (grown armor, worn under the skin)',
665
707
  wakeLine: 'Your skin looks exactly the same. A knife would disagree.',
666
- bonuses: { soak: 2 },
708
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 2 }],
667
709
  excludes: ['orthoskin-1', 'orthoskin-3', 'orthoskin-4', 'dermal-plating', 'dermal-plating-1', 'dermal-plating-2', 'dermal-plating-4', 'dermal-plating-5', 'dermal-plating-6'],
668
710
  page: 'p.460', avail: 8, legality: 'R', canonCost: 12000,
669
711
  },
@@ -675,7 +717,7 @@ export const AUGMENTATIONS = [
675
717
  cost: 9000,
676
718
  effect: '+3 soak, and no plating shows in a scan (grown armor, worn under the skin)',
677
719
  wakeLine: 'You run a thumbnail along your forearm and it skates off.',
678
- bonuses: { soak: 3 },
720
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 3 }],
679
721
  excludes: ['orthoskin-1', 'orthoskin-2', 'orthoskin-4', 'dermal-plating', 'dermal-plating-1', 'dermal-plating-2', 'dermal-plating-4', 'dermal-plating-5', 'dermal-plating-6'],
680
722
  page: 'p.460', avail: 12, legality: 'R', canonCost: 18000,
681
723
  },
@@ -687,7 +729,7 @@ export const AUGMENTATIONS = [
687
729
  cost: 12000,
688
730
  effect: '+4 soak, and no plating shows in a scan (grown armor, worn under the skin)',
689
731
  wakeLine: 'Nothing about you reads as armored, which is the entire and expensive point.',
690
- bonuses: { soak: 4 },
732
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 4 }],
691
733
  excludes: ['orthoskin-1', 'orthoskin-2', 'orthoskin-3', 'dermal-plating', 'dermal-plating-1', 'dermal-plating-2', 'dermal-plating-4', 'dermal-plating-5', 'dermal-plating-6'],
692
734
  page: 'p.460', avail: 16, legality: 'R', canonCost: 24000,
693
735
  },
@@ -700,7 +742,7 @@ export const AUGMENTATIONS = [
700
742
  cost: 2250,
701
743
  effect: '+1 soak (armor that never comes off)',
702
744
  wakeLine: 'A faint ridging under the skin, like a scar you did not earn.',
703
- bonuses: { soak: 1 },
745
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 1 }],
704
746
  excludes: ['dermal-plating-2', 'dermal-plating', 'dermal-plating-4', 'dermal-plating-5', 'dermal-plating-6', 'orthoskin-1', 'orthoskin-2', 'orthoskin-3', 'orthoskin-4'],
705
747
  page: 'p.456', avail: 4, legality: 'R', canonCost: 3000,
706
748
  },
@@ -712,7 +754,7 @@ export const AUGMENTATIONS = [
712
754
  cost: 4750,
713
755
  effect: '+2 soak (armor that never comes off)',
714
756
  wakeLine: 'Your forearms have an edge to them now. People notice and do not say.',
715
- bonuses: { soak: 2 },
757
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 2 }],
716
758
  excludes: ['dermal-plating-1', 'dermal-plating', 'dermal-plating-4', 'dermal-plating-5', 'dermal-plating-6', 'orthoskin-1', 'orthoskin-2', 'orthoskin-3', 'orthoskin-4'],
717
759
  page: 'p.456', avail: 8, legality: 'R', canonCost: 6000,
718
760
  },
@@ -724,7 +766,7 @@ export const AUGMENTATIONS = [
724
766
  cost: 7000,
725
767
  effect: '+3 soak (armor that never comes off)',
726
768
  wakeLine: 'Your skin sits heavier, ridged under the surface like something geological.',
727
- bonuses: { soak: 3 },
769
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 3 }],
728
770
  excludes: ['dermal-plating-1', 'dermal-plating-2', 'dermal-plating-4', 'dermal-plating-5', 'dermal-plating-6', 'orthoskin-1', 'orthoskin-2', 'orthoskin-3', 'orthoskin-4'],
729
771
  page: 'p.456', avail: 12, legality: 'R', canonCost: 9000,
730
772
  },
@@ -736,7 +778,7 @@ export const AUGMENTATIONS = [
736
778
  cost: 9500,
737
779
  effect: '+4 soak (armor that never comes off)',
738
780
  wakeLine: 'You are visibly plated. Nobody asks you for directions any more.',
739
- bonuses: { soak: 4 },
781
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 4 }],
740
782
  excludes: ['dermal-plating-1', 'dermal-plating-2', 'dermal-plating', 'dermal-plating-5', 'dermal-plating-6', 'orthoskin-1', 'orthoskin-2', 'orthoskin-3', 'orthoskin-4'],
741
783
  page: 'p.456', avail: 16, legality: 'R', canonCost: 12000,
742
784
  },
@@ -748,7 +790,7 @@ export const AUGMENTATIONS = [
748
790
  cost: 11500,
749
791
  effect: '+5 soak (armor that never comes off)',
750
792
  wakeLine: 'Chairs creak. Doorframes are closer than they were.',
751
- bonuses: { soak: 5 },
793
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 5 }],
752
794
  excludes: ['dermal-plating-1', 'dermal-plating-2', 'dermal-plating', 'dermal-plating-4', 'dermal-plating-6', 'orthoskin-1', 'orthoskin-2', 'orthoskin-3', 'orthoskin-4'],
753
795
  page: 'p.456', avail: 20, legality: 'R', canonCost: 15000,
754
796
  },
@@ -760,7 +802,7 @@ export const AUGMENTATIONS = [
760
802
  cost: 14000,
761
803
  effect: '+6 soak (armor that never comes off)',
762
804
  wakeLine: 'You are wearing your own armor and there is no taking it off, ever.',
763
- bonuses: { soak: 6 },
805
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 6 }],
764
806
  excludes: ['dermal-plating-1', 'dermal-plating-2', 'dermal-plating', 'dermal-plating-4', 'dermal-plating-5', 'orthoskin-1', 'orthoskin-2', 'orthoskin-3', 'orthoskin-4'],
765
807
  page: 'p.456', avail: 24, legality: 'R', canonCost: 18000,
766
808
  },
@@ -773,7 +815,7 @@ export const AUGMENTATIONS = [
773
815
  cost: 12000,
774
816
  effect: '+1 die piloting drones (the machine becomes a limb)',
775
817
  wakeLine: 'Somewhere in your skull a new sense is waiting for wings to wear.',
776
- bonuses: { piloting: 1 },
818
+ effects: [{ type: 'dice', category: 'pools', property: 'piloting', value: 1 }],
777
819
  excludes: ['control-rig-2', 'control-rig-3'],
778
820
  page: 'p.452', avail: 5, legality: 'R', canonCost: 43000,
779
821
  },
@@ -785,7 +827,7 @@ export const AUGMENTATIONS = [
785
827
  cost: 27000,
786
828
  effect: '+2 diece piloting drones (the machine becomes a limb)',
787
829
  wakeLine: 'You reach for a drone that is not in the room and feel the absence like a missing finger.',
788
- bonuses: { piloting: 2 },
830
+ effects: [{ type: 'dice', category: 'pools', property: 'piloting', value: 2 }],
789
831
  excludes: ['control-rig', 'control-rig-3'],
790
832
  page: 'p.452', avail: 10, legality: 'R', canonCost: 97000,
791
833
  },
@@ -797,7 +839,7 @@ export const AUGMENTATIONS = [
797
839
  cost: 58000,
798
840
  effect: '+3 diece piloting drones (the machine becomes a limb)',
799
841
  wakeLine: 'The airframe is not a thing you fly. It is a thing you are.',
800
- bonuses: { piloting: 3 },
842
+ effects: [{ type: 'dice', category: 'pools', property: 'piloting', value: 3 }],
801
843
  excludes: ['control-rig', 'control-rig-2'],
802
844
  page: 'p.452', avail: 15, legality: 'R', canonCost: 208000,
803
845
  },
@@ -832,7 +874,7 @@ export const AUGMENTATIONS = [
832
874
  cost: 3000,
833
875
  effect: '+1 soak (bone grown dense enough to argue with a bullet)',
834
876
  wakeLine: 'Your bones feel like somebody else\'s -- heavier, and unwilling to bend the way they used to.',
835
- bonuses: { soak: 1 },
877
+ effects: [{ type: 'dice', category: 'pools', property: 'soak', value: 1 }],
836
878
  excludes: ['bone-density-2', 'bone-density-3', 'bone-density-4', 'bone-lacing', 'bone-lacing-titanium'],
837
879
  page: 'p.460', avail: 4, canonCost: 5000,
838
880
  },
@@ -844,7 +886,10 @@ export const AUGMENTATIONS = [
844
886
  cost: 6000,
845
887
  effect: '+2 soak, +1 unarmed damage (bone grown dense enough to argue with a bullet)',
846
888
  wakeLine: 'You knock on the door frame and the frame is what gives.',
847
- bonuses: { soak: 2, 'unarmed-damage': 1 },
889
+ effects: [
890
+ { type: 'dice', category: 'pools', property: 'soak', value: 2 },
891
+ { type: 'dice', category: 'pools', property: 'unarmed-damage', value: 1 },
892
+ ],
848
893
  excludes: ['bone-density-1', 'bone-density-3', 'bone-density-4', 'bone-lacing', 'bone-lacing-titanium'],
849
894
  page: 'p.460', avail: 8, canonCost: 10000,
850
895
  },
@@ -856,7 +901,10 @@ export const AUGMENTATIONS = [
856
901
  cost: 9000,
857
902
  effect: '+3 soak, +2 unarmed damage (bone grown dense enough to argue with a bullet)',
858
903
  wakeLine: 'Every fall you take from here is somebody else\'s problem.',
859
- bonuses: { soak: 3, 'unarmed-damage': 2 },
904
+ effects: [
905
+ { type: 'dice', category: 'pools', property: 'soak', value: 3 },
906
+ { type: 'dice', category: 'pools', property: 'unarmed-damage', value: 2 },
907
+ ],
860
908
  excludes: ['bone-density-1', 'bone-density-2', 'bone-density-4', 'bone-lacing', 'bone-lacing-titanium'],
861
909
  page: 'p.460', avail: 12, canonCost: 15000,
862
910
  },
@@ -868,7 +916,10 @@ export const AUGMENTATIONS = [
868
916
  cost: 12000,
869
917
  effect: '+4 soak, +3 unarmed damage (bone grown dense enough to argue with a bullet)',
870
918
  wakeLine: 'You are a load-bearing person now. Chairs know it before you sit.',
871
- bonuses: { soak: 4, 'unarmed-damage': 3 },
919
+ effects: [
920
+ { type: 'dice', category: 'pools', property: 'soak', value: 4 },
921
+ { type: 'dice', category: 'pools', property: 'unarmed-damage', value: 3 },
922
+ ],
872
923
  excludes: ['bone-density-1', 'bone-density-2', 'bone-density-3', 'bone-lacing', 'bone-lacing-titanium'],
873
924
  page: 'p.460', avail: 16, canonCost: 20000,
874
925
  },
@@ -893,7 +944,7 @@ export const AUGMENTATIONS = [
893
944
  cost: 2500,
894
945
  effect: '+1 dice on every healing test made on or by you (first aid, rest)',
895
946
  wakeLine: 'A cut on your thumb from the taxi door has already stopped bleeding.',
896
- bonuses: { healing: 1 },
947
+ effects: [{ type: 'dice', category: 'pools', property: 'healing', value: 1 }],
897
948
  excludes: ['symbiotes-2', 'symbiotes-3', 'symbiotes-4'],
898
949
  page: 'p.460', avail: 5, canonCost: 3500,
899
950
  },
@@ -905,7 +956,7 @@ export const AUGMENTATIONS = [
905
956
  cost: 5000,
906
957
  effect: '+2 dice on every healing test made on or by you (first aid, rest)',
907
958
  wakeLine: 'The surgical line is pink by evening. Something in you is working overtime and eating for it.',
908
- bonuses: { healing: 2 },
959
+ effects: [{ type: 'dice', category: 'pools', property: 'healing', value: 2 }],
909
960
  excludes: ['symbiotes-1', 'symbiotes-3', 'symbiotes-4'],
910
961
  page: 'p.460', avail: 10, canonCost: 7000,
911
962
  },
@@ -917,7 +968,7 @@ export const AUGMENTATIONS = [
917
968
  cost: 7500,
918
969
  effect: '+3 dice on every healing test made on or by you (first aid, rest)',
919
970
  wakeLine: 'You heal like a rumour spreads. You are also always, always hungry.',
920
- bonuses: { healing: 3 },
971
+ effects: [{ type: 'dice', category: 'pools', property: 'healing', value: 3 }],
921
972
  excludes: ['symbiotes-1', 'symbiotes-2', 'symbiotes-4'],
922
973
  page: 'p.460', avail: 15, canonCost: 10500,
923
974
  },
@@ -929,7 +980,7 @@ export const AUGMENTATIONS = [
929
980
  cost: 10000,
930
981
  effect: '+4 dice on every healing test made on or by you (first aid, rest)',
931
982
  wakeLine: 'Your blood is a small industrious country now, and it has an appetite.',
932
- bonuses: { healing: 4 },
983
+ effects: [{ type: 'dice', category: 'pools', property: 'healing', value: 4 }],
933
984
  excludes: ['symbiotes-1', 'symbiotes-2', 'symbiotes-3'],
934
985
  page: 'p.460', avail: 20, canonCost: 14000,
935
986
  },
@@ -1261,7 +1312,11 @@ export const AUGMENTATIONS = [
1261
1312
  cost: 4500,
1262
1313
  effect: '+1 on athletics, on meat-plane attacks and on sneaking (bought muscle, not earned)',
1263
1314
  wakeLine: 'Your arms are somebody else\'s idea of your arms, and they are better at it.',
1264
- bonuses: { athletics: 1, attack: 1, sneak: 1 },
1315
+ effects: [
1316
+ { type: 'dice', category: 'pools', property: 'athletics', value: 1 },
1317
+ { type: 'dice', category: 'pools', property: 'attack', value: 1 },
1318
+ { type: 'dice', category: 'pools', property: 'sneak', value: 1 },
1319
+ ],
1265
1320
  excludes: ['muscle-replacement-2', 'muscle-replacement-3', 'muscle-replacement-4', 'muscle-toner-1', 'muscle-toner-2', 'muscle-toner-3', 'muscle-toner', 'muscle-augmentation-1', 'muscle-augmentation-2', 'muscle-augmentation-3', 'muscle-augmentation-4'],
1266
1321
  page: 'p.457', avail: 5, legality: 'R', canonCost: 25000,
1267
1322
  },
@@ -1273,7 +1328,11 @@ export const AUGMENTATIONS = [
1273
1328
  cost: 9000,
1274
1329
  effect: '+2 on athletics, on meat-plane attacks and on sneaking (bought muscle, not earned)',
1275
1330
  wakeLine: 'You lift the clinic chair one-handed to see if you can. You can.',
1276
- bonuses: { athletics: 2, attack: 2, sneak: 2 },
1331
+ effects: [
1332
+ { type: 'dice', category: 'pools', property: 'athletics', value: 2 },
1333
+ { type: 'dice', category: 'pools', property: 'attack', value: 2 },
1334
+ { type: 'dice', category: 'pools', property: 'sneak', value: 2 },
1335
+ ],
1277
1336
  excludes: ['muscle-replacement-1', 'muscle-replacement-3', 'muscle-replacement-4', 'muscle-toner-1', 'muscle-toner-2', 'muscle-toner-3', 'muscle-toner', 'muscle-augmentation-1', 'muscle-augmentation-2', 'muscle-augmentation-3', 'muscle-augmentation-4'],
1278
1337
  page: 'p.457', avail: 10, legality: 'R', canonCost: 50000,
1279
1338
  },
@@ -1285,7 +1344,11 @@ export const AUGMENTATIONS = [
1285
1344
  cost: 13500,
1286
1345
  effect: '+3 on athletics, on meat-plane attacks and on sneaking (bought muscle, not earned)',
1287
1346
  wakeLine: 'Nothing about moving costs what it used to.',
1288
- bonuses: { athletics: 3, attack: 3, sneak: 3 },
1347
+ effects: [
1348
+ { type: 'dice', category: 'pools', property: 'athletics', value: 3 },
1349
+ { type: 'dice', category: 'pools', property: 'attack', value: 3 },
1350
+ { type: 'dice', category: 'pools', property: 'sneak', value: 3 },
1351
+ ],
1289
1352
  excludes: ['muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-4', 'muscle-toner-1', 'muscle-toner-2', 'muscle-toner-3', 'muscle-toner', 'muscle-augmentation-1', 'muscle-augmentation-2', 'muscle-augmentation-3', 'muscle-augmentation-4'],
1290
1353
  page: 'p.457', avail: 15, legality: 'R', canonCost: 75000,
1291
1354
  },
@@ -1297,7 +1360,11 @@ export const AUGMENTATIONS = [
1297
1360
  cost: 18000,
1298
1361
  effect: '+4 on athletics, on meat-plane attacks and on sneaking (bought muscle, not earned)',
1299
1362
  wakeLine: 'You are strong and quick in a way no training explains, and everyone can tell.',
1300
- bonuses: { athletics: 4, attack: 4, sneak: 4 },
1363
+ effects: [
1364
+ { type: 'dice', category: 'pools', property: 'athletics', value: 4 },
1365
+ { type: 'dice', category: 'pools', property: 'attack', value: 4 },
1366
+ { type: 'dice', category: 'pools', property: 'sneak', value: 4 },
1367
+ ],
1301
1368
  excludes: ['muscle-replacement-1', 'muscle-replacement-2', 'muscle-replacement-3', 'muscle-toner-1', 'muscle-toner-2', 'muscle-toner-3', 'muscle-toner', 'muscle-augmentation-1', 'muscle-augmentation-2', 'muscle-augmentation-3', 'muscle-augmentation-4'],
1302
1369
  page: 'p.457', avail: 20, legality: 'R', canonCost: 100000,
1303
1370
  },
@@ -1365,4 +1432,20 @@ export function formatEssence(n) {
1365
1432
  const two = n.toFixed(2);
1366
1433
  return two.endsWith('0') ? n.toFixed(1) : two;
1367
1434
  }
1435
+ /**
1436
+ * The kinds chrome can declare, as VALUES and not only as a type.
1437
+ *
1438
+ * The engine itself no longer needs this: chrome speaks the shared
1439
+ * effects vocabulary, and Player reads it through the same resolver as
1440
+ * everything else. What needs it is the BENCH -- effects-fixture.test.ts
1441
+ * interrogates `augBonus` for every kind it could possibly answer to,
1442
+ * and a type cannot be enumerated at runtime. It is kept as the one
1443
+ * place that list is written down, rather than retyped in the test where
1444
+ * it would quietly fall behind this file.
1445
+ */
1446
+ export const AUG_BONUS_KINDS = [
1447
+ 'initiative', 'defense', 'attack', 'firearms', 'soak',
1448
+ 'unarmed-damage', 'perception', 'matrix', 'piloting',
1449
+ 'social', 'sneak', 'athletics', 'healing', 'wound-ignore',
1450
+ ];
1368
1451
  //# sourceMappingURL=augmentations.js.map