{ "key": "scum-squad-members-read-v1", "adapterVersion": "scum-live-data-v1", "queryVersion": "scum-sqlite-query-v1", "capability": "squad-members.read", "requiredSchemaFingerprint": "sha256:ebd477d6c6ead9c34c41169af489236d762a76186d45dedd753d50f1b81e26f0", "statementType": "single-select-or-cte", "statement": "SELECT sm.squad_id AS squadId, sm.user_profile_id AS userProfileId, sm.rank AS rankCode, CAST(NULL AS TEXT) AS rankMeaning, CAST(NULL AS INTEGER) AS isLeader, up.user_id AS externalPlayerId, u.id_type AS idType, u.provider AS provider, up.name AS displayName, up.type AS profileType FROM squad_member sm INNER JOIN squad s ON s.id = sm.squad_id INNER JOIN user_profile up ON up.id = sm.user_profile_id LEFT JOIN \"user\" u ON u.id = up.user_id WHERE (:squadId IS NULL OR sm.squad_id = :squadId) ORDER BY sm.squad_id ASC, sm.user_profile_id ASC LIMIT :limit OFFSET :offset", "parameters": [ { "name": "squadId", "binding": ":squadId", "type": "integer", "required": true, "nullable": true, "minimum": 0, "maximum": 2147483647 }, { "name": "limit", "binding": ":limit", "type": "integer", "required": true, "minimum": 1, "maximum": 500 }, { "name": "offset", "binding": ":offset", "type": "integer", "required": true, "minimum": 0, "maximum": 1000000 } ], "safety": { "queryOnly": true, "readOnlyConnection": true, "forbidMultipleStatements": true, "forbidAttach": true, "forbidWritePragmas": true, "forbidExtensionLoading": true, "maxRows": 500, "timeoutMs": 2000, "maxResultBytes": 131072 }, "evidence": { "source": "openspec/changes/replace-scum-projections-with-real-data-management/evidence/scum-current-service-sqlite-diagnostic-2026-08-12.md", "provenJoins": ["squad_member.squad_id -> squad.id", "squad_member.user_profile_id -> user_profile.id", "user_profile.user_id -> user.id"], "ambiguousFieldsKeptNull": ["rankMeaning", "isLeader"] } }