lib/hangman.ex

defmodule Hangman do
  alias Hangman.Runtime.Server
  alias Hangman.Type

  @opaque game :: Server.t()
  @type tally :: Type.tally()

  @spec new_game() :: game
  def new_game do
    {:ok, pid} = Hangman.Runtime.Application.start_game()
    pid
  end

  @doc ~S"""
  Make a hangmn move

  """
  @spec make_move(game, String.t()) :: tally()
  def make_move(game, guess) do
    GenServer.call(game, {:make_move, guess})
  end

  @doc ~S"""
    get back the game status

  """

  @spec tally(game) :: tally()
  def tally(game) do
    GenServer.call(game, {:tally})
  end
end