// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

syntax = "proto2";

package foo;

message Foo {
}

message Outer {
  optional string value = 1;
  repeated string strings = 2;
  optional int64 id = 3;
  optional Inner inner = 4;
  repeated Inner inners = 5;
  extensions 6 to 7;
}

message OuterWithMap {
  map<int32, Inner> inner_map = 3;
}

message Inner {
  optional string value = 1;
  optional int64 id = 2;
  repeated string strings = 3;
  optional Inner inner = 4;
  optional fixed32 count = 5;
  optional uint32 count_uint32 = 6;
}

extend Outer {
  optional Inner inner = 6;
  repeated Inner inners = 7;
}
