Yes, but if you want to make your own inputs then it is good to know the specification for the names, which isn’t documented anywhere.
The closest documentation seems to be the shapes displayed in this ecto guide. In short, each [value] in a name string represents a key in a map, to make a “list” you would make a map of numbered keys, basically using values like [1] for the given input’s name.
that looks different from using a map with integer keys to represent lists when submitting to a changeset, form helpers don’t make use of foo[]=bar&foo[]=baz like Plug.Conn.Query shows
That notation doesn‘t work for a “list of maps”. You cannot do form[][id]=1&form[][value]=something&form[][id]=2&form[][value]=somethingelse and have that decoded to a list of maps. That‘s why things are encoded using indexes as key per individual map.