I understand your concern but I want to point out that red/green here resembles the colors you normally use for a diff; as the solution is a diff for your package. That's why red and green are sadly the natural choices because somebody picked that decades ago.
For colorless systems, there's emphasis on dangerous actions due to their heading being all uppercase. It's not particularly good emphasis, but it's better than before when the upper case was inside a longer sentence (people actually complain about seeing upper case now).
Essentially we have three categories of package lists that can be displayed:
- Non-destructive actions that will be performed, like installs and upgrades
- Destructive actions like removals and downgrades (red and yellow color coded to match error/warning)
- Notes that show packages that can be autoremoved or suggested packages that will not be installed, or packages not upgraded (usually due to the archive issues)
The first goal when you look at the screen is to draw your attention away from the "notes" kind of things such that you can easily glance what the changes are that actually will be performed.
The second goal should be to focus on any destructive actions in particular such that you spot the common issue where you get many packages removed due to conflicts.
Now the problem without colors all we have left to draw your attention is bold/bright, underline and italic.
Now assume I mark removals bold because I want to draw your attention to it, I don't have a good way left to draw your attention away from other notes because underline and italic are awkward.
Of course you can reconfigure every color in APT with the APT::Color option space but it needs more documentation.