syntax = "proto3";
package sarus_data_spec;

message Predicate {
  // Simular to Unit with an explicit value set
  oneof predicate {
    Simple simple = 1;
    Inter inter = 2;
    Union union = 3;
    Comp comp = 4;
  }
  map<string, string> properties = 5; // Other properties

  message Simple {
    string operator = 1; // ==, <, <=, in, etc.
    string value = 2;
  }

  message Inter {
    repeated Predicate predicates = 1;
  }

  message Union {
    repeated Predicate predicates = 1;
  }

  message Comp {
    Predicate predicate = 1;
  }
}
