The runmodes bundle attribute needs to be written out as 'run-modes'
Tests for this are present in the modelconverter project.
diff --git a/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java b/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
index 9c77301..10c5e3d 100644
--- a/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
+++ b/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
@@ -63,6 +63,12 @@
JsonObjectBuilder bundleObj = Json.createObjectBuilder();
bundleObj.add(JSONConstants.ARTIFACT_ID, artifact.getId().toMvnId());
+
+ Object runmodes = md.remove("runmodes");
+ if (runmodes instanceof String) {
+ md.put("run-modes", (String) runmodes);
+ }
+
for(final Map.Entry<String, String> me : md) {
bundleObj.add(me.getKey(), me.getValue());
}