A standards-conformant implementation of vi is
absolutely required to be present and conformant to standards if the platform is certified by POSIX.2 (or whatever name the standard uses these days).
The latest standard for vi (and the rest of the utilities) can be found here:
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/
The standard for vi is specifically:
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/v...
Yes, Microsoft, this means you!
https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem
Microsoft's native UTF-16 really, really needs an editor that easily saves US7ASCII and UTF-8 correctly, both with LF and CR/LF. The native Windows tools are quite poor in getting this right.