diff --git a/.agents/skills/proto-workflow/SKILL.md b/.agents/skills/proto-workflow/SKILL.md new file mode 100644 index 000000000..d996edcfd --- /dev/null +++ b/.agents/skills/proto-workflow/SKILL.md @@ -0,0 +1,8 @@ +--- +name: proto-workflow +description: Regenerate this repository's TypeScript protobuf outputs after editing .proto schemas. +--- + +# Proto Workflow + +After editing any `.proto` schema in this repository, run `bun run build-protos` from the repository root. Review the generated changes and address any schema or generator errors before finishing the task. diff --git a/packages/protos/src/blitzkit/average_definitions.proto b/packages/protos/src/blitzkit/average_definitions.proto index 693edab02..b6fc576a7 100644 --- a/packages/protos/src/blitzkit/average_definitions.proto +++ b/packages/protos/src/blitzkit/average_definitions.proto @@ -1,47 +1,47 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; message AverageDefinitions { map averages = 1; - required Samples samples = 2; - required uint64 time = 3; + Samples samples = 2; + uint64 time = 3; } message AverageDefinitionsEntry { - required AverageDefinitionsAllStats mu = 1; - required AverageDefinitionsAllStats sigma = 2; - required AverageDefinitionsAllStats r = 3; - required Samples samples = 4; + AverageDefinitionsAllStats mu = 1; + AverageDefinitionsAllStats sigma = 2; + AverageDefinitionsAllStats r = 3; + Samples samples = 4; } message AverageDefinitionsAllStats { - required float battles = 1; - required float capture_points = 2; - required float damage_dealt = 3; - required float damage_received = 4; - required float dropped_capture_points = 5; - required float frags = 6; - required float frags8p = 7; - required float hits = 8; - required float losses = 9; - required float max_frags = 10; - required float max_xp = 11; - required float shots = 12; - required float spotted = 13; - required float survived_battles = 14; - required float win_and_survived = 15; - required float wins = 16; - required float xp = 17; - required float battle_life_time = 18; + float battles = 1; + float capture_points = 2; + float damage_dealt = 3; + float damage_received = 4; + float dropped_capture_points = 5; + float frags = 6; + float frags8p = 7; + float hits = 8; + float losses = 9; + float max_frags = 10; + float max_xp = 11; + float shots = 12; + float spotted = 13; + float survived_battles = 14; + float win_and_survived = 15; + float wins = 16; + float xp = 17; + float battle_life_time = 18; } message Samples { - required uint32 d_1 = 1; - required uint32 d_7 = 2; - required uint32 d_30 = 3; - required uint32 d_60 = 4; - required uint32 d_90 = 5; - required uint32 d_120 = 6; - required uint32 total = 7; + uint32 d_1 = 1; + uint32 d_7 = 2; + uint32 d_30 = 3; + uint32 d_60 = 4; + uint32 d_90 = 5; + uint32 d_120 = 6; + uint32 total = 7; } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/camouflage_definitions.proto b/packages/protos/src/blitzkit/camouflage_definitions.proto index b3b9bbbac..093ccec46 100644 --- a/packages/protos/src/blitzkit/camouflage_definitions.proto +++ b/packages/protos/src/blitzkit/camouflage_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -9,8 +9,8 @@ message CamouflageDefinitions { } message Camouflage { - required uint32 id = 1; - required I18nString name = 2; + uint32 id = 1; + I18nString name = 2; optional I18nString tank_name = 3; optional I18nString tank_name_full = 4; } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/consumable_definitions.proto b/packages/protos/src/blitzkit/consumable_definitions.proto index c2d6850d0..b17f4f39a 100644 --- a/packages/protos/src/blitzkit/consumable_definitions.proto +++ b/packages/protos/src/blitzkit/consumable_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -9,9 +9,9 @@ message ConsumableDefinitions { } message Consumable { - required uint32 id = 1; - required I18nString name = 2; - required bool game_mode_exclusive = 5; + uint32 id = 1; + I18nString name = 2; + bool game_mode_exclusive = 5; repeated TankInclusivityFilter include = 6; repeated TankInclusivityFilter exclude = 7; } @@ -26,8 +26,8 @@ message TankInclusivityFilter { } message ConsumableTankTierFilter { - required uint32 min = 1; - required uint32 max = 2; + uint32 min = 1; + uint32 max = 2; } message ConsumableTankIdsFilter { diff --git a/packages/protos/src/blitzkit/gallery.proto b/packages/protos/src/blitzkit/gallery.proto index a983b6133..a9ddba63a 100644 --- a/packages/protos/src/blitzkit/gallery.proto +++ b/packages/protos/src/blitzkit/gallery.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -9,7 +9,7 @@ message Gallery { } message Avatar { - required string id = 1; - required I18nString name = 2; - required string extension = 3; + string id = 1; + I18nString name = 2; + string extension = 3; } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/game_definitions.proto b/packages/protos/src/blitzkit/game_definitions.proto index e612cdc01..c57e3fc02 100644 --- a/packages/protos/src/blitzkit/game_definitions.proto +++ b/packages/protos/src/blitzkit/game_definitions.proto @@ -1,18 +1,18 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; import "i18n.proto"; message GameDefinitions { - required string version = 1; + string version = 1; repeated string nations = 2; map gameModes = 3; map roles = 4; } message GameMode { - required I18nString name = 1; + I18nString name = 1; } message GameModeRole { diff --git a/packages/protos/src/blitzkit/i18n.proto b/packages/protos/src/blitzkit/i18n.proto index 2c31070df..8041d0c63 100644 --- a/packages/protos/src/blitzkit/i18n.proto +++ b/packages/protos/src/blitzkit/i18n.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; diff --git a/packages/protos/src/blitzkit/map_definitions.proto b/packages/protos/src/blitzkit/map_definitions.proto index 969970db4..bd36d1b3a 100644 --- a/packages/protos/src/blitzkit/map_definitions.proto +++ b/packages/protos/src/blitzkit/map_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -9,6 +9,6 @@ message MapDefinitions { } message MapDefinition { - required uint32 id = 1; - required I18nString name = 2; + uint32 id = 1; + I18nString name = 2; } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/model_definitions.proto b/packages/protos/src/blitzkit/model_definitions.proto index 242af4c34..a36660672 100644 --- a/packages/protos/src/blitzkit/model_definitions.proto +++ b/packages/protos/src/blitzkit/model_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -7,12 +7,12 @@ message ModelDefinitions { } message ModelDefinition { - required Armor armor = 1; - required Vector3 turret_origin = 2; + Armor armor = 1; + Vector3 turret_origin = 2; optional InitialTurretRotation initial_turret_rotation = 3; map turrets = 4; map tracks = 5; - required BoundingBox bounding_box = 6; + BoundingBox bounding_box = 6; } message Armor { @@ -21,59 +21,59 @@ message Armor { } message Vector3 { - required float x = 1; - required float y = 2; - required float z = 3; + float x = 1; + float y = 2; + float z = 3; } message InitialTurretRotation { - required float yaw = 1; - required float pitch = 2; - required float roll = 3; + float yaw = 1; + float pitch = 2; + float roll = 3; } message TurretModelDefinition { - required BoundingBox bounding_box = 1; - required Armor armor = 2; - required uint32 model_id = 3; - required Vector3 gun_origin = 4; + BoundingBox bounding_box = 1; + Armor armor = 2; + uint32 model_id = 3; + Vector3 gun_origin = 4; map guns = 5; optional YawLimits yaw = 6; } message YawLimits { - required float min = 1; - required float max = 2; + float min = 1; + float max = 2; } message BoundingBox { - required Vector3 min = 1; - required Vector3 max = 2; + Vector3 min = 1; + Vector3 max = 2; } message TrackModelDefinition { - required float thickness = 1; - required Vector3 origin = 2; + float thickness = 1; + Vector3 origin = 2; } message GunModelDefinition { - required Armor armor = 1; - required float thickness = 2; - required uint32 model_id = 3; - required PitchLimits pitch = 4; - optional float mask = 5; + Armor armor = 1; + float thickness = 2; + uint32 model_id = 3; + PitchLimits pitch = 4; + optional float mask = 5; } message PitchLimits { - required float min = 1; - required float max = 2; + float min = 1; + float max = 2; optional PitchLimitsExtrema front = 3; optional PitchLimitsExtrema back = 4; optional float transition = 5; } message PitchLimitsExtrema { - required float min = 1; - required float max = 2; - required float range = 3; + float min = 1; + float max = 2; + float range = 3; } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/popular_tanks.proto b/packages/protos/src/blitzkit/popular_tanks.proto index 68a3cef36..6610511d6 100644 --- a/packages/protos/src/blitzkit/popular_tanks.proto +++ b/packages/protos/src/blitzkit/popular_tanks.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -7,6 +7,6 @@ message PopularTanks { } message PopularTank { - required uint32 id = 1; - required uint32 views = 2; // views in the last 7 days + uint32 id = 1; + uint32 views = 2; // views in the last 7 days } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/provision_definitions.proto b/packages/protos/src/blitzkit/provision_definitions.proto index 49699e2b3..1314905d1 100644 --- a/packages/protos/src/blitzkit/provision_definitions.proto +++ b/packages/protos/src/blitzkit/provision_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -10,11 +10,10 @@ message ProvisionDefinitions { } message Provision { - reserved 3; // crew - required uint32 id = 1; - required I18nString name = 2; - required bool game_mode_exclusive = 5; - repeated TankInclusivityFilter include = 6; - repeated TankInclusivityFilter exclude = 7; + uint32 id = 1; + I18nString name = 2; + bool game_mode_exclusive = 3; + repeated TankInclusivityFilter include = 4; + repeated TankInclusivityFilter exclude = 5; } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/rating_leaderboard.proto b/packages/protos/src/blitzkit/rating_leaderboard.proto index 05a943d4a..f9a5eb1c8 100644 --- a/packages/protos/src/blitzkit/rating_leaderboard.proto +++ b/packages/protos/src/blitzkit/rating_leaderboard.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -14,8 +14,8 @@ message RatingLeaderboardV1 { } message RatingLeaderboardEntryV1 { - required uint32 id = 1; - required uint32 score = 2; + uint32 id = 1; + uint32 score = 2; } message RatingLeaderboardV2 { @@ -23,11 +23,11 @@ message RatingLeaderboardV2 { } message RatingLeaderboardEntryV2 { - required uint32 id = 1; - required uint32 score = 2; - required uint32 battles = 3; - required uint32 wins = 4; - required uint32 survived = 5; - required uint32 damage = 6; - required uint32 kills = 7; + uint32 id = 1; + uint32 score = 2; + uint32 battles = 3; + uint32 wins = 4; + uint32 survived = 5; + uint32 damage = 6; + uint32 kills = 7; } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/reviews.proto b/packages/protos/src/blitzkit/reviews.proto index d6577b6cb..265e7e2f7 100644 --- a/packages/protos/src/blitzkit/reviews.proto +++ b/packages/protos/src/blitzkit/reviews.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -7,11 +7,11 @@ message Reviews { } message Review { - required float last_updated = 1; + float last_updated = 1; repeated Video videos = 2; } message Video { - required string id = 1; - required string author = 2; + string id = 1; + string author = 2; } \ No newline at end of file diff --git a/packages/protos/src/blitzkit/skill_definitions.proto b/packages/protos/src/blitzkit/skill_definitions.proto index b22f19046..e7ec3d733 100644 --- a/packages/protos/src/blitzkit/skill_definitions.proto +++ b/packages/protos/src/blitzkit/skill_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; diff --git a/packages/protos/src/blitzkit/tank_definitions.proto b/packages/protos/src/blitzkit/tank_definitions.proto index 0c15d59f1..5dcf0f36e 100644 --- a/packages/protos/src/blitzkit/tank_definitions.proto +++ b/packages/protos/src/blitzkit/tank_definitions.proto @@ -1,4 +1,4 @@ -syntax = "proto2"; +syntax = "proto3"; package blitzkit; @@ -9,46 +9,46 @@ message TankDefinitions { } message TankDefinition { - required uint32 id = 1; - required string slug = 2; + uint32 id = 1; + string slug = 2; map roles = 3; - required bool fixed_camouflage = 5; + bool fixed_camouflage = 5; repeated int32 camouflages = 6; repeated int32 ancestors = 7; repeated int32 successors = 8; repeated Crew crew = 9; - required uint32 health = 10; - required string nation = 11; - required I18nString name = 12; - required TankType type = 13; - required uint32 max_consumables = 14; - required uint32 max_provisions = 15; - required uint32 tier = 16; - required TankClass class = 17; - required bool testing = 18; - required bool deprecated = 19; + uint32 health = 10; + string nation = 11; + I18nString name = 12; + TankType type = 13; + uint32 max_consumables = 14; + uint32 max_provisions = 15; + uint32 tier = 16; + TankClass class = 17; + bool testing = 18; + bool deprecated = 19; repeated TurretDefinition turrets = 20; repeated EngineDefinition engines = 21; repeated TrackDefinition tracks = 22; - required TankPrice price = 23; + TankPrice price = 23; optional ResearchCost research_cost = 24; - required float speed_forwards = 25; - required float speed_backwards = 26; - required float camouflage_still = 27; - required float camouflage_moving = 28; - required float camouflage_on_fire = 29; - required string equipment_preset = 30; - required uint32 weight = 31; - required string dev_name = 32; + float speed_forwards = 25; + float speed_backwards = 26; + float camouflage_still = 27; + float camouflage_moving = 28; + float camouflage_on_fire = 29; + string equipment_preset = 30; + uint32 weight = 31; + string dev_name = 32; optional Equalizer equalizer = 33; } message Equalizer { - required float health = 1; - required float penetration = 2; - required float module_health = 3; - required float damage = 4; - required float armor = 5; + float health = 1; + float penetration = 2; + float module_health = 3; + float damage = 4; + float armor = 5; } message ResearchCost { @@ -59,8 +59,8 @@ message ResearchCost { } message ResearchCostSeasonalTokens { - required uint32 season = 1; - required uint32 tokens = 2; + uint32 season = 1; + uint32 tokens = 2; } enum TankPriceType { @@ -69,45 +69,45 @@ enum TankPriceType { } message TankPrice { - required TankPriceType type = 1; - required uint32 value = 2; + TankPriceType type = 1; + uint32 value = 2; } message TrackDefinition { - required uint32 id = 1; - required uint32 tier = 2; - required I18nString name = 3; - required uint32 weight = 4; - required float traverse_speed = 5; + uint32 id = 1; + uint32 tier = 2; + I18nString name = 3; + uint32 weight = 4; + float traverse_speed = 5; optional ResearchCost research_cost = 6; - required float dispersion_move = 7; - required float dispersion_traverse = 8; - required float resistance_hard = 9; - required float resistance_medium = 10; - required float resistance_soft = 11; + float dispersion_move = 7; + float dispersion_traverse = 8; + float resistance_hard = 9; + float resistance_medium = 10; + float resistance_soft = 11; repeated Unlock unlocks = 12; } message EngineDefinition { - required uint32 id = 1; - required I18nString name = 2; + uint32 id = 1; + I18nString name = 2; optional ResearchCost research_cost = 3; - required uint32 tier = 4; - required float fire_chance = 5; - required uint32 power = 6; - required uint32 weight = 7; + uint32 tier = 4; + float fire_chance = 5; + uint32 power = 6; + uint32 weight = 7; repeated Unlock unlocks = 8; } message TurretDefinition { - required uint32 id = 1; - required uint32 health = 2; - required uint32 view_range = 3; - required float traverse_speed = 4; + uint32 id = 1; + uint32 health = 2; + uint32 view_range = 3; + float traverse_speed = 4; optional ResearchCost research_cost = 5; - required I18nString name = 6; - required uint32 tier = 7; - required uint32 weight = 8; + I18nString name = 6; + uint32 tier = 7; + uint32 weight = 8; repeated GunDefinition guns = 9; repeated Unlock unlocks = 10; } @@ -119,44 +119,44 @@ message GunDefinition { GunDefinitionAutoReloader auto_reloader = 3; } - required uint32 id = 4; - required float rotation_speed = 5; + uint32 id = 4; + float rotation_speed = 5; optional ResearchCost research_cost = 6; - required uint32 weight = 7; - required I18nString name = 8; - required uint32 tier = 9; + uint32 weight = 7; + I18nString name = 8; + uint32 tier = 9; repeated ShellDefinition shells = 10; - required float camouflage_loss = 11; - required float aim_time = 12; - required float dispersion_base = 13; - required float dispersion_traverse = 14; - required float dispersion_shot = 15; - required float dispersion_damaged = 16; + float camouflage_loss = 11; + float aim_time = 12; + float dispersion_base = 13; + float dispersion_traverse = 14; + float dispersion_shot = 15; + float dispersion_damaged = 16; repeated Unlock unlocks = 17; - required uint32 shell_capacity = 18; + uint32 shell_capacity = 18; optional AssaultRanges assault_ranges = 19; optional Burst burst = 20; } message GunDefinitionRegular { - required float reload = 1; + float reload = 1; } message GunDefinitionAutoLoader { - required float clip_reload = 1; - required float intra_clip = 2; - required float shell_count = 3; + float clip_reload = 1; + float intra_clip = 2; + float shell_count = 3; } message Burst { - required uint32 count = 1; - required float interval = 2; + uint32 count = 1; + float interval = 2; } message GunDefinitionAutoReloader { repeated float shell_reloads = 1; - required float intra_clip = 2; - required float shell_count = 3; + float intra_clip = 2; + float shell_count = 3; } message AssaultRanges { @@ -165,24 +165,24 @@ message AssaultRanges { } message AssaultRange { - required float distance = 1; - required float factor = 2; + float distance = 1; + float factor = 2; } message ShellDefinition { - required uint32 id = 1; - required I18nString name = 2; - required uint32 velocity = 3; - required uint32 armor_damage = 4; - required uint32 module_damage = 5; - required float caliber = 6; - required string icon = 7; - required ShellPenetration penetration = 8; - required ShellType type = 9; - optional float normalization = 10; - optional float ricochet = 11; - optional float explosion_radius = 12; - required uint32 range = 13; + uint32 id = 1; + I18nString name = 2; + uint32 velocity = 3; + uint32 armor_damage = 4; + uint32 module_damage = 5; + float caliber = 6; + string icon = 7; + ShellPenetration penetration = 8; + ShellType type = 9; + optional float normalization = 10; + optional float ricochet = 11; + optional float explosion_radius = 12; + uint32 range = 13; } enum ShellType { @@ -193,19 +193,19 @@ enum ShellType { } message ShellPenetration { - required float near = 1; - required float far = 2; + float near = 1; + float far = 2; } message Unlock { - required int32 id = 1; - required ModuleType type = 2; - required UnlockCost cost = 3; + int32 id = 1; + ModuleType type = 2; + UnlockCost cost = 3; } message UnlockCost { - required string type = 1; - required int32 value = 2; + string type = 1; + int32 value = 2; } enum ModuleType { @@ -230,8 +230,8 @@ enum TankType { } message Crew { - required CrewType type = 1; - required uint32 count = 2; + CrewType type = 1; + uint32 count = 2; repeated CrewType substitute = 3; }