2.9 KiB
ADDED Requirements
Requirement: Companion dispatches only declared typed SCUM operations
The SCUM Companion SHALL run a bounded authenticated command-dispatch loop and SHALL execute only command types declared by the installed SCUM plugin, validated against their payload schema, server binding, permission/approval result, and compatible SCUM capability/version. It SHALL return an idempotent typed result for every claimed command.
Scenario: Supported gift delivery command
- WHEN the Companion claims a valid, unexpired
reward.delivercommand for a server version with a registered delivery handler - THEN it executes only that handler and completes the command with a typed delivered, failed, notification-failed, or unknown result
Scenario: Unsupported or malformed command
- WHEN the Companion claims a command whose type, schema, capability, or version is not supported
- THEN it does not invoke SCUM, RCON, a database, OCR, or desktop automation and completes the command with an explicit unsupported or validation failure result
Requirement: Companion emits validated semantic SCUM events
The SCUM Companion SHALL collect only declared allowed sources and upload contiguous semantic event batches through the platform's durable log channel. It SHALL validate required event fields before upload and SHALL not emit raw IP addresses, network fingerprints, host paths, credentials, database rows, screenshots, or raw RCON command text.
Scenario: Valid login event
- WHEN a supported SCUM source produces a successful-login record containing the declared player identity and timestamp fields
- THEN the Companion uploads a validated
scum.loginsemantic event and the plugin can create or update the local game-player profile
Scenario: Unknown source format
- WHEN a log or extension source does not match a supported parser version or lacks required fields
- THEN the Companion records a bounded diagnostic and does not fabricate a semantic login, position, vehicle, or security event
Requirement: Map event collection remains controlled
The SCUM Companion SHALL emit player.position, vehicle.position, player.vehicle.enter, and player.vehicle.leave only from a verified legitimate server-side source declared by the plugin. The plugin SHALL apply its declared coordinate transform, sampling precision, and retention policy before exposing trajectory data.
Scenario: Position source is unavailable
- WHEN no supported server-side source can provide a validated player or vehicle position
- THEN the trajectory page reports collection unavailable and does not use OCR, screenshots, keyboard/mouse injection, client-screen reading, or inferred synthetic tracks
Scenario: Cross-server isolation
- WHEN events are emitted for two bound SCUM servers
- THEN the Companion tags each batch with its bound server identity and no trajectory, player, or vehicle data from one server is returned for the other