syntax = "proto3";

package CoverTree;

message NodeProto {
  uint64 coverage_count = 1;
  uint64 center_index = 2;
  int32 scale_index = 3;
  uint64 parent_center_index = 4;
  int32 parent_scale_index =5;

  bool is_leaf = 6;

  repeated uint64 children_point_indexes = 7;
  repeated int32 children_scale_indexes = 8;
  int32 nested_scale_index = 9;

  repeated uint64 outlier_point_indexes = 10;
  string outlier_summary_json = 11;
  float radius = 12;
}

message LayerProto {
  int32 scale_index = 1;
  repeated NodeProto nodes = 2;
}

message CoreProto {
  bool use_singletons = 1;
  float scale_base = 2;
  uint64 cutoff = 3;
  sint32 resolution = 4;
  string partition_type = 5;

  uint64 dim = 7;
  uint64 count = 8;

  int32 root_scale = 9;
  uint64 root_index = 10;

  repeated LayerProto layers = 11;
}