@Nonnull
	private static List<JvmAssemblerPatch> deserializeClassJvmAsmDiffs(@Nonnull Workspace workspace, @Nonnull JsonReader jr) throws IOException, PatchGenerationException {
		List<JvmAssemblerPatch> patches = new ArrayList<>();
		jr.beginArray();
		while (jr.hasNext()) {
			String name = null;
			List<StringDiff.Diff> diffs = Collections.emptyList();
			jr.beginObject();
			while (jr.hasNext()) {
				String key = jr.nextName();
				if (key.equals(KEY_NAME))
					name = jr.nextString();
				else if (key.equals(KEY_DIFFS))
					diffs = deserializeStringDiffs(jr);
			}
			jr.endObject();

			// Construct the patch
			if (name != null && !diffs.isEmpty()) {
				ClassPathNode classPath = workspace.findJvmClass(name);
				if (classPath == null)
					throw new PatchGenerationException("'" + name + "' cannot be found in the given workspace");
				patches.add(new JvmAssemblerPatch(classPath, diffs));
			}
		}
		jr.endArray();
		return patches;
	}
Maps a JSON file into a workspace patch.

@param workspace
		Workspace to apply the patch to.
@param patchContents
		JSON outlining patch contents.

@return A workspace patch instance.

@throws PatchGenerationException
		When the JSON file couldn't be parsed, or its contents could not be found in the workspace.
recaf-core/src/main/java/software/coley/recaf/services/workspace/patch/PatchSerialization.java