Previously, when the command list was empty, the server returned null and did not send a DeclareCommands packet.
This caused the client to lose the slash UI and tab completion entirely.
Now, when there are no available commands, the server sends a minimal valid tree (only a root node with no children).
This keeps the client UI functional while still reflecting the fact that no commands are available.