///|
pub extend NodeLifecycle with ToJson::{to_json}

///|
pub extend NodeLifecycle with @json.FromJson::{from_json}

///|
pub extend NodeHealth with ToJson::{to_json}

///|
pub extend NodeHealth with @json.FromJson::{from_json}

///|
pub extend NodeCapability with ToJson::{to_json}

///|
pub extend NodeCapability with @json.FromJson::{from_json}

///|
pub extend NodeId with ToJson::{to_json}

///|
pub extend NodeId with @json.FromJson::{from_json}

///|
pub extend Timestamp with ToJson::{to_json}

///|
pub extend Timestamp with @json.FromJson::{from_json}

///|
pub extend Node with ToJson::{to_json}

///|
pub extend Node with @json.FromJson::{from_json}

///|
pub extend ProtocolVersion with ToJson::{to_json}

///|
pub extend ProtocolVersion with @json.FromJson::{from_json}

///|
pub extend MessagePayload with ToJson::{to_json}

///|
pub extend MessagePayload with @json.FromJson::{from_json}

///|
pub extend MessageEnvelope with ToJson::{to_json}

///|
pub extend MessageEnvelope with @json.FromJson::{from_json}

///|
pub extend ConfigVersion with ToJson::{to_json}

///|
pub extend ConfigVersion with @json.FromJson::{from_json}

///|
pub extend ConfigSnapshot with ToJson::{to_json}

///|
pub extend ConfigSnapshot with @json.FromJson::{from_json}

///|
pub extend QueueFullPolicy with ToJson::{to_json}

///|
pub extend QueueFullPolicy with @json.FromJson::{from_json}

///|
pub extend JournalConfig with ToJson::{to_json}

///|
pub extend JournalConfig with @json.FromJson::{from_json}

///|
pub extend JournalStatus with ToJson::{to_json}

///|
pub extend JournalStatus with @json.FromJson::{from_json}

///|
pub extend JournalEntry with ToJson::{to_json}

///|
pub extend JournalEntry with @json.FromJson::{from_json}

///|
pub extend LocalStateSnapshot with ToJson::{to_json}

///|
pub extend LocalStateSnapshot with @json.FromJson::{from_json}

///|
pub extend StoreCheckpoint with ToJson::{to_json}

///|
pub extend StoreCheckpoint with @json.FromJson::{from_json}