The current implementation is largely based on NSDictionary (as it's derived from the NSJSONCoding code).
It would be good to be able to build a version that just uses Dictionary, in order to:
- build on Linux
- be more efficient if we're just living in a swift-only universe
That said, it would still be more efficient to be able to use something like the current code when reading from / writing to NSDictionary.
One way that this might be achieved is to restructure the code to take a generic dictionary type, and then to provide boxing/unboxing implementations for both cases.