Package plan turns a pile of discovered resources into an ordered, reversible
sequence of changes — and, just as importantly, a list of everything it will
not touch and why.
Pure: no AWS, no clock beyond what is passed in, no filesystem. That is what
makes the safety rules testable, and these are rules nobody wants to discover
are wrong by firing them.
Build applies the policy to the inventory. It never returns an error: an
inventory that yields no actions is a valid, empty plan, and the refusals
explain it.
RestoreOrder reverses the plan: bring back what serves traffic before letting
traffic in, or the first request arrives at nothing and the restore looks
like a failure.