Add a naval/air axis: nations project power at sea and in the air — blockades (choke an enemy's economy/supply), sea-lane control (who commands the seas around coastal regions), and naval battles (a fleet marker can engage and be lost).
A blockade reduces a target's economy (ties into Trade/embargo); sea control is a per-coastal-region claim (a region's coastal access can be denied to non-controlling nations); a naval battle can destroy a fleet marker (ties into markers).
Builds on: markers (fleet), per-region stats, adjacency (coastal), embargoes.
Acceptance
e2e safety (critical): stub returns naval: { blockades: [], seaControl: [], battles: [] }, deterministic; additive; must not break the UK-in-wwii-1939 e2e (empty frontier, military 80→85, 7-item legend).
Unit tests in server/engine.test.ts (blockade economy effect, sea control, fleet loss).
Version bump at PR time.
## What
Add a **naval/air axis**: nations project power at sea and in the air — **blockades** (choke an enemy's economy/supply), **sea-lane control** (who commands the seas around coastal regions), and **naval battles** (a `fleet` marker can engage and be lost).
## Mechanism
- `TurnResult` gains `naval: { blockades: { from: string; target: string; lift?: boolean }[]; seaControl: { regionKey: string; by: string }[]; battles: { a: string /* fleet marker id or nationRef */; b: string; winner?: string }[] }` — required, default `[]`s.
- A blockade reduces a target's economy (ties into Trade/embargo); sea control is a per-coastal-region claim (a region's coastal access can be denied to non-controlling nations); a naval battle can destroy a `fleet` marker (ties into markers).
- Builds on: markers (`fleet`), per-region stats, adjacency (coastal), embargoes.
## Acceptance
- **e2e safety (critical):** stub returns `naval: { blockades: [], seaControl: [], battles: [] }`, deterministic; additive; must **not** break the UK-in-`wwii-1939` e2e (empty frontier, military 80→85, 7-item legend).
- Unit tests in `server/engine.test.ts` (blockade economy effect, sea control, fleet loss).
- Version bump at PR time.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Add a naval/air axis: nations project power at sea and in the air — blockades (choke an enemy's economy/supply), sea-lane control (who commands the seas around coastal regions), and naval battles (a
fleetmarker can engage and be lost).Mechanism
TurnResultgainsnaval: { blockades: { from: string; target: string; lift?: boolean }[]; seaControl: { regionKey: string; by: string }[]; battles: { a: string /* fleet marker id or nationRef */; b: string; winner?: string }[] }— required, default[]s.fleetmarker (ties into markers).fleet), per-region stats, adjacency (coastal), embargoes.Acceptance
naval: { blockades: [], seaControl: [], battles: [] }, deterministic; additive; must not break the UK-in-wwii-1939e2e (empty frontier, military 80→85, 7-item legend).server/engine.test.ts(blockade economy effect, sea control, fleet loss).