Guard DNA field accesses with has_field() checks for fields renamed or
removed across Blender versions (proxy, dup_group, texcomesh, nodetree,
etc.), fix mesh block pointer mismatch in path rewriting, fix mkrelative
IndexError when asset path is shorter than blend file path, and add
[BAT] console prints for tracing progress.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move operators and preferences out of __init__.py into dedicated modules.
Fix cyclic import by using proper AddonPreferences pattern. Replace
implicit .zip extension detection in CLI with explicit -z/--zip flag.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>