[current results] Regenerate protobuf generated classes

After updating the packages for the current results server,
regenerate the protobuf generated classes to use the new
protobuf 3.1.0 package version.

Updates the README.md with updated deployment instructions
and information.

Change-Id: Id2ddb5d5bac577ce16e3812ae54ea311541946b7
Reviewed-on: https://dart-review.googlesource.com/c/dart_ci/+/324320
Reviewed-by: Alexander Thomas <athom@google.com>
diff --git a/current_results/README.md b/current_results/README.md
index 3411e6e..ed24728 100644
--- a/current_results/README.md
+++ b/current_results/README.md
@@ -2,7 +2,11 @@
 
 This server runs on Google Cloud Run, and provides the most recent test results
 from the Dart CI (continuous integration) testing visible at
-https://ci.chromium.org/p/dart/g/be/console
+https://ci.chromium.org/p/dart/g/be/console.
+
+This service is the backend for https://dart-current-results.web.app/
+which provides a filterable view of the current test status across
+all configurations.
 
 ## Build and deploy
 
@@ -23,55 +27,45 @@
 - A copy of https://github.com/protocolbuffers/protobuf
 
 To generate the required Dart files for the protos, run
-`tools/generate_protogen.sh` with the environtment variables
+`tools/generate_protogen.sh` with the environment variables
 `GOOGLEAPIS_PATH` and `PROTOBUF_PATH` set to the location of the checkouts
 mentioned above.
 
-### Staging
-To build the server and deploy to cloud run on staging, run
-
-```
-gcloud builds submit --project=dart-ci-staging --tag gcr.io/dart-ci-staging/current_results
-gcloud run deploy --project=dart-ci-staging current-results --image gcr.io/dart-ci-staging/current_results --platform=managed --allow-unauthenticated
-```
-
-Unauthenticated access is allowed only while the server being developed does
-not modify any data, remove that flag before adding APIs that modify data.
-
-### Production XXX NOT READY YET
-To build the server and deploy to cloud run on production, run
+### Deployment
+To build the server and deploy to production, run
 
 ```
 gcloud builds submit --project=dart-ci --tag gcr.io/dart-ci/current_results
-gcloud run deploy --project=dart-ci current-results --image gcr.io/dart-ci/current_results --platform=managed
 ```
+When that build has completed successfully, run
+```
+gcloud compute ssh current-results-server --project=dart-ci --zone=us-central1-a --command="docker kill current-results; docker rm current-results; docker pull gcr.io/dart-ci/current_results"
+gcloud compute ssh current-results-server --project=dart-ci --zone=us-central1-a --command="docker run -d --net=bridge_net --publish=8080:8080 --name=current-results gcr.io/dart-ci/current_results"
+```
+
+There is also a REST proxy which provides the public REST api for this backend server.
+Instructions on deploying this ESPv2 proxy (https://github.com/GoogleCloudPlatform/esp-v2)
+are in internal team documentation. The connection between the public REST api and the gRPC api
+is configured in the lib/protos/query.proto file in this repository.
 
 ## Services
 
 ### Data cached by server
 
-The server reads the current results.json and flaky.json from cloud storage
-at gs://dart-test-results/configuration/master/[configuration name]/[build number]/
-and stores selected fields from those records in memory. (Flaky.json reads not
-implemented).
+The server reads the current results.json from cloud storage
+at gs://dart-test-results/configuration/main/[configuration name]/[build number]/
+and caches selected fields from those records in memory.
 
 ### Updating results data
 
 The server exposes a service to Pub/Sub on the same project, which is
 triggered by any object creation on the dart-test-results bucket.  If the
-object is a /configuration/master/[configuration name]/latest file, the build
-number is read from that file and the cached results.json and flaky.json are
+object is a /configuration/main/[configuration name]/latest file, the build
+number is read from that file and the cached results.json is
 updated from that build.
 
 ### Serving results data
 
 A gRPC service is defined, with a query message type and a response message
-type defined by protocol buffers.  It will allow queries by test name or
-test name prefix and by configuration or configuration set.
-
-### Managing flakiness
-
-APIs will be defined to query current flakiness data, and to revoke the
-flakiness mark on test-configuration pairs.  When designing the API to
-revoke flakiness, security and auditing concerns must be addressed by
-requiring authentication.
\ No newline at end of file
+type defined by protocol buffers.  It allows test result queries by test name or
+test name prefix and by configuration or configuration prefix.
diff --git a/current_results/lib/src/generated/query.pb.dart b/current_results/lib/src/generated/query.pb.dart
index 64eb747..82303ff 100644
--- a/current_results/lib/src/generated/query.pb.dart
+++ b/current_results/lib/src/generated/query.pb.dart
@@ -1,34 +1,35 @@
-///
+//
 //  Generated code. Do not modify.
 //  source: query.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+
+// ignore_for_file: annotate_overrides, camel_case_types, comment_references
+// ignore_for_file: constant_identifier_names, library_prefixes
+// ignore_for_file: non_constant_identifier_names, prefer_final_fields
+// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
 
 import 'dart:core' as $core;
 
 import 'package:protobuf/protobuf.dart' as $pb;
 
 class Empty extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'Empty',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..hasRequiredFields = false;
-
-  Empty._() : super();
   factory Empty() => create();
+  Empty._() : super();
   factory Empty.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory Empty.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'Empty',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -37,9 +38,10 @@
       'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
       'Will be removed in next major version')
   Empty copyWith(void Function(Empty) updates) =>
-      super.copyWith((message) => updates(message as Empty))
-          as Empty; // ignore: deprecated_member_use
+      super.copyWith((message) => updates(message as Empty)) as Empty;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static Empty create() => Empty._();
   Empty createEmptyInstance() => create();
@@ -51,57 +53,41 @@
 }
 
 class GetResultsRequest extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'GetResultsRequest',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..aOS(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'filter')
-    ..a<$core.int>(
-        2,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'pageSize',
-        $pb.PbFieldType.O3)
-    ..aOS(
-        3,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'pageToken')
-    ..hasRequiredFields = false;
-
-  GetResultsRequest._() : super();
   factory GetResultsRequest({
     $core.String? filter,
     $core.int? pageSize,
     $core.String? pageToken,
   }) {
-    final _result = create();
+    final $result = create();
     if (filter != null) {
-      _result.filter = filter;
+      $result.filter = filter;
     }
     if (pageSize != null) {
-      _result.pageSize = pageSize;
+      $result.pageSize = pageSize;
     }
     if (pageToken != null) {
-      _result.pageToken = pageToken;
+      $result.pageToken = pageToken;
     }
-    return _result;
+    return $result;
   }
+  GetResultsRequest._() : super();
   factory GetResultsRequest.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory GetResultsRequest.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'GetResultsRequest',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..aOS(1, _omitFieldNames ? '' : 'filter')
+    ..a<$core.int>(2, _omitFieldNames ? '' : 'pageSize', $pb.PbFieldType.O3)
+    ..aOS(3, _omitFieldNames ? '' : 'pageToken')
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -111,8 +97,10 @@
       'Will be removed in next major version')
   GetResultsRequest copyWith(void Function(GetResultsRequest) updates) =>
       super.copyWith((message) => updates(message as GetResultsRequest))
