//! Viewport logical lines (#113, ADR-0017): soft-wrap-joined text plus a
//! per-char map back to viewport cells. This is the buffer-wide *mechanism* a
//! frame-mode consumer needs for URL detection — the regex and `new URL()`
//! validation stay consumer-side (policy). It also serves the a11y screen-reader
//! mirror (#119). The cell-aware assembly lives in `term/logical.rs` — the `Term` half
//! of this model, moved out of `term.rs` in #601; this module is just the returned shape.
/// One soft-wrap-joined logical line touching the viewport.
///
/// **No `#[non_exhaustive]` ([#844](https://github.com/kihyun1998/justerm/issues/844)): nothing outside this crate has a reason to build one.** No
/// public function accepts it — the engine hands it out — and there are zero out-of-crate literal
/// sites, so the attribute would bind nothing it does not already bind.