Problem
batch_execute appears to normalize JSON keys inside tool parameter values (not just parameter names). This causes keys like m_PersistentCalls to become mPersistentCalls, breaking any tool that receives structured nested data where key names matter.
Reproduction
Pass a manage_components set_property call through batch_execute with a UnityEvent value containing m_ prefixed keys. The value object arrives at the C# side with keys mPersistentCalls and mCalls (underscores stripped).
The same call made directly via manage_components (not through batch_execute) preserves keys correctly.
Impact
Any tool that receives nested JSON values through batch_execute where key names contain underscores will see them silently stripped. This affects:
Current workaround
ComponentOps.FindPropertyRelativeFuzzy does underscore-insensitive child property matching, but this only protects ComponentOps.
Expected behavior
batch_execute should pass tool parameter values through as-is without key normalization. Only top-level parameter names (like action, target, component_type) should be normalized if needed.
Problem
batch_execute appears to normalize JSON keys inside tool parameter values (not just parameter names). This causes keys like m_PersistentCalls to become mPersistentCalls, breaking any tool that receives structured nested data where key names matter.
Reproduction
Pass a manage_components set_property call through batch_execute with a UnityEvent value containing m_ prefixed keys. The value object arrives at the C# side with keys mPersistentCalls and mCalls (underscores stripped).
The same call made directly via manage_components (not through batch_execute) preserves keys correctly.
Impact
Any tool that receives nested JSON values through batch_execute where key names contain underscores will see them silently stripped. This affects:
Current workaround
ComponentOps.FindPropertyRelativeFuzzy does underscore-insensitive child property matching, but this only protects ComponentOps.
Expected behavior
batch_execute should pass tool parameter values through as-is without key normalization. Only top-level parameter names (like action, target, component_type) should be normalized if needed.