diff --git a/cli-app/cper-convert.c b/cli-app/cper-convert.c
index 26194b7..b9ac711 100644
--- a/cli-app/cper-convert.c
+++ b/cli-app/cper-convert.c
@@ -13,7 +13,7 @@
 #include "../cper-parse.h"
 #include "../json-schema.h"
 
-void cper_to_json(char *in_file, char *out_file);
+void cper_to_json(char *in_file, char *out_file, int is_single_section);
 void json_to_cper(char *in_file, char *out_file, char *specification_file,
 		  char *program_dir, int no_validate, int debug);
 void print_help(void);
@@ -63,12 +63,14 @@
 	}
 
 	//Run the requested command.
-	if (strcmp(argv[1], "to-json") == 0)
-		cper_to_json(input_file, output_file);
-	else if (strcmp(argv[1], "to-cper") == 0)
+	if (strcmp(argv[1], "to-json") == 0) {
+		cper_to_json(input_file, output_file, 0);
+	} else if (strcmp(argv[1], "to-json-section") == 0) {
+		cper_to_json(input_file, output_file, 1);
+	} else if (strcmp(argv[1], "to-cper") == 0) {
 		json_to_cper(input_file, output_file, specification_file,
 			     argv[0], no_validate, debug);
-	else {
+	} else {
 		printf("Unrecognised argument '%s'. See 'cper-convert --help' for command information.\n",
 		       argv[1]);
 		return -1;
@@ -77,8 +79,8 @@
 	return 0;
 }
 
-//Command for converting a provided CPER log file into JSON.
-void cper_to_json(char *in_file, char *out_file)
+//Command for converting a provided CPER log file or CPER single section file into JSON.
+void cper_to_json(char *in_file, char *out_file, int is_single_section)
 {
 	//Get a handle for the log file.
 	FILE *cper_file = fopen(in_file, "r");
@@ -89,8 +91,14 @@
 	}
 
 	//Convert.
-	json_object *ir = cper_to_ir(cper_file);
+	json_object *ir;
+	if (is_single_section)
+		ir = cper_single_section_to_ir(cper_file);
+	else
+		ir = cper_to_ir(cper_file);
 	fclose(cper_file);
+
+	//Output to string.
 	const char *json_output =
 		json_object_to_json_string_ext(ir, JSON_C_TO_STRING_PRETTY);
 
@@ -171,7 +179,6 @@
 		free(error_message);
 	}
 
-	//Attempt a conversion.
 	//Open a read for the output file.
 	FILE *cper_file = fopen(out_file, "w");
 	if (cper_file == NULL) {
@@ -180,8 +187,12 @@
 		return;
 	}
 
-	//Run the converter.
-	ir_to_cper(ir, cper_file);
+	//Detect the type of CPER (full log, single section) from the IR given.
+	//Run the converter accordingly.
+	if (json_object_object_get(ir, "header") != NULL)
+		ir_to_cper(ir, cper_file);
+	else
+		ir_single_section_to_cper(ir, cper_file);
 	fclose(cper_file);
 }
 
@@ -191,12 +202,17 @@
 	printf(":: to-json cper.file [--out file.name]\n");
 	printf("\tConverts the provided CPER log file into JSON, by default writing to stdout. If '--out' is specified,\n");
 	printf("\tThe outputted JSON will be written to the provided file name instead.\n");
+	printf("\n:: to-json-section cper.section.file [--out file.name]\n");
+	printf("\tConverts the provided single CPER section descriptor & section file into JSON, by default writing to stdout.\n");
+	printf("\tOtherwise behaves the same as 'to-json'.\n");
 	printf("\n:: to-cper cper.json --out file.name [--no-validate] [--debug] [--specification some/spec/path.json]\n");
 	printf("\tConverts the provided CPER-JSON JSON file into CPER binary. An output file must be specified with '--out'.\n");
