OpenCode server process management.
Mirrors the JS SDK's createOpencodeServer() behavior.
createOpencodeServer()
@type t() :: %OpenCode.Server{port: port() | nil, url: String.t() | nil}
@spec close(t()) :: :ok
@spec create(keyword()) :: {:ok, t()} | {:error, term()}