I see. Actually you can do these things also without a wrapper using just the normal Python launch script provided by the application. Icon and file type associations can be set in a resource file and added as a file system attribute to the launch script. The deskbar symlink can be set with addAppDeskbarSymlink.
See e.g. https://github.com/haikuports/haikuports/tree/master/media-sound/picard
The relevant part in the recipe is the below:
mv $prefix/bin/picard $appsDir/Picard
settype -t application/x-vnd.Be-elfexecutable $appsDir/Picard
rc $sourceDir/build/picard.rdef
resattr -o $appsDir/Picard $sourceDir/build/picard.rsrc
mimeset -f $appsDir/Picard
addAppDeskbarSymlink $appsDir/Picard
The launch script itself is getting installed at $appsDir/Picard and is just this small Python file. The only thing that is a bit of a hack here is the call to settype -t application/x-vnd.Be-elfexecutable, because obviously the launch script is just a Python script and not a Be ELF executable. But it is needed for some reason.
What I’m not sure about your feature list is the file type icon, as I have never done that. But this probably involves installing a file for the mime database and likely can also be done.