+	printf("\tWill automatically detect whether the JSON passed is a single section, or a whole file,\n");
+	printf("\tand output binary accordingly.\n\n");
 	printf("\tBy default, the provided JSON will try to be validated against a specification. If no specification file path\n");
 	printf("\tis provided with '--specification', then it will default to 'argv[0] + /specification/cper-json.json'.\n");
 	printf("\tIf the '--no-validate' argument is set, then the provided JSON will not be validated. Be warned, this may cause\n");
-	printf("\tpremature exit/unexpected behaviour in CPER output.\n");
+	printf("\tpremature exit/unexpected behaviour in CPER output.\n\n");
 	printf("\tIf '--debug' is set, then debug output for JSON specification parsing will be printed to stdout.\n");
 	printf("\n:: --help\n");
 	printf("\tDisplays help information to the console.\n");
diff --git a/cper-parse.c b/cper-parse.c
index 68c8d74..8713d03 100644
--- a/cper-parse.c
+++ b/cper-parse.c
@@ -454,4 +454,30 @@
 	//Free section memory, return result.
 	free(section);
 	return result;
+}
+
+//Converts a single CPER section, without a header but with a section descriptor, to JSON.
+json_object *cper_single_section_to_ir(FILE *cper_section_file)
+{
+	json_object *ir = json_object_new_object();
+
+	//Read the section descriptor out.
+	EFI_ERROR_SECTION_DESCRIPTOR section_descriptor;
+	if (fread(&section_descriptor, sizeof(EFI_ERROR_SECTION_DESCRIPTOR), 1,
+		  cper_section_file) != 1) {
+		printf("Failed to read section descriptor for CPER single section (fread() returned an unexpected value).\n");
+		return NULL;
+	}
+
+	//Convert the section descriptor to IR.
+	json_object *section_descriptor_ir =
+		cper_section_descriptor_to_ir(&section_descriptor);
+	json_object_object_add(ir, "sectionDescriptor", section_descriptor_ir);
+
+	//Parse the single section.
+	json_object *section_ir =
+		cper_section_to_ir(cper_section_file, &section_descriptor);
+	json_object_object_add(ir, "section", section_ir);
+
+	return ir;
 }
\ No newline at end of file
diff --git a/cper-parse.h b/cper-parse.h
index f9c6466..423a805 100644
--- a/cper-parse.h
+++ b/cper-parse.h
@@ -11,6 +11,8 @@
 #define CPER_HEADER_FLAG_TYPES_VALUES (const char*[]){"HW_ERROR_FLAGS_RECOVERED", "HW_ERROR_FLAGS_PREVERR", "HW_ERROR_FLAGS_SIMULATED"}
 
 json_object* cper_to_ir(FILE* cper_file);
+json_object* cper_single_section_to_ir(FILE* cper_section_file);
 void ir_to_cper(json_object* ir, FILE* out);
+void ir_single_section_to_cper(json_object* ir, FILE* out);
 
 #endif
\ No newline at end of file
diff --git a/generator/cper-generate-cli.c b/generator/cper-generate-cli.c
index 0f0399b..ed974f5 100644
--- a/generator/cper-generate-cli.c
+++ b/generator/cper-generate-cli.c
@@ -22,18 +22,23 @@
 
 	//Parse the command line arguments.
 	char *out_file = NULL;
