# signalreach Phase 10 Intent (Physics Layer Expansion)

## Snapshot (where we are now)
signalreach currently:
- Ingests AOI polygons (KML/KMZ), quantizes demand points, loads DEM (Terrarium tiles + cache)
- Finds candidate high-ground sites (topo scoring: elevation, slope sanity, ridge weighting)
- Computes LOS + Fresnel clearance (geometry + frequency)
- Optimizes site selection (coverage-driven, with connected/backhaul-aware modes)
- Generates outputs:
  - recommendation.kml (the only layer that should label)
  - coverage_overlay.kml (overlay only; no NetworkLinks / no Placemarks)
  - backhaul_links.kml (lines only; no pins / no labels)
  - coverage.png
- Supports:
  - anchors (known fixed sites such as Base Ops / gateway)
  - must-cover (points/polygons that must be covered)
  - inventory/asset assignment (e.g., mast vs vehicle repeater, limited counts)
  - protocol header display (access/backhaul protocol identifiers)

## Phase 10 Objective
Move from "geometry viability" to "RF viability" more deeply, while staying protocol-agnostic:
- Keep LOS/Fresnel as geometry gates and penalties
- Improve the RF scoring / confidence model so site selection can be RF-led, not just LOS-led
- Maintain modular separation:
  Geometry → Visibility → RF Model → Optimization → Outputs

## What Phase 10 should add
1) **Per-link RF model improvements**
- Make sure all link budget inputs are explicit and None-safe:
  - tx_power_dbm, tx_ant_gain_dbi, tx_feed_loss_db
  - rx_ant_gain_dbi, rx_feed_loss_db
  - system_loss_db (optional)
  - clutter_loss_db, diffraction penalty (optional)
- Ensure the model can compute:
  - rx_power_dbm
  - fade_margin_db (rx_power - sensitivity)
  - confidence (from margin distribution)

2) **Optimization using RF score**
- Candidate evaluation should produce a combined score:
  - coverage contribution weighted by confidence
  - penalties for marginal Fresnel (do not hard-fail unless configured)
- Connected optimization should be able to:
  - prefer robust backhaul links (confidence + margin)
  - support a rooted gateway/backbone mode (anchors)

3) **Inputs & contracts**
- Mission JSON must remain the stable contract to future UIs:
  - schema generated from Mission model is authoritative
- Add/keep explicit defaults and avoid hidden constants.

## Non-goals (for Phase 10)
- Full deterministic road/hike routing
- Full multi-band simultaneous optimization (keep hooks)
- Heavy ITM/Longley-Rice unless we’re ready to own its complexity & inputs

## Deliverables
- Better RF-led selection (not just LOS-led)
- Clean outputs (labels only in recommendation layer)
- Clear schema/docs for UI work to target
