{ "name": "examplegame-module-server", "version": "0.1.0", "private": true, "description": "Server half of the Example Game module — routers, models and the schema fragment core loads at boot", "license": "GPL-3.0-or-later", "main": "index.js", "scripts": { "test": "node --test", "check:imports": "node scripts/checkImports.js", "swagger": "node scripts/swaggerFragment.js", "check:swagger": "node scripts/swaggerFragment.js --check" }, "engines": { "node": ">=20" }, "//dependencies": "There are none, and that is the shape to aim for: everything the shipped half needs arrives on ctx (MODULE_API.md 2.3) - express, express-validator, the database, the logger and the middleware are all core-owned and handed over. If you do add one, remember an operator never builds: your release CI runs npm ci --omit=dev and packs server/node_modules into the tarball, so every dependency is weight in the artifact and a package the operator now runs. scripts/checkImports.js reads this file to decide what the shipped half may resolve.", "devDependencies": { "express": "^4.19.2", "swagger-autogen": "^2.23.7" }, "//devDependencies": "Test-only and build-only, never shipped. test/_fakes.js builds a REAL express Router, because a fake Router would only ever test the fake. swagger-autogen generates the OpenAPI fragment; pin it to the same major core uses, so the fragment and the spec it merges into come out of one tool." }