Struct representing a unit.
@type t() :: %Runbox.Runtime.Stage.Unit{attributes: map(), id: binary(), state: any()}
@spec attributes(t()) :: map()
@spec id(t()) :: binary()
@spec new(id :: binary(), state :: any(), attributes :: map()) :: t()
@spec set_state(t(), state :: any()) :: t()
@spec state(t()) :: any()