Files
2026-05-27 23:29:53 +01:00

1.9 KiB

Spec Delta — game-server / integrations capability

ADDED Requirements

Requirement: EnhancedGameServer top-of-stack bootstrap

The @suaveplan/game-server package SHALL expose an EnhancedGameServer class under the ./integrations/enhanced-server subpath export that bootstraps the canonical engine + plugin stack via a single bootstrap(options) entry point.

Scenario: Bootstrap installs all eight plugins

  • WHEN bootstrap() is invoked with valid options
  • THEN a GameLoop, PluginManager, and GameEngine SHALL be constructed and wired
  • AND all eight built-in plugins (ABTestPlugin, AnalyticsPlugin, FeatureFlagPlugin, LoggingPlugin, PersistencePlugin, RulesPlugin, WorkflowPlugin, and one further reserved slot satisfied by BasePlugin derivatives) SHALL be installed in dependency order via PluginManager.installAll
  • AND the GameEngine SHALL be returned ready to start().

Scenario: Double bootstrap rejected

  • WHEN bootstrap() is invoked twice on the same EnhancedGameServer
  • THEN the second call SHALL throw GameServerError with code GAME_SERVER.ALREADY_BOOTSTRAPPED.

Scenario: Plugin install failure rolls back

  • WHEN any plugin install fails during bootstrap()
  • THEN the failure SHALL be wrapped as GameServerError with code GAME_SERVER.BOOTSTRAP_FAILED
  • AND the underlying cause SHALL be the original error.

Scenario: Lifecycle deferral

  • WHEN the caller invokes start() / tick() / stop() / dispose()
  • THEN the EnhancedGameServer SHALL delegate to the underlying GameEngine so existing engine lifecycle codes propagate unchanged.

Scenario: Injected dependencies are honoured

  • WHEN bootstrap(options) is invoked
  • THEN every plugin SHALL receive the injected Clock and LoggerLike so deterministic tests observe stable timestamps and captured logs.