+	char *single_section = NULL;
 	char **sections = NULL;
 	UINT16 num_sections = 0;
 	for (int i = 1; i < argc; i++) {
 		if (strcmp(argv[i], "--out") == 0 && i < argc - 1) {
 			out_file = argv[i + 1];
 			i++;
+		} else if (strcmp(argv[i], "--single-section") == 0 &&
+			   i < argc - 1) {
+			single_section = argv[i + 1];
+			i++;
 		} else if (strcmp(argv[i], "--sections") == 0 && i < argc - 1) {
 			//All arguments after this must be section names.
 			num_sections = argc - i - 1;
 			sections = malloc(sizeof(char *) * num_sections);
 			i++;
-			
+
 			for (int j = i; j < argc; j++)
 				sections[j - i] = argv[j];
 			break;
@@ -58,8 +63,16 @@
 		return -1;
 	}
 
-	//Generate the record. Type names start from argv[4].
-	generate_cper_record(sections, num_sections, cper_file);
+	//Which type are we generating?
+	if (single_section != NULL && sections == NULL) {
+		generate_single_section_record(single_section, cper_file);
+	} else if (sections != NULL && single_section == NULL) {
+		generate_cper_record(sections, num_sections, cper_file);
+	} else {
+		//Invalid arguments.
+		printf("Invalid argument. Either both '--sections' and '--single-section' were set, or neither. For command information, refer to 'cper-generate --help'.\n");
+		return -1;
+	}
 
 	//Close & free remaining resources.
 	fclose(cper_file);
@@ -70,8 +83,12 @@
 //Prints command help for this CPER generator.
 void print_help()
 {
-	printf(":: --out cper.file --sections section1 [section2 section3 ...]\n");
-	printf("\tGenerates a pseudo-random CPER file with the provided section types and outputs to the given file name.\n");
+	printf(":: --out cper.file [--sections section1 ...] [--single-section sectiontype]\n");
+	printf("\tGenerates a pseudo-random CPER file with the provided section types and outputs to the given file name.\n\n");
+	printf("\tWhen the '--sections' flag is set, all following arguments are section names, and a full CPER log is generated\n");
+	printf("\tcontaining the given sections.\n");
+	printf("\tWhen the '--single-section' flag is set, the next argument is the single section that should be generated, and\n");
+	printf("\ta single section (no header, only a section descriptor & section) CPER file is generated.\n\n");
 	printf("\tValid section type names are the following:\n");
 	printf("\t\t- generic\n");
 	printf("\t\t- ia32x64\n");
diff --git a/generator/cper-generate.c b/generator/cper-generate.c
index 594bd90..3322372 100644
--- a/generator/cper-generate.c
+++ b/generator/cper-generate.c
@@ -89,6 +89,29 @@
 	}
 }
 
+//Generates a single section record for the given section, and outputs to file.
+void generate_single_section_record(char *type, FILE *out)
+{
+	//Generate a section.
+	void *section;
+	size_t section_len = generate_section(&section, type);
+
+	//Generate a descriptor, correct the offset.
+	EFI_ERROR_SECTION_DESCRIPTOR *section_descriptor =
+		generate_section_descriptor(type, &section_len, 0, 1);
+	section_descriptor->SectionOffset =
+		sizeof(EFI_ERROR_SECTION_DESCRIPTOR);
+
+	//Write all to file.
+	fwrite(section_descriptor, sizeof(EFI_ERROR_SECTION_DESCRIPTOR), 1,
+	       out);
+	fwrite(section, section_len, 1, out);
+	fflush(out);
+
+	//Free remaining resources.
+	free(section_descriptor);
+}
+
 //Generates a single section descriptor for a section with the given properties.
 EFI_ERROR_SECTION_DESCRIPTOR *generate_section_descriptor(char *type,
 							  size_t *lengths,
diff --git a/generator/cper-generate.h b/generator/cper-generate.h
index 213cf8c..2874fa5 100644
--- a/generator/cper-generate.h
+++ b/generator/cper-generate.h
@@ -4,6 +4,7 @@
 #include <stdio.h>
 #include "../edk/BaseTypes.h"
 
-void generate_cper_record(char** types, UINT16 num_sections, FILE* cper_file);
+void generate_cper_record(char **types, UINT16 num_sections, FILE *cper_file);
+void generate_single_section_record(char *type, FILE *out);
 
 #endif
\ No newline at end of file
diff --git a/ir-parse.c b/ir-parse.c
index 437dd82..59f693d 100644
--- a/ir-parse.c
+++ b/ir-parse.c
@@ -32,6 +32,8 @@
 		       EFI_COMMON_ERROR_RECORD_HEADER *header);
 void ir_section_descriptor_to_cper(json_object *section_descriptor_ir,
 				   EFI_ERROR_SECTION_DESCRIPTOR *descriptor);
