//! JSON value aliases shared by the whole specification.
//!
//! Ferrin uses `serde_json` types directly instead of defining its own JSON
//! model. The aliases exist so that the specification reads uniformly and so
//! that a future change of representation touches one place.
/// A JSON value.
pub type JsonValue = Value;
/// A JSON object (string keys, insertion order preserved).
pub type JsonObject = Map;
/// Returns `true` when an optional JSON object is `None` or empty.
///
/// Used with `#[serde(skip_serializing_if = "...")]` so that empty option
/// maps do not appear in serialized output.