43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
# 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.exe` relative path, `+app_update 3792580 validate`, `-port`, `-MaxPlayers`, and `-log` are 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`
|