-          as GetResultsRequest; // ignore: deprecated_member_use
+          as GetResultsRequest;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static GetResultsRequest create() => GetResultsRequest._();
   GetResultsRequest createEmptyInstance() => create();
@@ -123,6 +111,11 @@
       $pb.GeneratedMessage.$_defaultFor<GetResultsRequest>(create);
   static GetResultsRequest? _defaultInstance;
 
+  /// The filter contains test names and test name prefixes, and configuration
+  /// names, separated by commas. If there are test names and/or test name
+  /// prefixes, only results for tests matching them are returned.
+  /// If there are configuration names, only results on those configurations
+  /// are returned. If absent, return all results.
   @$pb.TagNumber(1)
   $core.String get filter => $_getSZ(0);
   @$pb.TagNumber(1)
@@ -135,6 +128,10 @@
   @$pb.TagNumber(1)
   void clearFilter() => clearField(1);
 
+  /// The maximum number of results to return.
+  /// The service may return fewer than this value.
+  /// If unspecified, will be 100,000.
+  /// The maximum value is 100,000.
   @$pb.TagNumber(2)
   $core.int get pageSize => $_getIZ(1);
   @$pb.TagNumber(2)
@@ -147,6 +144,8 @@
   @$pb.TagNumber(2)
   void clearPageSize() => clearField(2);
 
+  /// The page token received from a previous call to GetResults.
+  /// All arguments except page_size must be identical to the previous call.
   @$pb.TagNumber(3)
   $core.String get pageToken => $_getSZ(2);
   @$pb.TagNumber(3)
@@ -161,46 +160,37 @@
 }
 
 class GetResultsResponse extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'GetResultsResponse',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..pc<Result>(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'results',
-        $pb.PbFieldType.PM,
-        subBuilder: Result.create)
-    ..aOS(2,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'nextPageToken')
-    ..hasRequiredFields = false;
-
-  GetResultsResponse._() : super();
   factory GetResultsResponse({
     $core.Iterable<Result>? results,
     $core.String? nextPageToken,
   }) {
-    final _result = create();
+    final $result = create();
     if (results != null) {
-      _result.results.addAll(results);
+      $result.results.addAll(results);
     }
     if (nextPageToken != null) {
-      _result.nextPageToken = nextPageToken;
+      $result.nextPageToken = nextPageToken;
     }
-    return _result;
+    return $result;
   }
+  GetResultsResponse._() : super();
   factory GetResultsResponse.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory GetResultsResponse.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'GetResultsResponse',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..pc<Result>(1, _omitFieldNames ? '' : 'results', $pb.PbFieldType.PM,
+        subBuilder: Result.create)
+    ..aOS(2, _omitFieldNames ? '' : 'nextPageToken')
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -210,8 +200,10 @@
       'Will be removed in next major version')
   GetResultsResponse copyWith(void Function(GetResultsResponse) updates) =>
       super.copyWith((message) => updates(message as GetResultsResponse))
-          as GetResultsResponse; // ignore: deprecated_member_use
+          as GetResultsResponse;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static GetResultsResponse create() => GetResultsResponse._();
   GetResultsResponse createEmptyInstance() => create();
@@ -225,6 +217,8 @@
   @$pb.TagNumber(1)
   $core.List<Result> get results => $_getList(0);
 
+  /// A token, which can be sent as `page_token` to retrieve the next page.
+  /// If this field is omitted, there are no subsequent pages.
   @$pb.TagNumber(2)
   $core.String get nextPageToken => $_getSZ(1);
   @$pb.TagNumber(2)
@@ -239,39 +233,6 @@
 }
 
 class Result extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'Result',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..aOS(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'name')
-    ..aOS(
-        2,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'configuration')
-    ..aOS(
-        3,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'result')
-    ..aOS(4,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'expected')
-    ..aOB(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'flaky')
-    ..a<$core.int>(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'timeMs', $pb.PbFieldType.O3)
-    ..pPS(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'experiments')
-    ..aOS(8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'revision')
-    ..hasRequiredFields = false;
-
-  Result._() : super();
   factory Result({
     $core.String? name,
     $core.String? configuration,
@@ -282,39 +243,56 @@
     $core.Iterable<$core.String>? experiments,
     $core.String? revision,
   }) {
-    final _result = create();
+    final $result = create();
     if (name != null) {
-      _result.name = name;
+      $result.name = name;
     }
     if (configuration != null) {
-      _result.configuration = configuration;
+      $result.configuration = configuration;
     }
     if (result != null) {
-      _result.result = result;
+      $result.result = result;
     }
     if (expected != null) {
-      _result.expected = expected;
+      $result.expected = expected;
     }
     if (flaky != null) {
-      _result.flaky = flaky;
+      $result.flaky = flaky;
     }
     if (timeMs != null) {
-      _result.timeMs = timeMs;
+      $result.timeMs = timeMs;
     }
     if (experiments != null) {
-      _result.experiments.addAll(experiments);
+      $result.experiments.addAll(experiments);
     }
     if (revision != null) {
-      _result.revision = revision;
+      $result.revision = revision;
     }
-    return _result;
+    return $result;
   }
+  Result._() : super();
   factory Result.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory Result.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'Result',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..aOS(1, _omitFieldNames ? '' : 'name')
+    ..aOS(2, _omitFieldNames ? '' : 'configuration')
+    ..aOS(3, _omitFieldNames ? '' : 'result')
+    ..aOS(4, _omitFieldNames ? '' : 'expected')
+    ..aOB(5, _omitFieldNames ? '' : 'flaky')
+    ..a<$core.int>(6, _omitFieldNames ? '' : 'timeMs', $pb.PbFieldType.O3)
+    ..pPS(7, _omitFieldNames ? '' : 'experiments')
+    ..aOS(8, _omitFieldNames ? '' : 'revision')
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -323,9 +301,10 @@
       'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
       'Will be removed in next major version')
   Result copyWith(void Function(Result) updates) =>
-      super.copyWith((message) => updates(message as Result))
-          as Result; // ignore: deprecated_member_use
+      super.copyWith((message) => updates(message as Result)) as Result;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static Result create() => Result._();
   Result createEmptyInstance() => create();
@@ -424,48 +403,36 @@
 }
 
 class ListTestsRequest extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'ListTestsRequest',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..aOS(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'prefix')
-    ..a<$core.int>(
-        2,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'limit',
-        $pb.PbFieldType.O3)
-    ..hasRequiredFields = false;
-
-  ListTestsRequest._() : super();
   factory ListTestsRequest({
     $core.String? prefix,
     $core.int? limit,
   }) {
-    final _result = create();
+    final $result = create();
     if (prefix != null) {
-      _result.prefix = prefix;
+      $result.prefix = prefix;
     }
     if (limit != null) {
-      _result.limit = limit;
+      $result.limit = limit;
     }
-    return _result;
+    return $result;
   }
+  ListTestsRequest._() : super();
   factory ListTestsRequest.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory ListTestsRequest.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'ListTestsRequest',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..aOS(1, _omitFieldNames ? '' : 'prefix')
