When I originally added AutoStruct to AutoIndex, it was nearly identical feature-wise to AIDS. However, it wasn't really well received in the WC3C community. People liked automatic destruction, but automatic creation was not always wanted. There was also the issue that only one struct of a given type could be owned by a unit. So I split the functionality of AutoStruct into 3 distinct modules.
AutoData handles unit "ownership" of struct instances, and even allows you to use 2D syntax when multiple instances are associated with 1 unit (example: StructName[unit][index]). AutoCreate handles automatic creation for units passing the filter, and AutoDestroy handles automatic destruction. Also, it's possible to manually create and destroy instances. This allows the versatility people wanted, but you can recreate AutoStruct functionality by implementing both AutoCreate and AutoDestroy.
AutoData handles unit "ownership" of struct instances, and even allows you to use 2D syntax when multiple instances are associated with 1 unit (example: StructName[unit][index]). AutoCreate handles automatic creation for units passing the filter, and AutoDestroy handles automatic destruction. Also, it's possible to manually create and destroy instances. This allows the versatility people wanted, but you can recreate AutoStruct functionality by implementing both AutoCreate and AutoDestroy.