Files
browser/openspec/changes/rebuild-scum-plugin-owned-data/design.md
T

1.5 KiB

Design

Ownership

Platform owns authentication, server-instance authorization, durable storage mechanics, collection scoping, and transaction boundaries. It does not interpret collection payloads.

The SCUM plugin owns collection names such as scum_users, schemas, upsert keys, data transformations, gifts, map geometry, and UI behavior. It declares database/file/log work in the manifest; Platform dispatches those declarations to Run, and Run executes on the machine.

Generic Platform Data Contract

The generic record is scoped by pluginId, serverInstanceId, collection, and key, with an opaque JSON value and timestamps. The platform validates scope and authorization only. A page bridge exposes list/get/put/delete generic collection methods to plugin bundles.

SCUM Data Flow

  1. The plugin declares v57 SQLite queries plus config/log parsers in its own versioned assets.
  2. Platform dispatches the selected declared operation to Run; no browser or plugin supplies a machine path or SQL string at request time.
  3. Plugin-shaped results are stored in scoped scum_* collections through the generic store.
  4. The SCUM page reads those collections through the generic bridge and applies all SCUM-specific presentation and gift logic locally.

Compatibility

Recent SCUM-specific Platform routes, types, repository tables, and game-gift APIs are removed. The retained generic bridge remains usable by other game plugins without SCUM imports or switches.