Whatever you do I highly recommend staying away from writing code to pluck individual pieces and chunks out of an asset bundle and putting it into your game at runtime.
The reason: there are a staggering number of ways this can go wrong, and it becomes a REAL pain to maintain, just a complete disaster going into the future. Utter trainwreck. Stay away. Fear. Loathing. Discontent.
Instead, simply load an entire scene out of Asset Bundle or Addressible. That way when you update the scene and decide to update the downloadable, 100% of everything the scene references just gets automagically sucked into the bundle merely by being used in the scene.
Once you go scene, you never go back.
Also, additive scene loading is another possible benefit:
A multi-scene loader thingy:
My typical Scene Loader:
Other notes on additive scene loading:
Timing of scene loading:
Also, if something exists only in one scene, DO NOT MAKE A PREFAB out of it. It’s a waste of time and needlessly splits your work between two files, the prefab and the scene, leading to many possible errors and edge cases.