+    ..a<$core.int>(2, _omitFieldNames ? '' : 'limit', $pb.PbFieldType.O3)
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -475,8 +442,10 @@
       'Will be removed in next major version')
   ListTestsRequest copyWith(void Function(ListTestsRequest) updates) =>
       super.copyWith((message) => updates(message as ListTestsRequest))
-          as ListTestsRequest; // ignore: deprecated_member_use
+          as ListTestsRequest;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static ListTestsRequest create() => ListTestsRequest._();
   ListTestsRequest createEmptyInstance() => create();
@@ -513,38 +482,31 @@
 }
 
 class ListTestsResponse extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'ListTestsResponse',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..pPS(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'names')
-    ..hasRequiredFields = false;
-
-  ListTestsResponse._() : super();
   factory ListTestsResponse({
     $core.Iterable<$core.String>? names,
   }) {
-    final _result = create();
+    final $result = create();
     if (names != null) {
-      _result.names.addAll(names);
+      $result.names.addAll(names);
     }
-    return _result;
+    return $result;
   }
+  ListTestsResponse._() : super();
   factory ListTestsResponse.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory ListTestsResponse.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'ListTestsResponse',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..pPS(1, _omitFieldNames ? '' : 'names')
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -554,8 +516,10 @@
       'Will be removed in next major version')
   ListTestsResponse copyWith(void Function(ListTestsResponse) updates) =>
       super.copyWith((message) => updates(message as ListTestsResponse))
-          as ListTestsResponse; // ignore: deprecated_member_use
+          as ListTestsResponse;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static ListTestsResponse create() => ListTestsResponse._();
   ListTestsResponse createEmptyInstance() => create();
@@ -571,38 +535,31 @@
 }
 
 class ListConfigurationsRequest extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'ListConfigurationsRequest',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..aOS(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'prefix')
-    ..hasRequiredFields = false;
-
-  ListConfigurationsRequest._() : super();
   factory ListConfigurationsRequest({
     $core.String? prefix,
   }) {
-    final _result = create();
+    final $result = create();
     if (prefix != null) {
-      _result.prefix = prefix;
+      $result.prefix = prefix;
     }
-    return _result;
+    return $result;
   }
+  ListConfigurationsRequest._() : super();
   factory ListConfigurationsRequest.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory ListConfigurationsRequest.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'ListConfigurationsRequest',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..aOS(1, _omitFieldNames ? '' : 'prefix')
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -614,8 +571,10 @@
   ListConfigurationsRequest copyWith(
           void Function(ListConfigurationsRequest) updates) =>
       super.copyWith((message) => updates(message as ListConfigurationsRequest))
-          as ListConfigurationsRequest; // ignore: deprecated_member_use
+          as ListConfigurationsRequest;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static ListConfigurationsRequest create() => ListConfigurationsRequest._();
   ListConfigurationsRequest createEmptyInstance() => create();
@@ -640,38 +599,31 @@
 }
 
 class ListConfigurationsResponse extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'ListConfigurationsResponse',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..pPS(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'configurations')
-    ..hasRequiredFields = false;
-
-  ListConfigurationsResponse._() : super();
   factory ListConfigurationsResponse({
     $core.Iterable<$core.String>? configurations,
   }) {
-    final _result = create();
+    final $result = create();
     if (configurations != null) {
-      _result.configurations.addAll(configurations);
+      $result.configurations.addAll(configurations);
     }
-    return _result;
+    return $result;
   }
+  ListConfigurationsResponse._() : super();
   factory ListConfigurationsResponse.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory ListConfigurationsResponse.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'ListConfigurationsResponse',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..pPS(1, _omitFieldNames ? '' : 'configurations')
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -684,8 +636,10 @@
           void Function(ListConfigurationsResponse) updates) =>
       super.copyWith(
               (message) => updates(message as ListConfigurationsResponse))
-          as ListConfigurationsResponse; // ignore: deprecated_member_use
+          as ListConfigurationsResponse;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static ListConfigurationsResponse create() => ListConfigurationsResponse._();
   ListConfigurationsResponse createEmptyInstance() => create();
@@ -701,40 +655,33 @@
 }
 
 class FetchResponse extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'FetchResponse',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..pc<ConfigurationUpdate>(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'updates',
-        $pb.PbFieldType.PM,
-        subBuilder: ConfigurationUpdate.create)
-    ..hasRequiredFields = false;
-
-  FetchResponse._() : super();
   factory FetchResponse({
     $core.Iterable<ConfigurationUpdate>? updates,
   }) {
-    final _result = create();
+    final $result = create();
     if (updates != null) {
-      _result.updates.addAll(updates);
+      $result.updates.addAll(updates);
     }
-    return _result;
+    return $result;
   }
+  FetchResponse._() : super();
   factory FetchResponse.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory FetchResponse.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'FetchResponse',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..pc<ConfigurationUpdate>(
+        1, _omitFieldNames ? '' : 'updates', $pb.PbFieldType.PM,
+        subBuilder: ConfigurationUpdate.create)
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -744,8 +691,10 @@
       'Will be removed in next major version')
   FetchResponse copyWith(void Function(FetchResponse) updates) =>
       super.copyWith((message) => updates(message as FetchResponse))
-          as FetchResponse; // ignore: deprecated_member_use
+          as FetchResponse;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static FetchResponse create() => FetchResponse._();
   FetchResponse createEmptyInstance() => create();
@@ -761,38 +710,31 @@
 }
 
 class ConfigurationUpdate extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'ConfigurationUpdate',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'current_results'),
-      createEmptyInstance: create)
-    ..aOS(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'configuration')
-    ..hasRequiredFields = false;
-
-  ConfigurationUpdate._() : super();
   factory ConfigurationUpdate({
     $core.String? configuration,
   }) {
-    final _result = create();
+    final $result = create();
     if (configuration != null) {
-      _result.configuration = configuration;
+      $result.configuration = configuration;
     }
-    return _result;
+    return $result;
   }
+  ConfigurationUpdate._() : super();
   factory ConfigurationUpdate.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory ConfigurationUpdate.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'ConfigurationUpdate',
+      package:
+          const $pb.PackageName(_omitMessageNames ? '' : 'current_results'),
+      createEmptyInstance: create)
+    ..aOS(1, _omitFieldNames ? '' : 'configuration')
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -802,8 +744,10 @@
       'Will be removed in next major version')
   ConfigurationUpdate copyWith(void Function(ConfigurationUpdate) updates) =>
       super.copyWith((message) => updates(message as ConfigurationUpdate))
-          as ConfigurationUpdate; // ignore: deprecated_member_use
+          as ConfigurationUpdate;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static ConfigurationUpdate create() => ConfigurationUpdate._();
   ConfigurationUpdate createEmptyInstance() => create();
@@ -826,3 +770,7 @@
   @$pb.TagNumber(1)
   void clearConfiguration() => clearField(1);
 }
+
+const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
+const _omitMessageNames =
+    $core.bool.fromEnvironment('protobuf.omit_message_names');
diff --git a/current_results/lib/src/generated/query.pbenum.dart b/current_results/lib/src/generated/query.pbenum.dart
index 9937c96..069c66c 100644
--- a/current_results/lib/src/generated/query.pbenum.dart
+++ b/current_results/lib/src/generated/query.pbenum.dart
@@ -1,6 +1,10 @@
-///
+//
 //  Generated code. Do not modify.
 //  source: query.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+
