# `MingaEditor.RenderPipeline.Intent`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/render_pipeline/intent.ex#L1)

Cache-free Editor-to-Renderer frame intent.

Pipeline and workspace fields use explicit allowlisted boundary structs;
windows use `WindowIntent`. No `Input`, editor `Window`, renderer cache,
resident store, font registry, or acknowledgement state crosses the boundary.

# `t`

```elixir
@type t() :: %MingaEditor.RenderPipeline.Intent{
  buffer_versions: %{optional(pid()) =&gt; non_neg_integer()},
  frame: MingaEditor.RenderPipeline.FrameIntent.t(),
  revision: non_neg_integer(),
  window_layout: %{tree: term(), active: pos_integer(), next_id: pos_integer()},
  windows: %{
    optional(MingaEditor.Window.id()) =&gt;
      MingaEditor.RenderPipeline.WindowIntent.t()
  },
  workspace: MingaEditor.RenderPipeline.WorkspaceIntent.t()
}
```

# `force_keyframe`

```elixir
@spec force_keyframe(t()) :: t()
```

Marks semantic frame state for a recovery keyframe without adding cache state.

# `from_editor_state`

```elixir
@spec from_editor_state(MingaEditor.State.t(), non_neg_integer()) :: t()
```

# `from_input`

```elixir
@spec from_input(MingaEditor.RenderPipeline.Input.t(), non_neg_integer()) :: t()
```

---

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