api: serialize azimuthal ROI phi sector over OpenAPI and CBOR

Expose the optional phi_min_deg / phi_max_deg azimuthal-sector bounds
added to ROIAzimuthal through the wire formats. Both are optional, so
older clients and streams (Q-only ROIs) remain valid.

- jfjoch_api.yaml: optional phi_min_deg / phi_max_deg on roi_azimuthal;
  regenerated the cpp-pistache server model and the TS frontend client.
- OpenAPIConvert: map phi both directions (set only when present).
- CBOR start message: emit phi_min/phi_max only for a sector; on decode,
  absent phi means a full ring.
- Documented the new optional CBOR fields; extended the CBOR round-trip
  test with a sector and a full-ring azimuthal ROI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 09:28:25 +02:00
co-authored by Claude Opus 4.8
parent 9e57219b31
commit 1d04656dc8
10 changed files with 149 additions and 13 deletions
@@ -1000,6 +1000,9 @@ namespace {
cfg.type = ROIConfig::ROIType::Azim;
cfg.azim.qmin = jr["qmin"];
cfg.azim.qmax = jr["qmax"];
// Absent phi (older streams) means a full ring.
cfg.azim.phi_min = jr.value("phi_min", 0.0f);
cfg.azim.phi_max = jr.value("phi_max", 0.0f);
message.rois.emplace_back(std::move(cfg));
} else
continue;