State snapshot persistence for HostKit plans and agent status.
@spec read(Path.t()) :: {:ok, map()} | {:error, term()}
@spec snapshot( HostKit.Plan.t() | map(), keyword() ) :: map()
@spec write(HostKit.Plan.t() | map(), Path.t(), keyword()) :: :ok | {:error, term()}