Look up metadata for a hook name. Returns
HookMetadata::unknown for names not in the registry —
equivalent to “no phase, no entity_type filter,” which lets
unregistered hooks still dispatch via the conservative wildcard
in HookMetadata::matches.
Register or override metadata for a hook name. Idempotent — a
host re-registering the same hook with the same metadata is fine.
Re-registering with different metadata overwrites the previous
entry; intentional for hosts that need to customize defaults.