syntax = "proto3"; package charybdis.core; import "core/common.proto"; // DomainMetadata represents identifying information for a domain entity // A domain is a high-level organizational boundary (e.g., "payments", "identity") message DomainMetadata { // Required: The domain name string name = 1; // Optional: Namespace for organizational grouping (default: "default") string namespace = 2; // Optional: Human-readable description of the domain string description = 3; // Optional: Labels for categorization and filtering // Key-value pairs (e.g., "business-unit": "platform", "priority": "high") map labels = 4; // Optional: Tags for additional classification repeated string tags = 5; // Optional: Links to external resources repeated Link links = 6; } // DomainSpec represents configuration for a domain entity message DomainSpec { // Required: Owner team or individual (references a Group or User entity) string owner = 1; }