+void ir_section_to_cper(json_object *section,
+			EFI_ERROR_SECTION_DESCRIPTOR *descriptor, FILE *out);
 
 //Converts the given JSON IR CPER representation into CPER binary format, piped to the provided file stream.
 //This function performs no validation of the IR against the CPER-JSON specification. To ensure a safe call,
@@ -69,73 +71,8 @@
 		//Get the section itself from the IR.
 		json_object *section = json_object_array_get_idx(sections, i);
 
-		//Find the correct section type, and parse.
-		if (guid_equal(&descriptors[i]->SectionType,
-			       &gEfiProcessorGenericErrorSectionGuid))
-			ir_section_generic_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiIa32X64ProcessorErrorSectionGuid))
-			ir_section_ia32x64_to_cper(section, out);
-		// else if (guid_equal(&descriptors[i]->SectionType, &gEfiIpfProcessorErrorSectionGuid))
-		//     ir_section_ipf_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiArmProcessorErrorSectionGuid))
-			ir_section_arm_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiPlatformMemoryErrorSectionGuid))
-			ir_section_memory_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiPlatformMemoryError2SectionGuid))
-			ir_section_memory2_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiPcieErrorSectionGuid))
-			ir_section_pcie_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiFirmwareErrorSectionGuid))
-			ir_section_firmware_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiPciBusErrorSectionGuid))
-			ir_section_pci_bus_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiPciDevErrorSectionGuid))
-			ir_section_pci_dev_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiDMArGenericErrorSectionGuid))
-			ir_section_dmar_generic_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiDirectedIoDMArErrorSectionGuid))
-			ir_section_dmar_vtd_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiIommuDMArErrorSectionGuid))
-			ir_section_dmar_iommu_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiCcixPerLogErrorSectionGuid))
-			ir_section_ccix_per_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiCxlProtocolErrorSectionGuid))
-			ir_section_cxl_protocol_to_cper(section, out);
-		else if (guid_equal(&descriptors[i]->SectionType,
-				    &gEfiCxlGeneralMediaErrorSectionGuid) ||
-			 guid_equal(&descriptors[i]->SectionType,
-				    &gEfiCxlDramEventErrorSectionGuid) ||
-			 guid_equal(&descriptors[i]->SectionType,
-				    &gEfiCxlPhysicalSwitchErrorSectionGuid) ||
-			 guid_equal(&descriptors[i]->SectionType,
-				    &gEfiCxlVirtualSwitchErrorSectionGuid) ||
-			 guid_equal(&descriptors[i]->SectionType,
-				    &gEfiCxlMldPortErrorSectionGuid)) {
-			ir_section_cxl_component_to_cper(section, out);
-		} else {
-			//Unknown GUID, so read as a base64 unknown section.
-			json_object *encoded =
-				json_object_object_get(section, "data");
-			UINT8 *decoded =
-				b64_decode(json_object_get_string(encoded),
-					   json_object_get_string_len(encoded));
-			fwrite(decoded, descriptors[i]->SectionLength, 1, out);
-			fflush(out);
-			free(decoded);
-		}
+		//Convert.
+		ir_section_to_cper(section, descriptors[i], out);
 	}
 
 	//Free all remaining resources.
@@ -223,6 +160,78 @@
 		json_object_object_get(flags, "value"));
 }
 
