Issue #5: turns out that what was missing from the NeoJSON implementation was the handling of code points greater than 0xFFFF (as noted in my original comment) ... I had misinterpretted the solution to be to use UTF8 encoding ... the proper answer was to use UTF-16 surrogate pairs for code points > 16rFFFF... which I've done