texture slot name
In Collada the <texture> has a <param name="xxx" type="float3" flow="OUT"/> which we use to determine which input of the material the texture is defining.
e.g. <texture><param name="DIFFUSE" type="float3" flow="OUT"/></texture> defines the diffuse texture of a material.
We rely on these names so we can setup our own materials for our engine.
We have a problem where the max/maya plugins use a different param name for the same input (SPECULAR vs SPECULAR_LEVEL).
I have looked at the specification and it doesn't mention what these define. I was expecting something like 'an r,g,b texture with the channels averaged to produce an intensity , or a single channel texture defining the intensity'.
The problem I see is that this is defined in the common material profile, and if other tools rely on the naming they will not import the materials from other dcc tools correctly.
I was thinking that if it was well defined then dcc tool can read the common material parameters and translate it to their own structure if required.
e.g. if 'specular' is meant to specify a specular color texture, but the dcc tool requires seperate color and level textures, then these would be setup by the dcc tool from the data defined by collada.
And, the exact behaviour required by a dcc can always be done in a dcc specific profile.
Did that make sense?
I see two concerns in your post, so I'll address them one by one.
First, COLLADA 1.4.0 deprecates the texture library and greatly modifies the standard material definition to be closer to the ColladaFX specifications. From that we get that only specific channels will be available in the common-profile, so I won't be able to play with the input semantics anymore . Adding SPECULAR_LEVEL, EMISSION_LEVEL and other texture slots was available, in COLLADA 1.3.1, so I used it! In COLLADA 1.4.0, some of these will have to end-up in a Max-specific profile, as you suggest.
Second, Maya and Max both currently have the SPECULAR texture slot. SPECULAR_LEVEL is something different. If there is a mismatch in the meaning, we can talk about this offline, because that's a plug-in issue.