A dependency to a component will (optionally) contain a version designator, i.e.
[1.2.3,4.0.0) or [alpha,gamma). Are you saying that its wrong that the dependency would
provide information on how to interpreted that designator? In some respect that would imply
that there can be a need for different interpretations. I can't really see when that would
be the case.
The version designator consists a minimum version instance or a range delimited by two
instances. The instance(s) is of a certain type. The type assigns the semantics and
necessary magnitude characteristics to the instances. If you don't know the type, how can
you know how to constitute an instance?
You say that "all I know is that I need component FOO, version x.y.z". How do you know that
if you have no knowledge of what 'x', 'y', and 'z' really is?
I like your suggestion to add a versionType attribute to the mp:entry element. That could be
a good way of telling the Maven component type that "when generating a cspec with a
dependency that appoints some version of tada-sax, you should use the OSGi versionType for
that dependency".