Two-pass approach: first counts total roles across all entities
to pre-allocate vectors, then fills by index. Avoids per-row
list construction and the O(n^2) cost of incremental
bind_rows() on thousands of small tibbles.
Arguments
- entities
List of entity objects from
read_roles_json().
Value
A tibble matching flatten_roles() output schema.