Hi, I now believe that having the 3 new built-in types as "built-in" is a mistake; it causes some difficulties for serialization, deserialization, C++ interoperability, etc. when running a V3 pipeline with v2 (remote) components because the type systems differ, and this is a problem when they must "match" (for some binary serializations).
So, I'm thinking a better design is to remove the "built-in" nature of the 3 new types, and just have them be normal ones, that can optionally be included (imported) by users. Users running old components where binary serialization is requiring matching type systems could then continue to work, by not including these. I plan to put this change into either 3.0.0 alpha (if rc3 fails) or the next beta version. I'll probably make a new project, "uimaj-types" whose purpose will be to collect "useful to a wider community" pre-defined types users could include all or some of in their pipelines, with the current 3 new built-in types as the first ones. What do you think? -Marshall
