Files

3.8 KiB

ADDED Requirements

Requirement: Independently gated squad, member, flag, and territory facts

The system SHALL store and present squads, squad members, leader/rank meaning, flags, territories, and their relationships only from current-service rows validated by the matching per-resource plugin adapter capability.

Scenario: Squad and member adapters are compatible

  • WHEN squad and member queries complete successfully with verified identifiers, ranks, and player/profile relationships
  • THEN Platform transactionally stores server-scoped squads and members and exposes only the leader/rank meaning declared by that adapter

Scenario: One squad resource is incompatible

  • WHEN squad/member queries are compatible but flag ownership or territory coordinates are not
  • THEN Platform keeps the verified squad/member capability available, disables only the incompatible resource, and SHALL NOT treat its absence as a verified empty list

Scenario: Leader meaning is unverified

  • WHEN the current schema contains a rank value but the adapter cannot prove which value represents leader
  • THEN Platform keeps leader unknown and SHALL NOT assume that a reference-project constant such as rank 4 is authoritative

Scenario: Flag ownership join is ambiguous

  • WHEN a flag/base/profile relationship yields multiple possible squad owners or no verified squad link
  • THEN Platform records no squad owner for that flag and exposes no inferred confidence label as fact

Requirement: Searchable and paginated squad roster

The system SHALL provide a server-authorized local squad-list API and full-width table with bounded name/identifier search, server-side pagination, allowlisted sorting, and deterministic results.

Scenario: Operator searches squads

  • WHEN an authorized operator searches or pages the target server's squads
  • THEN Platform returns only matching server-local rows with total/page information, and the table shows squad ID, name, verified leader, member count, flag/territory status, known coordinate, and collection time

Scenario: No completed squad generation exists

  • WHEN squads have not synchronized successfully or the squad adapter is incompatible
  • THEN the page shows the corresponding not-yet-available/error state and SHALL NOT render reference, sample, projection, or generated squads

Requirement: Semantic squad detail

The squad surface SHALL provide a drawer, dialog, or detail route that separates leader, members/ranks, flags, and territory instead of merging unrelated rows into one list.

Scenario: Operator opens a squad

  • WHEN a server-authorized operator selects a squad
  • THEN the detail shows only verified leader/member/rank and flag/territory facts with collection times and nullable unknown fields

Scenario: Verified territory coordinate is selected

  • WHEN a squad or flag has a compatible verified coordinate and the realtime-map capability is available
  • THEN the detail may navigate to that coordinate on the map without dispatching a new Run query or inventing a fallback point

Requirement: Server-isolated squad APIs

Squad APIs SHALL authorize the target server and return only bounded local squad, member, flag, and territory fields needed by the management surface.

Scenario: Foreign selector is supplied

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

Scenario: Browser requests protected source material

  • WHEN a browser attempts to request raw SCUM.db rows, query text, host paths, database identifiers, or Run connection details
  • THEN the API rejects the request and returns only named safe resource fields