Service schema that outlines namespaces and versions
@type t() :: %ExOnvif.Devices.Service{ namespace: term(), version: term(), xaddr: term() }
@spec to_json(t()) :: {:error, %{ :__exception__ => any(), :__struct__ => Jason.EncodeError | Protocol.UndefinedError, optional(atom()) => any() }} | {:ok, binary()}