## ADDED Requirements ### Requirement: Plugin-declared SCUM data packs The system SHALL allow a SCUM plugin manifest to reference package-relative versioned SQL, log parser, and configuration mapping assets. Every query declaration that produces persisted SCUM rows MUST declare a `scum_*` target table and non-empty upsert keys; inline SQL and browser-supplied SQL MUST be rejected. #### Scenario: v57 query declaration resolves a packaged statement - **WHEN** the SCUM v57 plugin package declares a query with a relative `.sql` reference and row-target metadata - **THEN** manifest validation accepts the declaration and distribution includes the referenced asset #### Scenario: inline statement is rejected - **WHEN** a manifest contains SQL text instead of a package-relative SQL reference - **THEN** manifest validation rejects the manifest with a declaration error ### Requirement: Generic SCUM row ingestion The system SHALL ingest rows returned for a registered SCUM data template according to that template's declared target table, upsert keys, and column mappings, without routing by a query-key substring. #### Scenario: user rows are ingested - **WHEN** a registered user template returns rows containing its declared key and columns - **THEN** Platform upserts those rows into `scum_users` and records their plugin payload #### Scenario: unsupported row target is rejected - **WHEN** a registered data template names a target outside the allowed `scum_*` tables - **THEN** Platform rejects the result before any dataset row is written ### Requirement: SCUM v57 source coverage The initial SCUM pack SHALL include data declarations for users, squads and members, activity, gifts, and map points, plus parser/mapping declarations for supplied SCUM logs and configuration formats. #### Scenario: operators inspect supplied source families - **WHEN** the SCUM plugin package is assembled for database version 57 - **THEN** it contains SQL assets and declarations for all five console datasets and log/config parser assets