//===- IR.proto -----------------------------------------------*- Proto -*-===//
//
//  Copyright (C) 2020 GrammaTech, Inc.
//
//  This code is licensed under the MIT license. See the LICENSE file in the
//  project root for license terms.
//
//  This project is sponsored by the Office of Naval Research, One Liberty
//  Center, 875 N. Randolph Street, Arlington, VA 22203 under contract #
//  N68335-17-C-0700.  The content of the information does not necessarily
//  reflect the position or policy of the Government and no official
//  endorsement should be inferred.
//
//===----------------------------------------------------------------------===//
syntax = "proto3";
package gtirb.proto;
option java_package = "com.grammatech.gtirb.proto";

import "AuxData.proto";
import "CFG.proto";
import "Module.proto";

message IR {
  // slot 4 has been used for multiple fields in the past
  // (more specifically, main_module_id and aux_data_container),
  // which is a Protobuf compatibility violation, but explains why we
  // reserve more field names than field numbers.
  reserved "tables", "main_module_id", "aux_data_container";
  reserved 2, 4;

  bytes uuid = 1;
  repeated Module modules = 3;
  map<string, AuxData> aux_data = 5;
  uint32 version = 6;
  CFG cfg = 7;
}