+//Converts a single given IR section into CPER, outputting to the given stream.
+void ir_section_to_cper(json_object *section,
+			EFI_ERROR_SECTION_DESCRIPTOR *descriptor, FILE *out)
+{
+	//Find the correct section type, and parse.
+	if (guid_equal(&descriptor->SectionType,
+		       &gEfiProcessorGenericErrorSectionGuid))
+		ir_section_generic_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiIa32X64ProcessorErrorSectionGuid))
+		ir_section_ia32x64_to_cper(section, out);
+	// else if (guid_equal(&descriptor->SectionType, &gEfiIpfProcessorErrorSectionGuid))
+	//     ir_section_ipf_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiArmProcessorErrorSectionGuid))
+		ir_section_arm_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiPlatformMemoryErrorSectionGuid))
+		ir_section_memory_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiPlatformMemoryError2SectionGuid))
+		ir_section_memory2_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiPcieErrorSectionGuid))
+		ir_section_pcie_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiFirmwareErrorSectionGuid))
+		ir_section_firmware_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiPciBusErrorSectionGuid))
+		ir_section_pci_bus_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiPciDevErrorSectionGuid))
+		ir_section_pci_dev_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiDMArGenericErrorSectionGuid))
+		ir_section_dmar_generic_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiDirectedIoDMArErrorSectionGuid))
+		ir_section_dmar_vtd_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiIommuDMArErrorSectionGuid))
+		ir_section_dmar_iommu_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiCcixPerLogErrorSectionGuid))
+		ir_section_ccix_per_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiCxlProtocolErrorSectionGuid))
+		ir_section_cxl_protocol_to_cper(section, out);
+	else if (guid_equal(&descriptor->SectionType,
+			    &gEfiCxlGeneralMediaErrorSectionGuid) ||
+		 guid_equal(&descriptor->SectionType,
+			    &gEfiCxlDramEventErrorSectionGuid) ||
+		 guid_equal(&descriptor->SectionType,
+			    &gEfiCxlPhysicalSwitchErrorSectionGuid) ||
+		 guid_equal(&descriptor->SectionType,
+			    &gEfiCxlVirtualSwitchErrorSectionGuid) ||
+		 guid_equal(&descriptor->SectionType,
+			    &gEfiCxlMldPortErrorSectionGuid)) {
+		ir_section_cxl_component_to_cper(section, out);
+	} else {
+		//Unknown GUID, so read as a base64 unknown section.
+		json_object *encoded = json_object_object_get(section, "data");
+		UINT8 *decoded =
+			b64_decode(json_object_get_string(encoded),
+				   json_object_get_string_len(encoded));
+		fwrite(decoded, descriptor->SectionLength, 1, out);
+		fflush(out);
+		free(decoded);
+	}
+}
+
 //Converts a single CPER-JSON IR section descriptor into a CPER structure.
 void ir_section_descriptor_to_cper(json_object *section_descriptor_ir,
 				   EFI_ERROR_SECTION_DESCRIPTOR *descriptor)
@@ -276,4 +285,26 @@
 	if (fru_text != NULL)
 		strncpy(descriptor->FruString, json_object_get_string(fru_text),
 			20);
+}
+
+//Converts IR for a given single section format CPER record into CPER binary.
+void ir_single_section_to_cper(json_object *ir, FILE *out)
+{
+	//Create & write a section descriptor to file.
+	EFI_ERROR_SECTION_DESCRIPTOR *section_descriptor =
+		(EFI_ERROR_SECTION_DESCRIPTOR *)calloc(
+			1, sizeof(EFI_ERROR_SECTION_DESCRIPTOR));
+	ir_section_descriptor_to_cper(
+		json_object_object_get(ir, "sectionDescriptor"),
+		section_descriptor);
+	fwrite(section_descriptor, sizeof(EFI_ERROR_SECTION_DESCRIPTOR), 1,
+	       out);
+	fflush(out);
+
+	//Write section to file.
+	ir_section_to_cper(json_object_object_get(ir, "section"),
+			   section_descriptor, out);
+
+	//Free remaining resources.
+	free(section_descriptor);
 }
