Updates all three vendored upstream repos (Engine-TS, Content, Client-TS) to the
274 game snapshot with all rs-sdk modifications re-applied via a 3-way merge
(254 base + local mods, replayed onto upstream 274).
## Engine
- Bump @2004scape/rsbuf 254.1.0 -> 274.1.0 (keep rsmod-pathfinder fork pin)
- Adapt to 274's nested WorldConfig: Environment.ts now exposes flat back-compat
aliases (WEB_PORT, NODE_ID, ...) plus the rs-sdk-only keys the bot framework
uses, and createDefaultWorldConfig carries our defaults (xpRate 25, web.port 8888)
- Collision export (web/pages/api.ts) reads 274's in-engine TS routefinder instead
of the dropped @2004scape/rsmod-pathfinder WASM, which the engine no longer feeds
- Remove dead GameMap.findLongPath (274 routefinder has no long-path variant; the
SDK does long-distance pathfinding client-side)
- Re-apply security/login mods (sdk_auth, IP login tracking, login-takeover, banned
usernames, no dev staffmodlevel on non-prod) onto 274's auth refactor
- Add MESSAGE_PUBLIC server packet at the free opcode 255 (254's 81 is now OBJ_ADD)
- NODE_WS_ONDEMAND now defaults on: the 274 web client streams on-demand assets over
the game WebSocket and otherwise stalls at ~60% on load
## Content
- Full 254->274 content update with our 4 script/config patches re-applied
- worldmap.jag regenerated for /mapview from the 274 maps (via engine build)
## Webclient
- Rebuild standard + bot + viewer bundles; CLIENT_VERSION 274
- ServerProt: keep 274 opcodes, add MESSAGE_PUBLIC=255 with -1 size table entry
- Replace removed Packet.pIsaac() calls with 274's p1Enc()
- Disable terser property mangling (274 enabled it): the bot framework accesses
client members by name from bot.ejs / the Puppeteer harness
## SDK
- Regenerate sdk/collision-data.json from 274 maps (905k -> 958k tiles)
## start.ts
- Add 274 to the version menu
Verified end-to-end: engine boots and loads 274 maps, content packs, engine
typechecks clean, webclient builds, a headless bot logs in, sdk.getState() returns
a complete snapshot, and bot.walkTo() pathfinds/moves on the regenerated collision
data. Map and hiscores sprites serve correctly.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>