# 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/put/delete and atomic put/delete transaction methods to plugin bundles. ## SCUM Data Flow 1. The plugin declares v57 SQLite `sqlRef` assets, opaque collection row targets, config maps, and log parsers in its own versioned data pack. 2. Platform dispatches the selected declared operation to Run; no browser or plugin supplies a machine path or SQL string at request time. 3. Run returns structured rows; Platform applies only the declared collection, upsert keys, and column mapping before storing them in the scoped generic store. 4. The SCUM page reads those collections through the generic bridge and applies all SCUM-specific presentation and gift logic locally. 5. Gift delivery and activity commands use the existing generic Game Client Bridge queue exposed by the plugin-page host. ## 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.