I did implement low level 'value' and 'bundle' classes, which could be used by both the client and the MicroKernel: org.apache.jackrabbit.j3.mc.Val org.apache.jackrabbit.j3.mc.Bundle
This is actually the way I's prefer to go. Define representations of commonly used entities (Value, Node, Property...) which can be easily used across the stack. If we'd carefully design these there would be no need to rewrap or repack at each level of the stack.
Michael
