Files
quixos-protocol/proto/camino/schema.proto
T

64 lines
1.3 KiB
Protocol Buffer

syntax = "proto3";
package camino;
enum Cardinality {
CARDINALITY_UNSPECIFIED = 0;
OPTIONAL_ONE = 1;
EXACTLY_ONE = 2;
MANY = 3;
MANY_UNIQUE = 4;
}
message AtomDefinition {
string atom_id = 1;
string display_name = 2;
}
message AtomConformance {
string atom_id = 1;
string interface_revision_id = 2;
}
message StateAttachment {
string slot_id = 1;
string attached_atom_id = 2;
string display_name = 3;
string value_type_json = 4;
string storage_policy_json = 5;
string default_value_json = 6;
}
message EndpointConstraint {
oneof kind {
string atom_id = 1;
string interface_revision_id = 2;
}
}
message EdgeEndpoint {
string projection_id = 1;
string display_name = 2;
EndpointConstraint constraint = 3;
Cardinality cardinality = 4;
bool ordered = 5;
}
message EdgeAttachment {
string edge_type_id = 1;
string display_name = 2;
EdgeEndpoint first = 3;
EdgeEndpoint second = 4;
}
// Camino consumes this persistence-only projection of a checked workspace.
// Interfaces, operation bindings, packages, and constructors stay in orch.
message PersistencePlan {
string workspace_id = 1;
string workspace_revision_id = 2;
repeated AtomDefinition atoms = 3;
repeated AtomConformance conformances = 4;
repeated StateAttachment states = 5;
repeated EdgeAttachment edges = 6;
}