use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use std::sync::Arc; #[derive(Clone, Serialize, Deserialize, Debug, PartialEq)] pub struct ExtensionApiManifest { pub name: String, pub version: Arc, pub description: Option, pub authors: Vec, pub repository: String, pub schema_version: Option, pub wasm_api_version: Option, } #[derive(Clone, Serialize, Deserialize, Debug, PartialEq)] pub struct ExtensionMetadata { pub id: Arc, #[serde(flatten)] pub manifest: ExtensionApiManifest, pub published_at: DateTime, pub download_count: u64, } #[derive(Serialize, Deserialize)] pub struct GetExtensionsResponse { pub data: Vec, }