diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02Process.java b/src/main/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02Process.java
index b98119c..3f28f77 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02Process.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02Process.java
@@ -281,12 +281,14 @@
   private static void writeMapping(JsonWriter writer, Mapping mapping) throws IOException {
     writer.beginObject();
     {
-      writer.name("path");
+      writer.name("p");
       writer.value(mapping.path().getPathString());
-      writer.name("underlying_path");
+      writer.name("u");
       writer.value(mapping.target().getPathString());
-      writer.name("writable");
-      writer.value(mapping.writable());
+      if (mapping.writable()) {
+        writer.name("w");
+        writer.value(mapping.writable());
+      }
     }
     writer.endObject();
   }
@@ -300,12 +302,12 @@
     synchronized (this) {
       processStdIn.beginObject();
       {
-        processStdIn.name("CreateSandbox");
+        processStdIn.name("C");
         processStdIn.beginObject();
         {
-          processStdIn.name("id");
+          processStdIn.name("i");
           processStdIn.value(id);
-          processStdIn.name("mappings");
+          processStdIn.name("m");
           processStdIn.beginArray();
           for (Mapping mapping : mappings) {
             writeMapping(processStdIn, mapping);
@@ -330,7 +332,7 @@
     synchronized (this) {
       processStdIn.beginObject();
       {
-        processStdIn.name("DestroySandbox");
+        processStdIn.name("D");
         processStdIn.value(id);
       }
       processStdIn.endObject();
diff --git a/src/test/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02ProcessTest.java b/src/test/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02ProcessTest.java
index 9d25510..48269d2 100644
--- a/src/test/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02ProcessTest.java
+++ b/src/test/java/com/google/devtools/build/lib/sandbox/RealSandboxfs02ProcessTest.java
@@ -39,7 +39,7 @@
   @Test
   public void testNoActivity() throws IOException {
     SandboxfsProcess process = createAndStartFakeSandboxfs(ImmutableList.of("{\"id\":\"empty\"}"));
-    String expectedRequests = "{\"CreateSandbox\":{\"id\":\"empty\",\"mappings\":[]}}";
+    String expectedRequests = "{\"C\":{\"i\":\"empty\",\"m\":[]}}";
     verifyFakeSandboxfsExecution(process, expectedRequests);
   }
 
@@ -61,15 +61,21 @@
                 .setPath(PathFragment.create("/"))
                 .setTarget(PathFragment.create("/some/path"))
                 .setWritable(true)
+                .build(),
+            Mapping.builder()
+                .setPath(PathFragment.create("/a/b/c"))
+                .setTarget(PathFragment.create("/other"))
+                .setWritable(false)
                 .build()));
     process.destroySandbox("sandbox1");
     String expectedRequests =
-        "{\"CreateSandbox\":{\"id\":\"empty\",\"mappings\":[]}}"
-            + "{\"CreateSandbox\":{\"id\":\"sandbox1\",\"mappings\":[]}}"
-            + "{\"CreateSandbox\":{\"id\":\"sandbox2\",\"mappings\":["
-            + "{\"path\":\"/\",\"underlying_path\":\"/some/path\",\"writable\":true}"
+        "{\"C\":{\"i\":\"empty\",\"m\":[]}}"
+            + "{\"C\":{\"i\":\"sandbox1\",\"m\":[]}}"
+            + "{\"C\":{\"i\":\"sandbox2\",\"m\":["
+            + "{\"p\":\"/\",\"u\":\"/some/path\",\"w\":true},"
+            + "{\"p\":\"/a/b/c\",\"u\":\"/other\"}"
             + "]}}"
-            + "{\"DestroySandbox\":\"sandbox1\"}";
+            + "{\"D\":\"sandbox1\"}";
 
     verifyFakeSandboxfsExecution(process, expectedRequests);
   }
