38 lines
1.5 KiB
Markdown
38 lines
1.5 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: SCUM feature ownership is plugin-local
|
|
|
|
The SCUM plugin SHALL own SCUM schemas, allowlists, migration adapters,
|
|
Companion behavior, and feature UI. The platform SHALL retain only reusable
|
|
authorization, isolation, auditing, queues, storage, and generic plugin-host
|
|
primitives. `platform_web` SHALL not import SCUM code or branch on `game.scum`.
|
|
|
|
#### Scenario: Page mounting
|
|
|
|
- **WHEN** an authorized administrator opens the installed plugin route
|
|
- **THEN** the generic host mounts the declared plugin bundle with only
|
|
server-scoped permission context
|
|
|
|
### Requirement: Feature availability is runtime scoped
|
|
|
|
The plugin SHALL expose a feature as actionable only when its declared
|
|
Companion handler or event producer is currently available for that server.
|
|
Availability SHALL not be gated by a game or adapter version/build/revision.
|
|
|
|
#### Scenario: One adapter fails
|
|
|
|
- **WHEN** a schema probe for state patching fails
|
|
- **THEN** state patching is unavailable with a typed reason while other
|
|
declared capabilities remain independently available
|
|
|
|
### Requirement: Transitional records are read-only migration input
|
|
|
|
Platform records MAY be displayed with provenance while plugin-owned records
|
|
become authoritative per server and feature. Migration flags SHALL be scoped
|
|
to the server and feature, never to a game version.
|
|
|
|
#### Scenario: Migration flag is absent
|
|
|
|
- **WHEN** no unique server-feature migration flag is present
|
|
- **THEN** historical records remain readable and plugin writes stay disabled
|