syntax = "proto3";

message UmapEntry {
  double umapY = 1;
  double umapX = 2;
}

message SingleMask {
  repeated uint32 vertices = 1 [packed=true];
  uint32 area = 2;
  uint32 totalCounts = 3;
  uint32 totalGenes = 4;
  string cellId = 5;
  string clusterId = 6;
  repeated uint32 proteinValues = 7;
  repeated uint32 nonzeroGeneIndices = 8;
  repeated uint32 nonzeroGeneValues = 9;
  UmapEntry umapValues = 10;
}

message ColormapEntry {
  string clusterId = 1;
  repeated uint32 color = 2 [packed=true];
}

message Metadata {
  repeated string proteinNames = 1;
  repeated string geneNames = 2;
}

message CellMasks {
  repeated SingleMask cellMasks = 1;
  repeated ColormapEntry colormap = 2;
  Metadata metadata = 3;
  uint32 numberOfCells = 4;
}
