nmconnection vs link vs ifcfg files

WTF is the difference between .nmconnection .link and ifcfg-* files ? /etc/NetworkManager/system-connections/*.nmconnection = network manager configuration keyfiles…

WTF is the difference between .nmconnection .link and ifcfg-* files ?

/etc/NetworkManager/system-connections/*.nmconnection = network manager configuration keyfiles https://developer.gnome.org/NetworkManager/stable/nm-settings-keyfile.html

/etc/systemd/network/*.link = systemd network configuration files using the ‘new’ syntax https://www.freedesktop.org/software/systemd/man/systemd.link.html

/etc/sysconfig/network-scripts/ifcfg-* = init scripts still used for legacy, it is processed by systemd anyways https://developer.gnome.org/NetworkManager/stable/nm-settings-ifcfg-rh.html