lib/vettore/vettore_embedding.ex

defmodule Vettore.Embedding do
  @moduledoc """
  Represents a single embedding entry for insertion into a collection.

  ## Fields

    * `:value` - A string or content identifier for this embedding can be Id, or Text (e.g. "this is text data").
    * `:vector` - A list of floating‑point numbers representing the embedding (e.g. `[1.0, 2.0, 3.0]`).
    * `:metadata` - (Optional) A map with any additional information you want to store
      (e.g. `%{"info" => "my note"}`).
  """
  defstruct [:value, :vector, :metadata]

  @type t :: %__MODULE__{
          value: String.t(),
          vector: [float()],
          metadata: map() | nil
        }
end