2.1 KiB
2.1 KiB
plugin-owned-game-lifecycle Specification
Purpose
Ensure game-specific server lifecycle behavior lives in game plugins while platform and run remain generic.
ADDED Requirements
Requirement: Game plugins own game-specific lifecycle policy
The system SHALL keep game-specific install, update, pre-start, start argument, stop, status, executable path, app id, and default launch flag policy in plugin-owned manifests, action specs, templates, or scripts.
Scenario: SCUM lifecycle declares concrete commands in plugin assets
- WHEN SCUM requires SteamCMD installation/update or server start
- THEN the Steam app id
3792580,SCUMServer.exerelative path,+app_update 3792580 validate,-port,-MaxPlayers, and-logare provided by SCUM plugin assets or plugin startup fields - AND platform and run do not hardcode those values to make SCUM lifecycle work
Requirement: Platform dispatches plugin lifecycle actions generically
The platform SHALL dispatch lifecycle jobs using plugin-declared action references and generic lifecycle/deployment inputs, and SHALL NOT require a game-specific run capability for SCUM deployment.
Scenario: SCUM install job is queued
- WHEN a SCUM server create/install lifecycle job is created
- THEN the job target key references the SCUM plugin install action
- AND the job execution input does not include a SCUM-specific server deployment plan
- AND required run capabilities contain only generic lifecycle/deployment capabilities
Requirement: Run executes generic actions only
Run SHALL execute lifecycle action templates and scoped process/file operations generically, and SHALL NOT branch on a game id or contain per-game deployment executors.
Scenario: Legacy SCUM deployment plan reaches run
- WHEN a run assignment includes a legacy
serverDeploymentPlan - THEN run rejects it as unsupported legacy input instead of executing game-specific deployment logic
Scenario: Run capability report
- WHEN run reports supported capabilities
- THEN the report does not include
deployment.scum.v1