How to use multiple dots in idnames
I tried
 bpy.types.Material['custom_float'] = bpy.props.FloatProperty(name=&quot;Test Property&quot;)
Traceback (most recent call last):
  File &quot;&lt;blender_console&gt;&quot;, line 1, in &lt;module&gt;
TypeError: 'bpy_struct_meta_idprop' object does not support item assignment

&gt;&gt;&gt; bpy.types.Material[custom_float] = bpy.props.FloatProperty(name=&quot;Test Property&quot;)
Traceback (most recent call last):
  File &quot;&lt;blender_console&gt;&quot;, line 1, in &lt;module&gt;
NameError: name 'custom_float' is not defined

&gt;&gt;&gt; bpy.types.Material.custom_float = bpy.props.FloatProperty(name=&quot;Test Property&quot;)

The last one was the only one that worked
It looks like underscores are the way to go