# `SmolBox.Machine`
[🔗](https://github.com/hfiguera/smolbox/blob/v0.1.2/lib/smolbox/machine.ex#L1)

Validated observation of an offline disposable machine.

Additive response fields are ignored. Safety-relevant fields must be present;
enabled networking, mounts, ports, GPU or CUDA fail decoding and cannot be
treated as an owned machine observation. `created_at` has only second precision upstream and
is not a cryptographic or immutable ownership token.

# `t`

```elixir
@type t() :: %SmolBox.Machine{
  cpus: pos_integer(),
  created_at: non_neg_integer(),
  memory_mb: pos_integer(),
  name: String.t(),
  overlay_gb: pos_integer(),
  state: :created | :running | :stopped,
  storage_gb: pos_integer()
}
```

# `from_wire`

```elixir
@spec from_wire(term()) :: {:ok, t()} | {:error, SmolBox.Error.t()}
```

# `same_incarnation?`

```elixir
@spec same_incarnation?(t(), t()) :: boolean()
```

Compare creation evidence and allocations; requires exclusive namespace control.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
