# `NativeArtifact.Plan`
[🔗](https://github.com/gsmlg-dev/native_artifact/blob/main/lib/native_artifact/plan.ex#L1)

Inspectable future actions for explicit precompiled or source consumption.

Planning is pure: it does not obtain files, invoke recipes or install anything.
`new/2` accepts `:evidence`, optional `:artifact_id` and `:manifest_limits`.
`:mode` defaults to `:precompiled`; `:source` additionally requires an artifact
ID and declarative `:build` recipe. There is no automatic source fallback.

# `t`

```elixir
@type t() :: %NativeArtifact.Plan{
  actions: term(),
  archive: term(),
  artifact: term(),
  artifact_id: term(),
  binding: term(),
  build: term(),
  evidence: term(),
  execution: term(),
  manifest: term(),
  manifest_limits: term(),
  mode: term(),
  rejections: term(),
  selector: term(),
  source_identity: term(),
  sources: term(),
  target: term()
}
```

# `new`

```elixir
@spec new(term(), keyword()) :: {:ok, t()} | {:error, NativeArtifact.Error.t()}
```

---

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