# `PhoenixKitCatalogue.Schemas.ItemAttributeSet`
[🔗](https://github.com/BeamLabEU/phoenix_kit_catalogue/blob/v0.18.0/lib/phoenix_kit_catalogue/schemas/item_attribute_set.ex#L1)

Join row: an item's attachment of one attribute SET (a managed
entities blueprint — "Ikea colors"). Items attach any number of sets,
ordered by `position`.

`set_uuid` references `phoenix_kit_entities.uuid` with **no FK** — the
entities delete path consults the catalogue's registered delete guard
(`AttributeSets.deletion_guard/1`) and the catalogue cleans orphans off
entities PubSub events; see the V177 migration moduledoc for why a
hard cross-module FK is wrong here.

`data` is reserved per-attachment state (see the 2026-08-18 design
doc's Future directions): known future keys are
`"disabled_value_slugs"` and `"selected_value_slug"`. Readers must
tolerate unknown keys; this schema only round-trips the map.

# `t`

```elixir
@type t() :: %PhoenixKitCatalogue.Schemas.ItemAttributeSet{
  __meta__: term(),
  data: term(),
  inserted_at: term(),
  item_uuid: term(),
  position: term(),
  set_uuid: term(),
  updated_at: term()
}
```

---

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