Files

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.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