Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
b18c23a
add rpcs
andresfelipemendez Jan 14, 2026
369df95
add list records
andresfelipemendez Jan 16, 2026
86415ec
re order
andresfelipemendez Jan 19, 2026
486fb07
Update hiro-openapi.yml
andresfelipemendez Jan 19, 2026
ef3ac5a
Update hiro-openapi.yml
andresfelipemendez Jan 19, 2026
2bb1863
Update hiro-openapi.yml
andresfelipemendez Jan 19, 2026
edfb3a6
refactor rename closer to eventleaderboards
andresfelipemendez Jan 20, 2026
b2a77cb
update interface naming
andresfelipemendez Jan 20, 2026
4343cd7
revert limit to int32, delegating errcheck to nakama
andresfelipemendez Jan 20, 2026
4ed966d
rename to follow event leaderboard convention
andresfelipemendez Jan 20, 2026
f3330b8
renaming refactor
andresfelipemendez Jan 22, 2026
a5a3557
remove delete score since event leaderboard doesn't have it
andresfelipemendez Jan 22, 2026
e58fd74
add custom error, roderder parameters, update openapi from ascending …
andresfelipemendez Jan 22, 2026
fae52f7
update
andresfelipemendez Feb 23, 2026
af9cd58
Enrich hiro leaderboard type and RPCs
Calm0 Feb 25, 2026
4d4eead
Remove score delete hook
Calm0 Feb 26, 2026
b8a6620
Update score write function params
Calm0 Feb 26, 2026
3dfdde2
Allow caller to pass overrideOperator on update
Calm0 Feb 26, 2026
273b864
update leaderboard schema
Calm0 Mar 2, 2026
74121d4
Add new error (update outside duration)
Calm0 Mar 2, 2026
3c727d2
Pass the leaderboard region separately when listing scores
Calm0 Mar 2, 2026
438f0b2
regnerate buf
Calm0 Mar 18, 2026
0bee033
remove unnecessary ConditionalMetadataUpdate param
Calm0 Mar 19, 2026
4f35a23
regen buf
Calm0 Apr 2, 2026
04ad1fe
re order proto message for cpp clients
Calm0 Apr 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
342 changes: 315 additions & 27 deletions hiro-openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1269,7 +1269,7 @@ paths:
/rpc/RPC_ID_TEAMS_EVENT_LEADERBOARD_UPDATE?unwrap:
post:
summary: TEAMS_EVENT_LEADERBOARD_UPDATE
description: "Update an event leaderboard record for a user."
description: "Update an event leaderboard score for a user."
operationId: TEAMS_EVENT_LEADERBOARD_UPDATE
requestBody:
required: true
Expand Down Expand Up @@ -1791,7 +1791,7 @@ paths:
/rpc/RPC_ID_LEADERBOARDS_CONFIG_GET?unwrap:
post:
summary: LEADERBOARDS_CONFIG_GET
description: "Get the leaderboards defined for the game."
description: "Deprecated: Use RPC_ID_LEADERBOARD_LIST instead. List available leaderboards."
operationId: LEADERBOARDS_CONFIG_GET
responses:
'200':
Expand All @@ -1806,6 +1806,126 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/Error'
/rpc/RPC_ID_LEADERBOARD_LIST?unwrap:
post:
summary: LEADERBOARD_LIST
description: "List available leaderboards."
operationId: LEADERBOARD_LIST
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardListRequest'
responses:
'200':
description: A successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardList'
'default':
description: An error response
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/rpc/RPC_ID_LEADERBOARD_GET?unwrap:
post:
summary: LEADERBOARD_GET
description: "Get a specified leaderboard with scores."
operationId: LEADERBOARD_GET
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardGet'
responses:
'200':
description: A successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Leaderboard'
'default':
description: An error response
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/rpc/RPC_ID_LEADERBOARD_UPDATE?unwrap:
post:
summary: LEADERBOARD_UPDATE
description: "Update a leaderboard score."
operationId: LEADERBOARD_UPDATE
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardUpdate'
responses:
'200':
description: A successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardScore'
'default':
description: An error response
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/rpc/RPC_ID_LEADERBOARD_SCORES_LIST?unwrap:
post:
summary: LEADERBOARD_SCORES_LIST
description: "List scores on a specified leaderboard."
operationId: LEADERBOARD_SCORES_LIST
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardScoresListRequest'
responses:
'200':
description: A successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardScoreList'
'default':
description: An error response
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/rpc/RPC_ID_LEADERBOARD_SCORES_LIST_AROUND_OWNER?unwrap:
post:
summary: LEADERBOARD_SCORES_LIST_AROUND_OWNER
description: "List scores on a specified leaderboard around the owner."
operationId: LEADERBOARD_SCORES_LIST_AROUND_OWNER
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardScoresListAroundOwnerRequest'
responses:
'200':
description: A successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LeaderboardScoreList'
'default':
description: An error response
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/rpc/RPC_ID_EVENT_LEADERBOARD_LIST?unwrap:
post:
summary: EVENT_LEADERBOARD_LIST
Expand Down Expand Up @@ -1857,7 +1977,7 @@ paths:
/rpc/RPC_ID_EVENT_LEADERBOARD_UPDATE?unwrap:
post:
summary: EVENT_LEADERBOARD_UPDATE
description: "Update an event leaderboard record for a user."
description: "Update an event leaderboard score for a user."
operationId: EVENT_LEADERBOARD_UPDATE
requestBody:
required: true
Expand Down Expand Up @@ -2929,6 +3049,193 @@ components:
code:
type: integer
format: int32
LeaderboardUpdate:
type: object
properties:
id:
type: string
score:
type: integer
format: int64
subscore:
type: integer
format: int64
metadata:
type: string
LeaderboardGet:
type: object
properties:
id:
type: string
LeaderboardListRequest:
type: object
properties:
categories:
type: array
items:
type: string
LeaderboardScoresListRequest:
type: object
properties:
id:
type: string
owner_ids:
type: array
items:
type: string
limit:
type: integer
format: int32
cursor:
type: string
expiry:
type: integer
format: int64
Comment thread
Calm0 marked this conversation as resolved.
region:
type: string
LeaderboardScoresListAroundOwnerRequest:
type: object
properties:
id:
type: string
limit:
type: integer
format: int32
owner_id:
type: string
expiry:
type: integer
format: int64
cursor:
type: string
Comment thread
Calm0 marked this conversation as resolved.
region:
type: string
LeaderboardScore:
type: object
properties:
leaderboard_id:
type: string
owner_id:
type: string
username:
type: string
score:
type: integer
format: int64
subscore:
type: integer
format: int64
num_score:
type: integer
format: int32
metadata:
type: string
create_time_sec:
type: integer
format: int64
update_time_sec:
type: integer
format: int64
expiry_time_sec:
type: integer
format: int64
rank:
type: integer
format: int64
num_scores:
type: integer
format: int64
LeaderboardScoreList:
type: object
properties:
scores:
type: array
items:
$ref: '#/components/schemas/LeaderboardScore'
owner_scores:
type: array
items:
$ref: '#/components/schemas/LeaderboardScore'
next_cursor:
type: string
prev_cursor:
type: string
rank_count:
type: integer
format: int64
leaderboard:
$ref: '#/components/schemas/Leaderboard'
Leaderboard:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
category:
type: string
ascending:
type: boolean
operator:
type: string
prev_reset_time_sec:
type: integer
format: int64
next_reset_time_sec:
type: integer
format: int64
current_time_sec:
type: integer
format: int64
start_time_sec:
type: integer
format: int64
end_time_sec:
type: integer
format: int64
regions:
type: array
items:
type: string
authoritative:
type: boolean
additionalProperties:
type: object
additionalProperties:
type: string
LeaderboardList:
type: object
properties:
leaderboards:
type: array
items:
$ref: '#/components/schemas/Leaderboard'
LeaderboardConfig:
type: object
properties:
id:
type: string
sort_order:
type: string
operator:
type: string
reset_schedule:
type: string
authoritative:
type: boolean
regions:
type: array
items:
type: string
LeaderboardConfigList:
type: object
properties:
leaderboard_configs:
type: array
items:
$ref: '#/components/schemas/LeaderboardConfig'
ProgressionCost:
type: object
properties:
Expand Down Expand Up @@ -4990,30 +5297,6 @@ components:
EnergySpendWithRefillStartTimeRequest:
type: object
properties:
LeaderboardConfig:
type: object
properties:
id:
type: string
sort_order:
type: string
operator:
type: string
reset_schedule:
type: string
authoritative:
type: boolean
regions:
type: array
items:
type: string
LeaderboardConfigList:
type: object
properties:
leaderboard_configs:
type: array
items:
$ref: '#/components/schemas/LeaderboardConfig'
Tutorial:
type: object
properties:
Expand Down Expand Up @@ -6634,6 +6917,11 @@ components:
- RPC_ID_BASE_SET_DEVICE_PREFS
- RPC_ID_BASE_SYNC
- RPC_ID_LEADERBOARDS_CONFIG_GET
- RPC_ID_LEADERBOARD_LIST
- RPC_ID_LEADERBOARD_GET
- RPC_ID_LEADERBOARD_UPDATE
- RPC_ID_LEADERBOARD_SCORES_LIST
- RPC_ID_LEADERBOARD_SCORES_LIST_AROUND_OWNER
- RPC_ID_EVENT_LEADERBOARD_LIST
- RPC_ID_EVENT_LEADERBOARD_GET
- RPC_ID_EVENT_LEADERBOARD_UPDATE
Expand Down
Loading
Loading