SimTX API/Packets/CatalogList: Difference between revisions
Appearance
Clanker moved page SimTX API/Packets/CatalogList to SimTX API v24/Packets/CatalogList: Archive the v24 protocol reference Tag: New redirect |
Protocol v25 reference: CatalogList Tag: Removed redirect |
||
| Line 1: | Line 1: | ||
{{SimTX API navigation}} | |||
{{SimTX packet | |||
| name = CatalogList | |||
| frame = ServerFrame | |||
| field = 36 | |||
| member = catalog_list | |||
| direction = s2c | |||
| session = [[SimTX API/Extension catalog protocol|Control (catalog)]] | |||
| roles = <code>ROLE_CONTROL</code>. | |||
| permission = None | |||
| answers = [[SimTX API/Packets/CatalogListRequest|CatalogListRequest]] | |||
| group = catalog | |||
| file = control.proto | |||
}} | |||
'''CatalogList''' is the index of the [[SimTX API/Extension catalog protocol|extension catalog]]: one summary per entry, without file contents. Fetch an entry's files with [[SimTX API/Packets/CatalogFetch|CatalogFetch]]. | |||
== Definition == | |||
<syntaxhighlight lang="protobuf"> | |||
message CatalogList { int64 request_id = 1; repeated CatalogEntrySummary entries = 2; } | |||
</syntaxhighlight> | |||
== Fields == | |||
{| class="wikitable" | |||
! # !! Field !! Type !! Description | |||
|- | |||
| 1 || <code>request_id</code> || <code>int64</code> || The request this answers. | |||
|- | |||
| 2 || <code>entries</code> || <code>repeated</code> [[#CatalogEntrySummary|CatalogEntrySummary]] || One summary per entry, ordered by kind, then name. | |||
|} | |||
=== CatalogEntrySummary === | |||
<syntaxhighlight lang="protobuf"> | |||
message CatalogEntrySummary { | |||
int32 id = 1; | |||
string kind = 2; | |||
string name = 3; | |||
string description = 4; | |||
string author = 5; | |||
int32 size_bytes = 6; | |||
int32 file_count = 7; | |||
repeated string types = 8; // catalog types (string enum, common.proto) | |||
repeated string categories = 9; | |||
string package_id = 10; | |||
string package_version = 11; | |||
repeated CatalogDependency dependencies = 12; | |||
int32 revision = 13; | |||
int64 uploaded_at_ms = 14; | |||
} | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
! # !! Field !! Type !! Description | |||
|- | |||
| 1 || <code>id</code> || <code>int32</code> || Entry ID. Stable across revisions. | |||
|- | |||
| 2 || <code>kind</code> || <code>string</code> || <code>extension</code> or <code>preset</code>. | |||
|- | |||
| 3 || <code>name</code> || <code>string</code> || Entry name. | |||
|- | |||
| 4 || <code>description</code> || <code>string</code> || Description, possibly empty. | |||
|- | |||
| 5 || <code>author</code> || <code>string</code> || Display name of the publishing account. | |||
|- | |||
| 6 || <code>size_bytes</code> || <code>int32</code> || Total size of the files. | |||
|- | |||
| 7 || <code>file_count</code> || <code>int32</code> || Number of files. | |||
|- | |||
| 8 || <code>types</code> || <code>repeated string</code> || [[SimTX API/Data types#Catalog type|Catalog type]] names. Skip names you do not know. | |||
|- | |||
| 9 || <code>categories</code> || <code>repeated string</code> || Free-text categories chosen by the author. | |||
|- | |||
| 10 || <code>package_id</code> || <code>string</code> || Extension package ID from the manifest, for example <code>com.example.beacon</code>. Empty for presets. | |||
|- | |||
| 11 || <code>package_version</code> || <code>string</code> || Package version (semantic versioning). Empty for presets. | |||
|- | |||
| 12 || <code>dependencies</code> || <code>repeated</code> [[#CatalogDependency|CatalogDependency]] || Packages this extension requires. | |||
|- | |||
| 13 || <code>revision</code> || <code>int32</code> || Revision number, starting at 1. Increases with every update by the owner. | |||
|- | |||
| 14 || <code>uploaded_at_ms</code> || <code>int64</code> || Time of the latest revision, Unix ms. | |||
|} | |||
=== CatalogDependency === | |||
<syntaxhighlight lang="protobuf"> | |||
message CatalogDependency { | |||
string id = 1; | |||
string version_range = 2; | |||
} | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
! # !! Field !! Type !! Description | |||
|- | |||
| 1 || <code>id</code> || <code>string</code> || Package ID of the required extension. | |||
|- | |||
| 2 || <code>version_range</code> || <code>string</code> || Accepted versions, as in the [[Lua extension manifest|manifest]]. | |||
|} | |||
== Catalog types == | |||
{| class="wikitable" | |||
! Name !! Display name | |||
|- | |||
| <code>MODULATION</code> || Modulation | |||
|- | |||
| <code>AUDIO_ADDON</code> || Audio add-on | |||
|- | |||
| <code>THEME</code> || Theme | |||
|- | |||
| <code>ACTION</code> || Tool / action | |||
|- | |||
| <code>LIBRARY</code> || Library | |||
|- | |||
| <code>PRESET</code> || Preset | |||
|} | |||
Skip, rather than reject, a type name you do not know. | |||
== See also == | |||
* [[Extension catalog]] | |||
* [[Lua extension manifest]] | |||
{{SimTX API navbox}} | |||
[[Category:SimTX API]] | |||
Latest revision as of 16:44, 24 October 2026
| Frame | ServerFrame, field 36
|
|---|---|
| Member | catalog_list
|
| Direction | Server → client |
| Session | Control (catalog) |
| Roles | ROLE_CONTROL.
|
| Permission | None |
| Answers | CatalogListRequest |
| Defined in | control.proto
|
CatalogList is the index of the extension catalog: one summary per entry, without file contents. Fetch an entry's files with CatalogFetch.
Definition[edit | edit source]
message CatalogList { int64 request_id = 1; repeated CatalogEntrySummary entries = 2; }
Fields[edit | edit source]
| # | Field | Type | Description |
|---|---|---|---|
| 1 | request_id |
int64 |
The request this answers. |
| 2 | entries |
repeated CatalogEntrySummary |
One summary per entry, ordered by kind, then name. |
CatalogEntrySummary[edit | edit source]
message CatalogEntrySummary {
int32 id = 1;
string kind = 2;
string name = 3;
string description = 4;
string author = 5;
int32 size_bytes = 6;
int32 file_count = 7;
repeated string types = 8; // catalog types (string enum, common.proto)
repeated string categories = 9;
string package_id = 10;
string package_version = 11;
repeated CatalogDependency dependencies = 12;
int32 revision = 13;
int64 uploaded_at_ms = 14;
}
| # | Field | Type | Description |
|---|---|---|---|
| 1 | id |
int32 |
Entry ID. Stable across revisions. |
| 2 | kind |
string |
extension or preset.
|
| 3 | name |
string |
Entry name. |
| 4 | description |
string |
Description, possibly empty. |
| 5 | author |
string |
Display name of the publishing account. |
| 6 | size_bytes |
int32 |
Total size of the files. |
| 7 | file_count |
int32 |
Number of files. |
| 8 | types |
repeated string |
Catalog type names. Skip names you do not know. |
| 9 | categories |
repeated string |
Free-text categories chosen by the author. |
| 10 | package_id |
string |
Extension package ID from the manifest, for example com.example.beacon. Empty for presets.
|
| 11 | package_version |
string |
Package version (semantic versioning). Empty for presets. |
| 12 | dependencies |
repeated CatalogDependency |
Packages this extension requires. |
| 13 | revision |
int32 |
Revision number, starting at 1. Increases with every update by the owner. |
| 14 | uploaded_at_ms |
int64 |
Time of the latest revision, Unix ms. |
CatalogDependency[edit | edit source]
message CatalogDependency {
string id = 1;
string version_range = 2;
}
| # | Field | Type | Description |
|---|---|---|---|
| 1 | id |
string |
Package ID of the required extension. |
| 2 | version_range |
string |
Accepted versions, as in the manifest. |
Catalog types[edit | edit source]
| Name | Display name |
|---|---|
MODULATION |
Modulation |
AUDIO_ADDON |
Audio add-on |
THEME |
Theme |
ACTION |
Tool / action |
LIBRARY |
Library |
PRESET |
Preset |
Skip, rather than reject, a type name you do not know.