Why is context a `void*` instead of a `PmtMetadata*`?