// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

syntax="proto2";
// mcpack2pb - Make protobuf be front-end of mcpack/compack

import "google/protobuf/descriptor.proto";

extend google.protobuf.FileOptions {
  // True to generate mcpack parsing/serializing code
  optional bool idl_support = 91000;
}

enum ConvertibleIdlType {
  IDL_AUTO = 0;
  IDL_INT8 = 1;
  IDL_INT16 = 2;
  IDL_INT32 = 3;
  IDL_INT64 = 4;
  IDL_UINT8 = 5;
  IDL_UINT16 = 6;
  IDL_UINT32 = 7;
  IDL_UINT64 = 8;
  IDL_BOOL = 9;
  IDL_FLOAT = 10;
  IDL_DOUBLE = 11;
  IDL_BINARY = 12;
  IDL_STRING = 13;
}

extend google.protobuf.FieldOptions {
  // Mark the idl-type which is inconsistent with proto-type.
  optional ConvertibleIdlType idl_type = 91001;

  // Mark the non-optional() vector/array in idl.
  optional int32 idl_on = 91002;

  // Use this name as the field name for packing instead of the one in proto.
  optional string idl_name = 91003;
}