$plan
$plan : \Drupal\strata\Branch\MergePlan
What a merge actually did, against what it planned to.
Separate from the plan for the reason a restore result is: the two disagree in exactly the cases worth reading. An object that planned as writable and then failed to save - a config schema constraint, a dependency that is no longer installed - is the interesting half, and folding it back into the plan would hide it.
Two commits are named. The snapshot is the state of the site before anything was written, which is what makes the merge undoable; the merge commit is the two-parent commit that puts the branch's history behind the target's, which is what stops a prune collecting it.
$plan : \Drupal\strata\Branch\MergePlan
__construct(\Drupal\strata\Branch\MergePlan $plan, bool $applied = false, string|null $snapshot = null, string|null $commit = null, list$written = [], array $failed = [], string|null $refused = null, float $seconds = 0.0) : mixed
Constructs a result.
| \Drupal\strata\Branch\MergePlan | $plan | The plan that was applied. |
| bool | $applied | FALSE for a dry run, which builds the plan and writes nothing. |
| string|null | $snapshot | Commit sealed before anything was written, so the merge can be undone. |
| string|null | $commit | The two-parent merge commit, or NULL when nothing was written. |
| list |
$written | Configuration object names saved back to the site. |
| array |
$failed | Object name keyed to why saving it did not work. |
| string|null | $refused | Why the merge did not start, or NULL when it ran. |
| float | $seconds | How long it took. |
fromRestore(\Drupal\strata\Branch\MergePlan $plan, \Drupal\strata\Restore\RestoreResult $restore, string|null $commit, float $seconds) : self
A result built from what a logical restore reported.
| \Drupal\strata\Branch\MergePlan | $plan | The plan that was applied. |
| \Drupal\strata\Restore\RestoreResult | $restore | What the restore wrote. |
| string|null | $commit | The merge commit, or NULL when none was written. |
| float | $seconds | How long the whole merge took. |
The result, with each subject path shortened back to the configuration object name.