public PropertyWrapper(T value)
        {
            if (!PropertyBagStore.Exists <PropertyWrapper <T> >())
            {
                PropertyBagStore.AddPropertyBag(new PropertyBag());
            }

            Value = value;
        }
        static void ProcessRequestQueue()
        {
            // Wait until a provider is registered.
            if (!PropertyBagStore.HasProvider)
            {
                return;
            }

            while (s_RequestQueue.TryDequeue(out var info))
            {
                if (PropertyBagStore.Exists(info.Type))
                {
                    continue;
                }

                ProcessRequest(info.Type, info.Options);
                break;
            }

            if (s_RequestQueue.IsEmpty)
            {
                EditorApplication.update -= s_ProcessQueueFunction;
            }
        }