Hi Alan,
Rest assured that the ability to add custom tags will remain. Also the
current string based interface will stay, it is quite useful.
The objectives of this feature are to simplify the internal structure
of the Key class(es) and add an interface for known tags
that allows compilers to issue compile-time errors for misspelled keys
and IDEs to auto-complete key names. It looked quite straightforward
when the issue was first created and XMP was not in the picture yet:
three integers was all that was required to represent a key then. With
XMP, the situation is more complicated now because namespaces and
property names don't have numbers (identifiers). Right now I'm not
sure anymore how to do this. I placed this issue on the roadmap also
to force a decision - if we can't come up with a good solution we may
drop it altogether.
As far as backward compatibility is concerned, I generally try not to
make unnecessary API changes. However, the unified container change
that is planned for 0.19 is going to break quite a lot of things with
little room for backward compatibility. See
http://uk.groups.yahoo.com/group/exiv2/message/1480 for more context.
Andreas