+// ignore_for_file: annotate_overrides, camel_case_types, comment_references
+// ignore_for_file: constant_identifier_names, library_prefixes
+// ignore_for_file: non_constant_identifier_names, prefer_final_fields
+// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
diff --git a/current_results/lib/src/generated/query.pbgrpc.dart b/current_results/lib/src/generated/query.pbgrpc.dart
index ea2377c..a74b742 100644
--- a/current_results/lib/src/generated/query.pbgrpc.dart
+++ b/current_results/lib/src/generated/query.pbgrpc.dart
@@ -1,18 +1,25 @@
-///
+//
 //  Generated code. Do not modify.
 //  source: query.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+
+// ignore_for_file: annotate_overrides, camel_case_types, comment_references
+// ignore_for_file: constant_identifier_names, library_prefixes
+// ignore_for_file: non_constant_identifier_names, prefer_final_fields
+// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
 
 import 'dart:async' as $async;
-
 import 'dart:core' as $core;
 
 import 'package:grpc/service_api.dart' as $grpc;
+import 'package:protobuf/protobuf.dart' as $pb;
+
 import 'query.pb.dart' as $0;
+
 export 'query.pb.dart';
 
+@$pb.GrpcServiceName('current_results.Query')
 class QueryClient extends $grpc.Client {
   static final _$getResults =
       $grpc.ClientMethod<$0.GetResultsRequest, $0.GetResultsResponse>(
@@ -79,6 +86,7 @@
   }
 }
 
