Shared naming and path/identity normalization helpers.
@type name_part() :: atom() | String.t() | integer()
@spec capability(atom() | String.t()) :: atom() | String.t()
@spec elixir_release(name_part()) :: String.t()
@spec identity_path(name_part()) :: String.t()
@spec identity_segment(name_part()) :: String.t()
@spec ingress_route(name_part(), String.t(), pos_integer()) :: String.t()
@spec path_segment(name_part()) :: String.t()
@spec prefixed(name_part(), name_part()) :: String.t()
@spec readiness([name_part()] | name_part(), [name_part()] | name_part()) :: String.t()
@spec resource([name_part()]) :: String.t()
@spec route_suffix(String.t()) :: String.t()
@spec service_user(name_part()) :: String.t()
@spec systemd_unit(name_part(), name_part()) :: String.t()
@spec workspace_identity(name_part(), name_part(), name_part()) :: String.t()
@spec workspace_path(name_part(), name_part(), name_part()) :: String.t()