Adding an opaque Platform message with keys and values. As a first step
towards cross-platform support, we will add a hack that takes some values via
a command line flag, and pass them on to a remote execution engine (next CL).

TESTED=no change
RELNOTES: n/a

--
PiperOrigin-RevId: 149753326
MOS_MIGRATED_REVID=149753326
diff --git a/src/main/protobuf/remote_protocol.proto b/src/main/protobuf/remote_protocol.proto
index c094feb..e8f60cc 100644
--- a/src/main/protobuf/remote_protocol.proto
+++ b/src/main/protobuf/remote_protocol.proto
@@ -32,12 +32,14 @@
   bool executable = 3;
 }
 
+// A Platform is defined by a set of opaque name-value pairs.
 message Platform {
-  // The contents of this message will be determined later, with the purpose of
-  // specifying everything that is required for the action execution, but cannot
-  // be uploaded as part of the inputs.
-  // It will likely contain fields as architecture, vendor, OS + version,
-  // ABI, etc.
+  message Property {
+    string name = 1;
+    string value = 2;
+  }
+  // Entries are sorted by name,value to ensure a canonical form.
+  repeated Property entry = 1;
 }
 
 // All the fields of this message have the following in common: they are