The attachable implementation uses String as key type. If someone selects the same string in the top layer, the value will be shaded in the lower layer. I don't think this is the proper way. Perhaps we ought to consider the solution in the context of golang. Everyone uses their own primary type as key type and will never conflict with anyone else.