# `A2UICore.Message.Operation.CreateSurface`
[🔗](https://github.com/a2ui-elixir/a2ui/blob/v0.1.1/umbrella/apps/a2ui_core/lib/a2ui_core/message/operation.ex#L1)

A `createSurface` message: a new surface, the catalog it uses
(`catalog_id`) and whether the renderer sends its data model back
(`send_data_model`). `theme` is kept for v0.9 messages only. A v1.0
message may carry the surface's first `components` and `data_model`.

# `t`
*since 0.1.0* 

```elixir
@type t() :: %A2UICore.Message.Operation.CreateSurface{
  catalog_id: String.t() | nil,
  components: [map()] | nil,
  data_model: term() | nil,
  root: String.t() | nil,
  send_data_model: boolean(),
  surface_id: String.t(),
  theme: term() | nil,
  version: String.t() | nil
}
```

---

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