
message VariantMetaUnit {
	enum Type { INT = 1; FLOAT = 2; TEXT = 3; BOOL = 4; }
	     	
        required Type   type = 1;
	required string name = 2;

	repeated int32   int_value     = 3 [packed=true];
	repeated double  double_value  = 4 [packed=true];
	repeated string  string_value  = 5;
	repeated bool    bool_value    = 6 [packed=true];
}


message GenotypeMetaUnit {

	enum Type { INT = 1; FLOAT = 2; TEXT = 3; BOOL = 4; }
	     	
        required Type    type          = 1;
	required string  name          = 2;
	
        optional int32   fixed_len     = 3;
	repeated int32   len           = 4 [packed=true];

	repeated int32   int_value     = 5 [packed=true];
	repeated double  double_value  = 6 [packed=true];
	repeated string  string_value  = 7;
	repeated bool    bool_value    = 8 [packed=true];

        optional int32   fixed_indiv   = 9;
	repeated int32   indiv_index   = 10 [packed=true];
	repeated int32   missing_index = 11 [packed=true];
}


message VariantBuffer {
	optional string ref = 1;
	optional string alt = 2;
	optional double quality = 3;
	repeated string filter  = 4;
}

message VariantMetaBuffer { 	
	repeated VariantMetaUnit vmeta = 1;
}

message GenotypeBuffer {
	repeated uint32  geno     = 1 [packed=true];
}

message GenotypeMetaBuffer {
	repeated GenotypeMetaUnit gmeta = 1;
}
