Files

4.9 KiB

ADDED Requirements

Requirement: Independently verified current map facts

The system SHALL store and present current player, vehicle, flag, and squad-territory coordinates only when each resource's plugin adapter maps a compatible current-service source, identity, coordinate, and observation time.

Scenario: One position resource is incompatible

  • WHEN player and flag positions are compatible but the vehicle query lacks a required column, type, identity, or unique join
  • THEN Platform keeps the verified player/flag layers available, disables only the vehicle layer, and SHALL NOT return an empty vehicle list as a successful current result

Scenario: Vehicle ownership is unverified

  • WHEN the source proves a vehicle identity/class and coordinate but does not prove a player or squad owner
  • THEN Platform stores the verified fields and leaves ownership null instead of inferring it from nearby players, movement history, or an expiry heuristic

Scenario: Position scan later fails

  • WHEN verified positions were previously stored and a later current-service scan fails or is partial
  • THEN the map may retain the last completed rows with their concrete collection time and connection interruption, but SHALL NOT call them current or replace them with empty/generated points

Requirement: Declared SCUM map asset and coordinate transform

The realtime map SHALL use a plugin-declared distributable map asset/version and integrity digest, verified world bounds, and a tested coordinate transform version/digest compatible with the current SCUM adapter.

Scenario: Verified coordinate is rendered

  • WHEN a player, vehicle, flag, or territory coordinate falls within the declared bounds and transform version
  • THEN the map places the marker at the tested map position and shows object type, name/ID, source coordinate, and collection time

Scenario: Map metadata is incompatible or absent

  • WHEN the map asset, version, bounds, or transform does not match the current server adapter
  • THEN the map shows a readable unavailable/error state and SHALL NOT fall back to a gradient board, arbitrary percentage transform, fake points, or sample routes

Scenario: Map asset digest does not match

  • WHEN the packaged/browser-served map asset or transform contract fails its plugin-declared integrity check
  • THEN the map is unavailable and SHALL NOT render coordinates against an unverified replacement asset

Scenario: Coordinate is outside bounds

  • WHEN a source coordinate is non-finite or outside the declared world bounds
  • THEN Platform rejects it from the current map dataset and records a bounded validation failure

Requirement: Automatically updated and distinguishable map layers

The realtime map SHALL consume platform-local data automatically and provide distinguishable player, vehicle, and flag/squad-territory layers with player/squad filtering.

Scenario: Operator changes layer visibility

  • WHEN an operator toggles players, vehicles, or flags/territory or applies a player/squad filter
  • THEN the map updates the visible verified markers without dispatching a Run query or manual refresh operation

Scenario: Platform receives a newer coordinate

  • WHEN a verified automatic sync or declared companion position event updates a current position
  • THEN Platform publishes a safe local update and the open map can update through the platform event stream

Scenario: Source cadence is insufficient

  • WHEN measured SCUM.db updates cannot support the declared realtime threshold
  • THEN the plugin uses a declared verified companion position source or the feature presents the measured cadence honestly; it SHALL NOT increase unsafe polling or fabricate intermediate movement

Scenario: Map legend is rendered

  • WHEN multiple entity types are visible
  • THEN the UI provides icons or textual legend labels so entity meaning does not rely only on color

Scenario: Historical movement was not requested

  • WHEN only current positions are available under this change
  • THEN the product SHALL NOT fabricate trajectories, 24-hour trails, ride associations, sampling history, or playback controls to satisfy realtime-map acceptance

Requirement: Server-isolated realtime-map API

The realtime-map API SHALL authorize the target server and return only bounded local current-position and safe object-summary fields needed by the map.

Scenario: Foreign map selector is supplied

  • WHEN a player, squad, vehicle, flag, or territory selector belongs only to another server
  • THEN Platform returns no foreign marker and does not reveal its existence or server identity

Scenario: Browser requests protected source material

  • WHEN a browser attempts to request raw database rows, SQL, host paths, database identifiers, map-source credentials, or Run connection details
  • THEN the API rejects the request and returns only named safe map fields