// Protocol Buffers - Google's data interchange format
// Copyright 2023 Google LLC.  All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd

syntax = "proto2";

package upb_test;

import "google/protobuf/struct.proto";

enum Tag {
  Z_NONE = 0;
  Z_BAR = 1;
  Z_BAZ = -2;
  Z_BAT = 13;
}

message Box {
  optional Tag first_tag = 1;
  repeated Tag more_tags = 2;
  optional Tag last_tag = 5;
  optional string name = 4;
  optional google.protobuf.Value val = 6;
  optional float f = 7;
  optional double d = 8;
  optional int32 value = 9 [json_name = "old_value"];
  optional int32 new_value = 10 [json_name = "value"];
}
