Even historically there isn't a particularly well defined set of requirements for a subsystem. The closest to win32 was the subsystem for Unix applications, that loaded psdll.dll and used PE format executables even in the "Unix" environnement. WSL1 used elf files and required a custom execution process: bash.exe called com which called into the kernel to set up a special lightweight process supporting Linux syscall translation/implementation. Wsl2/wsa are Hyper-V based.