3.1 KiB
ADDED Requirements
Requirement: SCUM feature ownership is plugin-local
The system SHALL place SCUM-specific configuration semantics, player/gift/map/state-patch behavior, schemas, validators, Companion handlers, and feature UI modules in the SCUM plugin package. The platform SHALL expose only generic authorization, isolation, audit, storage, queue, retention, and plugin-host primitives and SHALL NOT add new SCUM-named domain services, API handlers, or frontend panels.
Scenario: A new SCUM capability is added
- WHEN a SCUM-specific configuration field, event type, command, or view is introduced
- THEN its implementation and tests are added to the SCUM plugin package while the platform change, if any, is reusable by non-SCUM plugins
Scenario: Existing platform SCUM code is migrated
- WHEN an existing SCUM service or panel is replaced by its plugin equivalent
- THEN the platform retains only a generic primitive and no hard-coded
game.scumbranch or SCUM component import remains in the plugin host
Requirement: Plugin-owned pages mount in the platform host
The SCUM plugin SHALL declare versioned page-module entries and their required permissions/capabilities. The platform web host SHALL mount the declared module inside the existing authenticated themed shell and SHALL pass only server-scoped, permission-filtered host context.
Scenario: Authorized administrator opens a SCUM page
- WHEN an administrator with the declared permission opens a SCUM plugin route for an assigned server
- THEN the host loads the SCUM-declared page module with that server-scoped context and does not use a platform-owned SCUM page implementation
Scenario: Page module is unavailable or incompatible
- WHEN the declared SCUM page bundle fails integrity/version/capability validation
- THEN the host shows an unavailable-page state and does not fall back to a hard-coded SCUM panel
Requirement: Feature availability requires a plugin implementation
The system SHALL expose a SCUM feature as actionable only when the installed plugin declares the feature and its Companion reports a compatible handler or event producer for the bound server version. Transitional platform records MAY be displayed as migrated read-only history but SHALL NOT imply executable capability.
Scenario: Unsupported state patch adapter
- WHEN the bound SCUM version has no verified
game-state.patchhandler - THEN the plugin disables the edit control and reports that the version is unsupported without queuing a generic command
Scenario: Vehicle spawn handler is unavailable
- WHEN the bound Companion does not report the declared
vehicle.spawnhandler for its compatible version - THEN the plugin keeps vehicle spawning unavailable and does not display a raw command field or queue a generic RCON command
Scenario: Historical records during migration
- WHEN records created by the transitional platform implementation exist for a bound server
- THEN the plugin can display them with migration provenance while new writes use the plugin-owned feature path