Add some documentation to the sample feature model file.

Additionally validate the file against the schema during build.
diff --git a/design/feature-model.json b/design/feature-model.json
index 08152e2..a8db57e 100644
--- a/design/feature-model.json
+++ b/design/feature-model.json
@@ -1,26 +1,32 @@
 {
     "#": "A key that starts with a hash is a comment",
+    "id": "org.apache.sling:my.app:slingosgifeature:my-classifier:1.0",
 
-    "id": "org.apache.sling:my.app:feature:optional:1.0",
-
-    "# variables": "used in configuration and framework properties are substitityped at launch time.",
+    "# variables": "used in configuration and framework properties are substituted at launch time.",
     "variables": {
         "cfgvar": "somedefault",
-        "xyz-ver": "1.2.3",
+        "org.abc.xyz": "1.2.3",
 
         "#": "When converting to provisioning model, if you need a special name",
         "provisioning.model.name": ":boot"
     },
 
+    "# A prototype is another feature that is used as a prototype for this one ":
+    "# Bundles, configurations and framework properties can be removed from the ",
+    "# prototype. Bundles with the same artifact ID defined in the feature override ":
+    "# bundles with this artifact ID in the Prototype",
     "prototype": 
         {
-            "id": "org.apache.sling:sling:9",
+            "id": "org.apache.sling:some-other-feature:1.2.3",
             "removals": {
                 "configurations": [],
                 "bundles": [],
                 "framework-properties": []
             }
         },
+
+    "# Requirements over and above the requirements in the bundles referenced by ":
+    "# feature.",
     "requirements": [
         {
             "namespace": "osgi.contract",
@@ -29,6 +35,9 @@
             }
         }
     ],
+
+    "# Capabilities over and above the capabilities provided by the bundles referenced ":
+    "# by the feature.",
     "capabilities": [
         {
             "namespace": "osgi.implementation",
@@ -51,12 +60,17 @@
         }
     ],
 
+    "# Framework properties to be provided to the running OSGi Framework":"",
     "framework-properties": {
         "foo": 1,
         "org.osgi.framework.storage": "${tempdir}",
         "org.apache.felix.scr.directory": "launchpad/scr"
     },
 
+    "# The bundles that are part of the feature. Bundles are referenced using Maven ":
+    "# coordinates and can have additional metadata associated with them. Bundles can ",
+    "# specified as either a simple string (the Maven coordinates of the bundle) or ":
+    "# as an object with 'id' and additional metadata.",
     "bundles": [
         {
             "id": "org.apache.sling:security-server:2.2.0",
@@ -74,28 +88,28 @@
 
             "#": "OSGi start level is also supported",
             "start-level": 20,
-            "run-modes": ["oak-tar"],
-
-            "configurations": {
-                "#": "This configuration only gets applied when this bundle is resolved",
-                "org.apache.sling.somepid": {
-                    "dbuser": "${dbuser}",
-                    "dbpass": "${dbpass}"
-                }
-            }
+            "run-modes": ["oak-tar"]
         },
-        "org.apache.sling:foo-xyz:${xyz-ver}"
+        "org.apache.sling:foo-xyz:1.2.3"
     ],
 
+    "# The configurations are specified following the format defined by the OSGi Configurator ":
+    "# specification: https://osgi.org/specification/osgi.cmpn/7.0.0/service.configurator.html ",
+    "# Variables declared in the variables section can be used for late binding of variables, ":
+    "# they can be specified with the Launcher, or the default from the variables section is used.",
+    "# Factory configurations can be specified using the named factory syntax, which separates ":
+    "# The factory PID and the name with a tilde '~'",
     "configurations": {
         "my.pid": {
             "foo": 5,
+            "something-enabled": false,
             "bar": "${cfgvar}",
 
             "# The tempdir variable is not specified at the variables section.":
             "# It needs to be provided at launch, otherwise the launch will stop.",
             "tempdir": "${tempdir}",
 
+
             "number:Integer": 7
         },
         "my.factory.pid~name": {
diff --git a/pom.xml b/pom.xml
index 5722885..0161651 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,6 +69,31 @@
                     </excludes>
                 </configuration>
             </plugin>
+            <plugin>
+                <!-- Validate the example feature file against the schema -->
+                <artifactId>json-schema-validator</artifactId>
+                <groupId>com.groupon.maven.plugin.json</groupId>
+                <version>1.2.0</version>
+                <executions>
+                    <execution>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>validate</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <validations>
+                        <validation>
+                            <directory>${basedir}/design</directory>
+                            <jsonSchema>${basedir}/src/main/resources/META-INF/feature/Feature-1.0.0.schema.json</jsonSchema>
+                            <includes>
+                                <include>**/*.json</include>
+                            </includes>
+                        </validation>
+                    </validations>
+                </configuration>
+            </plugin>
         </plugins>
     </build>