client: complete refactor of LayerSpec to address __isset not being filled properly