What are ADC channel "map," "max," and "amount" used for on a Microchip ATSAML21 ARM MCU?
I am not familiar with this tool, but it seems that the definition of struct adc_async_descriptor is in hal_adc_async.h file:

/**
 * \brief ADC descriptor
 */
struct adc_async_descriptor {
    /** ADC device */
    struct _adc_async_device device;
    /** ADC callbacks type */
    struct adc_async_callbacks adc_async_cb;
    /** Enabled channel map */
    uint8_t *channel_map;
    /** Enabled maximum channel number */
    uint8_t channel_max;
    /** Enabled channel amount */
    uint8_t channel_amount;
    /** ADC channel descriptor */
    struct adc_async_channel_descriptor *descr_ch;
};


Also adc_async_init function and struct adc_async_channel_descriptor are documented in the same file. 

Based on the code in hal_adc_async.c, I guess channel_map contains ADC channel indexes used in your application. I am not really sure what's the difference between channel_max and channel_amount.

Ultimately the best way to understand any hardware abstraction code is to see what registers it is accessing. It might be easier though to simply study peripheral description and write the code directly accessing its registers.