Files
quixos-protocol/proto/camino/options.proto
T
2026-07-14 07:55:04 -07:00

87 lines
1.9 KiB
Protocol Buffer

syntax = "proto3";
package camino;
import "google/protobuf/descriptor.proto";
import "camino/schema.proto";
import "quixos/refs.proto";
extend google.protobuf.FileOptions {
string schema_namespace = 51000;
string schema_version = 51001;
}
extend google.protobuf.MessageOptions {
ClassOptions class = 51010;
repeated MethodOptions method = 51011;
repeated MigrationOptions migration = 51012;
InterfaceOptions interface = 51013;
repeated ImplementsOptions implements = 51014;
ConstructorOptions constructor = 51015;
}
extend google.protobuf.FieldOptions {
ConflictStrategy conflict = 51020;
EdgeOptions edge = 51021;
FieldStorage field_storage = 51022;
FieldOps field_ops = 51023;
InterfaceFieldContract interface_field = 51024;
bool display_label = 51025;
}
extend google.protobuf.MethodOptions {
quixos.FunctionRef impl = 51030;
}
message ClassOptions {
uint32 version = 1;
SymbolRef id = 2;
}
message InterfaceOptions {
uint32 version = 1;
SymbolRef id = 2;
}
message ImplementsOptions {
SymbolRef interface = 1;
repeated TypeBinding type_binding = 2;
}
message ConstructorOptions {
quixos.FunctionRef function = 1;
}
message EdgeOptions {
SymbolRef id = 1;
// Shorthand for other_endpoint.class.
SymbolRef target = 2;
// Shorthand for this_endpoint.cardinality.
Cardinality cardinality = 3;
// Shorthand for other_endpoint.projection.
string inverse = 4;
EdgeEndpointOptions this_endpoint = 5;
EdgeEndpointOptions other_endpoint = 6;
repeated SymbolRef tag = 7;
repeated SymbolRef implements = 8;
}
message EdgeEndpointOptions {
SymbolRef class = 1;
SymbolRef interface = 2;
string projection = 3;
Cardinality cardinality = 4;
bool indexed = 5;
}
message MethodOptions {
string name = 1;
quixos.FunctionRef function = 2;
}
message MigrationOptions {
uint32 from_version = 1;
uint32 to_version = 2;
quixos.FunctionRef function = 3;
}