schema: add documentation

Begin the process of documenting the EM configuration schema, starting
with the top level elements.

Change-Id: Ie026c6cf51f980fb0ca65342ee75e8854de74395
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/schemas/global.json b/schemas/global.json
index 64736e4..911c692 100644
--- a/schemas/global.json
+++ b/schemas/global.json
@@ -2,6 +2,14 @@
     "$schema": "http://json-schema.org/draft-07/schema#",
     "definitions": {
         "EMConfig": {
+            "title": "Entity Manager Configuration",
+            "description": [
+                "The schema for an entity manager configuration.  An entity ",
+                "manager configuration describes an association between a ",
+                "match condition, also known as a probe, and an array of ",
+                "heterogeneous configuration data.  When a probe match ",
+                "occurs, the configuration data is exported to DBus."
+            ],
             "additionalProperties": false,
             "type": "object",
             "properties": {
@@ -9,6 +17,13 @@
                     "type": "string"
                 },
                 "Exposes": {
+                    "description": [
+                        "The schema for the exposes property.  The exposes ",
+                        "property must be an array where elements are of ",
+                        "type EMExposesElement.  The exposes property is the ",
+                        "heterogeneous configuration data exported to DBus ",
+                        "upon a probe match."
+                    ],
                     "type": "array",
                     "items": {
                         "$ref": "legacy.json#/definitions/Aggregate"
@@ -20,9 +35,23 @@
                     ]
                 },
                 "Name": {
+                    "description": [
+                        "The schema for the name property.  The name property ",
+                        "identifies the configuration.  When exported, the ",
+                        "configuration will be instantiated at: ",
+                        "/xyz/openbmc_project/configuration/<Type>/<Name>"
+                    ],
                     "type": "string"
                 },
                 "Probe": {
+                    "description": [
+                        "The schema for an entity manager probe statement. ",
+                        "Probes can be a single string or an array.  Probes ",
+                        "describe a match condition, for example when a DBus ",
+                        "property has a specific value.  When the match condition",
+                        " occurs, the information described by the Exposes ",
+                        "property is exported onto the DBus."
+                    ],
                     "anyOf": [
                         {
                             "type": "string"
@@ -36,6 +65,13 @@
                     ]
                 },
                 "Type": {
+                    "title": "Configuration Type",
+                    "description": [
+                        "The schema for the type property.  The type property",
+                        "identifies the type of the configuration.  When exported,",
+                        "configurations will be instantiated as children of: ",
+                        "/xyz/openbmc_project/configuration/<Type>"
+                    ],
                     "enum": [
                         "Board",
                         "Chassis",
@@ -73,6 +109,12 @@
             ]
         }
     },
+    "title": "Entity Manager Configuration File",
+    "description": [
+        "The schema for an entity manager configuration file.  An entity ",
+        "mananger configuration file can consist of a single object, or an ",
+        "array of objects.  Objects must be of type EMConfig."
+    ],
     "anyOf": [
         {
             "type": "array",