How to get several direct-access wrappers from one snap?

I’m trying to build a snap (let name will be name1) with different apps inside, like:

    command: name1
    command: app2
    command: app3

Then, I’m able to use name1 command, but not app2 or app3, instead I’m ablle to use name1.app2 and name1.app3.
Is it expected? Do I miss something?

Yup. You need to request aliases. Here is an example of one I requested recently.

Once you have an alias assigned in the store, then users will be able to run name, app2 and app3 which will map to those commands in your snap, rather than use the namespaced versions you currently use.