Commands in functions can have preceding and trailing spaces and tabs.
xp add @s 1 levels
tellraw @s {"text":"hello"}
clear @s cobblestone 1xp add @s 1 levels
tellraw @s {"text":"hello"}
clear @s cobblestone 1This can be conflicting in commands like /say, because it trims these characters.
say Look! I'm not displaying the trailing spaces and tabs!!say Look! I'm not displaying the trailing spaces and tabs!!Preceding tabs and spaces may be intentional, because it then allows comments to be indented.
Per the 23w31a changelog, preceding spaces are intended to be trimmed (at least for multi-line commands).
Confirmed for 1.20.1 and 23w33a.