Tag shape becomes "[n<id>-]inbound-[<listen>:]<port>-<proto>-<net>"
where <proto> is a 2-char alias (vmess→vm, vless→vl, trojan→tr,
shadowsocks→ss, mixed→mx, wireguard→wg, hysteria→hy, tunnel→tn;
http stays as "http"), and <net> uses "tcpudp" for the TCP+UDP combo
instead of the previous "mixed" (which clashed visually with the
mixed protocol name).
Examples:
local VLESS TCP 443 → inbound-443-vl-tcp
local Hysteria UDP 443 → inbound-443-hy-udp
local Mixed protocol dual → inbound-22912-mx-tcpudp
local Tunnel allow=tcp,udp → inbound-51542-tn-tcpudp
node 1 VLESS TCP 443 → n1-inbound-443-vl-tcp
protocolShortName returns the raw protocol identifier for anything not
in the table, so future protocols still get a tag without a code edit.
Existing inbound tags are left alone — only newly generated tags adopt
the shape.