Improve support of valid recipe (up to 3 ingredients)

Migrate to a per ingredient type subscription mechanism