Here is a brief explanation.
All previous applinks used material slots and that was quite easy to do because we have access to this part through scripting language or lwsdk. Somebody can say "Dude.. But we have node editor and many cool nodes! Why don't you make shaders using this approach?!". I have to say this is a first thing I'd do, especially in LW 2018 where legacy materials give you a bounded potential. Sounds good in theory, but the access to nodes is heavily limited in lwsdk. Even in LW 2018! You can write and compile your own nodes as additional plugins, and later use them in NodeEditor, but there is no way to create a simple node from script or code, only manually. From the developer perspective a node is just a black box, which does some magic stuff. I spent a lot of time trying to get access through different hacks, but apparently it's not possible. The only one way that I could see is writing your own LWO parser and override information directly in lw object files. This is a pretty big task and require a lot of patience and time. Beside that not every LWO chunk has a description in the sdk documentation. If you still interested please try =), it's pure fun!