FYI, many of the technical reasons why the underscore can't be used in app names these days are gone. It used to be the delimiter in the security label, but the delimiter is now '.' in series 16. The last holdout is udev TAGging still uses '_' as the delimiter (because '.' is not allowed in udev TAGs). This is needed for assigning TAGged hardware to apps within a snap.
Unfortunately udev_rules_apply_to_event() in src/udev/udev-rules.c from systemd allows only [a-zA-Z0-9_\-] so there isn't another delimiter we could use instead. It would be possible to allow '_' in the app name so long as we still disallow it in the snap name, since that would allow us to parse the TAG reliably.
FYI, many of the technical reasons why the underscore can't be used in app names these days are gone. It used to be the delimiter in the security label, but the delimiter is now '.' in series 16. The last holdout is udev TAGging still uses '_' as the delimiter (because '.' is not allowed in udev TAGs). This is needed for assigning TAGged hardware to apps within a snap.
Unfortunately udev_rules_ apply_to_ event() in src/udev/ udev-rules. c from systemd allows only [a-zA-Z0-9_\-] so there isn't another delimiter we could use instead. It would be possible to allow '_' in the app name so long as we still disallow it in the snap name, since that would allow us to parse the TAG reliably.