api rework, no allocations, no special case logic for flat arrays

Also:  no `git add .`!