Item/material/block identifiers are modeled as Keys instead of enums.
This avoids rewriting the SDK when the host's registry shape is known.