@Nonnull
	private static List<RemovePath> deserializeRemovals(@Nonnull Workspace workspace, @Nonnull JsonReader jr) throws IOException, PatchGenerationException {
		List<RemovePath> removals = new ArrayList<>();
		jr.beginArray();
		while (jr.hasNext()) {
			String name = null;
			String type = null;
			jr.beginObject();
			while (jr.hasNext()) {
				String key = jr.nextName();
				if (key.equals(KEY_NAME))
					name = jr.nextString();
				else if (key.equals(KEY_TYPE))
					type = jr.nextString();
			}
			jr.endObject();

			// Construct the removal
			if (name != null) {
				// If the classes/files do not exist in the workspace then our job is already done,
				// and we don't need to include these in the final patch model.
				if (TYPE_CLASS.equals(type)) {
					FilePathNode path = workspace.findFile(name);
					if (path != null) removals.add(new RemovePath(path));
				} else if (TYPE_FILE.equals(type)) {
					ClassPathNode path = workspace.findClass(name);
					if (path != null) removals.add(new RemovePath(path));
				}
			}
		}
		jr.endArray();
		return removals;
	}
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