
syntax = "proto3";
package xolir;
option java_package = "com.apivolve.xolir";

import "xolir/type_array.proto";
import "xolir/type_struct.proto";
import "xolir/type_union.proto";
import "xolir/function.proto";

message TypeDef {
  //TODO @mark: could be something like `T` or `List<int>`
  oneof target {
    // builtins don't need to be defined
    StructType struct = 1;
    UnionType union = 2;
    ArrayType array = 3;
    //TODO @mark:
    // VirtualType virtual = 4;
    FunctionType func = 5;
  }
  //TODO @mark: oneof builtin, struct, generic...
}
