# `MishkaCmsMigration.Targets.Helpers.ContentChecks`
[🔗](https://github.com/mishka-group/mishka_cms_migration/blob/v0.0.1/lib/mishka_cms_migration/targets/__helpers/content_checks.ex#L5)

What a post or a page may wait on before it is written, for the targets that write it
(`MishkaCmsMigration.Targets.CmsPage`, `MishkaCmsMigration.Targets.BlogPost`), asked in this
order, the first that waits answering: its language, which the site may not publish in or the
source may not say (`MishkaCmsMigration.Targets.Helpers.Editions`), the widgets of a page builder
the CMS has no equivalent for (`MishkaCmsMigration.Targets.Helpers.Widgets`), its scripts and
inline event handlers
(`MishkaCmsMigration.Targets.Helpers.Scripts`), and the video players the site does not allow
yet (`MishkaCmsMigration.Targets.Helpers.Frames`). An admin decides each in turn.

# `call`

```elixir
@spec call(MishkaCmsMigration.Source.Item.t(), MishkaCmsMigration.Target.context()) ::
  :ok | {:error, term()} | {:skipped, String.t()} | {:undecided, String.t()}
```

What a target's `prepare/3` asks before the write: `:ok`, or what the first check that waits
answers.

# `waiting`

```elixir
@spec waiting(MishkaCmsMigration.Source.Item.t(), MishkaCmsMigration.Target.context()) ::
  MishkaCmsMigration.Target.found() | nil
```

What a target's `waiting/2` answers in a dry run: the first check that waits, or `nil`.

---

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