pub fn formation_path(ident: &str) -> StringExpand description
Build the right /v1/formations/... path for a user-supplied
identifier. CTL-002 (E2E report): the server’s /v1/formations/{id}
route uses Path<Uuid> and rejects names with HTTP 400. We detect
the shape locally and route to the parallel /v1/formations/by-name/{name}
route when the input is not a UUID.
Detection is Uuid::parse_str(input).is_ok() — UUID-shaped strings
always go to the UUID route (preserves existing operator workflows),
everything else routes to by-name. We URL-encode the name so an
operator-supplied identifier containing / or other reserved
characters does not silently truncate or break path parsing.