syntax = "proto3"; package character; service CharacterService { rpc GetCharacterList(GetCharacterListRequest) returns (GetCharacterListResponse); rpc CreateCharacter(CreateCharacterRequest) returns (Empty); rpc DeleteCharacter(DeleteCharacterRequest) returns (Empty); rpc GetCharacter(GetCharacterRequest) returns (Empty); } message GetCharacterListRequest { string user_id = 1; } message GetCharacterListResponse { repeated Character characters = 1; } message CreateCharacterRequest { string user_id = 1; } message DeleteCharacterRequest { string user_id = 1; string char_id = 2; } message GetCharacterRequest { string user_id = 1; } message Character { string character_id = 1; // Unique ID for the character string name = 2; // Name of the character int32 level = 3; // Character's level int32 race = 4; // Character's level int32 job = 5; // Character's class or type int64 last_played = 6; // Last played timestamp (Unix time) int64 delete_time = 7; // Time until character deletion (seconds) int32 face = 8; // Character's face int32 hair = 9; // Character's hair repeated EquippedItem items = 10; } message EquippedItem { int32 id = 1; int32 gem_option = 2; int32 socket = 3; int32 grade = 4; } message Empty {}