Persistent producer-owned allocator for the 28-bit row slot field.
Slots are monotonic within {content_epoch, source_id, identity_kind} and a
key keeps its slot for the epoch. Allocation never reuses removed keys.
Summary
Types
@type key() :: term()
@type scope() :: {non_neg_integer(), non_neg_integer(), atom()}
@type slot() :: 0..268_435_455
@type t() :: %Minga.RenderModel.Window.RowSlotAllocator{ next: %{optional(scope()) => non_neg_integer()}, slots: %{optional({scope(), key()}) => slot()} }