ECH009010 schema
model() :: term()
read(content :: String.t()) :: {:ok, structure :: term(), trailing_characters :: binary()} | {:error, term()}
write(data :: term()) :: {:ok, content :: binary()} | {:error, term()}