Handle to a provisioned, reusable environment image. new/1 absorbs the Store.File JSON (string-key) round-trip.
@type t() :: %ReqManagedAgents.Provisioner.Environment.Handle{ bootstrap: %{script: String.t(), instructions: String.t()} | nil, digest: String.t(), environment_id: String.t(), name: String.t() }
@spec new(t() | map()) :: t()