>Some front end clown is about to suggest all tools should output json by default aren’t they
This unironically sounds good (and, in case this matters, I'm not a front end "clown", but a reverse engineer who mostly uses C and Python). Unified formatted output from command line tools is a thing that is severely missing from unix ecosystem.
Json is maybe a bit heavy, but using a machine readable format such as tsv or csv (including configuring your terminal emulator to properly display it) would be a big step up from the status quo.
if ls returned json then it would have to decide what to do with non-utf8 filenames (or even users and groups, I do not know what the rules are there); it could reture either "filename.txt" or {"encoding":"base64", "data":"<base64 blob>"} to obviate the problem but it is not a very elegant solution