Could developer explain about "ID property" and type more clear?

I really hope to know way to manage ID property more flexible.
I could find old documents about difference ID proeprty and bpy.props, but about recnet blender bpy documents, I can not find it, and lost link.

Then I have some questions, and hope developer confirm .

  1. What type python objects can be set as ID property?

I can confrim “String”, “Integer”, “float”, “dictionary”, “array”
but I do not know, if it support “List” too, or not. because if I set list for ID property, blender console not generate erroer.

In console, I can input these code.
>>> ob=C.object
>>> ob[“mylist”] = [“test”]
>>> type(ob[“mylist”])
<class ‘list’>

>>> ob["mylist"].append("test2")
>>> print(ob["mylist"])
['test']

When I input ob[“mylist”]. auto-complete show “append” too. but
unfortunately most of list class method not work.

Though I can add element ,
ob[“mylist”] += [“test2”, “test3”]
print(ob[“mylist”] )

but I can not remove elements from ob[“mylist”]

So, ID property do not support “list” type, though I can assgin,
or there is on-going development about ID property ?

Then if I set ID property,
ob[“mylist2”] = []

ob[“mylist2”] type is <class ‘IDPropertyArray’>
so it is not much for my purpose.
(because I hope to use “string list” to manage other ID property keys (float type))