\ No newline at end of file
diff --git a/specification/document/cper-json-specification.tex b/specification/document/cper-json-specification.tex
index ac54dc9..8f814b6 100644
--- a/specification/document/cper-json-specification.tex
+++ b/specification/document/cper-json-specification.tex
@@ -51,19 +51,31 @@
 
 % Specification section.
 \chapter{Main Structure Specification}
-\section{Parent Structure}
-\label{section:parentstructure}
+\section{Parent Structure (Type 1): Full Log}
+\label{section:parentstructuretype1}
 This structure contains descriptions of the CPER log header, as well as the section descriptors and
-section structures themselves within arrays. This is the structure returned by \texttt{cper\_to\_ir(FILE* cper\_file)} as JSON IR.
+section structures themselves within arrays, representing a full CPER log. This is the structure returned by \texttt{cper\_to\_ir(FILE* cper\_file)} as JSON IR.
 
-% Parent structure table.
-\jsontable{table:parentstructure}
+% Parent structure (type 1) table.
+\jsontable{table:parentstructuretype1}
 header & object & A CPER header structure as defined in Section \ref{section:headerstructure}. \\
 \hline
 sectionDescriptors & array & An array of section descriptor objects as defined in Section \ref{section:sectiondescriptorstructure}. \\
 \hline
 sections & array & An array of section objects as defined in Chapter \ref{chapter:sectionchapter}. These sections are at the same index as their corresponding section descriptor within the \texttt{sectionDescriptors} array.\\
-\jsontableend{Parent structure field table.}
+\jsontableend{Parent structure (type 1) field table.}
+
+\section{Parent Structure (Type 2): Single Section Log}
+\label{section:parentstructuretype2}
+This structure contains a single section descriptor and section, representing a single section CPER log.
+This is the structure returned by \texttt{cper\_single\_section\_to\_ir(FILE* cper\_file)} as JSON IR.
+
+% Parent structure (type 2) table.
+\jsontable{table:parentstructuretype2}
+sectionDescriptor & object & A section descriptor object as defined in Section \ref{section:sectiondescriptorstructure}. \\
+\hline
+sections & array & A section object as defined in Chapter \ref{chapter:sectionchapter}.\\
+\jsontableend{Parent structure (type 2) field table.}
 
 % Header structure.
 \section{Header Structure}
