Difference between ac:structured-macro and ac:macro

I am investigating storage format of different macros and found that sometimes dynamic content macros are stored without macro_id parameter as ‘ac:macro’. Does anyone know any details on it?

<ac:macro ...> is MacroDefinition.STORAGE_VERSION_1, <ac:structured-macro ...> is version 2.
See com.atlassian.confluence.content.render.xhtml.storage.macro.[MACRO_ELEMENT|MACRO_V2_ELEMENT] and the corresponding marsahllers: StorageMacroV1Marshaller, StorageMacroV2Marshaller.

In com.atlassian.confluence.content.render.xhtml.storage.macro.DelegatingStorageMacroMarshaller there is this comment:
// We can only use the V2 marshaller if we have macro metadata.

One should check if the macro/plugin is still available/active.