syntax = "proto3"; package quixos; import "camino/schema.proto"; import "quixos/refs.proto"; message PackageRef { string package_namespace = 1; string package_name = 2; uint32 descriptor_version = 3; string version_ref = 4; } message PackageDescriptor { string package_namespace = 1; string package_name = 2; uint32 descriptor_version = 3; uint32 interface_compatible_back_to = 4; uint32 runner_compatible_back_to = 5; string source_repo = 6; string source_ref = 7; string resolved_source_ref = 8; string server_installable = 9; string runtime_protocol_version = 10; repeated ClassExport class_exports = 11; repeated FunctionExport function_exports = 12; repeated ComponentExport component_exports = 13; repeated SidecarExport sidecar_exports = 14; repeated PackageDependency dependencies = 15; } enum FunctionCapabilityKind { FUNCTION_CAPABILITY_KIND_UNSPECIFIED = 0; METHOD = 1; FIELD_RESOLVER = 2; MIGRATION = 3; CONSTRUCTOR = 4; } message ClassExport { camino.SymbolRef class_id = 1; string source_file = 2; } message FunctionExport { FunctionRef function = 1; string input_type = 2; string output_type = 3; uint32 interface_version = 4; uint32 interface_compatible_back_to = 5; FunctionCapabilityKind capability_kind = 6; } message ComponentExport { string symbol = 1; string props_type = 2; repeated camino.SymbolRef supported_classes = 3; } message SidecarExport { string symbol = 1; string side_effect_mode = 2; } message PackageDependency { PackageRef package = 1; uint32 interface_compatible_back_to = 2; bool refactor_required = 3; string compatibility_note = 4; }