use std::sync::LazyLock;
use serde::{Deserialize, Serialize};
use serde_json::{Map as JsonMap, Value as JsonValue};
#[cfg(feature = "bindings")]
use specta::Type;
use super::classes::ClassExtension;
use super::types::common::FieldLanguageMap;
pub(crate) static EMPTY_FIELD_LANGUAGES: LazyLock<FieldLanguageMap> =
LazyLock::new(FieldLanguageMap::new);
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "bindings", derive(Type))]
pub struct InputReference {
pub(crate) extension: ClassExtension,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[cfg_attr(feature = "bindings", derive(Type))]
pub struct UnknownClassData {
pub class: String,
#[cfg_attr(feature = "bindings", specta(type = serde_json::Value))]
pub fields: JsonMap<String, JsonValue>,
}