RegistrySnapshot
Read-only copies of the Bukkit registries that content loading reads.
Content configs load on a MagmaCore worker thread, but CraftRegistry resolves entries lazily into a plain HashMap. A worker lookup that misses that cache writes to it while the server thread or another plugin may be writing too, which throws ConcurrentModificationException and drops the config file being parsed. On Paper 26.3 that silently emptied every barrel because treasure_barrel_food.yml failed to load.
capture runs on the server thread before the async phase. Workers then read these immutable maps instead of the registry. Iterating each registry also resolves every entry into CraftRegistry's cache, so lookups a worker still makes indirectly, such as ItemStack deserialization, find existing entries instead of inserting new ones.