v0.20.0 — browse by game + section metadata on getStructure - #19
Merged
Conversation
- browse({ type = "game" }): list Roblox experiences by the catalog music
heard in them; drill in with name=<universe_id>; asset_id=<id> reverse
lookup returns the games a track has been heard in. New BrowseGameItem
type; rbxthumb GameIcon recipe in the README.
- getStructure include_metadata: sections/phrases carry their authored
key/value pairs verbatim in a new metadata field; the variant caches
independently so beatAtTime/sectionAtTime are unaffected. Same flag on
AudioScapeClient.getStructure and the GetStructure remote.
- sort=popular docs corrected: only genre/mood omit engagement-less
tracks; artist/album/game sort them last.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Browse by game
`AudioScape:browse({ type = "game" })` lists Roblox experiences by the catalog music heard in them, ordered by player count (minimum 5 tracks). Drill into a game's tracks with `name = "<universe_id>"`, or reverse-look-up the games a track has been heard in with `asset_id = ""`. New `BrowseGameItem` type (`universe_id`, `name`, `creator_name`, `root_place_id`, `playing`, `visits`, `track_count`); icons come free in Roblox clients via `rbxthumb://type=GameIcon&id=<universe_id>`. The game→track mapping refreshes weekly; `playing`/`visits` reflect the last sync, not live CCU.
Section metadata on getStructure
`AudioScape:getStructure({ asset_id = ..., include_metadata = true })` returns each section/phrase's authored key/value pairs verbatim in a new `metadata` field — custom cue parameters (lighting amounts, movement paths, easing styles) beyond the flattened `label`/`energy`/`bars` fields. Entries without authored pairs return an empty table. The metadata variant caches independently of the plain structure, so `beatAtTime`/`sectionAtTime` are unaffected. The same flag works through `AudioScapeClient.getStructure` and the `GetStructure` remote.
Also
Gate: stylua + selene + luau-lsp analyze clean; 21/21 Lune specs (new coverage: game type pre-flight + query assembly, asset_id forwarding, include_metadata body flag, per-variant structure cache isolation, metadata round-trip).