package sbt
@target(Scala)
@codecPackage("sbt.internal")

type Exec {
  commandLine: String!
  execId: String @since("0.0.1")
  source: sbt.CommandSource

  #xcompanion def newExecId: String = java.util.UUID.randomUUID.toString
}

type CommandSource {
  channelName: String!
}

enum ServerAuthentication {
  Token
}

enum ConnectionType {
  ## This uses Unix domain socket on POSIX, and named pipe on Windows.
  Local
  Tcp
  # Ssh
}
