Json responses from volumio backend needs some serious love

Hey! First i want to say i’m sorry if this come’s harsh.

I have been developing new Android client application for Volumio some time now, and have made some observations on what kind of data is returned.

The data can be inconsistent even with itself currently, which is really confusing and for sure does not help consuming it at all, and this is easily seen from current Volumio code base aswell.

lets take a example from spotify plugin(spop) and Qobuz but same goes for atleast Tidal aswell.

{
“service”: “spop”,
“type”: “folder”,
“title”: “Heat Of The Moment”,
“albumart”: “https://i.scdn.co/image/ab67616d0000b27386c805b9acae53f9d11327f4”,
“uri”: “spotify:album:3EjN3Lt1gd4M0KrYKz7GrD”
},
{
“type”: “folder-with-favourites”,
“title”: “Outlaw R&B”,
“albumart”: “https://static.qobuz.com/images/covers/db/dn/obj07wczadndb_600.jpg”,
“uri”: “qobuz://album/obj07wczadndb”,
“service”: “qobuz”,
“trackType”: “qobuz”,
“artist”: “Night Beats”,
“favourite”: false,
“explicit”: false,
“audioQuality”: “HI_RES”,
“tagImage”: “/albumart?sectionimage=music_service/qobuz/icons/qobuzhires.png”
}

So is it a “folder” or “folder-with-favourites” as the “type” says, or is it a album as the uri tells?

{
“service”: “spop”,
“type”: “spotify-category”,
“title”: “Punk”,
“albumart”: “https://t.scdn.co/media/derived/punk-274x274_f3f1528ea7bbb60a625da13e3315a40b_0_0_274_274.jpg”,
“uri”: “spotify/category/punk”
},
{
“type”: “item-no-menu”,
“title”: “Latin”,
“albumart”: “https://resources.tidal.com/images/ddb3306e/c787/4468/a791/8efbe746aa8a/640x426.jpg”,
“uri”: “tidal://genres/Latin/playlists”,
“service”: “tidal”,
“trackType”: “tidal”,
“explicit”: false,
“audioQuality”: “”,
“tagImage”: “”
}

So is it a “spotify-category” or “item-no-menu” as the “type” says, or is it actually going to take somewhere which does show something related to genre X?

And the examples also show that not all fields are populated by each service/plugin.

These are just examples of the current state and there are more inconsistent responses aswell.

I wanted to bring this up to perhaps get some discussion about it, is it designed to be like this? Is there any plans on changing it?