syntax = "proto3"; package charybdis.core; import "core/common.proto"; // UserMetadata represents identifying information for a user entity // A user represents a person in the organization message UserMetadata { // Required: The username (e.g., "jdoe", "john.doe") string name = 1; // Optional: Namespace for organizational grouping (default: "default") string namespace = 2; // Optional: Full name or description string description = 3; // Optional: Labels for categorization and filtering // Key-value pairs (e.g., "department": "engineering", "location": "SF") map labels = 4; // Optional: Tags for additional classification repeated string tags = 5; // Optional: Links to external resources (e.g., GitHub profile, LinkedIn) repeated Link links = 6; } // UserSpec represents configuration for a user entity message UserSpec { // Optional: User profile information UserProfile profile = 1; // Optional: Groups this user is a member of (references Group entities) repeated string member_of = 2; } // UserProfile contains detailed profile information message UserProfile { // Display name (e.g., "John Doe") string display_name = 1; // Email address string email = 2; // Avatar/picture URL string picture = 3; }