# Native property-table editing `nanobrush_document::remap` takes explicit old-index lists for the new string and UV tables. Reordering updates every retained sparse slot; omission removes a name and all its values, with separate dropped-name/value counts. Empty values remain present. Geometry, computed arrays, anchors and the computed flag are unchanged. Names may be Unicode or index-distinct duplicates, as in DAT; the target codec remains responsible for ASCII/TXT-name compatibility. Orders must contain unique in-range indices; old slots must be unique, sorted and in range. The entire new name/slot plan is validated and fallibly allocated before any mutation. Errors leave the world unchanged, including late slot errors. Aggregate planning item/byte and string limits use `mb3_dat::Limits`, conservatively counting old maps and new names as well as visited records/slots. No implicit usage sorting, unused-name pruning or UV transform occurs. Renderer/document revision invalidation belongs to a future command layer. Tests cover permutation/inverse identity, explicit removal counts, UV reindex/removal, empty values, unchanged coordinates, DAT round trip, duplicate/out-of-range orders, late invalid slots and resource-failure rollback. This is a native editing API, not a measured replacement for the host's property interrupt behavior.