load(agent :: module(), id :: term()) :: map() | nil
save(agent :: module(), id :: term(), data :: map()) :: :ok | {:error, atom()}