def to_dict(self):
        """Returns a JSON dict representation of the plugin metadata.

        Returns:
            a JSON dict
        """
        return {
            "name": self.name,
            "builtin": self.builtin,
            "author": self.author,
            "version": self.version,
            "url": self.url,
            "license": self.license,
            "description": self.description,
            "fiftyone_compatibility": self.fiftyone_compatibility,
            "operators": self._metadata.get("operators", []),
            "panels": self._metadata.get("panels", []),
            "js_bundle": self.js_bundle,
            "py_entry": self.py_entry,
            "js_bundle_exists": self.has_js,
            "js_bundle_server_path": self.js_bundle_server_path,
            "js_bundle_hash": self.js_bundle_hash,
            "has_py": self.has_py,
            "has_js": self.has_js,
            "server_path": self.server_path,
            "secrets": self.secrets,
            "shadow_paths": self.shadow_paths,
        }
Returns a JSON dict representation of the plugin metadata.

        Returns:
            a JSON dict
        
fiftyone/plugins/definitions.py