Use sealed classes/interfaces instead of a String. See https://github.com/GradleUp/nmcp/pull/169#discussion_r2284616608 for more details. API compatibility and migration path TBD.