iter_all_urns takes filters such as mutability or required.
Then the urns are passed to fill_with_random_values which fills every one of them.
Sometimes, read-write complex attributes have read-only sub-attributes.
Currently, those read-only attributes would be filled, even if read-only was not included in the iter_all_urns mutability filter.
I suppose the fill_with_random_values and generate_random_values should also handle filters, that could be recursively passed to sub-attributes and extensions in generate_random_values.