lib/parser/parser_behaviour.ex
defmodule JsonSchema.Parser.ParserBehaviour do
  @moduledoc """
  Describes the functions needed to implement a parser for a JSON schema node.
  """
  alias JsonSchema.{Parser, Types}
  alias Parser.ParserResult
  @callback type?(Types.schemaNode()) :: boolean
  @callback parse(
              Types.schemaNode(),
              URI.t(),
              URI.t() | nil,
              URI.t(),
              String.t()
            ) :: ParserResult.t()
end