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; } 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; SymbolRef target = 2; Cardinality cardinality = 3; string inverse = 4; } message MethodOptions { string name = 1; quixos.FunctionRef function = 2; } message MigrationOptions { uint32 from_version = 1; uint32 to_version = 2; quixos.FunctionRef function = 3; }