I've worked on this project some more, keeping it mostly 16 colours for simplicity's sake, or perhaps old habit. The Amiga gets a few more colours for free with the 3-colour sprites though. Since sprites are vertical bars a single sprite can be used to make vertical beams. The sprite bars can also be skewed or sinus waved along the horizontal scanline axis making for a cool effect. The pointer to the image can be changed, which makes it possible to use the bars for bullets as long as these don't overlap horizontally. IIRC the Amiga (OCS) can only do 8 sprite bars in the 3 colour mode, but by baking e.g 3 bullets into one frame you can give the impression of more (a hit downgrade the image to 2 then 1 bullet).
Bullet design is kind of important in shmups. I think it's a good idea to animate and flash enemy bullets, whilst keeping player bullets muted (more than I did here with my more garish palette). The player sort of knows where their bullets are based on feeling, so they don't need to be advertised, cluttering up the screen. Blinking them off every other frame could fade them further and possibly double the sprite limit using alternation.
For damage frames I'm thinking... maybe flashes, an explosion sprite (which would have to continue up like the old bullet in order to prevent overlapping), then a wreck frame and debris blinking out (also alternating to reduce load). The wreck images drop the highlights to differentiate and flatten.
Enemies and backgrounds are BOBs (blitter objects). It might be possible to align many enemies on 16 increments which would halve memory access as the Amiga works with multiples of 16 bits due to the bitplanes. If a 16-wide BOB overlaps the boundry, then 32 bits has to be manipulated per line.
Normally BOBs have to read/copy the background behind them, then paste that back to clear. If two BOBs overlap they have to clear in a certain order and waste resources. Since my background might be tiles and not a drawn big image, I could keep a list and map of background tiles covered by BOBs, then draw those tiles back to clear. Removes the copy phase. But, then a small lone enemy BOB bullet sitting on an intersection of 4 tiles would force an update of all four, so bullets might cause slowdowns.
The Amiga can do a lot of interesting transparent shadow, color overlay and hit-frame effects in hardware but few games actually took advantage of those blit modes. I think Paradroid might've for the shadows. I'm not sure if shadows for enemy planes are affordable for this project.
I did some self-lighting effects on the flying mech. That, pop-out turrets, recoil and damage frames helps to make the enemies seem less like cardboard targets, which was a fairly common thing in amateur shmups of the time.
I wouldn't code this for the Amiga, but I like the keep the possibility of a port open because I'm like that.