Current proxy-registry implementation
IProxyRegistry resolves to ProxyRegistry as a shared singleton service. It stores target/proxy pairs in memory.
register(target, proxy) adds or replaces a mapping. getProxy(target) returns the proxy for a target.
getProxyTarget(proxy) returns the original target for a proxy. isProxy(value) checks whether a value is currently registered as a proxy. unregister(target) removes a mapping.
This registry is memory-only (not persisted). Core services use it to move between wrapped and unwrapped references consistently (for example in deep-clone flows).