Fix schemas and add $id properties for oneof[] fields

oneof[] properties are an array of referenced json schemas. In cases
where we need to look through generated logs based on these schemas, it
is much easier to use a hook based on the $id property that uniquely
identifies a nested child property. The $id property allows us to
uniquely identify each data type based on the cper specification.

Fix schemas: Sections and ErrorInformation need a "properties" field
under each oneOf[]. Also add a "type" for cacheError and tlbError to
conform with json schema.

Tested with libcper json validator.

Change-Id: I2b242e93e1667a7d7b7a3a77eba1d37347920d1a
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>
diff --git a/specification/json/cper-json-full-log.json b/specification/json/cper-json-full-log.json
index 2b5931a..071f5b1 100644
--- a/specification/json/cper-json-full-log.json
+++ b/specification/json/cper-json-full-log.json
@@ -21,129 +21,183 @@
                 "type": "object",
                 "oneOf": [
                     {
+                        "$id": "cper-json-generic-processor-section",
                         "type": "object",
                         "required": ["GenericProcessor"],
-                        "GenericProcessor": {
-                            "$ref": "./sections/cper-generic-processor.json"
+                        "properties": {
+                            "GenericProcessor": {
+                                "$ref": "./sections/cper-generic-processor.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-ia32x64-processor-section",
                         "type": "object",
                         "required": ["Ia32x64Processor"],
-                        "Ia32x64Processor": {
-                            "$ref": "./sections/cper-ia32x64-processor.json"
+                        "properties": {
+                            "Ia32x64Processor": {
+                                "$ref": "./sections/cper-ia32x64-processor.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-arm-processor-section",
                         "type": "object",
                         "required": ["ArmProcessor"],
-                        "ArmProcessor": {
-                            "$ref": "./sections/cper-arm-processor.json"
+                        "properties": {
+                            "ArmProcessor": {
+                                "$ref": "./sections/cper-arm-processor.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-memory-section",
                         "type": "object",
                         "required": ["Memory"],
-                        "Memory": {
-                            "$ref": "./sections/cper-memory.json"
+                        "properties": {
+                            "Memory": {
+                                "$ref": "./sections/cper-memory.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-memory2-section",
                         "type": "object",
                         "required": ["Memory2"],
-                        "Memory2": {
-                            "$ref": "./sections/cper-memory2.json"
+                        "properties": {
+                            "Memory2": {
+                                "$ref": "./sections/cper-memory2.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-pcie-section",
                         "type": "object",
                         "required": ["Pcie"],
-                        "Pcie": {
-                            "$ref": "./sections/cper-pcie.json"
+                        "properties": {
+                            "Pcie": {
+                                "$ref": "./sections/cper-pcie.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-pci-bus-section",
                         "type": "object",
                         "required": ["PciBus"],
-                        "PciBus": {
-                            "$ref": "./sections/cper-pci-bus.json"
+                        "properties": {
+                            "PciBus": {
+                                "$ref": "./sections/cper-pci-bus.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-pci-component-section",
                         "type": "object",
                         "required": ["PciComponent"],
-                        "PciComponent": {
-                            "$ref": "./sections/cper-pci-component.json"
+                        "properties": {
+                            "PciComponent": {
+                                "$ref": "./sections/cper-pci-component.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-firmware-section",
                         "type": "object",
                         "required": ["Firmware"],
-                        "Firmware": {
-                            "$ref": "./sections/cper-firmware.json"
+                        "properties": {
+                            "Firmware": {
+                                "$ref": "./sections/cper-firmware.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-generic-dmar-section",
                         "type": "object",
                         "required": ["GenericDmar"],
-                        "GenericDmar": {
-                            "$ref": "./sections/cper-generic-dmar.json"
+                        "properties": {
+                            "GenericDmar": {
+                                "$ref": "./sections/cper-generic-dmar.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-vtd-dmar-section",
                         "type": "object",
                         "required": ["VtdDmar"],
-                        "VtdDmar": {
-                            "$ref": "./sections/cper-vtd-dmar.json"
+                        "properties": {
+                            "VtdDmar": {
+                                "$ref": "./sections/cper-vtd-dmar.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-iommu-dmar-section",
                         "type": "object",
                         "required": ["IommuDmar"],
-                        "IommuDmar": {
-                            "$ref": "./sections/cper-iommu-dmar.json"
+                        "properties": {
+                            "IommuDmar": {
+                                "$ref": "./sections/cper-iommu-dmar.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-ccix-per-section",
                         "type": "object",
                         "required": ["CcixPer"],
-                        "CcixPer": {
-                            "$ref": "./sections/cper-ccix-per.json"
+                        "properties": {
+                            "CcixPer": {
+                                "$ref": "./sections/cper-ccix-per.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-cxl-protocol-section",
                         "type": "object",
                         "required": ["CxlProtocol"],
-                        "CxlProtocol": {
-                            "$ref": "./sections/cper-cxl-protocol.json"
+                        "properties": {
+                            "CxlProtocol": {
+                                "$ref": "./sections/cper-cxl-protocol.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-cxl-component-section",
                         "type": "object",
                         "required": ["CxlComponent"],
-                        "CxlComponent": {
-                            "$ref": "./sections/cper-cxl-component.json"
+                        "properties": {
+                            "CxlComponent": {
+                                "$ref": "./sections/cper-cxl-component.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-nvidia-section",
                         "type": "object",
                         "required": ["Nvidia"],
-                        "Nvidia": {
-                            "$ref": "./sections/cper-nvidia.json"
+                        "properties": {
+                            "Nvidia": {
+                                "$ref": "./sections/cper-nvidia.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-ampere-section",
                         "type": "object",
                         "required": ["Ampere"],
-                        "Nvidia": {
-                            "$ref": "./sections/cper-ampere.json"
+                        "properties": {
+                            "Nvidia": {
+                                "$ref": "./sections/cper-ampere.json"
+                            }
                         }
                     },
                     {
+                        "$id": "cper-json-unknown-section",
                         "type": "object",
                         "required": ["Unknown"],
-                        "Unknown": {
-                            "$ref": "./sections/cper-unknown.json"
+                        "properties": {
+                            "Unknown": {
+                                "$ref": "./sections/cper-unknown.json"
+                            }
                         }
                     }
                 ]
diff --git a/specification/json/cper-json-section-log.json b/specification/json/cper-json-section-log.json
index 2cbe621..e317cc1 100644
--- a/specification/json/cper-json-section-log.json
+++ b/specification/json/cper-json-section-log.json
@@ -13,129 +13,183 @@
             "type": "object",
             "oneOf": [
                 {
+                    "$id": "cper-json-generic-processor-section",
                     "type": "object",
                     "required": ["GenericProcessor"],
-                    "GenericProcessor": {
-                        "$ref": "./sections/cper-generic-processor.json"
+                    "properties": {
+                        "GenericProcessor": {
+                            "$ref": "./sections/cper-generic-processor.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-ia32x64-processor-section",
                     "type": "object",
                     "required": ["Ia32x64Processor"],
-                    "Ia32x64Processor": {
-                        "$ref": "./sections/cper-ia32x64-processor.json"
+                    "properties": {
+                        "Ia32x64Processor": {
+                            "$ref": "./sections/cper-ia32x64-processor.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-arm-processor-section",
                     "type": "object",
                     "required": ["ArmProcessor"],
-                    "ArmProcessor": {
-                        "$ref": "./sections/cper-arm-processor.json"
+                    "properties": {
+                        "ArmProcessor": {
+                            "$ref": "./sections/cper-arm-processor.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-memory-section",
                     "type": "object",
                     "required": ["Memory"],
-                    "Memory": {
-                        "$ref": "./sections/cper-memory.json"
+                    "properties": {
+                        "Memory": {
+                            "$ref": "./sections/cper-memory.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-memory2-section",
                     "type": "object",
                     "required": ["Memory2"],
-                    "Memory2": {
-                        "$ref": "./sections/cper-memory2.json"
+                    "properties": {
+                        "Memory2": {
+                            "$ref": "./sections/cper-memory2.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-pcie-section",
                     "type": "object",
                     "required": ["Pcie"],
-                    "Pcie": {
-                        "$ref": "./sections/cper-pcie.json"
+                    "properties": {
+                        "Pcie": {
+                            "$ref": "./sections/cper-pcie.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-pci-bus-section",
                     "type": "object",
                     "required": ["PciBus"],
-                    "PciBus": {
-                        "$ref": "./sections/cper-pci-bus.json"
+                    "properties": {
+                        "PciBus": {
+                            "$ref": "./sections/cper-pci-bus.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-pci-component-section",
                     "type": "object",
                     "required": ["PciComponent"],
-                    "PciComponent": {
-                        "$ref": "./sections/cper-pci-component.json"
+                    "properties": {
+                        "PciComponent": {
+                            "$ref": "./sections/cper-pci-component.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-firmware-section",
                     "type": "object",
                     "required": ["Firmware"],
-                    "Firmware": {
-                        "$ref": "./sections/cper-firmware.json"
+                    "properties": {
+                        "Firmware": {
+                            "$ref": "./sections/cper-firmware.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-generic-dmar-section",
                     "type": "object",
                     "required": ["GenericDmar"],
-                    "GenericDmar": {
-                        "$ref": "./sections/cper-generic-dmar.json"
+                    "properties": {
+                        "GenericDmar": {
+                            "$ref": "./sections/cper-generic-dmar.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-vtd-dmar-section",
                     "type": "object",
                     "required": ["VtdDmar"],
-                    "VtdDmar": {
-                        "$ref": "./sections/cper-vtd-dmar.json"
+                    "properties": {
+                        "VtdDmar": {
+                            "$ref": "./sections/cper-vtd-dmar.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-iommu-dmar-section",
                     "type": "object",
                     "required": ["IommuDmar"],
-                    "IommuDmar": {
-                        "$ref": "./sections/cper-iommu-dmar.json"
+                    "properties": {
+                        "IommuDmar": {
+                            "$ref": "./sections/cper-iommu-dmar.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-ccix-per-section",
                     "type": "object",
                     "required": ["CcixPer"],
-                    "CcixPer": {
-                        "$ref": "./sections/cper-ccix-per.json"
+                    "properties": {
+                        "CcixPer": {
+                            "$ref": "./sections/cper-ccix-per.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-cxl-protocol-section",
                     "type": "object",
                     "required": ["CxlProtocol"],
-                    "CxlProtocol": {
-                        "$ref": "./sections/cper-cxl-protocol.json"
+                    "properties": {
+                        "CxlProtocol": {
+                            "$ref": "./sections/cper-cxl-protocol.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-cxl-component-section",
                     "type": "object",
                     "required": ["CxlComponent"],
-                    "CxlComponent": {
-                        "$ref": "./sections/cper-cxl-component.json"
+                    "properties": {
+                        "CxlComponent": {
+                            "$ref": "./sections/cper-cxl-component.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-nvidia-section",
                     "type": "object",
                     "required": ["Nvidia"],
-                    "Nvidia": {
-                        "$ref": "./sections/cper-nvidia.json"
+                    "properties": {
+                        "Nvidia": {
+                            "$ref": "./sections/cper-nvidia.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-ampere-section",
                     "type": "object",
                     "required": ["Ampere"],
-                    "Nvidia": {
-                        "$ref": "./sections/cper-ampere.json"
+                    "properties": {
+                        "Nvidia": {
+                            "$ref": "./sections/cper-ampere.json"
+                        }
                     }
                 },
                 {
+                    "$id": "cper-json-unknown-section",
                     "type": "object",
                     "required": ["Unknown"],
-                    "Unknown": {
-                        "$ref": "./sections/cper-unknown.json"
+                    "properties": {
+                        "Unknown": {
+                            "$ref": "./sections/cper-unknown.json"
+                        }
                     }
                 }
             ]
diff --git a/specification/json/sections/cper-ampere.json b/specification/json/sections/cper-ampere.json
index 64d1d3f..e61b5f4 100644
--- a/specification/json/sections/cper-ampere.json
+++ b/specification/json/sections/cper-ampere.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-ampere-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": ["typeId", "subTypeId", "instanceId"],
diff --git a/specification/json/sections/cper-arm-processor.json b/specification/json/sections/cper-arm-processor.json
index c1e7500..6efb2ae 100644
--- a/specification/json/sections/cper-arm-processor.json
+++ b/specification/json/sections/cper-arm-processor.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-arm-processor-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
@@ -166,198 +165,206 @@
                         "type": "object",
                         "oneOf": [
                             {
+                                "$id": "cper-json-cacheerror-section",
+                                "type": "object",
                                 "required": ["cacheError"],
-                                "cacheError": {
-                                    "type": "object",
-                                    "required": [
-                                        "validationBits",
-                                        "transactionType",
-                                        "operation",
-                                        "level",
-                                        "processorContextCorrupt",
-                                        "corrected",
-                                        "precisePC",
-                                        "restartablePC"
-                                    ],
-                                    "additionalProperties": false,
-                                    "properties": {
-                                        "validationBits": {
-                                            "type": "object",
-                                            "required": [
-                                                "transactionTypeValid",
-                                                "operationValid",
-                                                "levelValid",
-                                                "processorContextCorruptValid",
-                                                "correctedValid",
-                                                "precisePCValid",
-                                                "restartablePCValid"
-                                            ],
-                                            "properties": {
-                                                "transactionTypeValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "operationValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "levelValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "processorContextCorruptValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "correctedValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "precisePCValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "restartablePCValid": {
-                                                    "type": "boolean"
+                                "properties": {
+                                    "cacheError": {
+                                        "type": "object",
+                                        "required": [
+                                            "validationBits",
+                                            "transactionType",
+                                            "operation",
+                                            "level",
+                                            "processorContextCorrupt",
+                                            "corrected",
+                                            "precisePC",
+                                            "restartablePC"
+                                        ],
+                                        "additionalProperties": false,
+                                        "properties": {
+                                            "validationBits": {
+                                                "type": "object",
+                                                "required": [
+                                                    "transactionTypeValid",
+                                                    "operationValid",
+                                                    "levelValid",
+                                                    "processorContextCorruptValid",
+                                                    "correctedValid",
+                                                    "precisePCValid",
+                                                    "restartablePCValid"
+                                                ],
+                                                "properties": {
+                                                    "transactionTypeValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "operationValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "levelValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "processorContextCorruptValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "correctedValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "precisePCValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "restartablePCValid": {
+                                                        "type": "boolean"
+                                                    }
                                                 }
+                                            },
+                                            "transactionType": {
+                                                "type": "object",
+                                                "$ref": "./common/cper-json-nvp.json"
+                                            },
+                                            "operation": {
+                                                "type": "object",
+                                                "$ref": "./common/cper-json-nvp.json"
+                                            },
+                                            "level": {
+                                                "type": "integer"
+                                            },
+                                            "processorContextCorrupt": {
+                                                "type": "boolean"
+                                            },
+                                            "corrected": {
+                                                "type": "boolean"
+                                            },
+                                            "precisePC": {
+                                                "type": "boolean"
+                                            },
+                                            "restartablePC": {
+                                                "type": "boolean"
                                             }
-                                        },
-                                        "transactionType": {
-                                            "type": "object",
-                                            "$ref": "./common/cper-json-nvp.json"
-                                        },
-                                        "operation": {
-                                            "type": "object",
-                                            "$ref": "./common/cper-json-nvp.json"
-                                        },
-                                        "level": {
-                                            "type": "integer"
-                                        },
-                                        "processorContextCorrupt": {
-                                            "type": "boolean"
-                                        },
-                                        "corrected": {
-                                            "type": "boolean"
-                                        },
-                                        "precisePC": {
-                                            "type": "boolean"
-                                        },
-                                        "restartablePC": {
-                                            "type": "boolean"
                                         }
                                     }
                                 }
                             },
                             {
+                                "$id": "cper-json-tlberror-section",
+                                "type": "object",
                                 "required": ["tlbError"],
-                                "tlbError": {
-                                    "type": "object",
-                                    "required": [
-                                        "validationBits",
-                                        "transactionType",
-                                        "operation",
-                                        "level",
-                                        "processorContextCorrupt",
-                                        "corrected",
-                                        "precisePC",
-                                        "restartablePC",
-                                        "timedOut",
-                                        "participationType",
-                                        "addressSpace",
-                                        "memoryAttributes",
-                                        "accessMode"
-                                    ],
-                                    "additionalProperties": false,
-                                    "properties": {
-                                        "validationBits": {
-                                            "type": "object",
-                                            "required": [
-                                                "transactionTypeValid",
-                                                "operationValid",
-                                                "levelValid",
-                                                "processorContextCorruptValid",
-                                                "correctedValid",
-                                                "precisePCValid",
-                                                "restartablePCValid",
-                                                "participationTypeValid",
-                                                "timedOutValid",
-                                                "addressSpaceValid",
-                                                "memoryAttributesValid",
-                                                "accessModeValid"
-                                            ],
-                                            "properties": {
-                                                "transactionTypeValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "operationValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "levelValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "processorContextCorruptValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "correctedValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "precisePCValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "restartablePCValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "participationTypeValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "timedOutValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "addressSpaceValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "memoryAttributesValid": {
-                                                    "type": "boolean"
-                                                },
-                                                "accessModeValid": {
-                                                    "type": "boolean"
+                                "properties": {
+                                    "tlbError": {
+                                        "type": "object",
+                                        "required": [
+                                            "validationBits",
+                                            "transactionType",
+                                            "operation",
+                                            "level",
+                                            "processorContextCorrupt",
+                                            "corrected",
+                                            "precisePC",
+                                            "restartablePC",
+                                            "timedOut",
+                                            "participationType",
+                                            "addressSpace",
+                                            "memoryAttributes",
+                                            "accessMode"
+                                        ],
+                                        "additionalProperties": false,
+                                        "properties": {
+                                            "validationBits": {
+                                                "type": "object",
+                                                "required": [
+                                                    "transactionTypeValid",
+                                                    "operationValid",
+                                                    "levelValid",
+                                                    "processorContextCorruptValid",
+                                                    "correctedValid",
+                                                    "precisePCValid",
+                                                    "restartablePCValid",
+                                                    "participationTypeValid",
+                                                    "timedOutValid",
+                                                    "addressSpaceValid",
+                                                    "memoryAttributesValid",
+                                                    "accessModeValid"
+                                                ],
+                                                "properties": {
+                                                    "transactionTypeValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "operationValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "levelValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "processorContextCorruptValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "correctedValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "precisePCValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "restartablePCValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "participationTypeValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "timedOutValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "addressSpaceValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "memoryAttributesValid": {
+                                                        "type": "boolean"
+                                                    },
+                                                    "accessModeValid": {
+                                                        "type": "boolean"
+                                                    }
                                                 }
+                                            },
+                                            "transactionType": {
+                                                "type": "object",
+                                                "$ref": "./common/cper-json-nvp.json"
+                                            },
+                                            "operation": {
+                                                "type": "object",
+                                                "$ref": "./common/cper-json-nvp.json"
+                                            },
+                                            "level": {
+                                                "type": "integer"
+                                            },
+                                            "processorContextCorrupt": {
+                                                "type": "boolean"
+                                            },
+                                            "corrected": {
+                                                "type": "boolean"
+                                            },
+                                            "precisePC": {
+                                                "type": "boolean"
+                                            },
+                                            "restartablePC": {
+                                                "type": "boolean"
+                                            },
+                                            "timedOut": {
+                                                "type": "boolean"
+                                            },
+                                            "participationType": {
+                                                "type": "object",
+                                                "$ref": "./common/cper-json-nvp.json"
+                                            },
+                                            "addressSpace": {
+                                                "type": "object",
+                                                "$ref": "./common/cper-json-nvp.json"
+                                            },
+                                            "accessMode": {
+                                                "type": "object",
+                                                "$ref": "./common/cper-json-nvp.json"
+                                            },
+                                            "memoryAttributes": {
+                                                "type": "integer"
                                             }
-                                        },
-                                        "transactionType": {
-                                            "type": "object",
-                                            "$ref": "./common/cper-json-nvp.json"
-                                        },
-                                        "operation": {
-                                            "type": "object",
-                                            "$ref": "./common/cper-json-nvp.json"
-                                        },
-                                        "level": {
-                                            "type": "integer"
-                                        },
-                                        "processorContextCorrupt": {
-                                            "type": "boolean"
-                                        },
-                                        "corrected": {
-                                            "type": "boolean"
-                                        },
-                                        "precisePC": {
-                                            "type": "boolean"
-                                        },
-                                        "restartablePC": {
-                                            "type": "boolean"
-                                        },
-                                        "timedOut": {
-                                            "type": "boolean"
-                                        },
-                                        "participationType": {
-                                            "type": "object",
-                                            "$ref": "./common/cper-json-nvp.json"
-                                        },
-                                        "addressSpace": {
-                                            "type": "object",
-                                            "$ref": "./common/cper-json-nvp.json"
-                                        },
-                                        "accessMode": {
-                                            "type": "object",
-                                            "$ref": "./common/cper-json-nvp.json"
-                                        },
-                                        "memoryAttributes": {
-                                            "type": "integer"
                                         }
                                     }
                                 }
@@ -400,6 +407,7 @@
                         "type": "object",
                         "oneOf": [
                             {
+                                "$id": "cper-json-registerarray0",
                                 "type": "object",
                                 "required": [
                                     "r1",
@@ -438,6 +446,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray1",
                                 "type": "object",
                                 "required": [
                                     "dfar",
@@ -493,6 +502,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray2",
                                 "type": "object",
                                 "required": [
                                     "elr_hyp",
@@ -532,6 +542,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray3",
                                 "type": "object",
                                 "required": ["sctlr_s", "spsr_mon"],
                                 "properties": {
@@ -540,6 +551,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray4",
                                 "type": "object",
                                 "required": [
                                     "x0",
@@ -611,6 +623,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray5",
                                 "type": "object",
                                 "required": [
                                     "elr_el1",
@@ -652,6 +665,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray6",
                                 "type": "object",
                                 "required": [
                                     "elr_el2",
@@ -689,6 +703,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray7",
                                 "type": "object",
                                 "required": [
                                     "elr_el3",
@@ -716,6 +731,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray8",
                                 "type": "object",
                                 "required": ["mrsEncoding", "value"],
                                 "additionalProperties": false,
@@ -743,6 +759,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray9",
                                 "type": "object",
                                 "required": ["data"],
                                 "properties": {
diff --git a/specification/json/sections/cper-ccix-per.json b/specification/json/sections/cper-ccix-per.json
index 9f2767d..785ab65 100644
--- a/specification/json/sections/cper-ccix-per.json
+++ b/specification/json/sections/cper-ccix-per.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-ccix-per-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
diff --git a/specification/json/sections/cper-cxl-component.json b/specification/json/sections/cper-cxl-component.json
index 97c4107..5518031 100644
--- a/specification/json/sections/cper-cxl-component.json
+++ b/specification/json/sections/cper-cxl-component.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-cxl-component-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": ["length", "validationBits", "deviceID", "deviceSerial"],
diff --git a/specification/json/sections/cper-cxl-protocol.json b/specification/json/sections/cper-cxl-protocol.json
index 83cef63..bc46245 100644
--- a/specification/json/sections/cper-cxl-protocol.json
+++ b/specification/json/sections/cper-cxl-protocol.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-cxl-protocol-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
@@ -57,6 +56,7 @@
             "type": "object",
             "oneOf": [
                 {
+                    "$id": "cper-json-cxlagentaddress0",
                     "type": "object",
                     "required": [
                         "functionNumber",
@@ -80,6 +80,7 @@
                     }
                 },
                 {
+                    "$id": "cper-json-cxlagentaddress1",
                     "type": "object",
                     "required": ["value"],
                     "properties": {
diff --git a/specification/json/sections/cper-firmware.json b/specification/json/sections/cper-firmware.json
index 88a18b0..7fc7955 100644
--- a/specification/json/sections/cper-firmware.json
+++ b/specification/json/sections/cper-firmware.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-firmware-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": ["errorRecordType", "revision", "recordID", "recordIDGUID"],
diff --git a/specification/json/sections/cper-generic-dmar.json b/specification/json/sections/cper-generic-dmar.json
index 814e44a..810bc85 100644
--- a/specification/json/sections/cper-generic-dmar.json
+++ b/specification/json/sections/cper-generic-dmar.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-generic-dmar-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
diff --git a/specification/json/sections/cper-generic-processor.json b/specification/json/sections/cper-generic-processor.json
index 34109d4..595be99 100644
--- a/specification/json/sections/cper-generic-processor.json
+++ b/specification/json/sections/cper-generic-processor.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-generic-processor-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
diff --git a/specification/json/sections/cper-ia32x64-processor.json b/specification/json/sections/cper-ia32x64-processor.json
index 2a017a0..fbdd971 100644
--- a/specification/json/sections/cper-ia32x64-processor.json
+++ b/specification/json/sections/cper-ia32x64-processor.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-ia32x54-processor-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
@@ -116,6 +115,7 @@
                         "type": "object",
                         "oneOf": [
                             {
+                                "$id": "cper-json-checkinfo0",
                                 "type": "object",
                                 "required": [
                                     "validationBits",
@@ -199,6 +199,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-checkinfo1",
                                 "type": "object",
                                 "required": [
                                     "validationBits",
@@ -308,6 +309,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-checkinfo2",
                                 "type": "object",
                                 "required": [],
                                 "additionalProperties": false,
@@ -410,6 +412,7 @@
                         "type": "object",
                         "oneOf": [
                             {
+                                "$id": "cper-json-registerarray0",
                                 "type": "object",
                                 "required": [
                                     "eax",
@@ -468,6 +471,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray1",
                                 "type": "object",
                                 "required": [
                                     "rax",
@@ -547,6 +551,7 @@
                                 }
                             },
                             {
+                                "$id": "cper-json-registerarray2",
                                 "type": "object",
                                 "required": ["data"],
                                 "additionalProperties": false,
diff --git a/specification/json/sections/cper-iommu-dmar.json b/specification/json/sections/cper-iommu-dmar.json
index bc819f0..2d9e511 100644
--- a/specification/json/sections/cper-iommu-dmar.json
+++ b/specification/json/sections/cper-iommu-dmar.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-iommu-dmar-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
diff --git a/specification/json/sections/cper-memory.json b/specification/json/sections/cper-memory.json
index 64f4c21..4b1defc 100644
--- a/specification/json/sections/cper-memory.json
+++ b/specification/json/sections/cper-memory.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-memory-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
@@ -129,6 +128,7 @@
             "type": "object",
             "oneOf": [
                 {
+                    "$id": "cper-json-bank0",
                     "type": "object",
                     "required": ["value"],
                     "properties": {
@@ -138,6 +138,7 @@
                     }
                 },
                 {
+                    "$id": "cper-json-bank1",
                     "type": "object",
                     "required": ["address", "group"],
                     "properties": {
diff --git a/specification/json/sections/cper-memory2.json b/specification/json/sections/cper-memory2.json
index 94b8509..51d972f 100644
--- a/specification/json/sections/cper-memory2.json
+++ b/specification/json/sections/cper-memory2.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-memory2-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
@@ -130,6 +129,7 @@
             "type": "object",
             "oneOf": [
                 {
+                    "$id": "cper-json-bank0",
                     "type": "object",
                     "required": ["value"],
                     "properties": {
@@ -139,6 +139,7 @@
                     }
                 },
                 {
+                    "$id": "cper-json-bank1",
                     "type": "object",
                     "required": ["address", "group"],
                     "properties": {
diff --git a/specification/json/sections/cper-nvidia.json b/specification/json/sections/cper-nvidia.json
index 9512fb3..f15403a 100644
--- a/specification/json/sections/cper-nvidia.json
+++ b/specification/json/sections/cper-nvidia.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-nvidia-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
diff --git a/specification/json/sections/cper-pci-bus.json b/specification/json/sections/cper-pci-bus.json
index 635d28f..5c9d779 100644
--- a/specification/json/sections/cper-pci-bus.json
+++ b/specification/json/sections/cper-pci-bus.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-pci-bus-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
diff --git a/specification/json/sections/cper-pci-component.json b/specification/json/sections/cper-pci-component.json
index af22a52..5f7450c 100644
--- a/specification/json/sections/cper-pci-component.json
+++ b/specification/json/sections/cper-pci-component.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-pci-component-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
diff --git a/specification/json/sections/cper-pcie.json b/specification/json/sections/cper-pcie.json
index c220d75..14581a3 100644
--- a/specification/json/sections/cper-pcie.json
+++ b/specification/json/sections/cper-pcie.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-pcie-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [
diff --git a/specification/json/sections/cper-unknown.json b/specification/json/sections/cper-unknown.json
index a2a92dc..abe0399 100644
--- a/specification/json/sections/cper-unknown.json
+++ b/specification/json/sections/cper-unknown.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-unknown-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": ["data"],
diff --git a/specification/json/sections/cper-vtd-dmar.json b/specification/json/sections/cper-vtd-dmar.json
index ad7f956..aedfbf5 100644
--- a/specification/json/sections/cper-vtd-dmar.json
+++ b/specification/json/sections/cper-vtd-dmar.json
@@ -1,5 +1,4 @@
 {
-    "$id": "cper-json-vtd-dmar-section",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "type": "object",
     "required": [