lib/bumblebee/configurable.ex
defmodule Bumblebee.Configurable do
@moduledoc """
An interface for configurable entities.
A module implementing this behaviour is expected to define a struct
with configuration.
"""
@type t :: struct()
@doc """
Configures the struct.
"""
@callback config(t(), keyword()) :: t()
end