GlobalDBKeyMaterial
internal class GlobalDBKeyMaterial(val rawKey: <Error class: unknown class>, val legacyKey: ByteArray? = null)
The key the global database should end up on, plus the key it may still be encrypted with.
legacyKey is non-null only while the legacy alias is still stored, which is exactly the window in which a migration can be outstanding. Once it is cleared, rawKey is the whole story.
Not a data class on purpose: both fields are ByteArrays, so generated equals/hashCode would compare by identity and quietly lie about equality.