pub fn contract_id_to_service_name(id: &str) -> StringExpand description
Mirrors robonix_codegen::contract_gen::contract_id_to_service_name.
Uniform PascalCase: robonix/primitive/chassis/driver →
RobonixPrimitiveChassisDriver. No prefix stripping. Full gRPC
service path: /robonix.contracts.<this>/Driver.
Lifted out of cmd::deploy so Soma can build the same gRPC URLs
without re-implementing the rule (which would drift).