+@$pb.GrpcServiceName('current_results.Query')
 abstract class QueryServiceBase extends $grpc.Service {
   $core.String get $name => 'current_results.Query';
 
diff --git a/current_results/lib/src/generated/query.pbjson.dart b/current_results/lib/src/generated/query.pbjson.dart
index a19a7c9..f9dac44 100644
--- a/current_results/lib/src/generated/query.pbjson.dart
+++ b/current_results/lib/src/generated/query.pbjson.dart
@@ -1,40 +1,47 @@
-///
+//
 //  Generated code. Do not modify.
 //  source: query.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
 
-import 'dart:core' as $core;
+// ignore_for_file: annotate_overrides, camel_case_types, comment_references
+// ignore_for_file: constant_identifier_names, library_prefixes
+// ignore_for_file: non_constant_identifier_names, prefer_final_fields
+// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
+
 import 'dart:convert' as $convert;
+import 'dart:core' as $core;
 import 'dart:typed_data' as $typed_data;
 
 @$core.Deprecated('Use emptyDescriptor instead')
-const Empty$json = const {
+const Empty$json = {
   '1': 'Empty',
 };
 
 /// Descriptor for `Empty`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List emptyDescriptor =
     $convert.base64Decode('CgVFbXB0eQ==');
+
 @$core.Deprecated('Use getResultsRequestDescriptor instead')
-const GetResultsRequest$json = const {
+const GetResultsRequest$json = {
   '1': 'GetResultsRequest',
-  '2': const [
-    const {'1': 'filter', '3': 1, '4': 1, '5': 9, '10': 'filter'},
-    const {'1': 'page_size', '3': 2, '4': 1, '5': 5, '10': 'pageSize'},
-    const {'1': 'page_token', '3': 3, '4': 1, '5': 9, '10': 'pageToken'},
+  '2': [
+    {'1': 'filter', '3': 1, '4': 1, '5': 9, '10': 'filter'},
+    {'1': 'page_size', '3': 2, '4': 1, '5': 5, '10': 'pageSize'},
+    {'1': 'page_token', '3': 3, '4': 1, '5': 9, '10': 'pageToken'},
   ],
 };
 
 /// Descriptor for `GetResultsRequest`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List getResultsRequestDescriptor = $convert.base64Decode(
-    'ChFHZXRSZXN1bHRzUmVxdWVzdBIWCgZmaWx0ZXIYASABKAlSBmZpbHRlchIbCglwYWdlX3NpemUYAiABKAVSCHBhZ2VTaXplEh0KCnBhZ2VfdG9rZW4YAyABKAlSCXBhZ2VUb2tlbg==');
+    'ChFHZXRSZXN1bHRzUmVxdWVzdBIWCgZmaWx0ZXIYASABKAlSBmZpbHRlchIbCglwYWdlX3Npem'
+    'UYAiABKAVSCHBhZ2VTaXplEh0KCnBhZ2VfdG9rZW4YAyABKAlSCXBhZ2VUb2tlbg==');
+
 @$core.Deprecated('Use getResultsResponseDescriptor instead')
-const GetResultsResponse$json = const {
+const GetResultsResponse$json = {
   '1': 'GetResultsResponse',
-  '2': const [
-    const {
+  '2': [
+    {
       '1': 'results',
       '3': 1,
       '4': 3,
@@ -42,65 +49,69 @@
       '6': '.current_results.Result',
       '10': 'results'
     },
-    const {
-      '1': 'next_page_token',
-      '3': 2,
-      '4': 1,
-      '5': 9,
-      '10': 'nextPageToken'
-    },
+    {'1': 'next_page_token', '3': 2, '4': 1, '5': 9, '10': 'nextPageToken'},
   ],
 };
 
 /// Descriptor for `GetResultsResponse`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List getResultsResponseDescriptor = $convert.base64Decode(
-    'ChJHZXRSZXN1bHRzUmVzcG9uc2USMQoHcmVzdWx0cxgBIAMoCzIXLmN1cnJlbnRfcmVzdWx0cy5SZXN1bHRSB3Jlc3VsdHMSJgoPbmV4dF9wYWdlX3Rva2VuGAIgASgJUg1uZXh0UGFnZVRva2Vu');
+    'ChJHZXRSZXN1bHRzUmVzcG9uc2USMQoHcmVzdWx0cxgBIAMoCzIXLmN1cnJlbnRfcmVzdWx0cy'
+    '5SZXN1bHRSB3Jlc3VsdHMSJgoPbmV4dF9wYWdlX3Rva2VuGAIgASgJUg1uZXh0UGFnZVRva2Vu');
+
 @$core.Deprecated('Use resultDescriptor instead')
-const Result$json = const {
+const Result$json = {
   '1': 'Result',
-  '2': const [
-    const {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'},
-    const {'1': 'configuration', '3': 2, '4': 1, '5': 9, '10': 'configuration'},
-    const {'1': 'result', '3': 3, '4': 1, '5': 9, '10': 'result'},
-    const {'1': 'expected', '3': 4, '4': 1, '5': 9, '10': 'expected'},
-    const {'1': 'flaky', '3': 5, '4': 1, '5': 8, '10': 'flaky'},
-    const {'1': 'time_ms', '3': 6, '4': 1, '5': 5, '10': 'timeMs'},
-    const {'1': 'experiments', '3': 7, '4': 3, '5': 9, '10': 'experiments'},
-    const {'1': 'revision', '3': 8, '4': 1, '5': 9, '10': 'revision'},
+  '2': [
+    {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'},
+    {'1': 'configuration', '3': 2, '4': 1, '5': 9, '10': 'configuration'},
+    {'1': 'result', '3': 3, '4': 1, '5': 9, '10': 'result'},
+    {'1': 'expected', '3': 4, '4': 1, '5': 9, '10': 'expected'},
+    {'1': 'flaky', '3': 5, '4': 1, '5': 8, '10': 'flaky'},
+    {'1': 'time_ms', '3': 6, '4': 1, '5': 5, '10': 'timeMs'},
+    {'1': 'experiments', '3': 7, '4': 3, '5': 9, '10': 'experiments'},
+    {'1': 'revision', '3': 8, '4': 1, '5': 9, '10': 'revision'},
   ],
 };
 
 /// Descriptor for `Result`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List resultDescriptor = $convert.base64Decode(
-    'CgZSZXN1bHQSEgoEbmFtZRgBIAEoCVIEbmFtZRIkCg1jb25maWd1cmF0aW9uGAIgASgJUg1jb25maWd1cmF0aW9uEhYKBnJlc3VsdBgDIAEoCVIGcmVzdWx0EhoKCGV4cGVjdGVkGAQgASgJUghleHBlY3RlZBIUCgVmbGFreRgFIAEoCFIFZmxha3kSFwoHdGltZV9tcxgGIAEoBVIGdGltZU1zEiAKC2V4cGVyaW1lbnRzGAcgAygJUgtleHBlcmltZW50cxIaCghyZXZpc2lvbhgIIAEoCVIIcmV2aXNpb24=');
+    'CgZSZXN1bHQSEgoEbmFtZRgBIAEoCVIEbmFtZRIkCg1jb25maWd1cmF0aW9uGAIgASgJUg1jb2'
+    '5maWd1cmF0aW9uEhYKBnJlc3VsdBgDIAEoCVIGcmVzdWx0EhoKCGV4cGVjdGVkGAQgASgJUghl'
+    'eHBlY3RlZBIUCgVmbGFreRgFIAEoCFIFZmxha3kSFwoHdGltZV9tcxgGIAEoBVIGdGltZU1zEi'
+    'AKC2V4cGVyaW1lbnRzGAcgAygJUgtleHBlcmltZW50cxIaCghyZXZpc2lvbhgIIAEoCVIIcmV2'
+    'aXNpb24=');
+
 @$core.Deprecated('Use listTestsRequestDescriptor instead')
-const ListTestsRequest$json = const {
+const ListTestsRequest$json = {
   '1': 'ListTestsRequest',
-  '2': const [
-    const {'1': 'prefix', '3': 1, '4': 1, '5': 9, '10': 'prefix'},
-    const {'1': 'limit', '3': 2, '4': 1, '5': 5, '10': 'limit'},
+  '2': [
+    {'1': 'prefix', '3': 1, '4': 1, '5': 9, '10': 'prefix'},
+    {'1': 'limit', '3': 2, '4': 1, '5': 5, '10': 'limit'},
   ],
 };
 
 /// Descriptor for `ListTestsRequest`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List listTestsRequestDescriptor = $convert.base64Decode(
-    'ChBMaXN0VGVzdHNSZXF1ZXN0EhYKBnByZWZpeBgBIAEoCVIGcHJlZml4EhQKBWxpbWl0GAIgASgFUgVsaW1pdA==');
+    'ChBMaXN0VGVzdHNSZXF1ZXN0EhYKBnByZWZpeBgBIAEoCVIGcHJlZml4EhQKBWxpbWl0GAIgAS'
+    'gFUgVsaW1pdA==');
+
 @$core.Deprecated('Use listTestsResponseDescriptor instead')
-const ListTestsResponse$json = const {
+const ListTestsResponse$json = {
   '1': 'ListTestsResponse',
-  '2': const [
-    const {'1': 'names', '3': 1, '4': 3, '5': 9, '10': 'names'},
+  '2': [
+    {'1': 'names', '3': 1, '4': 3, '5': 9, '10': 'names'},
   ],
 };
 
 /// Descriptor for `ListTestsResponse`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List listTestsResponseDescriptor = $convert
     .base64Decode('ChFMaXN0VGVzdHNSZXNwb25zZRIUCgVuYW1lcxgBIAMoCVIFbmFtZXM=');
+
 @$core.Deprecated('Use listConfigurationsRequestDescriptor instead')
-const ListConfigurationsRequest$json = const {
+const ListConfigurationsRequest$json = {
   '1': 'ListConfigurationsRequest',
-  '2': const [
-    const {'1': 'prefix', '3': 1, '4': 1, '5': 9, '10': 'prefix'},
+  '2': [
+    {'1': 'prefix', '3': 1, '4': 1, '5': 9, '10': 'prefix'},
   ],
 };
 
@@ -108,29 +119,26 @@
 final $typed_data.Uint8List listConfigurationsRequestDescriptor =
     $convert.base64Decode(
         'ChlMaXN0Q29uZmlndXJhdGlvbnNSZXF1ZXN0EhYKBnByZWZpeBgBIAEoCVIGcHJlZml4');
+
 @$core.Deprecated('Use listConfigurationsResponseDescriptor instead')
-const ListConfigurationsResponse$json = const {
+const ListConfigurationsResponse$json = {
   '1': 'ListConfigurationsResponse',
-  '2': const [
-    const {
-      '1': 'configurations',
-      '3': 1,
-      '4': 3,
-      '5': 9,
-      '10': 'configurations'
-    },
+  '2': [
+    {'1': 'configurations', '3': 1, '4': 3, '5': 9, '10': 'configurations'},
   ],
 };
 
 /// Descriptor for `ListConfigurationsResponse`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List listConfigurationsResponseDescriptor =
     $convert.base64Decode(
-        'ChpMaXN0Q29uZmlndXJhdGlvbnNSZXNwb25zZRImCg5jb25maWd1cmF0aW9ucxgBIAMoCVIOY29uZmlndXJhdGlvbnM=');
+        'ChpMaXN0Q29uZmlndXJhdGlvbnNSZXNwb25zZRImCg5jb25maWd1cmF0aW9ucxgBIAMoCVIOY2'
+        '9uZmlndXJhdGlvbnM=');
+
 @$core.Deprecated('Use fetchResponseDescriptor instead')
-const FetchResponse$json = const {
+const FetchResponse$json = {
   '1': 'FetchResponse',
-  '2': const [
-    const {
+  '2': [
+    {
       '1': 'updates',
       '3': 1,
       '4': 3,
@@ -143,15 +151,18 @@
 
 /// Descriptor for `FetchResponse`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List fetchResponseDescriptor = $convert.base64Decode(
-    'Cg1GZXRjaFJlc3BvbnNlEj4KB3VwZGF0ZXMYASADKAsyJC5jdXJyZW50X3Jlc3VsdHMuQ29uZmlndXJhdGlvblVwZGF0ZVIHdXBkYXRlcw==');
+    'Cg1GZXRjaFJlc3BvbnNlEj4KB3VwZGF0ZXMYASADKAsyJC5jdXJyZW50X3Jlc3VsdHMuQ29uZm'
+    'lndXJhdGlvblVwZGF0ZVIHdXBkYXRlcw==');
+
 @$core.Deprecated('Use configurationUpdateDescriptor instead')
-const ConfigurationUpdate$json = const {
+const ConfigurationUpdate$json = {
   '1': 'ConfigurationUpdate',
-  '2': const [
-    const {'1': 'configuration', '3': 1, '4': 1, '5': 9, '10': 'configuration'},
+  '2': [
+    {'1': 'configuration', '3': 1, '4': 1, '5': 9, '10': 'configuration'},
   ],
 };
 
 /// Descriptor for `ConfigurationUpdate`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List configurationUpdateDescriptor = $convert.base64Decode(
-    'ChNDb25maWd1cmF0aW9uVXBkYXRlEiQKDWNvbmZpZ3VyYXRpb24YASABKAlSDWNvbmZpZ3VyYXRpb24=');
+    'ChNDb25maWd1cmF0aW9uVXBkYXRlEiQKDWNvbmZpZ3VyYXRpb24YASABKAlSDWNvbmZpZ3VyYX'
+    'Rpb24=');
diff --git a/current_results/lib/src/generated/result.pb.dart b/current_results/lib/src/generated/result.pb.dart
index b62c19d..0ad5cca 100644
--- a/current_results/lib/src/generated/result.pb.dart
+++ b/current_results/lib/src/generated/result.pb.dart
@@ -1,62 +1,20 @@
-///
+//
 //  Generated code. Do not modify.
 //  source: result.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+
+// ignore_for_file: annotate_overrides, camel_case_types, comment_references
+// ignore_for_file: constant_identifier_names, library_prefixes
+// ignore_for_file: non_constant_identifier_names, prefer_final_fields
+// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
 
 import 'dart:core' as $core;
 
 import 'package:protobuf/protobuf.dart' as $pb;
 
+/// Describes a test run on a single configuration on a SDK commit.
 class Result extends $pb.GeneratedMessage {
-  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
-      const $core.bool.fromEnvironment('protobuf.omit_message_names')
-          ? ''
-          : 'Result',
-      package: const $pb.PackageName(
-          const $core.bool.fromEnvironment('protobuf.omit_message_names')
-              ? ''
-              : 'dart_ci'),
-      createEmptyInstance: create)
-    ..aOS(
-        1,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'name')
-    ..aOS(
-        2,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'configuration')
-    ..a<$core.int>(
-        3,
-        const $core.bool.fromEnvironment('protobuf.omit_field_names')
-            ? ''
-            : 'timeMs',
-        $pb.PbFieldType.O3)
-    ..aOS(
-        4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'result')
-    ..aOS(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'expected')
-    ..aOB(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'matches')
-    ..aOS(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'botName')
-    ..aOS(8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'commitHash')
-    ..aOS(9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'buildNumber')
-    ..aOS(10, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'builderName')
-    ..aOB(11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'flaky')
-    ..aOB(12, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'previousFlaky')
-    ..aOS(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'previousCommitHash')
-    ..a<$core.int>(14, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'previousCommitTime', $pb.PbFieldType.O3)
-    ..aOS(15, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'previousBuildNumber')
-    ..aOS(16, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'previousResult')
-    ..aOB(17, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'changed')
-    ..pPS(18, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'experiments')
-    ..aOS(100, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'suite')
-    ..aOS(101, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'testName')
-    ..a<$core.int>(102, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'commitTime', $pb.PbFieldType.O3)
-    ..hasRequiredFields = false;
-
-  Result._() : super();
   factory Result({
     $core.String? name,
     $core.String? configuration,
@@ -80,78 +38,108 @@
     $core.String? testName,
     $core.int? commitTime,
   }) {
-    final _result = create();
+    final $result = create();
     if (name != null) {
-      _result.name = name;
+      $result.name = name;
     }
     if (configuration != null) {
-      _result.configuration = configuration;
+      $result.configuration = configuration;
     }
     if (timeMs != null) {
-      _result.timeMs = timeMs;
+      $result.timeMs = timeMs;
     }
     if (result != null) {
-      _result.result = result;
+      $result.result = result;
     }
     if (expected != null) {
-      _result.expected = expected;
+      $result.expected = expected;
     }
     if (matches != null) {
-      _result.matches = matches;
+      $result.matches = matches;
     }
     if (botName != null) {
-      _result.botName = botName;
+      $result.botName = botName;
     }
     if (commitHash != null) {
-      _result.commitHash = commitHash;
+      $result.commitHash = commitHash;
     }
     if (buildNumber != null) {
-      _result.buildNumber = buildNumber;
+      $result.buildNumber = buildNumber;
     }
     if (builderName != null) {
-      _result.builderName = builderName;
+      $result.builderName = builderName;
     }
     if (flaky != null) {
-      _result.flaky = flaky;
+      $result.flaky = flaky;
     }
     if (previousFlaky != null) {
-      _result.previousFlaky = previousFlaky;
+      $result.previousFlaky = previousFlaky;
     }
     if (previousCommitHash != null) {
-      _result.previousCommitHash = previousCommitHash;
+      $result.previousCommitHash = previousCommitHash;
     }
     if (previousCommitTime != null) {
-      _result.previousCommitTime = previousCommitTime;
+      $result.previousCommitTime = previousCommitTime;
     }
     if (previousBuildNumber != null) {
-      _result.previousBuildNumber = previousBuildNumber;
+      $result.previousBuildNumber = previousBuildNumber;
     }
     if (previousResult != null) {
-      _result.previousResult = previousResult;
+      $result.previousResult = previousResult;
     }
     if (changed != null) {
-      _result.changed = changed;
+      $result.changed = changed;
     }
     if (experiments != null) {
-      _result.experiments.addAll(experiments);
+      $result.experiments.addAll(experiments);
     }
     if (suite != null) {
-      _result.suite = suite;
+      $result.suite = suite;
     }
     if (testName != null) {
-      _result.testName = testName;
+      $result.testName = testName;
     }
     if (commitTime != null) {
-      _result.commitTime = commitTime;
+      $result.commitTime = commitTime;
     }
-    return _result;
+    return $result;
   }
+  Result._() : super();
   factory Result.fromBuffer($core.List<$core.int> i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromBuffer(i, r);
   factory Result.fromJson($core.String i,
           [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
       create()..mergeFromJson(i, r);
+
+  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
+      _omitMessageNames ? '' : 'Result',
+      package: const $pb.PackageName(_omitMessageNames ? '' : 'dart_ci'),
+      createEmptyInstance: create)
+    ..aOS(1, _omitFieldNames ? '' : 'name')
+    ..aOS(2, _omitFieldNames ? '' : 'configuration')
+    ..a<$core.int>(3, _omitFieldNames ? '' : 'timeMs', $pb.PbFieldType.O3)
+    ..aOS(4, _omitFieldNames ? '' : 'result')
+    ..aOS(5, _omitFieldNames ? '' : 'expected')
+    ..aOB(6, _omitFieldNames ? '' : 'matches')
+    ..aOS(7, _omitFieldNames ? '' : 'botName')
+    ..aOS(8, _omitFieldNames ? '' : 'commitHash')
+    ..aOS(9, _omitFieldNames ? '' : 'buildNumber')
+    ..aOS(10, _omitFieldNames ? '' : 'builderName')
+    ..aOB(11, _omitFieldNames ? '' : 'flaky')
+    ..aOB(12, _omitFieldNames ? '' : 'previousFlaky')
+    ..aOS(13, _omitFieldNames ? '' : 'previousCommitHash')
+    ..a<$core.int>(
+        14, _omitFieldNames ? '' : 'previousCommitTime', $pb.PbFieldType.O3)
+    ..aOS(15, _omitFieldNames ? '' : 'previousBuildNumber')
+    ..aOS(16, _omitFieldNames ? '' : 'previousResult')
+    ..aOB(17, _omitFieldNames ? '' : 'changed')
+    ..pPS(18, _omitFieldNames ? '' : 'experiments')
+    ..aOS(100, _omitFieldNames ? '' : 'suite')
+    ..aOS(101, _omitFieldNames ? '' : 'testName')
+    ..a<$core.int>(102, _omitFieldNames ? '' : 'commitTime', $pb.PbFieldType.O3)
+    ..hasRequiredFields = false;
+
   @$core.Deprecated('Using this can add significant overhead to your binary. '
       'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
       'Will be removed in next major version')
@@ -160,9 +148,10 @@
       'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
       'Will be removed in next major version')
   Result copyWith(void Function(Result) updates) =>
-      super.copyWith((message) => updates(message as Result))
-          as Result; // ignore: deprecated_member_use
+      super.copyWith((message) => updates(message as Result)) as Result;
+
   $pb.BuilderInfo get info_ => _i;
+
   @$core.pragma('dart2js:noInline')
   static Result create() => Result._();
   Result createEmptyInstance() => create();
@@ -415,3 +404,7 @@
   @$pb.TagNumber(102)
   void clearCommitTime() => clearField(102);
 }
+
+const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
+const _omitMessageNames =
+    $core.bool.fromEnvironment('protobuf.omit_message_names');
diff --git a/current_results/lib/src/generated/result.pbenum.dart b/current_results/lib/src/generated/result.pbenum.dart
index 38ec18d..9b665f3 100644
--- a/current_results/lib/src/generated/result.pbenum.dart
+++ b/current_results/lib/src/generated/result.pbenum.dart
@@ -1,6 +1,10 @@
-///
+//
 //  Generated code. Do not modify.
 //  source: result.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields
+
+// ignore_for_file: annotate_overrides, camel_case_types, comment_references
+// ignore_for_file: constant_identifier_names, library_prefixes
+// ignore_for_file: non_constant_identifier_names, prefer_final_fields
+// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
diff --git a/current_results/lib/src/generated/result.pbjson.dart b/current_results/lib/src/generated/result.pbjson.dart
index cd0ad03..170d769 100644
--- a/current_results/lib/src/generated/result.pbjson.dart
+++ b/current_results/lib/src/generated/result.pbjson.dart
@@ -1,72 +1,76 @@
-///
+//
 //  Generated code. Do not modify.
 //  source: result.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
 
-import 'dart:core' as $core;
+// ignore_for_file: annotate_overrides, camel_case_types, comment_references
+// ignore_for_file: constant_identifier_names, library_prefixes
+// ignore_for_file: non_constant_identifier_names, prefer_final_fields
+// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
+
 import 'dart:convert' as $convert;
+import 'dart:core' as $core;
 import 'dart:typed_data' as $typed_data;
 
 @$core.Deprecated('Use resultDescriptor instead')
-const Result$json = const {
+const Result$json = {
   '1': 'Result',
-  '2': const [
-    const {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'},
-    const {'1': 'configuration', '3': 2, '4': 1, '5': 9, '10': 'configuration'},
-    const {'1': 'suite', '3': 100, '4': 1, '5': 9, '10': 'suite'},
-    const {'1': 'test_name', '3': 101, '4': 1, '5': 9, '10': 'testName'},
-    const {'1': 'time_ms', '3': 3, '4': 1, '5': 5, '10': 'timeMs'},
-    const {'1': 'result', '3': 4, '4': 1, '5': 9, '10': 'result'},
-    const {'1': 'expected', '3': 5, '4': 1, '5': 9, '10': 'expected'},
-    const {'1': 'matches', '3': 6, '4': 1, '5': 8, '10': 'matches'},
-    const {'1': 'bot_name', '3': 7, '4': 1, '5': 9, '10': 'botName'},
-    const {'1': 'commit_hash', '3': 8, '4': 1, '5': 9, '10': 'commitHash'},
-    const {'1': 'commit_time', '3': 102, '4': 1, '5': 5, '10': 'commitTime'},
-    const {'1': 'build_number', '3': 9, '4': 1, '5': 9, '10': 'buildNumber'},
-    const {'1': 'builder_name', '3': 10, '4': 1, '5': 9, '10': 'builderName'},
-    const {'1': 'flaky', '3': 11, '4': 1, '5': 8, '10': 'flaky'},
-    const {
-      '1': 'previous_flaky',
-      '3': 12,
-      '4': 1,
-      '5': 8,
-      '10': 'previousFlaky'
-    },
-    const {
+  '2': [
+    {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'},
+    {'1': 'configuration', '3': 2, '4': 1, '5': 9, '10': 'configuration'},
+    {'1': 'suite', '3': 100, '4': 1, '5': 9, '10': 'suite'},
+    {'1': 'test_name', '3': 101, '4': 1, '5': 9, '10': 'testName'},
+    {'1': 'time_ms', '3': 3, '4': 1, '5': 5, '10': 'timeMs'},
+    {'1': 'result', '3': 4, '4': 1, '5': 9, '10': 'result'},
+    {'1': 'expected', '3': 5, '4': 1, '5': 9, '10': 'expected'},
+    {'1': 'matches', '3': 6, '4': 1, '5': 8, '10': 'matches'},
+    {'1': 'bot_name', '3': 7, '4': 1, '5': 9, '10': 'botName'},
+    {'1': 'commit_hash', '3': 8, '4': 1, '5': 9, '10': 'commitHash'},
+    {'1': 'commit_time', '3': 102, '4': 1, '5': 5, '10': 'commitTime'},
+    {'1': 'build_number', '3': 9, '4': 1, '5': 9, '10': 'buildNumber'},
+    {'1': 'builder_name', '3': 10, '4': 1, '5': 9, '10': 'builderName'},
+    {'1': 'flaky', '3': 11, '4': 1, '5': 8, '10': 'flaky'},
+    {'1': 'previous_flaky', '3': 12, '4': 1, '5': 8, '10': 'previousFlaky'},
+    {
       '1': 'previous_commit_hash',
       '3': 13,
       '4': 1,
       '5': 9,
       '10': 'previousCommitHash'
     },
-    const {
+    {
       '1': 'previous_commit_time',
       '3': 14,
       '4': 1,
       '5': 5,
       '10': 'previousCommitTime'
     },
-    const {
+    {
       '1': 'previous_build_number',
       '3': 15,
       '4': 1,
       '5': 9,
       '10': 'previousBuildNumber'
     },
-    const {
-      '1': 'previous_result',
-      '3': 16,
-      '4': 1,
-      '5': 9,
-      '10': 'previousResult'
-    },
-    const {'1': 'changed', '3': 17, '4': 1, '5': 8, '10': 'changed'},
-    const {'1': 'experiments', '3': 18, '4': 3, '5': 9, '10': 'experiments'},
+    {'1': 'previous_result', '3': 16, '4': 1, '5': 9, '10': 'previousResult'},
+    {'1': 'changed', '3': 17, '4': 1, '5': 8, '10': 'changed'},
+    {'1': 'experiments', '3': 18, '4': 3, '5': 9, '10': 'experiments'},
   ],
 };
 
 /// Descriptor for `Result`. Decode as a `google.protobuf.DescriptorProto`.
 final $typed_data.Uint8List resultDescriptor = $convert.base64Decode(
-    'CgZSZXN1bHQSEgoEbmFtZRgBIAEoCVIEbmFtZRIkCg1jb25maWd1cmF0aW9uGAIgASgJUg1jb25maWd1cmF0aW9uEhQKBXN1aXRlGGQgASgJUgVzdWl0ZRIbCgl0ZXN0X25hbWUYZSABKAlSCHRlc3ROYW1lEhcKB3RpbWVfbXMYAyABKAVSBnRpbWVNcxIWCgZyZXN1bHQYBCABKAlSBnJlc3VsdBIaCghleHBlY3RlZBgFIAEoCVIIZXhwZWN0ZWQSGAoHbWF0Y2hlcxgGIAEoCFIHbWF0Y2hlcxIZCghib3RfbmFtZRgHIAEoCVIHYm90TmFtZRIfCgtjb21taXRfaGFzaBgIIAEoCVIKY29tbWl0SGFzaBIfCgtjb21taXRfdGltZRhmIAEoBVIKY29tbWl0VGltZRIhCgxidWlsZF9udW1iZXIYCSABKAlSC2J1aWxkTnVtYmVyEiEKDGJ1aWxkZXJfbmFtZRgKIAEoCVILYnVpbGRlck5hbWUSFAoFZmxha3kYCyABKAhSBWZsYWt5EiUKDnByZXZpb3VzX2ZsYWt5GAwgASgIUg1wcmV2aW91c0ZsYWt5EjAKFHByZXZpb3VzX2NvbW1pdF9oYXNoGA0gASgJUhJwcmV2aW91c0NvbW1pdEhhc2gSMAoUcHJldmlvdXNfY29tbWl0X3RpbWUYDiABKAVSEnByZXZpb3VzQ29tbWl0VGltZRIyChVwcmV2aW91c19idWlsZF9udW1iZXIYDyABKAlSE3ByZXZpb3VzQnVpbGROdW1iZXISJwoPcHJldmlvdXNfcmVzdWx0GBAgASgJUg5wcmV2aW91c1Jlc3VsdBIYCgdjaGFuZ2VkGBEgASgIUgdjaGFuZ2VkEiAKC2V4cGVyaW1lbnRzGBIgAygJUgtleHBlcmltZW50cw==');
+    'CgZSZXN1bHQSEgoEbmFtZRgBIAEoCVIEbmFtZRIkCg1jb25maWd1cmF0aW9uGAIgASgJUg1jb2'
+    '5maWd1cmF0aW9uEhQKBXN1aXRlGGQgASgJUgVzdWl0ZRIbCgl0ZXN0X25hbWUYZSABKAlSCHRl'
+    'c3ROYW1lEhcKB3RpbWVfbXMYAyABKAVSBnRpbWVNcxIWCgZyZXN1bHQYBCABKAlSBnJlc3VsdB'
+    'IaCghleHBlY3RlZBgFIAEoCVIIZXhwZWN0ZWQSGAoHbWF0Y2hlcxgGIAEoCFIHbWF0Y2hlcxIZ'
+    'Cghib3RfbmFtZRgHIAEoCVIHYm90TmFtZRIfCgtjb21taXRfaGFzaBgIIAEoCVIKY29tbWl0SG'
+    'FzaBIfCgtjb21taXRfdGltZRhmIAEoBVIKY29tbWl0VGltZRIhCgxidWlsZF9udW1iZXIYCSAB'
+    'KAlSC2J1aWxkTnVtYmVyEiEKDGJ1aWxkZXJfbmFtZRgKIAEoCVILYnVpbGRlck5hbWUSFAoFZm'
+    'xha3kYCyABKAhSBWZsYWt5EiUKDnByZXZpb3VzX2ZsYWt5GAwgASgIUg1wcmV2aW91c0ZsYWt5'
+    'EjAKFHByZXZpb3VzX2NvbW1pdF9oYXNoGA0gASgJUhJwcmV2aW91c0NvbW1pdEhhc2gSMAoUcH'
+    'JldmlvdXNfY29tbWl0X3RpbWUYDiABKAVSEnByZXZpb3VzQ29tbWl0VGltZRIyChVwcmV2aW91'
+    'c19idWlsZF9udW1iZXIYDyABKAlSE3ByZXZpb3VzQnVpbGROdW1iZXISJwoPcHJldmlvdXNfcm'
+    'VzdWx0GBAgASgJUg5wcmV2aW91c1Jlc3VsdBIYCgdjaGFuZ2VkGBEgASgIUgdjaGFuZ2VkEiAK'
+    'C2V4cGVyaW1lbnRzGBIgAygJUgtleHBlcmltZW50cw==');
diff --git a/current_results/lib/src/generated/result.pbserver.dart b/current_results/lib/src/generated/result.pbserver.dart
index 30488ff..2852da2 100644
--- a/current_results/lib/src/generated/result.pbserver.dart
+++ b/current_results/lib/src/generated/result.pbserver.dart
@@ -1,8 +1,13 @@
-///
+//
 //  Generated code. Do not modify.
 //  source: result.proto
 //
 // @dart = 2.12
-// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package
+
+// ignore_for_file: annotate_overrides, camel_case_types, comment_references
+// ignore_for_file: constant_identifier_names
+// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
+// ignore_for_file: non_constant_identifier_names, prefer_final_fields
+// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
 
 export 'result.pb.dart';
diff --git a/current_results/tools/generate_protogen.sh b/current_results/tools/generate_protogen.sh
index e6cd8d7..7a6c053 100755
--- a/current_results/tools/generate_protogen.sh
+++ b/current_results/tools/generate_protogen.sh
@@ -22,7 +22,10 @@
   exit 1
 fi
 
-protoc --dart_out=lib/src/generated -I$PROTOBUF_PATH/src $PROTOBUF_PATH/src/google/protobuf/*.proto
+protoc --dart_out=lib/src/generated -I$PROTOBUF_PATH/src $PROTOBUF_PATH/src/google/protobuf/duration.proto
+protoc --dart_out=lib/src/generated -I$PROTOBUF_PATH/src $PROTOBUF_PATH/src/google/protobuf/empty.proto
+protoc --dart_out=lib/src/generated -I$PROTOBUF_PATH/src $PROTOBUF_PATH/src/google/protobuf/field_mask.proto
+protoc --dart_out=lib/src/generated -I$PROTOBUF_PATH/src $PROTOBUF_PATH/src/google/protobuf/timestamp.proto
 protoc --dart_out=grpc:lib/src/generated -I$GOOGLEAPIS_PATH $GOOGLEAPIS_PATH/google/pubsub/v1/pubsub.proto
 protoc --dart_out=grpc:lib/src/generated -I$GOOGLEAPIS_PATH $GOOGLEAPIS_PATH/google/pubsub/v1/schema.proto