diff --git a/modules/OpenSimConcurrentFlotsamAssetCache/addon-modules/OpenSimConcurrentFlotsamAssetCache/Modules/ConcurrentFlotsamAssetCache.cs b/modules/OpenSimConcurrentFlotsamAssetCache/addon-modules/OpenSimConcurrentFlotsamAssetCache/Modules/AssetCache/ConcurrentFlotsamAssetCache.cs
similarity index 100%
rename from modules/OpenSimConcurrentFlotsamAssetCache/addon-modules/OpenSimConcurrentFlotsamAssetCache/Modules/ConcurrentFlotsamAssetCache.cs
rename to modules/OpenSimConcurrentFlotsamAssetCache/addon-modules/OpenSimConcurrentFlotsamAssetCache/Modules/AssetCache/ConcurrentFlotsamAssetCache.cs
diff --git a/modules/OpenSimConcurrentFlotsamAssetCache/addon-modules/OpenSimConcurrentFlotsamAssetCache/prebuild.xml b/modules/OpenSimConcurrentFlotsamAssetCache/addon-modules/OpenSimConcurrentFlotsamAssetCache/prebuild.xml
index 9778655..a0c92f8 100644
--- a/modules/OpenSimConcurrentFlotsamAssetCache/addon-modules/OpenSimConcurrentFlotsamAssetCache/prebuild.xml
+++ b/modules/OpenSimConcurrentFlotsamAssetCache/addon-modules/OpenSimConcurrentFlotsamAssetCache/prebuild.xml
@@ -17,8 +17,6 @@
-
-
diff --git a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/AssemblyInfo.cs b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/AssemblyInfo.cs
new file mode 100644
index 0000000..97c8f45
--- /dev/null
+++ b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/AssemblyInfo.cs
@@ -0,0 +1,6 @@
+using Mono.Addins;
+
+[assembly: Addin("OpenSimRegionWarmupHealthGuard", "1.0.0")]
+[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)]
+[assembly: AddinDescription("Warmup/Health guard modules bundle.")]
+[assembly: AddinAuthor("Christopher Händler")]
\ No newline at end of file
diff --git a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionAutoHeal.cs b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionAutoHeal/RegionAutoHeal.cs
similarity index 97%
rename from modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionAutoHeal.cs
rename to modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionAutoHeal/RegionAutoHeal.cs
index 49add17..69870b3 100644
--- a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionAutoHeal.cs
+++ b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionAutoHeal/RegionAutoHeal.cs
@@ -11,11 +11,6 @@ using OpenSim.Framework.Console;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-[assembly: Addin("RegionAutoHeal", "1.0.0")]
-[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)]
-[assembly: AddinDescription("Auto-heal (dry-run by default): targeted script reset and best-effort throttling of heavy updaters.")]
-[assembly: AddinAuthor("Christopher Händler")]
-
namespace OpenSimRegionWarmupHealthGuard.Modules
{
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RegionAutoHeal")]
diff --git a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionHealthMonitor.cs b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionHealthMonitor/RegionHealthMonitor.cs
similarity index 97%
rename from modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionHealthMonitor.cs
rename to modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionHealthMonitor/RegionHealthMonitor.cs
index 6551de1..c4ba2f5 100644
--- a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionHealthMonitor.cs
+++ b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionHealthMonitor/RegionHealthMonitor.cs
@@ -11,11 +11,6 @@ using OpenSim.Framework.Console;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-[assembly: Addin("RegionHealthMonitor", "1.0.0")]
-[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)]
-[assembly: AddinDescription("Region health polling + threshold warnings + CSV export + health event bus.")]
-[assembly: AddinAuthor("Christopher Händler")]
-
namespace OpenSimRegionWarmupHealthGuard.Modules
{
// Simple health sample DTO
diff --git a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionMetricsExporter.cs b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionMetricsExporter/RegionMetricsExporter.cs
similarity index 97%
rename from modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionMetricsExporter.cs
rename to modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionMetricsExporter/RegionMetricsExporter.cs
index 7e6541d..fc54d44 100644
--- a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionMetricsExporter.cs
+++ b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionMetricsExporter/RegionMetricsExporter.cs
@@ -12,11 +12,6 @@ using OpenSim.Framework.Console;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-[assembly: Addin("RegionMetricsExporter", "1.0.0")]
-[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)]
-[assembly: AddinDescription("Prometheus (HTTP pull) metrics exporter for RegionHealthMonitor.")]
-[assembly: AddinAuthor("Christopher Händler")]
-
namespace OpenSimRegionWarmupHealthGuard.Modules
{
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RegionMetricsExporter")]
diff --git a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionPolicyEngine.cs b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionPolicyEngine/RegionPolicyEngine.cs
similarity index 97%
rename from modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionPolicyEngine.cs
rename to modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionPolicyEngine/RegionPolicyEngine.cs
index fab13a0..53835b5 100644
--- a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionPolicyEngine.cs
+++ b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionPolicyEngine/RegionPolicyEngine.cs
@@ -11,11 +11,6 @@ using OpenSim.Framework.Console;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-[assembly: Addin("RegionPolicyEngine", "1.0.0")]
-[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)]
-[assembly: AddinDescription("Applies time-based/profile overlays to other modules' configs (cooperative).")]
-[assembly: AddinAuthor("Christopher Händler")]
-
namespace OpenSimRegionWarmupHealthGuard.Modules
{
public interface IPolicyOverlayConsumer
diff --git a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWarmup.cs b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWarmup/RegionWarmup.cs
similarity index 96%
rename from modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWarmup.cs
rename to modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWarmup/RegionWarmup.cs
index b60076d..0685615 100644
--- a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWarmup.cs
+++ b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWarmup/RegionWarmup.cs
@@ -11,11 +11,6 @@ using OpenSim.Framework.Console;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-[assembly: Addin("RegionWarmup", "1.0.0")]
-[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)]
-[assembly: AddinDescription("Region warmup: terrain touch, limited asset pre-touch, prime script VM, optional deep warmup tick.")]
-[assembly: AddinAuthor("Christopher Händler")]
-
namespace OpenSimRegionWarmupHealthGuard.Modules
{
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RegionWarmup")]
diff --git a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWebhookAlerts.cs b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWebhookAlerts/RegionWebhookAlerts.cs
similarity index 98%
rename from modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWebhookAlerts.cs
rename to modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWebhookAlerts/RegionWebhookAlerts.cs
index 09c0ff8..0bc9edf 100644
--- a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWebhookAlerts.cs
+++ b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/Modules/RegionWebhookAlerts/RegionWebhookAlerts.cs
@@ -13,11 +13,6 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using System.IO;
-[assembly: Addin("RegionWebhookAlerts", "1.0.0")]
-[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)]
-[assembly: AddinDescription("Generic JSON webhook alerts (batching + rate-limit) for RegionHealthMonitor.")]
-[assembly: AddinAuthor("Christopher Händler")]
-
namespace OpenSimRegionWarmupHealthGuard.Modules
{
public enum AlertSeverity { Trace = 0, Info = 1, Warn = 2, Error = 3 }
diff --git a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/prebuild.xml b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/prebuild.xml
index 3a6df8e..acf47a9 100644
--- a/modules/OpenSimRegionWarmupHealthGuard/addon-modules/prebuild.xml
+++ b/modules/OpenSimRegionWarmupHealthGuard/addon-modules/prebuild.xml
@@ -33,16 +33,11 @@
../../../bin/
-
-
-
-
-
+
-
@@ -52,6 +47,7 @@
+
diff --git a/modules/OpenSimSceneSnapshot/addon-modules/OpenSimSceneSnapshot/Modules/SceneSnapshotModule.cs b/modules/OpenSimSceneSnapshot/addon-modules/OpenSimSceneSnapshot/Modules/SceneSnapshot/SceneSnapshot.cs
similarity index 100%
rename from modules/OpenSimSceneSnapshot/addon-modules/OpenSimSceneSnapshot/Modules/SceneSnapshotModule.cs
rename to modules/OpenSimSceneSnapshot/addon-modules/OpenSimSceneSnapshot/Modules/SceneSnapshot/SceneSnapshot.cs
diff --git a/modules/OpenSimSceneSnapshot/addon-modules/OpenSimSceneSnapshot/prebuild.xml b/modules/OpenSimSceneSnapshot/addon-modules/OpenSimSceneSnapshot/prebuild.xml
index 9cf85a8..3a4eb9f 100644
--- a/modules/OpenSimSceneSnapshot/addon-modules/OpenSimSceneSnapshot/prebuild.xml
+++ b/modules/OpenSimSceneSnapshot/addon-modules/OpenSimSceneSnapshot/prebuild.xml
@@ -16,8 +16,6 @@
-
-