for the C implementation, do you need this hash of protected elements or could yhou use the ``type`` property of the struct to handle it ?