diff --git a/specification/json/cper-json-full-log.json b/specification/json/cper-json-full-log.json
new file mode 100644
index 0000000..a34ceb3
--- /dev/null
+++ b/specification/json/cper-json-full-log.json
@@ -0,0 +1,41 @@
+{
+    "type": "object",
+    "required": ["header", "sectionDescriptors", "sections"],
+    "additionalProperties": false,
+    "properties": {
+        "header": {
+            "$ref": "./cper-json-header.json"
+        },
+        "sectionDescriptors": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "$ref": "./cper-json-section-descriptor.json"
+            }
+        },
+        "sections": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "oneOf": [
+                    { "$ref": "./sections/cper-generic-processor.json" },
+                    { "$ref": "./sections/cper-ia32x64-processor.json" },
+                    { "$ref": "./sections/cper-arm-processor.json" },
+                    { "$ref": "./sections/cper-memory.json" },
+                    { "$ref": "./sections/cper-memory2.json" },
+                    { "$ref": "./sections/cper-pcie.json" },
+                    { "$ref": "./sections/cper-pci-bus.json" },
+                    { "$ref": "./sections/cper-pci-component.json" },
+                    { "$ref": "./sections/cper-firmware.json" },
+                    { "$ref": "./sections/cper-generic-dmar.json" },
+                    { "$ref": "./sections/cper-vtd-dmar.json" },
+                    { "$ref": "./sections/cper-iommu-dmar.json" },
+                    { "$ref": "./sections/cper-ccix-per.json" },
+                    { "$ref": "./sections/cper-cxl-protocol.json" },
+                    { "$ref": "./sections/cper-cxl-component.json" },
+                    { "$ref": "./sections/cper-unknown.json" }
+                ]
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/cper-json-section-log.json b/specification/json/cper-json-section-log.json
new file mode 100644
index 0000000..151f6a6
--- /dev/null
+++ b/specification/json/cper-json-section-log.json
@@ -0,0 +1,34 @@
+{
+    "type": "object",
+    "required": ["sectionDescriptor", "section"],
+    "additionalProperties": false,
+    "properties": {
+        "header": {
+            "$ref": "./cper-json-header.json"
+        },
+        "sectionDescriptor": {
+            "$ref": "./cper-json-section-descriptor.json"
+        },
+        "section": {
+            "type": "object",
+            "oneOf": [
+                { "$ref": "./sections/cper-generic-processor.json" },
+                { "$ref": "./sections/cper-ia32x64-processor.json" },
+                { "$ref": "./sections/cper-arm-processor.json" },
+                { "$ref": "./sections/cper-memory.json" },
+                { "$ref": "./sections/cper-memory2.json" },
+                { "$ref": "./sections/cper-pcie.json" },
+                { "$ref": "./sections/cper-pci-bus.json" },
+                { "$ref": "./sections/cper-pci-component.json" },
+                { "$ref": "./sections/cper-firmware.json" },
+                { "$ref": "./sections/cper-generic-dmar.json" },
+                { "$ref": "./sections/cper-vtd-dmar.json" },
+                { "$ref": "./sections/cper-iommu-dmar.json" },
+                { "$ref": "./sections/cper-ccix-per.json" },
+                { "$ref": "./sections/cper-cxl-protocol.json" },
+                { "$ref": "./sections/cper-cxl-component.json" },
+                { "$ref": "./sections/cper-unknown.json" }
+            ]
+        }
+    }
+}
\ No newline at end of file
diff --git a/specification/json/cper-json.json b/specification/json/cper-json.json
index 302adc9..6d0e755 100644
--- a/specification/json/cper-json.json
+++ b/specification/json/cper-json.json
@@ -3,42 +3,8 @@
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "description": "JSON Schema for the CPER-JSON format, as described in the CPER-JSON specification document.",
     "type": "object",
-    "required": ["header", "sectionDescriptors", "sections"],
-    "additionalProperties": false,
-    "properties": {
-        "header": {
-            "$ref": "./cper-json-header.json"
-        },
-        "sectionDescriptors": {
-            "type": "array",
-            "items": {
-                "type": "object",
-                "$ref": "./cper-json-section-descriptor.json"
-            }
-        },
-        "sections": {
-            "type": "array",
-            "items": {
-                "type": "object",
-                "oneOf": [
-                    { "$ref": "./sections/cper-generic-processor.json" },
-                    { "$ref": "./sections/cper-ia32x64-processor.json" },
-                    { "$ref": "./sections/cper-arm-processor.json" },
-                    { "$ref": "./sections/cper-memory.json" },
-                    { "$ref": "./sections/cper-memory2.json" },
-                    { "$ref": "./sections/cper-pcie.json" },
-                    { "$ref": "./sections/cper-pci-bus.json" },
-                    { "$ref": "./sections/cper-pci-component.json" },
-                    { "$ref": "./sections/cper-firmware.json" },
-                    { "$ref": "./sections/cper-generic-dmar.json" },
-                    { "$ref": "./sections/cper-vtd-dmar.json" },
-                    { "$ref": "./sections/cper-iommu-dmar.json" },
-                    { "$ref": "./sections/cper-ccix-per.json" },
-                    { "$ref": "./sections/cper-cxl-protocol.json" },
-                    { "$ref": "./sections/cper-cxl-component.json" },
-                    { "$ref": "./sections/cper-unknown.json" }
-                ]
-            }
-        }
-    }
+    "oneOf": [
+        { "$ref": "./cper-json-full-log.json" },
+        { "$ref": "./cper-json-section-log.json" }
+    ]
 }
\ No newline at end of file
