Pure, immutable counterpart of the pinned API URL builder.
Setters return {:ok, url}. path/2 replaces the entire path; query setters
append values, including duplicates. render/1 explicitly exposes the native
URL string. Inspection is redacted. Values are bounded to 16 KiB rendered,
4 KiB per component, 64 path parts and 128 query pairs. This helper does not
select, verify or contact a backend; use explicit Connection values for I/O.