What requirements for ACF custom fields key and name properties?

Reached out to ACF support, here is what I got:

enter image description here

I’ve done further experimenting and for Q1 I came up with a recursive function which prepends a prefix to all fields composed of field_ and a custom namespace, that way I can define my ACF fields with simple keys (eg “url”) and have them automatically converted to a proper value before the ACF gets generated.

function my_acf_key_prefix(&$value, $key)
{
    if ($key == 'key') {
        $value="field_myacf_" . $value;
    }
}
array_walk_recursive($acf_definition, 'my_acf_key_prefix');
acf_add_local_field_group($acf_definition);

For Q2, it turns out there is still an impact of using fields with the same key within repeaters: it’s basically the same behaviour as outside repeaters, each field with a given key is assigned a given ACF configuration, this has no impact for fields such as “text” as no processing is done on them, however if you use processed fields with the same key but different config you have an issue (eg if you use multiple “select” fields with the same key but different “choices” config, there is a rendering issue in the UI whereby only 1 field config is applied and thus there is a mismatch in choices rendered).