discrepancy between serde and API representation of HS reverse proxy config

We have

[onion_services.garlic]
proxy_ports = [ [ 80, "127.0.0.1:80" ] ]

but

impl ArtiConfigBuilder {
    pub(crate) fn onion_services(&mut self) -> &mut Vec<OnionServiceProxyConfigBuilder>
}

IMO the serde representation and the API representation ought to match. After all, the serde representation is indeed exposed via serde. Semantic or syntactic disrepancies are confusing and could be a source of validation errors or something. (In this case, the Rust API permits HSS iickname clashes; see also !1811 (closed) which helps here.)

Currently this is not any kind of blocking problem because this whole ArtiConfigBuilder type is private to the arti crate.