30 lines
1.9 KiB
JSON
30 lines
1.9 KiB
JSON
{
|
|
"key": "scum-flags-read-v1",
|
|
"adapterVersion": "scum-live-data-v1",
|
|
"queryVersion": "scum-sqlite-query-v1",
|
|
"capability": "flags.read",
|
|
"requiredSchemaFingerprint": "sha256:ebd477d6c6ead9c34c41169af489236d762a76186d45dedd753d50f1b81e26f0",
|
|
"statementType": "single-select-or-cte",
|
|
"statement": "SELECT bef.element_id AS flagElementId, be.element_id AS baseElementId, b.id AS baseId, b.owner_profile_id AS ownerProfileId, up.user_id AS ownerExternalPlayerId, up.name AS ownerDisplayName, CAST(NULL AS INTEGER) AS ownerSquadId, CAST(NULL AS TEXT) AS ownerSquadName, be.location_x AS flagX, be.location_y AS flagY, be.location_z AS flagZ, b.location_x AS territoryX, b.location_y AS territoryY, CAST(NULL AS REAL) AS territoryZ FROM base_element_flag bef INNER JOIN base_element be ON be.element_id = bef.element_id INNER JOIN base b ON b.id = be.element_id LEFT JOIN user_profile up ON up.id = b.owner_profile_id ORDER BY bef.element_id ASC LIMIT :limit OFFSET :offset",
|
|
"parameters": [
|
|
{ "name": "limit", "binding": ":limit", "type": "integer", "required": true, "minimum": 1, "maximum": 200 },
|
|
{ "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": 200,
|
|
"timeoutMs": 2000,
|
|
"maxResultBytes": 65536
|
|
},
|
|
"evidence": {
|
|
"source": "openspec/changes/replace-scum-projections-with-real-data-management/evidence/scum-current-service-sqlite-diagnostic-2026-08-12.md",
|
|
"provenJoins": ["base_element_flag.element_id -> base_element.element_id", "base_element.element_id -> base.id", "base.owner_profile_id -> user_profile.id"],
|
|
"ambiguousFieldsKeptNull": ["ownerSquadId", "ownerSquadName", "territoryZ"]
|
|
}
|
|
}
|