- rna_info.py now outputs array length with types eg. float[16].
authorCampbell Barton <ideasman42@gmail.com>
Tue, 17 Aug 2010 02:42:30 +0000 (02:42 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 17 Aug 2010 02:42:30 +0000 (02:42 +0000)
- corrected rna property name Controller.states -> state (pointed out by Dalai).
- rna_cleaner_merge script now only merges comment and new name.

release/scripts/modules/rna_info.py
source/blender/makesrna/rna_cleanup/rna_cleaner.py
source/blender/makesrna/rna_cleanup/rna_cleaner_merge.py
source/blender/makesrna/rna_cleanup/rna_properties.txt

index 5d769d016413f0cfb95eac6bed9a917770be25fc..296ec87fcb4d5516853ef0d03714ae5bb1507d70 100644 (file)
@@ -636,7 +636,11 @@ if __name__ == "__main__":
         for prop_id, prop in sorted(props):
             # if prop.type == 'boolean':
             #     continue
-            data.append("%s.%s -> %s:    %s%s    %s" % (struct_id_str, prop.identifier, prop.identifier, prop.type, ", (read-only)" if prop.is_readonly else "", prop.description))
+            prop_type = prop.type
+            if prop.array_length > 0:
+                prop_type += "[%d]" % prop.array_length
+
+            data.append("%s.%s -> %s:    %s%s    %s" % (struct_id_str, prop.identifier, prop.identifier, prop_type, ", (read-only)" if prop.is_readonly else "", prop.description))
         data.sort()
 
     if bpy.app.background:
index ed483deb889184d2e3cfe356456f526395b8f5c5..a63a715a13a3ce5ac1f168edee09d792b46506ea 100755 (executable)
@@ -253,6 +253,13 @@ def write_files(basename, props_list, props_length_max):
     props_list = [['NOTE', 'CHANGED', 'CLASS', 'FROM', 'TO', 'KEYWORD-CHECK', 'TYPE', 'DESCRIPTION']] + props_list
     for props in props_list:
         #txt
+        
+        # FOR PY OUTPUT!
+        '''
+        if props[3] == props[4]: txt += "#"
+        else: txt += " "
+        '''
+    
         if props[0] != '': txt +=  '%s * ' % props[0]   # comment
         txt +=  '%s.%s -> %s:   %s  "%s"\n' % tuple(props[2:5] + props[6:])   # skipping keyword-check
         # rna_api
index 90b8f021d01fc80b6190d7a8a214dba055fb626d..8d2fe07b77476500142b4a2402d7d02571fda39c 100755 (executable)
@@ -27,17 +27,16 @@ def main():
        
        for key, val_orig in mod_to_dict.items():
                try:
-                       val = mod_from_dict.pop(key)
+                       val_new = mod_from_dict.pop(key)
                except:
                        # print("not found", key)
-                       val = val_orig
+                       val_new = val_orig
                        
                # always take the class from the base
-               val = list(val)
-               val[2] = val_orig[2]
-               print(val_orig[2])
+               val = list(val_orig)
+               val[0] = val_new[0] # comment
+               val[4] = val_new[4] # -> to
                val = tuple(val)
-
                rna_api_new.append(val)
        
        def write_work_file(file_path, rna_api):
index 9a3c7b3e18cb22d6fa75352f2c0625623e7e40e1..ec8247ffe98cc5198c3013a41c3fa410cd67b4db 100644 (file)
@@ -45,7 +45,7 @@ NOTE * CLASS.FROM -> TO:   TYPE  "DESCRIPTION"
 + * Actuator|ConstraintActuator.mode -> mode:   enum  "The type of the constraint"
 + * Actuator|ConstraintActuator.property -> property:   string  "Ray detect only Objects with this property"
 + * Actuator|ConstraintActuator.range -> range:   float  "Set the maximum length of ray"
-+ * Actuator|ConstraintActuator.max_rotation -> rotation_max:   float  "Reference Direction"
++ * Actuator|ConstraintActuator.max_rotation -> rotation_max:   float[3]  "Reference Direction"
 + * Actuator|ConstraintActuator.spring -> spring:   float  "Spring force within the Fh area"
 + * Actuator|ConstraintActuator.time -> time:   int  "Maximum activation time in frame, 0 for unlimited"
 + * Actuator|ConstraintActuator.fh_normal -> use_fh_normal:   boolean  "Add a horizontal spring force on slopes"
@@ -55,9 +55,9 @@ NOTE * CLASS.FROM -> TO:   TYPE  "DESCRIPTION"
 + * Actuator|ConstraintActuator.detect_material -> use_material_detect:   boolean  "Detect material instead of property"
 + * Actuator|ConstraintActuator.normal -> use_normal:   boolean  "Set object axis along (local axis) or parallel (global axis) to the normal at hit position"
 + * Actuator|ConstraintActuator.persistent -> use_persistent:   boolean  "Persistent actuator: stays active even if ray does not reach target"
-+ * Actuator|EditObjectActuator.angular_velocity -> angular_velocity:   float  "Angular velocity upon creation"
++ * Actuator|EditObjectActuator.angular_velocity -> angular_velocity:   float[3]  "Angular velocity upon creation"
 + * Actuator|EditObjectActuator.dynamic_operation -> dynamic_operation:   enum  "NO DESCRIPTION"
-+ * Actuator|EditObjectActuator.linear_velocity -> linear_velocity:   float  "Velocity upon creation"
++ * Actuator|EditObjectActuator.linear_velocity -> linear_velocity:   float[3]  "Velocity upon creation"
 + * Actuator|EditObjectActuator.mass -> mass:   float  "The mass of the object"
 + * Actuator|EditObjectActuator.mesh -> mesh:   pointer  "Replace the existing, when left blank Phys will remake the existing physics mesh"
 + * Actuator|EditObjectActuator.mode -> mode:   enum  "The mode of the actuator"
@@ -90,10 +90,10 @@ NOTE * CLASS.FROM -> TO:   TYPE  "DESCRIPTION"
 + * Actuator|MessageActuator.body_type -> body_type:   enum  "Toggle message type: either Text or a PropertyName"
 + * Actuator|MessageActuator.subject -> subject:   string  "Optional message subject. This is what can be filtered on"
 + * Actuator|MessageActuator.to_property -> to_property:   string  "Optional send message to objects with this name only, or empty to broadcast"
-+ * Actuator|ObjectActuator.angular_velocity -> angular_velocity:   float  "Sets the angular velocity"
++ * Actuator|ObjectActuator.angular_velocity -> angular_velocity:   float[3]  "Sets the angular velocity"
 + * Actuator|ObjectActuator.damping -> damping:   int  "Number of frames to reach the target velocity"
 + * Actuator|ObjectActuator.derivate_coefficient -> derivate_coefficient:   float  "Not required, high values can cause instability"
-+ * Actuator|ObjectActuator.force -> force:   float  "Sets the force"
++ * Actuator|ObjectActuator.force -> force:   float[3]  "Sets the force"
 + * Actuator|ObjectActuator.force_max_x -> force_max_x:   float  "Set the upper limit for force"
 + * Actuator|ObjectActuator.force_max_y -> force_max_y:   float  "Set the upper limit for force"
 + * Actuator|ObjectActuator.force_max_z -> force_max_z:   float  "Set the upper limit for force"
@@ -101,13 +101,13 @@ NOTE * CLASS.FROM -> TO:   TYPE  "DESCRIPTION"
 + * Actuator|ObjectActuator.force_min_y -> force_min_y:   float  "Set the lower limit for force"
 + * Actuator|ObjectActuator.force_min_z -> force_min_z:   float  "Set the lower limit for force"
 + * Actuator|ObjectActuator.integral_coefficient -> integral_coefficient:   float  "Low value (0.01) for slow response, high value (0.5) for fast response"
-+ * Actuator|ObjectActuator.linear_velocity -> linear_velocity:   float  "Sets the linear velocity (in Servo mode it sets the target relative linear velocity, it will be achieved by automatic application of force. Null velocity is a valid target)"
++ * Actuator|ObjectActuator.linear_velocity -> linear_velocity:   float[3]  "Sets the linear velocity (in Servo mode it sets the target relative linear velocity, it will be achieved by automatic application of force. Null velocity is a valid target)"
 + * Actuator|ObjectActuator.mode -> mode:   enum  "Specify the motion system"
-+ * Actuator|ObjectActuator.loc -> offset_location:   float  "Sets the location"
-+ * Actuator|ObjectActuator.rot -> offset_rotation:   float  "Sets the rotation"
++ * Actuator|ObjectActuator.loc -> offset_location:   float[3]  "Sets the location"
++ * Actuator|ObjectActuator.rot -> offset_rotation:   float[3]  "Sets the rotation"
 + * Actuator|ObjectActuator.proportional_coefficient -> proportional_coefficient:   float  "Typical value is 60x integral coefficient"
 + * Actuator|ObjectActuator.reference_object -> reference_object:   pointer  "Reference object for velocity calculation, leave empty for world reference"
-+ * Actuator|ObjectActuator.torque -> torque:   float  "Sets the torque"
++ * Actuator|ObjectActuator.torque -> torque:   float[3]  "Sets the torque"
 + * Actuator|ObjectActuator.add_linear_velocity -> use_add_linear_velocity:   boolean  "Toggles between ADD and SET linV"
 + * Actuator|ObjectActuator.local_angular_velocity -> use_local_angular_velocity:   boolean  "Angular velocity is defined in local coordinates"
 + * Actuator|ObjectActuator.local_force -> use_local_force:   boolean  "Force is defined in local coordinates"
@@ -168,7 +168,7 @@ NOTE * CLASS.FROM -> TO:   TYPE  "DESCRIPTION"
 + * Actuator|SoundActuator.enable_sound_3d -> use_sound_3d:   boolean  "Enable/Disable 3D Sound"
 + * Actuator|SoundActuator.volume -> volume:   float  "Sets the initial volume of the sound"
 + * Actuator|StateActuator.operation -> operation:   enum  "Select the bit operation on object state mask"
-+ * Actuator|StateActuator.state -> states:   boolean  "NO DESCRIPTION"
++ * Actuator|StateActuator.state -> states:   boolean[30]  "NO DESCRIPTION"
 + * Actuator|VisibilityActuator.children -> apply_to_children:   boolean  "Set all the children of this object to the same visibility/occlusion recursively"
 + * Actuator|VisibilityActuator.occlusion -> use_occlusion:   boolean  "Set the object to occlude objects behind it. Initialized from the object type in physics button"
 + * Actuator|VisibilityActuator.visible -> use_visible:   boolean  "Set the objects visible. Initialized from the objects render restriction toggle (access in the outliner)"
@@ -215,10 +215,10 @@ MAKE PROPERTY OF A COLLECTION * Area.active_space -> active_space:   pointer,  "
 + * BackgroundImage.size -> size:   float  "Scaling factor for the background image"
 + * BackgroundImage.transparency -> transparency:   float  "Amount to blend the image against the background color"
 + * BackgroundImage.view_axis -> view_axis:   enum  "The axis to display the image on"
-+ * BezierSplinePoint.co -> co:   float  "Coordinates of the control point"
-+ * BezierSplinePoint.handle1 -> handle_left:   float  "Coordinates of the first handle"
++ * BezierSplinePoint.co -> co:   float[3]  "Coordinates of the control point"
++ * BezierSplinePoint.handle1 -> handle_left:   float[3]  "Coordinates of the first handle"
 + * BezierSplinePoint.handle1_type -> handle_left_type:   enum  "Handle types"
-+ * BezierSplinePoint.handle2 -> handle_right:   float  "Coordinates of the second handle"
++ * BezierSplinePoint.handle2 -> handle_right:   float[3]  "Coordinates of the second handle"
 + * BezierSplinePoint.handle2_type -> handle_right_type:   enum  "Handle types"
 + * BezierSplinePoint.hide -> hide:   boolean  "Visibility status"
 + * BezierSplinePoint.radius -> radius:   float,  "(read-only)    Radius for bevelling"
@@ -288,20 +288,20 @@ MAKE PROPERTY OF A COLLECTION * Area.active_space -> active_space:   pointer,  "
 + * Bone.children -> children:   collection,  "(read-only)    Bones which are children of this bone"
 + * Bone.envelope_distance -> envelope_distance:   float  "Bone deformation distance (for Envelope deform only)"
 + * Bone.envelope_weight -> envelope_weight:   float  "Bone deformation weight (for Envelope deform only)"
-+ * Bone.head -> head:   float  "Location of head end of the bone relative to its parent"
-+ * Bone.head_local -> head_local:   float  "Location of head end of the bone relative to armature"
++ * Bone.head -> head:   float[3]  "Location of head end of the bone relative to its parent"
++ * Bone.head_local -> head_local:   float[3]  "Location of head end of the bone relative to armature"
 + * Bone.head_radius -> head_radius:   float  "Radius of head of bone (for Envelope deform only)"
 + * Bone.hide -> hide:   boolean  "Bone is not visible when it is not in Edit Mode (i.e. in Object or Pose Modes)"
 + * Bone.hide_select -> hide_select:   boolean  "Bone is able to be selected"
-+ * Bone.layer -> layers:   boolean  "Layers bone exists in"
-+ * Bone.matrix -> matrix:   float  "3x3 bone matrix"
-+ * Bone.matrix_local -> matrix_local:   float  "4x4 bone matrix relative to armature"
++ * Bone.layer -> layers:   boolean[32]  "Layers bone exists in"
++ * Bone.matrix -> matrix:   float[9]  "3x3 bone matrix"
++ * Bone.matrix_local -> matrix_local:   float[16]  "4x4 bone matrix relative to armature"
 + * Bone.name -> name:   string  "NO DESCRIPTION"
 + * Bone.parent -> parent:   pointer,  "(read-only)    Parent bone (in same Armature)"
 + * Bone.select -> select:   boolean  "NO DESCRIPTION"
 + * Bone.draw_wire -> show_wire:   boolean  "Bone is always drawn as Wireframe regardless of viewport draw mode. Useful for non-obstructive custom bone shapes"
-+ * Bone.tail -> tail:   float  "Location of tail end of the bone"
-+ * Bone.tail_local -> tail_local:   float  "Location of tail end of the bone relative to armature"
++ * Bone.tail -> tail:   float[3]  "Location of tail end of the bone"
++ * Bone.tail_local -> tail_local:   float[3]  "Location of tail end of the bone relative to armature"
 + * Bone.tail_radius -> tail_radius:   float  "Radius of tail of bone (for Envelope deform only)"
 + * Bone.connected -> use_connect:   boolean,  "(read-only)    When bone has a parent, bones head is struck to the parents tail"
 + * Bone.cyclic_offset -> use_cyclic_offset:   boolean  "When bone doesnt have a parent, it receives cyclic offset effects"
@@ -333,7 +333,7 @@ MAKE PROPERTY OF A COLLECTION * Area.active_space -> active_space:   pointer,  "
 + * ClothSettings.goal_max -> goal_max:   float  "Goal maximum, vertex group weights are scaled to match this range"
 + * ClothSettings.goal_min -> goal_min:   float  "Goal minimum, vertex group weights are scaled to match this range"
 + * ClothSettings.goal_spring -> goal_spring:   float  "Goal (vertex target position) spring stiffness"
-+ * ClothSettings.gravity -> gravity:   float  "Gravity or external force vector"
++ * ClothSettings.gravity -> gravity:   float[3]  "Gravity or external force vector"
 + * ClothSettings.internal_friction -> internal_friction:   float  "NO DESCRIPTION"
 + * ClothSettings.mass -> mass:   float  "Mass of cloth material"
 + * ClothSettings.mass_vertex_group -> mass_vertex_group:   string  "Vertex Group for pinning of vertices"
@@ -358,11 +358,11 @@ MAKE PROPERTY OF A COLLECTION * Area.active_space -> active_space:   pointer,  "
 + * CollisionSettings.inner_thickness -> thickness_inner:   float  "Inner face thickness"
 + * CollisionSettings.outer_thickness -> thickness_outer:   float  "Outer face thickness"
 + * CollisionSettings.enabled -> use:   boolean  "Enable this objects as a collider for physics systems"
-+ * CollisionSettings.kill_particles -> use_particle_kill:   boolean  "Kill colliding particles"
++ * CollisionSettings.kill_particles -> use_particle_kill:   boolean  "Kill collided particles"
 + * ColorRamp.total -> count:   int,  "(read-only)    Total number of elements"
 + * ColorRamp.elements -> elements:   collection,  "(read-only)"
 + * ColorRamp.interpolation -> interpolation:   enum  "NO DESCRIPTION"
-+ * ColorRampElement.color -> color:   float  "NO DESCRIPTION"
++ * ColorRampElement.color -> color:   float[4]  "NO DESCRIPTION"
 + * ColorRampElement.position -> position:   float  "NO DESCRIPTION"
 ConsoleLine.body -> body:   string  "Text in the line"
 + * ConsoleLine.current_character -> current_character:   int  "NO DESCRIPTION"
@@ -518,7 +518,7 @@ ConsoleLine.body -> body:   string  "Text in the line"
 + * Constraint|MaintainVolumeConstraint.axis -> free_axis:   enum  "The free scaling axis of the object"
 + * Constraint|MaintainVolumeConstraint.volume -> volume:   float  "Volume of the bone at rest"
 + * Constraint|PivotConstraint.head_tail -> head_tail:   float  "Target along length of bone: Head=0, Tail=1"
-+ * Constraint|PivotConstraint.offset -> offset:   float  "Offset of pivot from target (when set), or from owners location (when Fixed Position is off), or the absolute pivot point"
++ * Constraint|PivotConstraint.offset -> offset:   float[3]  "Offset of pivot from target (when set), or from owners location (when Fixed Position is off), or the absolute pivot point"
 + * Constraint|PivotConstraint.enabled_rotation_range -> rotation_range:   enum  "Rotation range on which pivoting should occur"
 + * Constraint|PivotConstraint.subtarget -> subtarget:   string  "NO DESCRIPTION"
 + * Constraint|PivotConstraint.target -> target:   pointer  "Target Object, defining the position of the pivot when defined"
@@ -546,7 +546,7 @@ ConsoleLine.body -> body:   string  "Text in the line"
 + * Constraint|ShrinkwrapConstraint.use_y -> use_y:   boolean  "Projection over Y Axis"
 + * Constraint|ShrinkwrapConstraint.use_z -> use_z:   boolean  "Projection over Z Axis"
 + * Constraint|SplineIKConstraint.chain_length -> chain_count:   int  "How many bones are included in the chain"
-+ * Constraint|SplineIKConstraint.joint_bindings -> joint_bindings:   float  "(EXPERIENCED USERS ONLY) The relative positions of the joints along the chain as percentages"
++ * Constraint|SplineIKConstraint.joint_bindings -> joint_bindings:   float[32]  "(EXPERIENCED USERS ONLY) The relative positions of the joints along the chain as percentages"
 + * Constraint|SplineIKConstraint.target -> target:   pointer  "Curve that controls this relationship"
 + * Constraint|SplineIKConstraint.chain_offset -> use_chain_offset:   boolean  "Offset the entire chain relative to the root joint"
 + * Constraint|SplineIKConstraint.use_curve_radius -> use_curve_radius:   boolean  "Average radius of the endpoints is used to tweak the X and Z Scaling of the bones, on top of XZ Scale mode"
@@ -600,7 +600,7 @@ ConsoleLine.body -> body:   string  "Text in the line"
 + * Context.manager -> wm:   pointer,  "(read-only)"
 + * Controller.name -> name:   string  "NO DESCRIPTION"
 + * Controller.expanded -> show_expanded:   boolean  "Set controller expanded in the user interface"
-+ * Controller.state -> states:   boolean,  "(read-only)    Set Controller state index (1 to 30)"
++ * Controller.state -> state:   int  "Set Controller state index (1 to 30)"
 + * Controller.type -> type:   enum  "NO DESCRIPTION"
 + * Controller.priority -> use_priority:   boolean  "Mark controller for execution before all non-marked controllers (good for startup scripts)"
 + * Controller|ExpressionController.expression -> expression:   string  "NO DESCRIPTION"
@@ -611,16 +611,16 @@ ConsoleLine.body -> body:   string  "Text in the line"
 + * CurveMap.extend -> extend:   enum,  "(read-only)    Extrapolate the curve or extend it horizontally"
 + * CurveMap.points -> points:   collection,  "(read-only)"
 + * CurveMapPoint.handle_type -> handle_type:   enum,  "(read-only)    Curve interpolation at this point: bezier or vector"
-+ * CurveMapPoint.location -> location:   float,  "(read-only)    X/Y coordinates of the curve point"
++ * CurveMapPoint.location -> location:   float[2],  "(read-only)    X/Y coordinates of the curve point"
 + * CurveMapPoint.select -> select:   boolean  "Selection state of the curve point"
-+ * CurveMapping.black_level -> black_level:   float  "For RGB curves, the color that black is mapped to"
++ * CurveMapping.black_level -> black_level:   float[3]  "For RGB curves, the color that black is mapped to"
 + * CurveMapping.clip_max_x -> clip_max_x:   float  "NO DESCRIPTION"
 + * CurveMapping.clip_max_y -> clip_max_y:   float  "NO DESCRIPTION"
 + * CurveMapping.clip_min_x -> clip_min_x:   float  "NO DESCRIPTION"
 + * CurveMapping.clip_min_y -> clip_min_y:   float  "NO DESCRIPTION"
 + * CurveMapping.curves -> curves:   collection,  "(read-only)"
 + * CurveMapping.clip -> use_clip:   boolean  "Force the curve view to fit a defined boundary"
-+ * CurveMapping.white_level -> white_level:   float  "For RGB curves, the color that white is mapped to"
++ * CurveMapping.white_level -> white_level:   float[3]  "For RGB curves, the color that white is mapped to"
 TODO MOVE TO COLLECTION * CurveSplines.active -> active:   pointer  "Active curve spline"
 + * DopeSheet.filtering_group -> filter_group:   pointer  "Group that included Object should be a member of"
 + * DopeSheet.display_armature -> show_armatures:   boolean  "Include visualization of Armature related Animation data"
@@ -658,21 +658,21 @@ TODO MOVE TO COLLECTION * CurveSplines.active -> active:   pointer  "Active curv
 + * DriverVariable.name -> name:   string  "Name to use in scripted expressions/functions. (No spaces or dots are allowed. Also, must not start with a symbol or digit)"
 + * DriverVariable.targets -> targets:   collection,  "(read-only)    Sources of input data for evaluating this variable"
 + * DriverVariable.type -> type:   enum  "Driver variable type"
-+ * DupliObject.matrix -> matrix:   float  "Object duplicate transformation matrix"
-+ * DupliObject.matrix_original -> matrix_original:   float  "Duplicated object transformation matrix"
++ * DupliObject.matrix -> matrix:   float[16]  "Object duplicate transformation matrix"
++ * DupliObject.matrix_original -> matrix_original:   float[16]  "The original matrix of this object before it was duplicated"
 + * DupliObject.object -> object:   pointer,  "(read-only)    Object being duplicated"
 + * EditBone.bbone_in -> bbone_in:   float  "Length of first Bezier Handle (for B-Bones only)"
 + * EditBone.bbone_out -> bbone_out:   float  "Length of second Bezier Handle (for B-Bones only)"
 + * EditBone.bbone_segments -> bbone_segments:   int  "Number of subdivisions of bone (for B-Bones only)"
 + * EditBone.envelope_distance -> envelope_distance:   float  "Bone deformation distance (for Envelope deform only)"
 + * EditBone.envelope_weight -> envelope_weight:   float  "Bone deformation weight (for Envelope deform only)"
-+ * EditBone.head -> head:   float  "Location of head end of the bone"
++ * EditBone.head -> head:   float[3]  "Location of head end of the bone"
 + * EditBone.head_radius -> head_radius:   float  "Radius of head of bone (for Envelope deform only)"
 + * EditBone.hide -> hide:   boolean  "Bone is not visible when in Edit Mode"
 + * EditBone.hide_select -> hide_select:   boolean  "Bone is able to be selected"
-+ * EditBone.layer -> layers:   boolean  "Layers bone exists in"
++ * EditBone.layer -> layers:   boolean[32]  "Layers bone exists in"
 + * EditBone.lock -> lock:   boolean  "Bone is not able to be transformed when in Edit Mode"
-+ * EditBone.matrix -> matrix:   float,  "(read-only)    Read-only matrix calculated from the roll (armature space)"
++ * EditBone.matrix -> matrix:   float[16],  "(read-only)    Read-only matrix calculated from the roll (armature space)"
 + * EditBone.name -> name:   string  "NO DESCRIPTION"
 + * EditBone.parent -> parent:   pointer  "Parent edit bone (in same Armature)"
 + * EditBone.roll -> roll:   float  "Bone rotation around head-tail axis"
@@ -680,7 +680,7 @@ TODO MOVE TO COLLECTION * CurveSplines.active -> active:   pointer  "Active curv
 + * EditBone.select_head -> select_head:   boolean  "NO DESCRIPTION"
 + * EditBone.select_tail -> select_tail:   boolean  "NO DESCRIPTION"
 + * EditBone.draw_wire -> show_wire:   boolean  "Bone is always drawn as Wireframe regardless of viewport draw mode. Useful for non-obstructive custom bone shapes"
-+ * EditBone.tail -> tail:   float  "Location of tail end of the bone"
++ * EditBone.tail -> tail:   float[3]  "Location of tail end of the bone"
 + * EditBone.tail_radius -> tail_radius:   float  "Radius of tail of bone (for Envelope deform only)"
 + * EditBone.connected -> use_connect:   boolean  "When bone has a parent, bones head is struck to the parents tail"
 + * EditBone.cyclic_offset -> use_cyclic_offset:   boolean  "When bone doesnt have a parent, it receives cyclic offset effects"
@@ -712,7 +712,7 @@ TODO MOVE TO COLLECTION * CurveSplines.active -> active:   pointer  "Active curv
 + * EnvironmentMap.clip_end -> clip_end:   float  "Objects further than this are not visible to map"
 + * EnvironmentMap.clip_start -> clip_start:   float  "Objects nearer than this are not visible to map"
 + * EnvironmentMap.depth -> depth:   int  "Number of times a map will be rendered recursively (mirror effects.)"
-+ * EnvironmentMap.ignore_layers -> layers_ignore:   boolean  "Hide objects on these layers when generating the Environment Map"
++ * EnvironmentMap.ignore_layers -> layers_ignore:   boolean[20]  "Hide objects on these layers when generating the Environment Map"
 + * EnvironmentMap.mapping -> mapping:   enum  "NO DESCRIPTION"
 + * EnvironmentMap.resolution -> resolution:   int  "Pixel resolution of the rendered environment map"
 + * EnvironmentMap.source -> source:   enum  "NO DESCRIPTION"
@@ -732,7 +732,7 @@ TODO MOVE TO COLLECTION * CurveSplines.active -> active:   pointer  "Active curv
 + * Event.type -> type:   enum,  "(read-only)"
 + * Event.value -> value:   enum,  "(read-only)    The type of event, only applies to some"
 + * FCurve.array_index -> array_index:   int  "Index to the specific property affected by F-Curve if applicable"
-+ * FCurve.color -> color:   float  "Color of the F-Curve in the Graph Editor"
++ * FCurve.color -> color:   float[3]  "Color of the F-Curve in the Graph Editor"
 + * FCurve.color_mode -> color_mode:   enum  "Method used to determine color of F-Curve in Graph Editor"
 + * FCurve.data_path -> data_path:   string  "RNA Path to property affected by F-Curve"
 + * FCurve.driver -> driver:   pointer,  "(read-only)    Channel Driver (only set for Driver F-Curves)"
@@ -748,7 +748,7 @@ TODO MOVE TO COLLECTION * CurveSplines.active -> active:   pointer  "Active curv
 + * FCurve.select -> select:   boolean  "F-Curve is selected for editing"
 + * FCurve.auto_clamped_handles -> use_auto_handle_clamp:   boolean  "All auto-handles for F-Curve are clamped"
 + * FCurveModifiers.active -> active:   pointer  "Active F-Curve Modifier"
-+ * FCurveSample.co -> co:   float  "Point coordinates"
++ * FCurveSample.co -> co:   float[2]  "Point coordinates"
 + * FCurveSample.select -> select:   boolean  "Selection status"
 REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one being edited"
 + * FModifier.mute -> mute:   boolean  "F-Curve Modifier will not be evaluated"
@@ -772,7 +772,7 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * FModifier|FModifierFunctionGenerator.phase_offset -> phase_offset:   float  "Constant factor to offset time by for function"
 + * FModifier|FModifierFunctionGenerator.additive -> use_additive:   boolean  "Values generated by this modifier are applied on top of the existing values instead of overwriting them"
 + * FModifier|FModifierFunctionGenerator.value_offset -> value_offset:   float  "Constant factor to offset values by"
-+ * FModifier|FModifierGenerator.coefficients -> coefficients:   float  "Coefficients for x (starting from lowest power of x^0)"
++ * FModifier|FModifierGenerator.coefficients -> coefficients:   float[32]  "Coefficients for x (starting from lowest power of x^0)"
 + * FModifier|FModifierGenerator.mode -> mode:   enum  "Type of generator to use"
 + * FModifier|FModifierGenerator.poly_order -> poly_order:   int  "The highest power of x for this polynomial. (number of coefficients - 1)"
 + * FModifier|FModifierGenerator.additive -> use_additive:   boolean  "Values generated by this modifier are applied on top of the existing values instead of overwriting them"
@@ -867,10 +867,10 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * FluidSettings|ControlFluidSettings.velocity_radius -> velocity_radius:   float  "Specifies the force field radius around the control object"
 + * FluidSettings|ControlFluidSettings.velocity_strength -> velocity_strength:   float  "Force strength of how much of the control objects velocity is influencing the fluid velocity"
 + * FluidSettings|DomainFluidSettings.compressibility -> compressibility:   float  "Allowed compressibility due to gravitational force for standing fluid. (directly affects simulation step size)"
-+ * FluidSettings|DomainFluidSettings.end_time -> end_time:   float  "Simulation time of the last blender frame"
++ * FluidSettings|DomainFluidSettings.end_time -> end_time:   float  "Simulation time of the last blender frame (in seconds)"
 + * FluidSettings|DomainFluidSettings.path -> filepath:   string  "Directory (and/or filename prefix) to store baked fluid simulation files in"
 + * FluidSettings|DomainFluidSettings.generate_particles -> generate_particles:   float  "Amount of particles to generate (0=off, 1=normal, >1=more)"
-+ * FluidSettings|DomainFluidSettings.gravity -> gravity:   float  "Gravity in X, Y and Z direction"
++ * FluidSettings|DomainFluidSettings.gravity -> gravity:   float[3]  "Gravity in X, Y and Z direction"
 + * FluidSettings|DomainFluidSettings.grid_levels -> grid_levels:   int  "Number of coarsened grids to use (-1 for automatic)"
 + * FluidSettings|DomainFluidSettings.memory_estimate -> memory_estimate:   string,  "(read-only)    Estimated amount of memory needed for baking the domain"
 + * FluidSettings|DomainFluidSettings.partial_slip_factor -> partial_slip_factor:   float  "Amount of mixing between no- and free-slip, 0 is no slip and 1 is free slip"
@@ -879,7 +879,7 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * FluidSettings|DomainFluidSettings.resolution -> resolution:   int  "Domain resolution in X,Y and Z direction"
 + * FluidSettings|DomainFluidSettings.real_world_size -> size_worldspace:   float  "Size of the simulation domain in metres"
 + * FluidSettings|DomainFluidSettings.slip_type -> slip_type:   enum  "NO DESCRIPTION"
-+ * FluidSettings|DomainFluidSettings.start_time -> start_time:   float  "Simulation time of the first blender frame"
++ * FluidSettings|DomainFluidSettings.start_time -> start_time:   float  "Simulation time of the first blender frame (in seconds)"
 + * FluidSettings|DomainFluidSettings.surface_smoothing -> surface_smooth:   float  "Amount of surface smoothing. A value of 0 is off, 1 is normal smoothing and more than 1 is extra smoothing"
 + * FluidSettings|DomainFluidSettings.surface_subdivisions -> surface_subdivisions:   int  "Number of isosurface subdivisions. This is necessary for the inclusion of particles into the surface generation. Warning - can lead to longer computation times!"
 + * FluidSettings|DomainFluidSettings.tracer_particles -> tracer_particles:   int  "Number of tracer particles to generate"
@@ -890,11 +890,11 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * FluidSettings|DomainFluidSettings.viscosity_base -> viscosity_base:   float  "Viscosity setting: value that is multiplied by 10 to the power of (exponent*-1)"
 + * FluidSettings|DomainFluidSettings.viscosity_exponent -> viscosity_exponent:   int  "Negative exponent for the viscosity value (to simplify entering small values e.g. 5*10^-6.)"
 + * FluidSettings|DomainFluidSettings.viscosity_preset -> viscosity_preset:   enum  "Set viscosity of the fluid to a preset value, or use manual input"
-+ * FluidSettings|FluidFluidSettings.initial_velocity -> initial_velocity:   float  "Initial velocity of fluid"
++ * FluidSettings|FluidFluidSettings.initial_velocity -> initial_velocity:   float[3]  "Initial velocity of fluid"
 + * FluidSettings|FluidFluidSettings.active -> use:   boolean  "Object contributes to the fluid simulation"
 + * FluidSettings|FluidFluidSettings.export_animated_mesh -> use_animated_mesh:   boolean  "Export this mesh as an animated one. Slower, only use if really necessary (e.g. armatures or parented objects), animated pos/rot/scale IPOs do not require it"
 + * FluidSettings|FluidFluidSettings.volume_initialization -> volume_initialization:   enum  "Volume initialization type"
-+ * FluidSettings|InflowFluidSettings.inflow_velocity -> inflow_velocity:   float  "Initial velocity of fluid"
++ * FluidSettings|InflowFluidSettings.inflow_velocity -> inflow_velocity:   float[3]  "Initial velocity of fluid"
 + * FluidSettings|InflowFluidSettings.active -> use:   boolean  "Object contributes to the fluid simulation"
 + * FluidSettings|InflowFluidSettings.export_animated_mesh -> use_animated_mesh:   boolean  "Export this mesh as an animated one. Slower, only use if really necessary (e.g. armatures or parented objects), animated pos/rot/scale IPOs do not require it"
 + * FluidSettings|InflowFluidSettings.local_coordinates -> use_local_coords:   boolean  "Use local coordinates for inflow. (e.g. for rotating objects)"
@@ -926,7 +926,7 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * GPencilLayer.active -> active:   boolean  "Set active layer for editing"
 + * GPencilLayer.active_frame -> active_frame:   pointer,  "(read-only)    Frame currently being displayed for this layer"
 + * GPencilLayer.opacity -> alpha:   float  "Layer Opacity"
-+ * GPencilLayer.color -> color:   float  "Color for all strokes in this layer"
++ * GPencilLayer.color -> color:   float[3]  "Color for all strokes in this layer"
 + * GPencilLayer.frames -> frames:   collection,  "(read-only)    Sketches for this layer on different frames"
 + * GPencilLayer.max_ghost_range -> ghost_range_max:   int  "Maximum number of frames on either side of the active frame to show (0 = show the first available sketch on either side)"
 + * GPencilLayer.hide -> hide:   boolean  "Set layer Visibility"
@@ -938,7 +938,7 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * GPencilLayer.show_points -> show_points:   boolean  "Draw the points which make up the strokes (for debugging purposes)"
 + * GPencilLayer.use_onion_skinning -> use_onion_skinning:   boolean  "Ghost frames on either side of frame"
 + * GPencilStroke.points -> points:   collection,  "(read-only)    Stroke data points"
-+ * GPencilStrokePoint.co -> co:   float  "NO DESCRIPTION"
++ * GPencilStrokePoint.co -> co:   float[3]  "NO DESCRIPTION"
 + * GPencilStrokePoint.pressure -> pressure:   float  "Pressure of tablet at point when drawing it"
 + * GameObjectSettings.actuators -> actuators:   collection,  "(read-only)    Game engine actuators to act on events"
 + * GameObjectSettings.collision_bounds -> collision_bounds_type:   enum  "Selects the collision type"
@@ -946,7 +946,7 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * GameObjectSettings.controllers -> controllers:   collection,  "(read-only)    Game engine controllers to process events, connecting sensor to actuators"
 + * GameObjectSettings.damping -> damping:   float  "General movement damping"
 + * GameObjectSettings.form_factor -> form_factor:   float  "Form factor scales the inertia tensor"
-+ * GameObjectSettings.friction_coefficients -> friction_coefficients:   float  "Relative friction coefficient in the in the X, Y and Z directions, when anisotropic friction is enabled"
++ * GameObjectSettings.friction_coefficients -> friction_coefficients:   float[3]  "Relative friction coefficient in the in the X, Y and Z directions, when anisotropic friction is enabled"
 + * GameObjectSettings.lock_x_axis -> lock_location_x:   boolean  "Disable simulation of linear motion along the X axis"
 + * GameObjectSettings.lock_y_axis -> lock_location_y:   boolean  "Disable simulation of linear motion along the Y axis"
 + * GameObjectSettings.lock_z_axis -> lock_location_z:   boolean  "Disable simulation of linear motion along the Z axis"
@@ -965,9 +965,9 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * GameObjectSettings.show_sensors -> show_sensors:   boolean  "Shows sensors for this object in the user interface"
 + * GameObjectSettings.show_state_panel -> show_state_panel:   boolean  "Show state panel"
 + * GameObjectSettings.soft_body -> soft_body:   pointer,  "(read-only)    Settings for Bullet soft body simulation"
-+ * GameObjectSettings.initial_state -> states_initial:   boolean  "Initial state when the game starts"
-+ * GameObjectSettings.used_state -> states_used:   boolean,  "(read-only)    States which are being used by controllers"
-+ * GameObjectSettings.visible_state -> states_visible:   boolean  "State determining which controllers are displayed"
++ * GameObjectSettings.initial_state -> states_initial:   boolean[30]  "Initial state when the game starts"
++ * GameObjectSettings.used_state -> states_used:   boolean[30],  "(read-only)    States which are being used by controllers"
++ * GameObjectSettings.visible_state -> states_visible:   boolean[30]  "State determining which controllers are displayed"
 + * GameObjectSettings.use_activity_culling -> use_activity_culling:   boolean  "Disable simulation of angular  motion along the Z axis"
 + * GameObjectSettings.actor -> use_actor:   boolean  "Object is detected by the Near and Radar sensor"
 + * GameObjectSettings.all_states -> use_all_states:   boolean  "Set all state bits"
@@ -999,9 +999,9 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * GameSoftBodySettings.cluster_soft_to_softbody -> use_cluster_soft_to_softbody:   boolean  "Enable cluster collision between soft and soft body"
 + * GameSoftBodySettings.shape_match -> use_shape_match:   boolean  "Enable soft body shape matching goal"
 + * GameSoftBodySettings.welding -> weld_threshold:   float  "Welding threshold: distance between nearby vertices to be considered equal => set to 0.0 to disable welding test and speed up scene loading (ok if the mesh has no duplicates)"
-+ * Header.bl_idname -> bl_idname:   string  "NO DESCRIPTION"
-+ * Header.bl_space_type -> bl_space_type:   enum  "NO DESCRIPTION"
-+ * Header.layout -> layout:   pointer,  "(read-only)"
++ * Header.bl_idname -> bl_idname:   string  "If this is set, the header gets a custom ID, otherwise it takes the name of the class used to define the panel. For example, if the class name is OBJECT_HT_hello, and bl_idname is not set by the script, then bl_idname = OBJECT_HT_hello"
++ * Header.bl_space_type -> bl_space_type:   enum  "The space where the header is going to be used in."
++ * Header.layout -> layout:   pointer,  "(read-only)    Defines the structure of the header in the UI."
 + * Histogram.mode -> mode:   enum  "Channels to display when drawing the histogram"
 + * ID.library -> library:   pointer,  "(read-only)    Library file the datablock is linked from"
 + * ID.name -> name:   string  "Unique datablock ID name"
@@ -1010,12 +1010,12 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * ID.users -> users:   int,  "(read-only)    Number of times this datablock is referenced"
 + * IDProperty.collection -> collection:   collection,  "(read-only)"
 + * IDProperty.double -> double:   float  "NO DESCRIPTION"
-+ * IDProperty.double_array -> double_array:   float  "NO DESCRIPTION"
++ * IDProperty.double_array -> double_array:   float[1]  "NO DESCRIPTION"
 + * IDProperty.float -> float:   float  "NO DESCRIPTION"
-+ * IDProperty.float_array -> float_array:   float  "NO DESCRIPTION"
++ * IDProperty.float_array -> float_array:   float[1]  "NO DESCRIPTION"
 + * IDProperty.group -> group:   pointer,  "(read-only)"
 + * IDProperty.int -> int:   int  "NO DESCRIPTION"
-+ * IDProperty.int_array -> int_array:   int  "NO DESCRIPTION"
++ * IDProperty.int_array -> int_array:   int[1]  "NO DESCRIPTION"
 + * IDProperty.string -> string:   string  "NO DESCRIPTION"
 + * IDPropertyGroup.name -> name:   string  "Unique name used in the code and scripting"
 + * IDPropertyGroup|NetRenderJob.name -> name:   string  "NO DESCRIPTION"
@@ -1041,10 +1041,10 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * IDPropertyGroup|NetRenderSettings.slave_thumb -> use_slave_thumb:   boolean  "Generate thumbnails on slaves instead of master"
 + * IDPropertyGroup|NetRenderSlave.name -> name:   string  "NO DESCRIPTION"
 + * IDPropertyGroup|OperatorFileListElement.name -> name:   string  "the name of a file or directory within a file list"
-+ * IDPropertyGroup|OperatorMousePath.loc -> loc:   float  "Mouse location"
++ * IDPropertyGroup|OperatorMousePath.loc -> loc:   float[2]  "Mouse location"
 + * IDPropertyGroup|OperatorMousePath.time -> time:   float  "Time of mouse location"
-+ * IDPropertyGroup|OperatorStrokeElement.location -> location:   float  "NO DESCRIPTION"
-+ * IDPropertyGroup|OperatorStrokeElement.mouse -> mouse:   float  "NO DESCRIPTION"
++ * IDPropertyGroup|OperatorStrokeElement.location -> location:   float[3]  "NO DESCRIPTION"
++ * IDPropertyGroup|OperatorStrokeElement.mouse -> mouse:   float[2]  "NO DESCRIPTION"
 + * IDPropertyGroup|OperatorStrokeElement.pen_flip -> pen_flip:   boolean  "NO DESCRIPTION"
 + * IDPropertyGroup|OperatorStrokeElement.pressure -> pressure:   float  "Tablet pressure"
 + * IDPropertyGroup|OperatorStrokeElement.time -> time:   float  "NO DESCRIPTION"
@@ -1064,8 +1064,8 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * ID|Armature.ghost_size -> ghost_size:   int  "Frame step for Ghosts (not for On Keyframes Onion-skinning method)"
 + * ID|Armature.ghost_step -> ghost_step:   int  "Number of frame steps on either side of current frame to show as ghosts (only for Around Current Frame Onion-skinning method)"
 + * ID|Armature.ghost_type -> ghost_type:   enum  "Method of Onion-skinning for active Action"
-+ * ID|Armature.layer -> layers:   boolean  "Armature layer visibility"
-+ * ID|Armature.layer_protection -> layers_protected:   boolean  "Protected layers in Proxy Instances are restored to Proxy settings on file reload and undo"
++ * ID|Armature.layer -> layers:   boolean[32]  "Armature layer visibility"
++ * ID|Armature.layer_protection -> layers_protected:   boolean[32]  "Protected layers in Proxy Instances are restored to Proxy settings on file reload and undo"
 + * ID|Armature.pose_position -> pose_position:   enum  "Show armature in binding pose or final posed state"
 + * ID|Armature.draw_axes -> show_axes:   boolean  "Draw bone axes"
 + * ID|Armature.draw_custom_bone_shapes -> show_bone_custom_shapes:   boolean  "Draw bones with their custom shapes"
@@ -1075,20 +1075,20 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * ID|Armature.auto_ik -> use_auto_ik:   boolean  "Add temporaral IK constraints while grabbing bones in Pose Mode"
 + * ID|Armature.delay_deform -> use_deform_delay:   boolean  "Dont deform children when manipulating bones in Pose Mode"
 + * ID|Armature.deform_envelope -> use_deform_envelopes:   boolean  "Enable Bone Envelopes when defining deform"
-+ * ID|Armature.deform_quaternion -> use_deform_preserve_volume:   boolean  "Deform rotation interpolation with quaternions"
++ * ID|Armature.deform_quaternion -> use_deform_preserve_volume:   boolean  "Enable deform rotation with Quaternions"
 + * ID|Armature.deform_vertexgroups -> use_deform_vertex_groups:   boolean  "Enable Vertex Groups when defining deform"
 + * ID|Armature.x_axis_mirror -> use_mirror_x:   boolean  "Apply changes to matching bone on opposite side of X-Axis"
 + * ID|Brush.autosmooth_factor -> auto_smooth_factor:   float  "Amount of smoothing to automatically apply to each stroke"
 + * ID|Brush.blend -> blend:   enum  "Brush blending mode"
 + * ID|Brush.clone_alpha -> clone_alpha:   float  "Opacity of clone image display"
 + * ID|Brush.clone_image -> clone_image:   pointer  "Image for clone tool"
-+ * ID|Brush.clone_offset -> clone_offset:   float  "NO DESCRIPTION"
-+ * ID|Brush.color -> color:   float  "NO DESCRIPTION"
++ * ID|Brush.clone_offset -> clone_offset:   float[2]  "NO DESCRIPTION"
++ * ID|Brush.color -> color:   float[3]  "NO DESCRIPTION"
 + * ID|Brush.crease_pinch_factor -> crease_pinch_factor:   float  "How much the crease brush pinches"
-+ * ID|Brush.add_col -> cursor_color_add:   float  "Color of cursor when adding"
-+ * ID|Brush.sub_col -> cursor_color_subtract:   float  "Color of cursor when subtracting"
++ * ID|Brush.add_col -> cursor_color_add:   float[3]  "Color of cursor when adding"
++ * ID|Brush.sub_col -> cursor_color_subtract:   float[3]  "Color of cursor when subtracting"
 + * ID|Brush.curve -> curve:   pointer,  "(read-only)    Editable falloff curve"
-+ * ID|Brush.direction -> direction:   enum  "Mapping type to use for this image in the game engine"
++ * ID|Brush.direction -> direction:   enum  "NO DESCRIPTION"
 + * ID|Brush.icon_filepath -> icon_filepath:   string  "File path to brush icon"
 + * ID|Brush.imagepaint_tool -> imagepaint_tool:   enum  "NO DESCRIPTION"
 + * ID|Brush.jitter -> jitter:   float  "Jitter the position of the brush while painting"
@@ -1098,11 +1098,11 @@ REMOVE * FModifier.active -> active:   boolean  "F-Curve Modifier is the one bei
 + * ID|Brush.rate -> rate:   float  "Interval between paints for Airbrush"
 + * ID|Brush.sculpt_plane -> sculpt_plane:   enum  "NO DESCRIPTION"
 + * ID|Brush.sculpt_tool -> sculpt_tool:   enum  "NO DESCRIPTION"
-+ * ID|Brush.size -> size:   int  "Diameter of the brush"
++ * ID|Brush.size -> size:   int  "Radius of the brush in pixels"
 + * ID|Brush.smooth_stroke_factor -> smooth_stroke_factor:   float  "Higher values give a smoother stroke"
 + * ID|Brush.smooth_stroke_radius -> smooth_stroke_radius:   int  "Minimum distance from last point before stroke continues"
-+ * ID|Brush.spacing -> spacing:   float  "Spacing between brush stamps"
-+ * ID|Brush.strength -> strength:   float  "The amount of pressure on the brush"
++ * ID|Brush.spacing -> spacing:   int  "Spacing between brush daubs as a percentage of brush diameter"
++ * ID|Brush.strength -> strength:   float  "How powerful the effect of the brush is when applied"
 + * ID|Brush.stroke_method -> stroke_method:   enum  "NO DESCRIPTION"
 + * ID|Brush.texture -> texture:   pointer  "NO DESCRIPTION"
 ID|Brush.texture_angle_source_no_random -> texture_angle_source_no_random:   enum  "NO DESCRIPTION"
@@ -1181,8 +1181,8 @@ ID|Brush.texture_angle_source_no_random -> texture_angle_source_no_random:   enu
 + * ID|Curve.draw_normals -> show_normals:   boolean  "Display 3D curve normals in editmode"
 + * ID|Curve.splines -> splines:   collection,  "(read-only)    Collection of splines in this curve data object"
 + * ID|Curve.taper_object -> taper_object:   pointer  "Curve object name that defines the taper (width)"
-ID|Curve.texspace_loc -> texspace_location:   float  "Texture space location"
-+ * ID|Curve.texspace_size -> texspace_size:   float  "Texture space size"
+ID|Curve.texspace_loc -> texspace_location:   float[3]  "Texture space location"
++ * ID|Curve.texspace_size -> texspace_size:   float[3]  "Texture space size"
 + * ID|Curve.twist_mode -> twist_mode:   enum  "The type of tilt calculation for 3D Curves"
 + * ID|Curve.twist_smooth -> twist_smooth:   float  "Smoothing iteration for tangents"
 + * ID|Curve.auto_texspace -> use_auto_texspace:   boolean  "Adjusts active objects texture space automatically when transforming object"
@@ -1195,7 +1195,7 @@ ID|Curve.texspace_loc -> texspace_location:   float  "Texture space location"
 + * ID|Curve.use_path_follow -> use_path_follow:   boolean  "Make curve path children to rotate along the path"
 + * ID|Curve.use_radius -> use_radius:   boolean  "Option for paths: apply the curve radius with path following it and deforming"
 + * ID|Curve.use_stretch -> use_stretch:   boolean  "Option for curve-deform: makes deformed child to stretch along entire path"
-+ * ID|Curve.use_time_offset -> use_time_offset:   boolean  "Children will use Time Offset value as path distance offset"
++ * ID|Curve.use_time_offset -> use_time_offset:   boolean  "Children will use TimeOffs value as path distance offset"
 + * ID|Curve|SurfaceCurve.map_along_length -> use_map_on_length:   boolean  "Generate texture mapping coordinates following the curve direction, rather than the local bounding box"
 MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   int  "NO DESCRIPTION"
 + * ID|Curve|TextCurve.spacemode -> align:   enum  "Text align from the object center"
@@ -1221,12 +1221,12 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|GreasePencil.draw_mode -> draw_mode:   enum  "NO DESCRIPTION"
 + * ID|GreasePencil.layers -> layers:   collection,  "(read-only)"
 + * ID|GreasePencil.use_stroke_endpoints -> use_stroke_endpoints:   boolean  "Only use the first and last parts of the stroke for snapping"
-+ * ID|Group.dupli_offset -> dupli_offset:   float  "Offset from the origin to use when instancing as DupliGroup"
-+ * ID|Group.layer -> layers:   boolean  "Layers visible when this groups is instanced as a dupli"
++ * ID|Group.dupli_offset -> dupli_offset:   float[3]  "Offset from the origin to use when instancing as DupliGroup"
++ * ID|Group.layer -> layers:   boolean[20]  "Layers visible when this groups is instanced as a dupli"
 + * ID|Group.objects -> objects:   collection,  "(read-only)    A collection of this groups objects"
 + * ID|Image.bindcode -> bindcode:   int,  "(read-only)    OpenGL bindcode"
 + * ID|Image.depth -> depth:   int,  "(read-only)    Image bit depth"
-+ * ID|Image.display_aspect -> display_aspect:   float  "Display Aspect for this image, does not affect rendering"
++ * ID|Image.display_aspect -> display_aspect:   float[2]  "Display Aspect for this image, does not affect rendering"
 + * ID|Image.field_order -> field_order:   enum  "Order of video fields. Select which lines are displayed first"
 + * ID|Image.file_format -> file_format:   enum  "Format used for re-saving this file"
 + * ID|Image.filepath -> filepath:   string  "Image/Movie file name"
@@ -1241,7 +1241,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Image.dirty -> is_dirty:   boolean,  "(read-only)    Image has changed and is not saved"
 + * ID|Image.mapping -> mapping:   enum  "Mapping type to use for this image in the game engine"
 + * ID|Image.packed_file -> packed_file:   pointer,  "(read-only)"
-+ * ID|Image.size -> size:   int,  "(read-only)    Width and height in pixels, zero when image data cant be loaded"
++ * ID|Image.size -> size:   int[2],  "(read-only)    Width and height in pixels, zero when image data cant be loaded"
 + * ID|Image.source -> source:   enum  "Where the image comes from"
 + * ID|Image.tiles_x -> tiles_x:   int  "Degree of repetition in the X direction"
 + * ID|Image.tiles_y -> tiles_y:   int  "Degree of repetition in the Y direction"
@@ -1261,7 +1261,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Lamp.active_texture -> active_texture:   pointer  "Active texture slot being displayed"
 + * ID|Lamp.active_texture_index -> active_texture_index:   int  "Index of active texture slot"
 + * ID|Lamp.animation_data -> animation_data:   pointer,  "(read-only)    Animation data for this datablock"
-+ * ID|Lamp.color -> color:   float  "Light color"
++ * ID|Lamp.color -> color:   float[3]  "Light color"
 + * ID|Lamp.distance -> distance:   float  "Falloff distance - the light is at half the original intensity at this point"
 + * ID|Lamp.energy -> energy:   float  "Amount of light that the lamp emits"
 + * ID|Lamp.texture_slots -> texture_slots:   collection,  "(read-only)    Texture slots defining the mapping and influence of textures"
@@ -1272,7 +1272,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Lamp.specular -> use_specular:   boolean  "Lamp creates specular highlights"
 + * ID|Lamp|AreaLamp.gamma -> gamma:   float  "Light gamma correction value"
 + * ID|Lamp|AreaLamp.shadow_adaptive_threshold -> shadow_adaptive_threshold:   float  "Threshold for Adaptive Sampling (Raytraced shadows)"
-+ * ID|Lamp|AreaLamp.shadow_color -> shadow_color:   float  "Color of shadows cast by the lamp"
++ * ID|Lamp|AreaLamp.shadow_color -> shadow_color:   float[3]  "Color of shadows cast by the lamp"
 + * ID|Lamp|AreaLamp.shadow_method -> shadow_method:   enum  "Method to compute lamp shadow with"
 + * ID|Lamp|AreaLamp.shadow_ray_sampling_method -> shadow_ray_sample_method:   enum  "Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower"
 + * ID|Lamp|AreaLamp.shadow_ray_samples_x -> shadow_ray_samples_x:   int  "Amount of samples taken extra (samples x samples)"
@@ -1291,7 +1291,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Lamp|PointLamp.linear_attenuation -> linear_attenuation:   float  "Linear distance attenuation"
 + * ID|Lamp|PointLamp.quadratic_attenuation -> quadratic_attenuation:   float  "Quadratic distance attenuation"
 + * ID|Lamp|PointLamp.shadow_adaptive_threshold -> shadow_adaptive_threshold:   float  "Threshold for Adaptive Sampling (Raytraced shadows)"
-+ * ID|Lamp|PointLamp.shadow_color -> shadow_color:   float  "Color of shadows cast by the lamp"
++ * ID|Lamp|PointLamp.shadow_color -> shadow_color:   float[3]  "Color of shadows cast by the lamp"
 + * ID|Lamp|PointLamp.shadow_method -> shadow_method:   enum  "Method to compute lamp shadow with"
 + * ID|Lamp|PointLamp.shadow_ray_sampling_method -> shadow_ray_sample_method:   enum  "Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower"
 + * ID|Lamp|PointLamp.shadow_ray_samples -> shadow_ray_samples:   int  "Amount of samples taken extra (samples x samples)"
@@ -1314,7 +1314,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Lamp|SpotLamp.shadow_buffer_size -> shadow_buffer_size:   int  "Resolution of the shadow buffer, higher values give crisper shadows but use more memory"
 + * ID|Lamp|SpotLamp.shadow_buffer_soft -> shadow_buffer_soft:   float  "Size of shadow buffer sampling area"
 + * ID|Lamp|SpotLamp.shadow_buffer_type -> shadow_buffer_type:   enum  "Type of shadow buffer"
-+ * ID|Lamp|SpotLamp.shadow_color -> shadow_color:   float  "Color of shadows cast by the lamp"
++ * ID|Lamp|SpotLamp.shadow_color -> shadow_color:   float[3]  "Color of shadows cast by the lamp"
 + * ID|Lamp|SpotLamp.shadow_filter_type -> shadow_filter_type:   enum  "Type of shadow filter (Buffer Shadows)"
 + * ID|Lamp|SpotLamp.shadow_method -> shadow_method:   enum  "Method to compute lamp shadow with"
 + * ID|Lamp|SpotLamp.shadow_ray_sampling_method -> shadow_ray_sample_method:   enum  "Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower"
@@ -1332,7 +1332,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Lamp|SpotLamp.sphere -> use_sphere:   boolean  "Sets light intensity to zero beyond lamp distance"
 + * ID|Lamp|SpotLamp.square -> use_square:   boolean  "Casts a square spot light shape"
 + * ID|Lamp|SunLamp.shadow_adaptive_threshold -> shadow_adaptive_threshold:   float  "Threshold for Adaptive Sampling (Raytraced shadows)"
-+ * ID|Lamp|SunLamp.shadow_color -> shadow_color:   float  "Color of shadows cast by the lamp"
++ * ID|Lamp|SunLamp.shadow_color -> shadow_color:   float[3]  "Color of shadows cast by the lamp"
 + * ID|Lamp|SunLamp.shadow_method -> shadow_method:   enum  "Method to compute lamp shadow with"
 + * ID|Lamp|SunLamp.shadow_ray_samples -> shadow_ray_samples:   int  "Amount of samples taken extra (samples x samples)"
 + * ID|Lamp|SunLamp.shadow_ray_sampling_method -> shadow_ray_sampling_method:   enum  "Method for generating shadow samples: Adaptive QMC is fastest, Constant QMC is less noisy but slower"
@@ -1344,9 +1344,9 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Lattice.interpolation_type_v -> interpolation_type_v:   enum  "NO DESCRIPTION"
 + * ID|Lattice.interpolation_type_w -> interpolation_type_w:   enum  "NO DESCRIPTION"
 + * ID|Lattice.points -> points:   collection,  "(read-only)    Points of the lattice"
-+ * ID|Lattice.points_u -> points_u:   int  "Points in U direction"
-+ * ID|Lattice.points_v -> points_v:   int  "Points in V direction"
-+ * ID|Lattice.points_w -> points_w:   int  "Points in W direction"
++ * ID|Lattice.points_u -> points_u:   int  "Points in U direction (cant be changed when there are shape keys)"
++ * ID|Lattice.points_v -> points_v:   int  "Points in V direction (cant be changed when there are shape keys)"
++ * ID|Lattice.points_w -> points_w:   int  "Points in W direction (cant be changed when there are shape keys)"
 + * ID|Lattice.shape_keys -> shape_keys:   pointer,  "(read-only)"
 + * ID|Lattice.outside -> use_outside:   boolean  "Only draw, and take into account, the outer vertices"
 + * ID|Lattice.vertex_group -> vertex_group:   string  "Vertex group to apply the influence of the lattice"
@@ -1359,7 +1359,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Material.ambient -> ambient:   float  "Amount of global ambient color the material receives"
 + * ID|Material.animation_data -> animation_data:   pointer,  "(read-only)    Animation data for this datablock"
 + * ID|Material.darkness -> darkness:   float  "Minnaert darkness"
-+ * ID|Material.diffuse_color -> diffuse_color:   float  "NO DESCRIPTION"
++ * ID|Material.diffuse_color -> diffuse_color:   float[3]  "NO DESCRIPTION"
 + * ID|Material.diffuse_fresnel -> diffuse_fresnel:   float  "Power of Fresnel"
 + * ID|Material.diffuse_fresnel_factor -> diffuse_fresnel_factor:   float  "Blending factor of Fresnel"
 + * ID|Material.diffuse_intensity -> diffuse_intensity:   float  "Amount of diffuse reflection"
@@ -1374,7 +1374,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Material.halo -> halo:   pointer,  "(read-only)    Halo settings for the material"
 + * ID|Material.invert_z -> invert_z:   boolean  "Renders materials faces with an inverted Z buffer (scanline only)"
 + * ID|Material.light_group -> light_group:   pointer  "Limit lighting to lamps in this Group"
-+ * ID|Material.mirror_color -> mirror_color:   float  "Mirror color of the material"
++ * ID|Material.mirror_color -> mirror_color:   float[3]  "Mirror color of the material"
 + * ID|Material.node_tree -> node_tree:   pointer,  "(read-only)    Node tree for node based materials"
 + * ID|Material.z_offset -> offset_z:   float  "Gives faces an artificial offset in the Z buffer for Z transparency"
 + * ID|Material.physics -> physics:   pointer,  "(read-only)    Game physics settings"
@@ -1386,7 +1386,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Material.shadow_casting_alpha -> shadow_cast_alpha:   float  "Shadow casting alpha, in use for Irregular and Deep shadow buffer"
 + * ID|Material.shadow_ray_bias -> shadow_ray_bias:   float  "Shadow raytracing bias to prevent terminator problems on shadow boundary"
 + * ID|Material.specular_alpha -> specular_alpha:   float  "Alpha transparency for specular areas"
-+ * ID|Material.specular_color -> specular_color:   float  "Specular color of the material"
++ * ID|Material.specular_color -> specular_color:   float[3]  "Specular color of the material"
 + * ID|Material.specular_hardness -> specular_hard:   int  "NO DESCRIPTION"
 + * ID|Material.specular_intensity -> specular_intensity:   float  "NO DESCRIPTION"
 + * ID|Material.specular_ior -> specular_ior:   float  "NO DESCRIPTION"
@@ -1424,7 +1424,7 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Material.use_sky -> use_sky:   boolean  "Renders this material with zero alpha, with sky background in place (scanline only)"
 + * ID|Material.use_specular_ramp -> use_specular_ramp:   boolean  "Toggle specular ramp operations"
 + * ID|Material.tangent_shading -> use_tangent_shading:   boolean  "Use the materials tangent vector instead of the normal for shading - for anisotropic shading effects"
-+ * ID|Material.use_textures -> use_textures:   boolean  "Enable/Disable each texture"
++ * ID|Material.use_textures -> use_textures:   boolean[18]  "Enable/Disable each texture"
 + * ID|Material.transparency -> use_transparency:   boolean  "Render material as transparent"
 + * ID|Material.receive_transparent_shadows -> use_transparent_shadows:   boolean  "Allow this object to receive transparent shadows casted through other objects"
 + * ID|Material.vertex_color_light -> use_vertex_color_light:   boolean  "Add vertex colors as additional lighting"
@@ -1450,16 +1450,16 @@ MAKE COLLECTION ATTR * ID|Curve|TextCurve.active_textbox -> active_textbox:   in
 + * ID|Mesh.draw_seams -> show_edge_seams:   boolean  "Displays UV unwrapping seams"
 + * ID|Mesh.draw_sharp -> show_edge_sharp:   boolean  "Displays sharp edges, used with the EdgeSplit modifier"
 + * ID|Mesh.draw_edges -> show_edges:   boolean  "Displays selected edges using highlights in the 3D view and UV editor"
-+ * ID|Mesh.draw_edge_angle -> show_extra_edge_angle:   boolean  "Displays the angles in the selected edges in degrees"
++ * ID|Mesh.draw_edge_angle -> show_extra_edge_angle:   boolean  "Displays the angles in the selected edges in degrees, Using global values when set in the transform panel"
 + * ID|Mesh.draw_edge_length -> show_extra_edge_length:   boolean  "Displays selected edge lengths, Using global values when set in the transform panel"
-+ * ID|Mesh.draw_face_area -> show_extra_face_area:   boolean  "Displays the area of selected faces"
++ * ID|Mesh.draw_face_area -> show_extra_face_area:   boolean  "Displays the area of selected faces, Using global values when set in the transform panel"
 + * ID|Mesh.draw_faces -> show_faces:   boolean  "Displays all faces as shades in the 3D view and UV editor"
 + * ID|Mesh.draw_normals -> show_normal_face:   boolean  "Displays face normals as lines"
 + * ID|Mesh.draw_vertex_normals -> show_normal_vertex:   boolean  "Displays vertex normals as lines"
 + * ID|Mesh.sticky -> sticky:   collection,  "(read-only)    Sticky texture coordinates"
 + * ID|Mesh.texco_mesh -> texco_mesh:   pointer  "Derive texture coordinates from another mesh"
-+ * ID|Mesh.texspace_loc -> texspace_location:   float  "Texture space location"
-+ * ID|Mesh.texspace_size -> texspace_size:   float  "Texture space size"
++ * ID|Mesh.texspace_loc -> texspace_location:   float[3]  "Texture space location"
++ * ID|Mesh.texspace_size -> texspace_size:   float[3]  "Texture space size"
 + * ID|Mesh.texture_mesh -> texture_mesh:   pointer  "Use another mesh for texture indices (vertex indices must be aligned)"
 + * ID|Mesh.total_edge_sel -> total_edge_sel:   int,  "(read-only)    Selected edge count in editmode"
 + * ID|Mesh.total_face_sel -> total_face_sel:   int,  "(read-only)    Selected face count in editmode"
@@ -1481,8 +1481,8 @@ TODO MOVE TO ELEMENTS * ID|MetaBall.active_element -> active_element:   pointer,
 + * ID|MetaBall.elements -> elements:   collection,  "(read-only)    Meta elements"
 + * ID|MetaBall.materials -> materials:   collection,  "(read-only)"
 + * ID|MetaBall.render_size -> render_detail:   float  "Polygonization resolution in rendering"
-+ * ID|MetaBall.texspace_loc -> texspace_location:   float  "Texture space location"
-+ * ID|MetaBall.texspace_size -> texspace_size:   float  "Texture space size"
++ * ID|MetaBall.texspace_loc -> texspace_location:   float[3]  "Texture space location"
++ * ID|MetaBall.texspace_size -> texspace_size:   float[3]  "Texture space size"
 + * ID|MetaBall.threshold -> threshold:   float  "Influence of meta elements"
 + * ID|MetaBall.flag -> update_method:   enum  "Metaball edit update behavior"
 + * ID|MetaBall.auto_texspace -> use_auto_texspace:   boolean  "Adjusts active objects texture space automatically when transforming object"
@@ -1500,16 +1500,16 @@ TODO MOVE TO ELEMENTS * ID|MetaBall.active_element -> active_element:   pointer,
 + * ID|Object.active_vertex_group_index -> active_vertex_group_index:   int  "Active index in vertex group array"
 + * ID|Object.animation_data -> animation_data:   pointer,  "(read-only)    Animation data for this datablock"
 + * ID|Object.animation_visualisation -> animation_visualisation:   pointer,  "(read-only)    Animation data for this datablock"
-+ * ID|Object.bound_box -> bound_box:   float,  "(read-only)    Objects bound box in object-space coordinates"
++ * ID|Object.bound_box -> bound_box:   float[24],  "(read-only)    Objects bound box in object-space coordinates"
 + * ID|Object.collision -> collision:   pointer,  "(read-only)    Settings for using the objects as a collider in physics simulation"
-+ * ID|Object.color -> color:   float  "Object color and alpha, used when faces have the ObColor mode enabled"
++ * ID|Object.color -> color:   float[4]  "Object color and alpha, used when faces have the ObColor mode enabled"
 + * ID|Object.constraints -> constraints:   collection,  "(read-only)    Constraints affecting the transformation of the object"
 + * ID|Object.data -> data:   pointer  "Object data"
-+ * ID|Object.delta_location -> delta_location:   float  "Extra translation added to the location of the object"
-+ * ID|Object.delta_rotation_euler -> delta_rotation_euler:   float  "Extra rotation added to the rotation of the object (when using Euler rotations)"
-+ * ID|Object.delta_rotation_quaternion -> delta_rotation_quaternion:   float  "Extra rotation added to the rotation of the object (when using Quaternion rotations)"
-+ * ID|Object.delta_scale -> delta_scale:   float  "Extra scaling added to the scale of the object"
-+ * ID|Object.dimensions -> dimensions:   float  "Absolute bounding box dimensions of the object"
++ * ID|Object.delta_location -> delta_location:   float[3]  "Extra translation added to the location of the object"
++ * ID|Object.delta_rotation_euler -> delta_rotation_euler:   float[3]  "Extra rotation added to the rotation of the object (when using Euler rotations)"
++ * ID|Object.delta_rotation_quaternion -> delta_rotation_quaternion:   float[4]  "Extra rotation added to the rotation of the object (when using Quaternion rotations)"
++ * ID|Object.delta_scale -> delta_scale:   float[3]  "Extra scaling added to the scale of the object"
++ * ID|Object.dimensions -> dimensions:   float[3]  "Absolute bounding box dimensions of the object"
 + * ID|Object.draw_bounds_type -> draw_bounds_type:   enum  "Object boundary display type"
 + * ID|Object.max_draw_type -> draw_type:   enum  "Maximum draw type to display object with in viewport"
 + * ID|Object.dupli_faces_scale -> dupli_faces_scale:   float  "Scale the DupliFace objects"
@@ -1529,34 +1529,34 @@ TODO MOVE TO ELEMENTS * ID|MetaBall.active_element -> active_element:   pointer,
 + * ID|Object.hide_render -> hide_render:   boolean  "Restrict renderability"
 + * ID|Object.hide_select -> hide_select:   boolean  "Restrict selection in the viewport"
 + * ID|Object.duplis_used -> is_duplicator:   boolean,  "(read-only)"
-+ * ID|Object.layers -> layers:   boolean  "Layers the object is on"
-+ * ID|Object.location -> location:   float  "Location of the object"
-+ * ID|Object.lock_location -> lock_location:   boolean  "Lock editing of location in the interface"
-+ * ID|Object.lock_rotation -> lock_rotation:   boolean  "Lock editing of rotation in the interface"
++ * ID|Object.layers -> layers:   boolean[20]  "Layers the object is on"
++ * ID|Object.location -> location:   float[3]  "Location of the object"
++ * ID|Object.lock_location -> lock_location:   boolean[3]  "Lock editing of location in the interface"
++ * ID|Object.lock_rotation -> lock_rotation:   boolean[3]  "Lock editing of rotation in the interface"
 + * ID|Object.lock_rotation_w -> lock_rotation_w:   boolean  "Lock editing of angle component of four-component rotations in the interface"
 + * ID|Object.lock_rotations_4d -> lock_rotations_4d:   boolean  "Lock editing of four component rotations by components (instead of as Eulers)"
-+ * ID|Object.lock_scale -> lock_scale:   boolean  "Lock editing of scale in the interface"
++ * ID|Object.lock_scale -> lock_scale:   boolean[3]  "Lock editing of scale in the interface"
 + * ID|Object.material_slots -> material_slots:   collection,  "(read-only)    Material slots in the object"
-+ * ID|Object.matrix_local -> matrix_local:   float  "Parent relative transformation matrix"
-+ * ID|Object.matrix_world -> matrix_world:   float  "Worldspace transformation matrix"
++ * ID|Object.matrix_local -> matrix_local:   float[16]  "Parent relative transformation matrix"
++ * ID|Object.matrix_world -> matrix_world:   float[16]  "Worldspace transformation matrix"
 + * ID|Object.mode -> mode:   enum,  "(read-only)    Object interaction mode"
 + * ID|Object.modifiers -> modifiers:   collection,  "(read-only)    Modifiers affecting the geometric data of the object"
 + * ID|Object.motion_path -> motion_path:   pointer,  "(read-only)    Motion Path for this element"
 + * ID|Object.parent -> parent:   pointer  "Parent Object"
 + * ID|Object.parent_bone -> parent_bone:   string  "Name of parent bone in case of a bone parenting relation"
 + * ID|Object.parent_type -> parent_type:   enum  "Type of parent relation"
-+ * ID|Object.parent_vertices -> parent_verts:   int,  "(read-only)    Indices of vertices in cases of a vertex parenting relation"
++ * ID|Object.parent_vertices -> parent_verts:   int[3],  "(read-only)    Indices of vertices in cases of a vertex parenting relation"
 + * ID|Object.particle_systems -> particle_systems:   collection,  "(read-only)    Particle systems emitted from the object"
 + * ID|Object.pass_index -> pass_index:   int  "Index # for the IndexOB render pass"
 + * ID|Object.pose -> pose:   pointer,  "(read-only)    Current pose for armatures"
 + * ID|Object.pose_library -> pose_library:   pointer,  "(read-only)    Action used as a pose library for armatures"
 + * ID|Object.proxy -> proxy:   pointer,  "(read-only)    Library object this proxy object controls"
 + * ID|Object.proxy_group -> proxy_group:   pointer,  "(read-only)    Library group duplicator object this proxy object controls"
-+ * ID|Object.rotation_axis_angle -> rotation_axis_angle:   float  "Angle of Rotation for Axis-Angle rotation representation"
-+ * ID|Object.rotation_euler -> rotation_euler:   float  "Rotation in Eulers"
++ * ID|Object.rotation_axis_angle -> rotation_axis_angle:   float[4]  "Angle of Rotation for Axis-Angle rotation representation"
++ * ID|Object.rotation_euler -> rotation_euler:   float[3]  "Rotation in Eulers"
 + * ID|Object.rotation_mode -> rotation_mode:   enum  "NO DESCRIPTION"
-+ * ID|Object.rotation_quaternion -> rotation_quaternion:   float  "Rotation in Quaternions"
-+ * ID|Object.scale -> scale:   float  "Scaling of the object"
++ * ID|Object.rotation_quaternion -> rotation_quaternion:   float[4]  "Rotation in Quaternions"
++ * ID|Object.scale -> scale:   float[3]  "Scaling of the object"
 + * ID|Object.select -> select:   boolean  "Object selection state"
 + * ID|Object.draw_axis -> show_axis:   boolean  "Displays the objects origin and axis"
 + * ID|Object.draw_bounds -> show_bounds:   boolean  "Displays the objects bounds"
@@ -1593,7 +1593,7 @@ TODO MOVE TO ELEMENTS * ID|MetaBall.active_element -> active_element:   pointer,
 + * ID|ParticleSettings.billboard_align -> billboard_align:   enum  "In respect to what the billboards are aligned"
 + * ID|ParticleSettings.billboard_animation -> billboard_animation:   enum  "How to animate billboard textures"
 + * ID|ParticleSettings.billboard_object -> billboard_object:   pointer  "Billboards face this object (default is active camera)"
-+ * ID|ParticleSettings.billboard_offset -> billboard_offset:   float  "NO DESCRIPTION"
++ * ID|ParticleSettings.billboard_offset -> billboard_offset:   float[2]  "NO DESCRIPTION"
 + * ID|ParticleSettings.billboard_split_offset -> billboard_offset_split:   enum  "How to offset billboard textures"
 + * ID|ParticleSettings.billboard_tilt -> billboard_tilt:   float  "Tilt of the billboards"
 + * ID|ParticleSettings.billboard_random_tilt -> billboard_tilt_random:   float  "Random tilt of the billboards"
@@ -1653,7 +1653,7 @@ TODO MOVE TO ELEMENTS * ID|MetaBall.active_element -> active_element:   pointer,
 + * ID|ParticleSettings.mass -> mass:   float  "Specify the mass of the particles"
 + * ID|ParticleSettings.material -> material:   int  "Specify material used for the particles"
 + * ID|ParticleSettings.normal_factor -> normal_factor:   float  "Let the surface normal give the particle a starting speed"
-+ * ID|ParticleSettings.object_aligned_factor -> object_align_factor:   float  "Let the emitter object orientation give the particle a starting speed"
++ * ID|ParticleSettings.object_aligned_factor -> object_align_factor:   float[3]  "Let the emitter object orientation give the particle a starting speed"
 + * ID|ParticleSettings.object_factor -> object_factor:   float  "Let the object give the particle a starting speed"
 + * ID|ParticleSettings.particle_factor -> particle_factor:   float  "Let the target particle give the particle a starting speed"
 + * ID|ParticleSettings.particle_size -> particle_size:   float  "The size of the particles"
@@ -1709,7 +1709,7 @@ TODO MOVE TO ELEMENTS * ID|MetaBall.active_element -> active_element:   pointer,
 + * ID|ParticleSettings.parent -> use_parent_particles:   boolean  "Render parent particles"
 + * ID|ParticleSettings.react_multiple -> use_react_multiple:   boolean  "React multiple times"
 + * ID|ParticleSettings.react_start_end -> use_react_start_end:   boolean  "Give birth to unreacted particles eventually"
-+ * ID|ParticleSettings.render_adaptive -> use_render_adaptive:   boolean  "Use adapative rendering for paths"
++ * ID|ParticleSettings.render_adaptive -> use_render_adaptive:   boolean  "Draw steps of the particle path"
 + * ID|ParticleSettings.emitter -> use_render_emitter:   boolean  "Render emitter Object also"
 + * ID|ParticleSettings.self_effect -> use_self_effect:   boolean  "Particle effectors effect themselves"
 + * ID|ParticleSettings.enable_simplify -> use_simplify:   boolean  "Remove child strands as the object becomes smaller on the screen"
@@ -1730,7 +1730,7 @@ TODO MOVE TO ELEMENTS * ID|MetaBall.active_element -> active_element:   pointer,
 + * ID|Scene.speed_of_sound -> audio_doppler_speed:   float  "Speed of sound for Doppler effect calculation"
 + * ID|Scene.set -> background_set:   pointer  "Background set scene"
 + * ID|Scene.camera -> camera:   pointer  "Active camera used for rendering the scene"
-+ * ID|Scene.cursor_location -> cursor_location:   float  "3D cursor location"
++ * ID|Scene.cursor_location -> cursor_location:   float[3]  "3D cursor location"
 + * ID|Scene.frame_current -> frame_current:   int  "NO DESCRIPTION"
 + * ID|Scene.frame_end -> frame_end:   int  "Final frame of the playback/rendering range"
 + * ID|Scene.preview_range_frame_end -> frame_preview_end:   int  "Alternative end frame for UI playback"
@@ -1738,12 +1738,12 @@ TODO MOVE TO ELEMENTS * ID|MetaBall.active_element -> active_element:   pointer,
 + * ID|Scene.frame_start -> frame_start:   int  "First frame of the playback/rendering range"
 + * ID|Scene.frame_step -> frame_step:   int  "Number of frames to skip forward while rendering/playing back each frame"
 + * ID|Scene.game_data -> game_settings:   pointer,  "(read-only)"
-+ * ID|Scene.gravity -> gravity:   float  "Constant acceleration in a given direction"
++ * ID|Scene.gravity -> gravity:   float[3]  "Constant acceleration in a given direction"
 + * ID|Scene.grease_pencil -> grease_pencil:   pointer  "Grease Pencil datablock"
 + * ID|Scene.nla_tweakmode_on -> is_nla_tweakmode:   boolean,  "(read-only)    Indicates whether there is any action referenced by NLA being edited. Strictly read-only"
 + * ID|Scene.keying_sets -> keying_sets:   collection,  "(read-only)    Absolute Keying Sets for this Scene"
 + * ID|Scene.all_keying_sets -> keying_sets_all:   collection,  "(read-only)    All Keying Sets available for use (builtins and Absolute Keying Sets for this Scene)"
-+ * ID|Scene.layers -> layers:   boolean  "Layers visible when rendering the scene"
++ * ID|Scene.layers -> layers:   boolean[20]  "Layers visible when rendering the scene"
 + * ID|Scene.network_render -> network_render:   pointer,  "(read-only)    Network Render Settings"
 + * ID|Scene.nodetree -> nodetree:   pointer,  "(read-only)    Compositing node tree"
 + * ID|Scene.bases -> object_bases:   collection,  "(read-only)"
@@ -1903,11 +1903,11 @@ TODO, move into collectin * ID|WindowManager.active_keyconfig -> active_keyconfi
 + * ID|WindowManager.windows -> windows:   collection,  "(read-only)    Open windows"
 + * ID|World.active_texture -> active_texture:   pointer  "Active texture slot being displayed"
 + * ID|World.active_texture_index -> active_texture_index:   int  "Index of active texture slot"
-+ * ID|World.ambient_color -> ambient_color:   float  "NO DESCRIPTION"
++ * ID|World.ambient_color -> ambient_color:   float[3]  "NO DESCRIPTION"
 + * ID|World.animation_data -> animation_data:   pointer,  "(read-only)    Animation data for this datablock"
 + * ID|World.range -> color_range:   float  "The color range that will be mapped to 0-1"
 + * ID|World.exposure -> exposure:   float  "Amount of exponential color correction for light"
-+ * ID|World.horizon_color -> horizon_color:   float  "Color at the horizon"
++ * ID|World.horizon_color -> horizon_color:   float[3]  "Color at the horizon"
 + * ID|World.lighting -> light_settings:   pointer,  "(read-only)    World lighting settings"
 + * ID|World.mist -> mist_settings:   pointer,  "(read-only)    World mist settings"
 + * ID|World.stars -> star_settings:   pointer,  "(read-only)    World stars settings"
@@ -1915,7 +1915,7 @@ TODO, move into collectin * ID|WindowManager.active_keyconfig -> active_keyconfi
 + * ID|World.blend_sky -> use_sky_blend:   boolean  "Render background with natural progression from horizon to zenith"
 + * ID|World.paper_sky -> use_sky_paper:   boolean  "Flatten blend or texture coordinates"
 + * ID|World.real_sky -> use_sky_real:   boolean  "Render background with a real horizon, relative to the camera angle"
-+ * ID|World.zenith_color -> zenith_color:   float  "Color at the zenith"
++ * ID|World.zenith_color -> zenith_color:   float[3]  "Color at the zenith"
 + * IKParam.ik_solver -> ik_solver:   enum,  "(read-only)    IK solver for which these parameters are defined, 0 for Legacy, 1 for iTaSC"
 + * IKParam|Itasc.dampmax -> dampimg_max:   float  "Maximum damping coefficient when singular value is nearly 0. Higher values=more stability, less reactivity. Default=0.5"
 + * IKParam|Itasc.dampeps -> damping_epsilon:   float  "Singular value under which damping is progressively applied. Higher values=more stability, less reactivity. Default=0.1"
@@ -1965,10 +1965,10 @@ TODO * KeyMapItem.propvalue -> propvalue:   enum  "The value this event translat
 + * KeyMapItem.expanded -> show_expanded:   boolean  "Show key map event and property details in the user interface"
 + * KeyMapItem.type -> type:   enum  "Type of event"
 + * KeyMapItem.value -> value:   enum  "NO DESCRIPTION"
-+ * Keyframe.co -> co:   float  "Coordinates of the control point"
-+ * Keyframe.handle1 -> handle_left:   float  "Coordinates of the first handle"
++ * Keyframe.co -> co:   float[2]  "Coordinates of the control point"
++ * Keyframe.handle1 -> handle_left:   float[2]  "Coordinates of the first handle"
 + * Keyframe.handle1_type -> handle_left_type:   enum  "Handle types"
-+ * Keyframe.handle2 -> handle_right:   float  "Coordinates of the second handle"
++ * Keyframe.handle2 -> handle_right:   float[2]  "Coordinates of the second handle"
 + * Keyframe.handle2_type -> handle_right_type:   enum  "Handle types"
 + * Keyframe.interpolation -> interpolation:   enum  "Interpolation method to use for segment of the curve from this Keyframe until the next Keyframe"
 + * Keyframe.select_control_point -> select_control_point:   boolean  "Control point selection status"
@@ -2015,8 +2015,8 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * LampSkySettings.sun_size -> sun_size:   float  "Sun size"
 + * LampSkySettings.use_atmosphere -> use_atmosphere:   boolean  "Apply sun effect on atmosphere"
 + * LampSkySettings.use_sky -> use_sky:   boolean  "Apply sun effect on sky"
-+ * LatticePoint.co -> co:   float,  "(read-only)"
-+ * LatticePoint.deformed_co -> co_deform:   float  "NO DESCRIPTION"
++ * LatticePoint.co -> co:   float[3],  "(read-only)"
++ * LatticePoint.deformed_co -> co_deform:   float[3]  "NO DESCRIPTION"
 + * LatticePoint.groups -> groups:   collection,  "(read-only)    Weights for the vertex groups this point is member of"
 + * Macro.bl_description -> bl_description:   string  "NO DESCRIPTION"
 + * Macro.bl_idname -> bl_idname:   string  "NO DESCRIPTION"
@@ -2115,12 +2115,12 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * MaterialStrand.uv_layer -> uv_layer:   string  "Name of UV layer to override"
 + * MaterialStrand.width_fade -> width_fade:   float  "Transparency along the width of the strand"
 + * MaterialSubsurfaceScattering.back -> back:   float  "Back scattering weight"
-+ * MaterialSubsurfaceScattering.color -> color:   float  "Scattering color"
++ * MaterialSubsurfaceScattering.color -> color:   float[3]  "Scattering color"
 + * MaterialSubsurfaceScattering.color_factor -> color_factor:   float  "Blend factor for SSS colors"
 + * MaterialSubsurfaceScattering.error_tolerance -> error_threshold:   float  "Error tolerance (low values are slower and higher quality)"
 + * MaterialSubsurfaceScattering.front -> front:   float  "Front scattering weight"
 + * MaterialSubsurfaceScattering.ior -> ior:   float  "Index of refraction (higher values are denser)"
-+ * MaterialSubsurfaceScattering.radius -> radius:   float  "Mean red/green/blue scattering path length"
++ * MaterialSubsurfaceScattering.radius -> radius:   float[3]  "Mean red/green/blue scattering path length"
 + * MaterialSubsurfaceScattering.scale -> scale:   float  "Object scale factor"
 + * MaterialSubsurfaceScattering.texture_factor -> texture_factor:   float  "Texture scatting blend factor"
 + * MaterialSubsurfaceScattering.enabled -> use:   boolean  "Enable diffuse subsurface scatting effects in a material"
@@ -2130,26 +2130,26 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * MaterialVolume.density_scale -> density_scale:   float  "Multiplier for the materials density"
 + * MaterialVolume.depth_cutoff -> depth_threshold:   float  "Stop ray marching early if transmission drops below this luminance - higher values give speedups in dense volumes at the expense of accuracy"
 + * MaterialVolume.emission -> emission:   float  "Amount of light that gets emitted by the volume"
-+ * MaterialVolume.emission_color -> emission_color:   float  "NO DESCRIPTION"
++ * MaterialVolume.emission_color -> emission_color:   float[3]  "NO DESCRIPTION"
 + * MaterialVolume.lighting_mode -> light_mode:   enum  "Method of shading, attenuating, and scattering light through the volume"
 + * MaterialVolume.ms_diffusion -> ms_diffusion:   float  "Diffusion factor, the strength of the blurring effect"
 + * MaterialVolume.ms_intensity -> ms_intensity:   float  "Multiplier for multiple scattered light energy"
 + * MaterialVolume.ms_spread -> ms_spread:   float  "Proportional distance over which the light is diffused"
 + * MaterialVolume.reflection -> reflection:   float  "Multiplier to make out-scattered light brighter or darker (non-physically correct)"
-+ * MaterialVolume.reflection_color -> reflection_color:   float  "Colour of light scattered out of the volume (does not affect transmission)"
++ * MaterialVolume.reflection_color -> reflection_color:   float[3]  "Colour of light scattered out of the volume (does not affect transmission)"
 + * MaterialVolume.scattering -> scattering:   float  "Amount of light that gets scattered out by the volume - the more out-scattering, the shallower the light will penetrate"
 + * MaterialVolume.step_calculation -> step_method:   enum  "Method of calculating the steps through the volume"
 + * MaterialVolume.step_size -> step_size:   float  "Distance between subsequent volume depth samples"
-+ * MaterialVolume.transmission_color -> transmission_color:   float  "Result color of the volume, after other light has been scattered/absorbed"
++ * MaterialVolume.transmission_color -> transmission_color:   float[3]  "Result color of the volume, after other light has been scattered/absorbed"
 + * MaterialVolume.external_shadows -> use_external_shadows:   boolean  "Receive shadows from sources outside the volume (temporary)"
 + * MaterialVolume.light_cache -> use_light_cache:   boolean  "Pre-calculate the shading information into a voxel grid, speeds up shading at slightly less accuracy"
-+ * Menu.bl_idname -> bl_idname:   string  "NO DESCRIPTION"
-+ * Menu.bl_label -> bl_label:   string  "NO DESCRIPTION"
-+ * Menu.layout -> layout:   pointer,  "(read-only)"
-+ * MeshColor.color1 -> color1:   float  "NO DESCRIPTION"
-+ * MeshColor.color2 -> color2:   float  "NO DESCRIPTION"
-+ * MeshColor.color3 -> color3:   float  "NO DESCRIPTION"
-+ * MeshColor.color4 -> color4:   float  "NO DESCRIPTION"
++ * Menu.bl_idname -> bl_idname:   string  "If this is set, the menu gets a custom ID, otherwise it takes the name of the class used to define the panel. For example, if the class name is OBJECT_MT_hello, and bl_idname is not set by the script, then bl_idname = OBJECT_MT_hello"
++ * Menu.bl_label -> bl_label:   string  "The menu label"
++ * Menu.layout -> layout:   pointer,  "(read-only)    Defines the structure of the menu in the UI."
++ * MeshColor.color1 -> color1:   float[3]  "NO DESCRIPTION"
++ * MeshColor.color2 -> color2:   float[3]  "NO DESCRIPTION"
++ * MeshColor.color3 -> color3:   float[3]  "NO DESCRIPTION"
++ * MeshColor.color4 -> color4:   float[3]  "NO DESCRIPTION"
 + * MeshColorLayer.active -> active:   boolean  "Sets the layer as active for display and editing"
 + * MeshColorLayer.active_render -> active_render:   boolean  "Sets the layer as active for rendering"
 + * MeshColorLayer.data -> data:   collection,  "(read-only)"
@@ -2163,16 +2163,16 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * MeshEdge.select -> select:   boolean  "NO DESCRIPTION"
 + * MeshEdge.seam -> use_seam:   boolean  "Seam edge for UV unwrapping"
 + * MeshEdge.sharp -> use_sharp:   boolean  "Sharp edge for the EdgeSplit modifier"
-+ * MeshEdge.verts -> verts:   int  "Vertex indices"
++ * MeshEdge.verts -> verts:   int[2]  "Vertex indices"
 + * MeshFace.area -> area:   float,  "(read-only)    read only area of the face"
 + * MeshFace.hide -> hide:   boolean  "NO DESCRIPTION"
 + * MeshFace.index -> index:   int,  "(read-only)    Index number of the vertex"
 + * MeshFace.material_index -> material_index:   int  "NO DESCRIPTION"
-+ * MeshFace.normal -> normal:   float,  "(read-only)    local space unit length normal vector for this face"
++ * MeshFace.normal -> normal:   float[3],  "(read-only)    local space unit length normal vector for this face"
 + * MeshFace.select -> select:   boolean  "NO DESCRIPTION"
 + * MeshFace.smooth -> use_smooth:   boolean  "NO DESCRIPTION"
-+ * MeshFace.verts -> verts:   int  "Vertex indices"
-+ * MeshFace.verts_raw -> verts_raw:   int  "Fixed size vertex indices array"
++ * MeshFace.verts -> verts:   int[4]  "Vertex indices"
++ * MeshFace.verts_raw -> verts_raw:   int[4]  "Fixed size vertex indices array"
 + * MeshFaces.active -> active:   int  "The active face for this mesh"
 + * MeshFaces.active_tface -> active_tface:   pointer,  "(read-only)    Active Texture Face"
 + * MeshFloatProperty.value -> value:   float  "NO DESCRIPTION"
@@ -2181,15 +2181,15 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * MeshIntProperty.value -> value:   int  "NO DESCRIPTION"
 + * MeshIntPropertyLayer.data -> data:   collection,  "(read-only)"
 + * MeshIntPropertyLayer.name -> name:   string  "NO DESCRIPTION"
-+ * MeshSticky.co -> co:   float  "Sticky texture coordinate location"
++ * MeshSticky.co -> co:   float[2]  "Sticky texture coordinate location"
 + * MeshStringProperty.value -> value:   string  "NO DESCRIPTION"
 + * MeshStringPropertyLayer.data -> data:   collection,  "(read-only)"
 + * MeshStringPropertyLayer.name -> name:   string  "NO DESCRIPTION"
 + * MeshTextureFace.transp -> alpha_mode:   enum  "Transparency blending mode"
 + * MeshTextureFace.invisible -> hide:   boolean  "Make face invisible"
 + * MeshTextureFace.image -> image:   pointer  "NO DESCRIPTION"
-+ * MeshTextureFace.uv_pinned -> pin_uv:   boolean  "NO DESCRIPTION"
-+ * MeshTextureFace.select_uv -> select_uv:   boolean  "NO DESCRIPTION"
++ * MeshTextureFace.uv_pinned -> pin_uv:   boolean[4]  "NO DESCRIPTION"
++ * MeshTextureFace.select_uv -> select_uv:   boolean[4]  "NO DESCRIPTION"
 + * MeshTextureFace.alpha_sort -> use_alpha_sort:   boolean  "Enable sorting of faces for correct alpha drawing (slow, use Clip Alpha instead when possible)"
 + * MeshTextureFace.billboard -> use_billboard:   boolean  "Billboard with Z-axis constraint"
 + * MeshTextureFace.text -> use_bitmap_text:   boolean  "Enable bitmap text on face"
@@ -2201,28 +2201,28 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * MeshTextureFace.shadow -> use_shadow_face:   boolean  "Face is used for shadow"
 + * MeshTextureFace.tex -> use_texture:   boolean  "Render face with texture"
 + * MeshTextureFace.twoside -> use_twoside:   boolean  "Render face two-sided"
-+ * MeshTextureFace.uv -> uv:   float  "NO DESCRIPTION"
-+ * MeshTextureFace.uv1 -> uv1:   float  "NO DESCRIPTION"
-+ * MeshTextureFace.uv2 -> uv2:   float  "NO DESCRIPTION"
-+ * MeshTextureFace.uv3 -> uv3:   float  "NO DESCRIPTION"
-+ * MeshTextureFace.uv4 -> uv4:   float  "NO DESCRIPTION"
-+ * MeshTextureFace.uv_raw -> uv_raw:   float  "Fixed size UV coordinates array"
++ * MeshTextureFace.uv -> uv:   float[8]  "NO DESCRIPTION"
++ * MeshTextureFace.uv1 -> uv1:   float[2]  "NO DESCRIPTION"
++ * MeshTextureFace.uv2 -> uv2:   float[2]  "NO DESCRIPTION"
++ * MeshTextureFace.uv3 -> uv3:   float[2]  "NO DESCRIPTION"
++ * MeshTextureFace.uv4 -> uv4:   float[2]  "NO DESCRIPTION"
++ * MeshTextureFace.uv_raw -> uv_raw:   float[8]  "Fixed size UV coordinates array"
 + * MeshTextureFaceLayer.active -> active:   boolean  "Sets the layer as active for display and editing"
 + * MeshTextureFaceLayer.active_clone -> active_clone:   boolean  "Sets the layer as active for cloning"
 + * MeshTextureFaceLayer.active_render -> active_render:   boolean  "Sets the layer as active for rendering"
 + * MeshTextureFaceLayer.data -> data:   collection,  "(read-only)"
 + * MeshTextureFaceLayer.name -> name:   string  "NO DESCRIPTION"
 + * MeshVertex.bevel_weight -> bevel_weight:   float  "Weight used by the Bevel modifier Only Vertices option"
-+ * MeshVertex.co -> co:   float  "NO DESCRIPTION"
++ * MeshVertex.co -> co:   float[3]  "NO DESCRIPTION"
 + * MeshVertex.groups -> groups:   collection,  "(read-only)    Weights for the vertex groups this vertex is member of"
 + * MeshVertex.hide -> hide:   boolean  "NO DESCRIPTION"
 + * MeshVertex.index -> index:   int,  "(read-only)    Index number of the vertex"
-+ * MeshVertex.normal -> normal:   float  "Vertex Normal"
++ * MeshVertex.normal -> normal:   float[3]  "Vertex Normal"
 + * MeshVertex.select -> select:   boolean  "NO DESCRIPTION"
-+ * MetaElement.location -> co:   float  "NO DESCRIPTION"
++ * MetaElement.location -> co:   float[3]  "NO DESCRIPTION"
 + * MetaElement.hide -> hide:   boolean  "Hide element"
 + * MetaElement.radius -> radius:   float  "NO DESCRIPTION"
-+ * MetaElement.rotation -> rotation:   float  "NO DESCRIPTION"
++ * MetaElement.rotation -> rotation:   float[4]  "NO DESCRIPTION"
 + * MetaElement.size_x -> size_x:   float  "Size of element, use of components depends on element type"
 + * MetaElement.size_y -> size_y:   float  "Size of element, use of components depends on element type"
 + * MetaElement.size_z -> size_z:   float  "Size of element, use of components depends on element type"
@@ -2243,7 +2243,7 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * Modifier|ArmatureModifier.multi_modifier -> use_multi_modifier:   boolean  "Use same input as previous modifier, and mix results using overall vgroup"
 + * Modifier|ArmatureModifier.use_vertex_groups -> use_vertex_groups:   boolean  "NO DESCRIPTION"
 + * Modifier|ArmatureModifier.vertex_group -> vertex_group:   string  "Vertex group name"
-+ * Modifier|ArrayModifier.constant_offset_displacement -> constant_offset_displace:   float  "NO DESCRIPTION"
++ * Modifier|ArrayModifier.constant_offset_displacement -> constant_offset_displace:   float[3]  "NO DESCRIPTION"
 + * Modifier|ArrayModifier.count -> count:   int  "Number of duplicates to make"
 + * Modifier|ArrayModifier.curve -> curve:   pointer  "Curve object to fit array length to"
 + * Modifier|ArrayModifier.end_cap -> end_cap:   pointer  "Mesh object to use as an end cap"
@@ -2251,7 +2251,7 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * Modifier|ArrayModifier.fit_type -> fit_type:   enum  "Array length calculation method"
 + * Modifier|ArrayModifier.merge_distance -> merge_threshold:   float  "Limit below which to merge vertices"
 + * Modifier|ArrayModifier.offset_object -> offset_object:   pointer  "NO DESCRIPTION"
-+ * Modifier|ArrayModifier.relative_offset_displacement -> relative_offset_displace:   float  "NO DESCRIPTION"
++ * Modifier|ArrayModifier.relative_offset_displacement -> relative_offset_displace:   float[3]  "NO DESCRIPTION"
 + * Modifier|ArrayModifier.start_cap -> start_cap:   pointer  "Mesh object to use as a start cap"
 + * Modifier|ArrayModifier.constant_offset -> use_constant_offset:   boolean  "Add a constant offset"
 + * Modifier|ArrayModifier.merge_end_vertices -> use_merge_vertices_cap:   boolean  "Merge vertices in first and last duplicates"
@@ -2382,7 +2382,7 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * Modifier|ShrinkwrapModifier.mode -> wrap_method:   enum  "NO DESCRIPTION"
 + * Modifier|SimpleDeformModifier.mode -> deform_method:   enum  "NO DESCRIPTION"
 + * Modifier|SimpleDeformModifier.factor -> factor:   float  "NO DESCRIPTION"
-+ * Modifier|SimpleDeformModifier.limits -> limits:   float  "Lower/Upper limits for deform"
++ * Modifier|SimpleDeformModifier.limits -> limits:   float[2]  "Lower/Upper limits for deform"
 + * Modifier|SimpleDeformModifier.lock_x_axis -> lock_x:   boolean  "NO DESCRIPTION"
 + * Modifier|SimpleDeformModifier.lock_y_axis -> lock_y:   boolean  "NO DESCRIPTION"
 + * Modifier|SimpleDeformModifier.origin -> origin:   pointer  "Origin of modifier space coordinates"
@@ -2404,7 +2404,7 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * Modifier|SolidifyModifier.edge_crease_outer -> edge_crease_outer:   float  "Assign a crease to outer edges"
 + * Modifier|SolidifyModifier.edge_crease_rim -> edge_crease_rim:   float  "Assign a crease to the edges making up the rim"
 + * Modifier|SolidifyModifier.invert -> invert_vertex_group:   boolean  "Invert the vertex group influence"
-+ * Modifier|SolidifyModifier.offset -> offset:   float  "NO DESCRIPTION"
++ * Modifier|SolidifyModifier.offset -> offset:   float  "Offset the thickness from the center"
 + * Modifier|SolidifyModifier.thickness -> thickness:   float  "Thickness of the shell"
 + * Modifier|SolidifyModifier.use_even_offset -> use_even_offset:   boolean  "Maintain thickness by adjusting for sharp corners (slow, disable when not needed)"
 + * Modifier|SolidifyModifier.use_quality_normals -> use_quality_normals:   boolean  "Calculate normals which result in more even thickness (slow, disable when not needed)"
@@ -2439,7 +2439,7 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * Modifier|WaveModifier.texture_coordinates_object -> texture_coords_object:   pointer  "NO DESCRIPTION"
 + * Modifier|WaveModifier.time_offset -> time_offset:   float  "Either the starting frame (for positive speed) or ending frame (for negative speed.)"
 + * Modifier|WaveModifier.cyclic -> use_cyclic:   boolean  "Cyclic wave effect"
-+ * Modifier|WaveModifier.normals -> use_normal:   boolean  "Displace along normal"
++ * Modifier|WaveModifier.normals -> use_normal:   boolean  "Displace along normals"
 + * Modifier|WaveModifier.x_normal -> use_normal_x:   boolean  "Enable displacement along the X normal"
 + * Modifier|WaveModifier.y_normal -> use_normal_y:   boolean  "Enable displacement along the Y normal"
 + * Modifier|WaveModifier.z_normal -> use_normal_z:   boolean  "Enable displacement along the Z normal"
@@ -2454,7 +2454,7 @@ TODO MOVE TO COLLECTION * KeyingSet.active_path -> active_path:   pointer  "Acti
 + * MotionPath.length -> length:   int,  "(read-only)    Number of frames cached"
 + * MotionPath.points -> points:   collection,  "(read-only)    Cached positions per frame"
 + * MotionPath.use_bone_head -> use_bone_head:   boolean,  "(read-only)    For PoseBone paths, use the bone head location when calculating this path"
-+ * MotionPathVert.co -> co:   float  "NO DESCRIPTION"
++ * MotionPathVert.co -> co:   float[3]  "NO DESCRIPTION"
 + * MotionPathVert.select -> select:   boolean  "Path point is selected for editing"
 + * NlaStrip.action -> action:   pointer  "Action referenced by this strip"
 NlaStrip.action_frame_end -> action_frame_end:   float  "NO DESCRIPTION"
@@ -2490,7 +2490,7 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * NlaTrack.select -> select:   boolean  "NLA Track is selected"
 + * NlaTrack.strips -> strips:   collection,  "(read-only)    NLA Strips on this NLA-track"
 + * Node.inputs -> inputs:   collection,  "(read-only)"
-+ * Node.location -> location:   float  "NO DESCRIPTION"
++ * Node.location -> location:   float[2]  "NO DESCRIPTION"
 + * Node.name -> name:   string  "Node name"
 + * Node.outputs -> outputs:   collection,  "(read-only)"
 + * Node|CompositorNode.type -> type:   enum,  "(read-only)"
@@ -2505,9 +2505,9 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeBlur.filter_type -> filter_type:   enum  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeBlur.sizex -> size_x:   int  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeBlur.sizey -> size_y:   int  "NO DESCRIPTION"
-+ * Node|CompositorNode|CompositorNodeBlur.bokeh -> use_bokeh:   boolean  "NO DESCRIPTION"
-+ * Node|CompositorNode|CompositorNodeBlur.gamma -> use_gamma_correction:   boolean  "NO DESCRIPTION"
-+ * Node|CompositorNode|CompositorNodeBlur.relative -> use_relative:   boolean  "NO DESCRIPTION"
++ * Node|CompositorNode|CompositorNodeBlur.bokeh -> use_bokeh:   boolean  "Uses circular filter (slower)"
++ * Node|CompositorNode|CompositorNodeBlur.gamma -> use_gamma_correction:   boolean  "Applies filter on gamma corrected values"
++ * Node|CompositorNode|CompositorNodeBlur.relative -> use_relative:   boolean  "Use relative (percent) values to define blur radius"
 + * Node|CompositorNode|CompositorNodeChannelMatte.color_space -> color_space:   enum  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeChannelMatte.limit_channel -> limit_channel:   enum  "Limit by this channels value"
 + * Node|CompositorNode|CompositorNodeChannelMatte.high -> limit_max:   float  "Values higher than this setting are 100% opaque"
@@ -2520,12 +2520,12 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeChromaMatte.cutoff -> threshold:   float  "Tolerance below which colors will be considered as exact matches"
 + * Node|CompositorNode|CompositorNodeChromaMatte.acceptance -> tolerance:   float  "Tolerance for a color to be considered a keying color"
 + * Node|CompositorNode|CompositorNodeColorBalance.correction_formula -> correction_method:   enum  "NO DESCRIPTION"
-+ * Node|CompositorNode|CompositorNodeColorBalance.gain -> gain:   float  "Correction for Highlights"
-+ * Node|CompositorNode|CompositorNodeColorBalance.gamma -> gamma:   float  "Correction for Midtones"
-+ * Node|CompositorNode|CompositorNodeColorBalance.lift -> lift:   float  "Correction for Shadows"
-+ * Node|CompositorNode|CompositorNodeColorBalance.offset -> offset:   float  "Correction for Shadows"
-+ * Node|CompositorNode|CompositorNodeColorBalance.power -> power:   float  "Correction for Midtones"
-+ * Node|CompositorNode|CompositorNodeColorBalance.slope -> slope:   float  "Correction for Highlights"
++ * Node|CompositorNode|CompositorNodeColorBalance.gain -> gain:   float[3]  "Correction for Highlights"
++ * Node|CompositorNode|CompositorNodeColorBalance.gamma -> gamma:   float[3]  "Correction for Midtones"
++ * Node|CompositorNode|CompositorNodeColorBalance.lift -> lift:   float[3]  "Correction for Shadows"
++ * Node|CompositorNode|CompositorNodeColorBalance.offset -> offset:   float[3]  "Correction for Shadows"
++ * Node|CompositorNode|CompositorNodeColorBalance.power -> power:   float[3]  "Correction for Midtones"
++ * Node|CompositorNode|CompositorNodeColorBalance.slope -> slope:   float[3]  "Correction for Highlights"
 + * Node|CompositorNode|CompositorNodeColorMatte.h -> color_hue:   float  "Hue tolerance for colors to be considered a keying color"
 + * Node|CompositorNode|CompositorNodeColorMatte.s -> color_saturation:   float  "Saturation Tolerance for the color"
 + * Node|CompositorNode|CompositorNodeColorMatte.v -> color_value:   float  "Value Tolerance for the color"
@@ -2601,10 +2601,10 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeLumaMatte.high -> high:   float  "Values higher than this setting are 100% opaque"
 + * Node|CompositorNode|CompositorNodeLumaMatte.low -> low:   float  "Values lower than this setting are 100% keyed"
 + * Node|CompositorNode|CompositorNodeMapUV.alpha -> alpha:   int  "NO DESCRIPTION"
-+ * Node|CompositorNode|CompositorNodeMapValue.max -> max:   float  "NO DESCRIPTION"
-+ * Node|CompositorNode|CompositorNodeMapValue.min -> min:   float  "NO DESCRIPTION"
-+ * Node|CompositorNode|CompositorNodeMapValue.offset -> offset:   float  "NO DESCRIPTION"
-+ * Node|CompositorNode|CompositorNodeMapValue.size -> size:   float  "NO DESCRIPTION"
++ * Node|CompositorNode|CompositorNodeMapValue.max -> max:   float[1]  "NO DESCRIPTION"
++ * Node|CompositorNode|CompositorNodeMapValue.min -> min:   float[1]  "NO DESCRIPTION"
++ * Node|CompositorNode|CompositorNodeMapValue.offset -> offset:   float[1]  "NO DESCRIPTION"
++ * Node|CompositorNode|CompositorNodeMapValue.size -> size:   float[1]  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeMapValue.use_max -> use_max:   boolean  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeMapValue.use_min -> use_min:   boolean  "NO DESCRIPTION"
 + * Node|CompositorNode|CompositorNodeMath.operation -> operation:   enum  "NO DESCRIPTION"
@@ -2651,11 +2651,11 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * Node|ShaderNode|ShaderNodeExtendedMaterial.specular -> use_specular:   boolean  "Material Node outputs Specular"
 + * Node|ShaderNode|ShaderNodeGeometry.color_layer -> color_layer:   string  "NO DESCRIPTION"
 + * Node|ShaderNode|ShaderNodeGeometry.uv_layer -> uv_layer:   string  "NO DESCRIPTION"
-+ * Node|ShaderNode|ShaderNodeMapping.location -> location:   float  "Location offset for the input coordinate"
-+ * Node|ShaderNode|ShaderNodeMapping.maximum -> max:   float  "Maximum value to clamp coordinate to"
-+ * Node|ShaderNode|ShaderNodeMapping.minimum -> min:   float  "Minimum value to clamp coordinate to"
-+ * Node|ShaderNode|ShaderNodeMapping.rotation -> rotation:   float  "Rotation offset for the input coordinate"
-+ * Node|ShaderNode|ShaderNodeMapping.scale -> scale:   float  "Scale adjustment for the input coordinate"
++ * Node|ShaderNode|ShaderNodeMapping.location -> location:   float[3]  "Location offset for the input coordinate"
++ * Node|ShaderNode|ShaderNodeMapping.maximum -> max:   float[3]  "Maximum value to clamp coordinate to"
++ * Node|ShaderNode|ShaderNodeMapping.minimum -> min:   float[3]  "Minimum value to clamp coordinate to"
++ * Node|ShaderNode|ShaderNodeMapping.rotation -> rotation:   float[3]  "Rotation offset for the input coordinate"
++ * Node|ShaderNode|ShaderNodeMapping.scale -> scale:   float[3]  "Scale adjustment for the input coordinate"
 + * Node|ShaderNode|ShaderNodeMapping.clamp_maximum -> use_max:   boolean  "Clamp the output coordinate to a maximum value"
 + * Node|ShaderNode|ShaderNodeMapping.clamp_minimum -> use_min:   boolean  "Clamp the output coordinate to a minimum value"
 + * Node|ShaderNode|ShaderNodeMaterial.invert_normal -> invert_normal:   boolean  "Material Node uses inverted normal"
@@ -2688,7 +2688,7 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * Node|TextureNode|TextureNodeTexture.node_output -> node_output:   int  "For node-based textures, which output node to use"
 + * Node|TextureNode|TextureNodeTexture.texture -> texture:   pointer  "NO DESCRIPTION"
 + * Node|TextureNode|TextureNodeValToRGB.color_ramp -> color_ramp:   pointer,  "(read-only)"
-+ * ObjectBase.layers -> layers:   boolean  "Layers the object base is on"
++ * ObjectBase.layers -> layers:   boolean[20]  "Layers the object base is on"
 + * ObjectBase.object -> object:   pointer,  "(read-only)    Object this base links to"
 + * ObjectBase.select -> select:   boolean  "Object base selection state"
 + * ObjectConstraints.active -> active:   pointer  "Active Object constraint"
@@ -2702,13 +2702,13 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * Operator.properties -> properties:   pointer,  "(read-only)"
 + * OperatorTypeMacro.properties -> properties:   pointer,  "(read-only)"
 + * PackedFile.size -> size:   int,  "(read-only)    Size of packed file in bytes"
-+ * Paint.brush -> brush:   pointer  "Active paint brush"
++ * Paint.brush -> brush:   pointer  "Active Brush"
 + * Paint.show_brush -> show_brush:   boolean  "NO DESCRIPTION"
 + * Paint.show_brush_on_surface -> show_brush_on_surface:   boolean  "NO DESCRIPTION"
 + * Paint.fast_navigate -> show_low_resolution:   boolean  "For multires, show low resolution while navigating the view"
 + * Paint|ImagePaint.invert_stencil -> invert_stencil:   boolean  "Invert the stencil layer"
 + * Paint|ImagePaint.normal_angle -> normal_angle:   int  "Paint most on faces pointing towards the view according to this angle"
-+ * Paint|ImagePaint.screen_grab_size -> screen_grab_size:   int  "Size to capture the image for re-projecting"
++ * Paint|ImagePaint.screen_grab_size -> screen_grab_size:   int[2]  "Size to capture the image for re-projecting"
 + * Paint|ImagePaint.seam_bleed -> seam_bleed:   int  "Extend paint beyond the faces UVs to reduce seams (in pixels, slower)"
 + * Paint|ImagePaint.show_brush -> show_brush:   boolean  "Enables brush shape while not drawing"
 + * Paint|ImagePaint.show_brush_draw -> show_brush_draw:   boolean  "Enables brush shape while drawing"
@@ -2721,7 +2721,7 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * Paint|Sculpt.lock_x -> lock_x:   boolean  "Disallow changes to the X axis of vertices"
 + * Paint|Sculpt.lock_y -> lock_y:   boolean  "Disallow changes to the Y axis of vertices"
 + * Paint|Sculpt.lock_z -> lock_z:   boolean  "Disallow changes to the Z axis of vertices"
-+ * Paint|Sculpt.radial_symm -> radial_symmetry:   int  "Number of times to copy strokes across the surface"
++ * Paint|Sculpt.radial_symm -> radial_symmetry:   int[3]  "Number of times to copy strokes across the surface"
 + * Paint|Sculpt.use_openmp -> use_multithread:   boolean  "Take advantage of multiple CPU cores to improve sculpting performance"
 + * Paint|Sculpt.use_symmetry_feather -> use_symmetry_feather:   boolean  "Reduce the strength of the brush where it overlaps symmetrical daubs"
 + * Paint|Sculpt.symmetry_x -> use_symmetry_x:   boolean  "Mirror brush across the X axis"
@@ -2730,17 +2730,17 @@ NlaStrip.action_frame_start -> action_frame_start:   float  "NO DESCRIPTION"
 + * Paint|VertexPaint.all_faces -> use_all_faces:   boolean  "Paint on all faces inside brush"
 + * Paint|VertexPaint.normals -> use_normal:   boolean  "Applies the vertex normal before painting"
 + * Paint|VertexPaint.spray -> use_spray:   boolean  "Keep applying paint effect while holding mouse"
-+ * Panel.bl_context -> bl_context:   string  "NO DESCRIPTION"
-+ * Panel.bl_idname -> bl_idname:   string  "NO DESCRIPTION"
-+ * Panel.bl_label -> bl_label:   string  "NO DESCRIPTION"
-+ * Panel.bl_region_type -> bl_region_type:   enum  "NO DESCRIPTION"
-+ * Panel.bl_show_header -> bl_show_header:   boolean  "NO DESCRIPTION"
-+ * Panel.bl_space_type -> bl_space_type:   enum  "NO DESCRIPTION"
-+ * Panel.bl_default_closed -> bl_use_closed:   boolean  "NO DESCRIPTION"
-+ * Panel.layout -> layout:   pointer,  "(read-only)"
-TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
++ * Panel.bl_context -> bl_context:   string  "The context in which the panel belongs to. (TODO: explain the possible combinations bl_context/bl_region_type/bl_space_type)"
++ * Panel.bl_idname -> bl_idname:   string  "If this is set, the panel gets a custom ID, otherwise it takes the name of the class used to define the panel. For example, if the class name is OBJECT_PT_hello, and bl_idname is not set by the script, then bl_idname = OBJECT_PT_hello"
++ * Panel.bl_label -> bl_label:   string  "The panel label, shows up in the panel header at the right of the triangle used to collapse the panel."
++ * Panel.bl_region_type -> bl_region_type:   enum  "The region where the panel is going to be used in."
++ * Panel.bl_show_header -> bl_show_header:   boolean  "If set to True, the panel shows a header, which contains a clickable arrow to collapse the panel and the label (see bl_label)."
++ * Panel.bl_space_type -> bl_space_type:   enum  "The space where the panel is going to be used in."
++ * Panel.bl_default_closed -> bl_use_closed:   boolean  "Defines if the panel has to be open or collapsed at the time of its creation. Note that once the panel has been created with bl_default_closed = True, at reload (F8) it stays open."
++ * Panel.layout -> layout:   pointer,  "(read-only)    Defines the structure of the panel in the UI."
+TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "XXX todo"
 + * Particle.alive_state -> alive_state:   enum  "NO DESCRIPTION"
-+ * Particle.angular_velocity -> angular_velocity:   float  "NO DESCRIPTION"
++ * Particle.angular_velocity -> angular_velocity:   float[3]  "NO DESCRIPTION"
 + * Particle.birthtime -> birth_time:   float  "NO DESCRIPTION"
 + * Particle.die_time -> die_time:   float  "NO DESCRIPTION"
 + * Particle.hair -> hair:   collection,  "(read-only)"
@@ -2748,14 +2748,14 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Particle.is_visible -> is_visible:   boolean,  "(read-only)"
 + * Particle.keys -> keys:   collection,  "(read-only)"
 + * Particle.lifetime -> life_time:   float  "NO DESCRIPTION"
-+ * Particle.location -> location:   float  "NO DESCRIPTION"
-+ * Particle.prev_angular_velocity -> prev_angular_velocity:   float  "NO DESCRIPTION"
-+ * Particle.prev_location -> prev_location:   float  "NO DESCRIPTION"
-+ * Particle.prev_rotation -> prev_rotation:   float  "NO DESCRIPTION"
-+ * Particle.prev_velocity -> prev_velocity:   float  "NO DESCRIPTION"
-+ * Particle.rotation -> rotation:   float  "NO DESCRIPTION"
++ * Particle.location -> location:   float[3]  "NO DESCRIPTION"
++ * Particle.prev_angular_velocity -> prev_angular_velocity:   float[3]  "NO DESCRIPTION"
++ * Particle.prev_location -> prev_location:   float[3]  "NO DESCRIPTION"
++ * Particle.prev_rotation -> prev_rotation:   float[4]  "NO DESCRIPTION"
++ * Particle.prev_velocity -> prev_velocity:   float[3]  "NO DESCRIPTION"
++ * Particle.rotation -> rotation:   float[4]  "NO DESCRIPTION"
 + * Particle.size -> size:   float  "NO DESCRIPTION"
-+ * Particle.velocity -> velocity:   float  "NO DESCRIPTION"
++ * Particle.velocity -> velocity:   float[3]  "NO DESCRIPTION"
 + * ParticleBrush.count -> count:   int  "Particle count"
 + * ParticleBrush.curve -> curve:   pointer,  "(read-only)"
 + * ParticleBrush.length_mode -> length_mode:   enum  "NO DESCRIPTION"
@@ -2784,15 +2784,15 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * ParticleEdit.fade_time -> use_fade_time:   boolean  "Fade paths and keys further away from current frame"
 + * ParticleEdit.keep_lengths -> use_preserve_length:   boolean  "Keep path lengths constant"
 + * ParticleEdit.keep_root -> use_preserve_root:   boolean  "Keep root keys unmodified"
-+ * ParticleHairKey.location -> location:   float  "Location of the hair key in object space"
-+ * ParticleHairKey.location_hairspace -> location_hair_space:   float  "Location of the hair key in its internal coordinate system, relative to the emitting face"
++ * ParticleHairKey.location -> location:   float[3]  "Location of the hair key in object space"
++ * ParticleHairKey.location_hairspace -> location_hair_space:   float[3]  "Location of the hair key in its internal coordinate system, relative to the emitting face"
 + * ParticleHairKey.time -> time:   float  "Relative time of key over hair length"
 + * ParticleHairKey.weight -> weight:   float  "Weight for cloth simulation"
-+ * ParticleKey.angular_velocity -> angular_velocity:   float  "Key angular velocity"
-+ * ParticleKey.location -> location:   float  "Key location"
-+ * ParticleKey.rotation -> rotation:   float  "Key rotation quaterion"
++ * ParticleKey.angular_velocity -> angular_velocity:   float[3]  "Key angular velocity"
++ * ParticleKey.location -> location:   float[3]  "Key location"
++ * ParticleKey.rotation -> rotation:   float[4]  "Key rotation quaterion"
 + * ParticleKey.time -> time:   float  "Time of key over the simulation"
-+ * ParticleKey.velocity -> velocity:   float  "Key velocity"
++ * ParticleKey.velocity -> velocity:   float[3]  "Key velocity"
 + * ParticleSystem.active_particle_target -> active_particle_target:   pointer,  "(read-only)"
 + * ParticleSystem.active_particle_target_index -> active_particle_target_index:   int  "NO DESCRIPTION"
 + * ParticleSystem.billboard_normal_uv -> billboard_normal_uv:   string  "UV Layer to control billboard normals"
@@ -2894,7 +2894,7 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * PoseBone.constraints -> constraints:   collection,  "(read-only)    Constraints that act on this PoseChannel"
 + * PoseBone.custom_shape -> custom_shape:   pointer  "Object that defines custom draw type for this bone"
 + * PoseBone.custom_shape_transform -> custom_shape_transform:   pointer  "Bone that defines the display transform of this custom shape"
-+ * PoseBone.head -> head:   float,  "(read-only)    Location of head of the channels bone"
++ * PoseBone.head -> head:   float[3],  "(read-only)    Location of head of the channels bone"
 + * PoseBone.ik_lin_weight -> ik_linear_weight:   float  "Weight of scale constraint for IK"
 + * PoseBone.ik_max_x -> ik_max_x:   float  "Maximum angles for IK Limit"
 + * PoseBone.ik_max_y -> ik_max_y:   float  "Maximum angles for IK Limit"
@@ -2908,31 +2908,31 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * PoseBone.ik_stiffness_z -> ik_stiffness_z:   float  "IK stiffness around the Z axis"
 + * PoseBone.ik_stretch -> ik_stretch:   float  "Allow scaling of the bone for IK"
 + * PoseBone.has_ik -> is_in_ik_chain:   boolean,  "(read-only)    Is part of an IK chain"
-+ * PoseBone.location -> location:   float  "NO DESCRIPTION"
++ * PoseBone.location -> location:   float[3]  "NO DESCRIPTION"
 +NEGATE * PoseBone.ik_dof_x -> lock_ik_x:   boolean  "Allow movement around the X axis"
 + * PoseBone.ik_limit_x -> lock_ik_x:   boolean  "Limit movement around the X axis"
 +NEGATE * PoseBone.ik_dof_y -> lock_ik_y:   boolean  "Allow movement around the Y axis"
 + * PoseBone.ik_limit_y -> lock_ik_y:   boolean  "Limit movement around the Y axis"
 +NEGATE * PoseBone.ik_dof_z -> lock_ik_z:   boolean  "Allow movement around the Z axis"
 + * PoseBone.ik_limit_z -> lock_ik_z:   boolean  "Limit movement around the Z axis"
-+ * PoseBone.lock_location -> lock_location:   boolean  "Lock editing of location in the interface"
-+ * PoseBone.lock_rotation -> lock_rotation:   boolean  "Lock editing of rotation in the interface"
++ * PoseBone.lock_location -> lock_location:   boolean[3]  "Lock editing of location in the interface"
++ * PoseBone.lock_rotation -> lock_rotation:   boolean[3]  "Lock editing of rotation in the interface"
 + * PoseBone.lock_rotation_w -> lock_rotation_w:   boolean  "Lock editing of angle component of four-component rotations in the interface"
 + * PoseBone.lock_rotations_4d -> lock_rotations_4d:   boolean  "Lock editing of four component rotations by components (instead of as Eulers)"
-+ * PoseBone.lock_scale -> lock_scale:   boolean  "Lock editing of scale in the interface"
-+ * PoseBone.matrix -> matrix:   float,  "(read-only)    Final 4x4 matrix for this channel"
-+ * PoseBone.matrix_channel -> matrix_channel:   float,  "(read-only)    4x4 matrix, before constraints"
-+ * PoseBone.matrix_local -> matrix_local:   float  "Matrix representing the parent relative location, scale and rotation. Provides an alternative access to these properties."
++ * PoseBone.lock_scale -> lock_scale:   boolean[3]  "Lock editing of scale in the interface"
++ * PoseBone.matrix -> matrix:   float[16],  "(read-only)    Final 4x4 matrix for this channel"
++ * PoseBone.matrix_channel -> matrix_channel:   float[16],  "(read-only)    4x4 matrix, before constraints"
++ * PoseBone.matrix_local -> matrix_local:   float[16]  "Matrix representing the parent relative location, scale and rotation. Provides an alternative access to these properties."
 + * PoseBone.motion_path -> motion_path:   pointer,  "(read-only)    Motion Path for this element"
 + * PoseBone.name -> name:   string  "NO DESCRIPTION"
 + * PoseBone.parent -> parent:   pointer,  "(read-only)    Parent of this pose bone"
-+ * PoseBone.rotation_axis_angle -> rotation_axis_angle:   float  "Angle of Rotation for Axis-Angle rotation representation"
-+ * PoseBone.rotation_euler -> rotation_euler:   float  "Rotation in Eulers"
++ * PoseBone.rotation_axis_angle -> rotation_axis_angle:   float[4]  "Angle of Rotation for Axis-Angle rotation representation"
++ * PoseBone.rotation_euler -> rotation_euler:   float[3]  "Rotation in Eulers"
 + * PoseBone.rotation_mode -> rotation_mode:   enum  "NO DESCRIPTION"
-+ * PoseBone.rotation_quaternion -> rotation_quaternion:   float  "Rotation in Quaternions"
-+ * PoseBone.scale -> scale:   float  "NO DESCRIPTION"
++ * PoseBone.rotation_quaternion -> rotation_quaternion:   float[4]  "Rotation in Quaternions"
++ * PoseBone.scale -> scale:   float[3]  "NO DESCRIPTION"
 + * PoseBone.select -> select:   boolean  "NO DESCRIPTION"
-+ * PoseBone.tail -> tail:   float,  "(read-only)    Location of tail of the channels bone"
++ * PoseBone.tail -> tail:   float[3],  "(read-only)    Location of tail of the channels bone"
 + * PoseBone.ik_lin_control -> use_ik_linear_control:   boolean  "Apply channel size as IK constraint if stretching is enabled"
 + * PoseBone.ik_rot_control -> use_ik_rotation_control:   boolean  "Apply channel rotation as IK constraint"
 + * PoseBoneConstraints.active -> active:   pointer  "Active PoseChannel constraint"
@@ -2951,13 +2951,13 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Property.unit -> unit:   enum,  "(read-only)    Type of units for this property"
 + * Property|BooleanProperty.array_length -> array_length:   int,  "(read-only)    Maximum length of the array, 0 means unlimited"
 + * Property|BooleanProperty.default -> default:   boolean,  "(read-only)    Default value for this number"
-+ * Property|BooleanProperty.default_array -> default_array:   boolean,  "(read-only)    Default value for this array"
++ * Property|BooleanProperty.default_array -> default_array:   boolean[3],  "(read-only)    Default value for this array"
 + * Property|CollectionProperty.fixed_type -> fixed_type:   pointer,  "(read-only)    Fixed pointer type, empty if variable type"
 + * Property|EnumProperty.default -> default:   enum,  "(read-only)    Default value for this enum"
 + * Property|EnumProperty.items -> items:   collection,  "(read-only)    Possible values for the property"
 + * Property|FloatProperty.array_length -> array_length:   int,  "(read-only)    Maximum length of the array, 0 means unlimited"
 + * Property|FloatProperty.default -> default:   float,  "(read-only)    Default value for this number"
-+ * Property|FloatProperty.default_array -> default_array:   float,  "(read-only)    Default value for this array"
++ * Property|FloatProperty.default_array -> default_array:   float[3],  "(read-only)    Default value for this array"
 + * Property|FloatProperty.hard_max -> hard_max:   float,  "(read-only)    Maximum value used by buttons"
 + * Property|FloatProperty.hard_min -> hard_min:   float,  "(read-only)    Minimum value used by buttons"
 + * Property|FloatProperty.precision -> precision:   int,  "(read-only)    Number of digits after the dot used by buttons"
@@ -2966,7 +2966,7 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Property|FloatProperty.step -> step:   float,  "(read-only)    Step size used by number buttons, for floats 1/100th of the step size"
 + * Property|IntProperty.array_length -> array_length:   int,  "(read-only)    Maximum length of the array, 0 means unlimited"
 + * Property|IntProperty.default -> default:   int,  "(read-only)    Default value for this number"
-+ * Property|IntProperty.default_array -> default_array:   int,  "(read-only)    Default value for this array"
++ * Property|IntProperty.default_array -> default_array:   int[3],  "(read-only)    Default value for this array"
 + * Property|IntProperty.hard_max -> hard_max:   int,  "(read-only)    Maximum value used by buttons"
 + * Property|IntProperty.hard_min -> hard_min:   int,  "(read-only)    Minimum value used by buttons"
 + * Property|IntProperty.soft_max -> soft_max:   int,  "(read-only)    Maximum value used by buttons"
@@ -2975,21 +2975,21 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Property|PointerProperty.fixed_type -> fixed_type:   pointer,  "(read-only)    Fixed pointer type, empty if variable type"
 + * Property|StringProperty.default -> default:   string,  "(read-only)    string default value"
 + * Property|StringProperty.max_length -> length_max:   int,  "(read-only)    Maximum length of the string, 0 means unlimited"
-+ * RGBANodeSocket.default_value -> default_value:   float  "Default value of the socket when no link is attached"
++ * RGBANodeSocket.default_value -> default_value:   float[4]  "Default value of the socket when no link is attached"
 + * RGBANodeSocket.name -> name:   string,  "(read-only)    Socket name"
 + * Region.height -> height:   int,  "(read-only)    Region height"
 + * Region.id -> id:   int,  "(read-only)    Unique ID for this region"
 + * Region.type -> type:   enum,  "(read-only)    Type of this region"
 + * Region.width -> width:   int,  "(read-only)    Region width"
 + * RegionView3D.lock_rotation -> lock_rotation:   boolean  "Lock view rotation in side views"
-+ * RegionView3D.perspective_matrix -> perspective_matrix:   float,  "(read-only)    Current perspective matrix of the 3D region"
++ * RegionView3D.perspective_matrix -> perspective_matrix:   float[16],  "(read-only)    Current perspective matrix of the 3D region"
 + * RegionView3D.box_preview -> show_sync_view:   boolean  "Sync view position between side views"
 + * RegionView3D.box_clip -> use_box_clip:   boolean  "Clip objects based on whats visible in other side views"
 + * RegionView3D.view_distance -> view_distance:   float  "Distance to the view location"
-+ * RegionView3D.view_location -> view_location:   float  "View pivot location"
-+ * RegionView3D.view_matrix -> view_matrix:   float,  "(read-only)    Current view matrix of the 3D region"
++ * RegionView3D.view_location -> view_location:   float[3]  "View pivot location"
++ * RegionView3D.view_matrix -> view_matrix:   float[16],  "(read-only)    Current view matrix of the 3D region"
 + * RegionView3D.view_perspective -> view_perspective:   enum  "View Perspective"
-+ * RegionView3D.view_rotation -> view_rotation:   float  "Rotation in quaternions (keep normalized)"
++ * RegionView3D.view_rotation -> view_rotation:   float[4]  "Rotation in quaternions (keep normalized)"
 + * RenderEngine.bl_idname -> bl_idname:   string  "NO DESCRIPTION"
 + * RenderEngine.bl_label -> bl_label:   string  "NO DESCRIPTION"
 + * RenderEngine.bl_postprocess -> bl_use_postprocess:   boolean  "NO DESCRIPTION"
@@ -3003,8 +3003,8 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * RenderLayer.pass_shadow_exclude -> exclude_shadow:   boolean,  "(read-only)    Exclude shadow pass from combined"
 + * RenderLayer.pass_specular_exclude -> exclude_specular:   boolean,  "(read-only)    Exclude specular pass from combined"
 + * RenderLayer.zmask_negate -> invert_zmask:   boolean,  "(read-only)    For Zmask, only render what is behind solid z values instead of in front"
-+ * RenderLayer.visible_layers -> layers:   boolean,  "(read-only)    Scene layers included in this render layer"
-+ * RenderLayer.zmask_layers -> layers_zmask:   boolean,  "(read-only)    Zmask scene layers"
++ * RenderLayer.visible_layers -> layers:   boolean[20],  "(read-only)    Scene layers included in this render layer"
++ * RenderLayer.zmask_layers -> layers_zmask:   boolean[20],  "(read-only)    Zmask scene layers"
 + * RenderLayer.light_override -> light_override:   pointer,  "(read-only)    Group to override all other lights in this render layer"
 + * RenderLayer.material_override -> material_override:   pointer,  "(read-only)    Material to override all other materials in this render layer"
 + * RenderLayer.name -> name:   string,  "(read-only)    Render layer name"
@@ -3064,13 +3064,13 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * RenderSettings.color_mode -> color_mode:   enum  "Choose BW for saving greyscale images, RGB for saving red, green and blue channels, AND RGBA for saving red, green, blue + alpha channels"
 + * RenderSettings.display_mode -> display_mode:   enum  "Select where rendered images will be displayed"
 + * RenderSettings.dither_intensity -> dither_intensity:   float  "Amount of dithering noise added to the rendered image to break up banding"
-+ * RenderSettings.edge_color -> edge_color:   float  "NO DESCRIPTION"
++ * RenderSettings.edge_color -> edge_color:   float[3]  "NO DESCRIPTION"
 + * RenderSettings.edge_threshold -> edge_threshold:   int  "Threshold for drawing outlines on geometry edges"
 + * RenderSettings.engine -> engine:   enum  "Engine to use for rendering"
 + * RenderSettings.field_order -> field_order:   enum  "Order of video fields. Select which lines get rendered first, to create smooth motion for TV output"
 + * RenderSettings.file_extension -> file_extension:   string,  "(read-only)    The file extension used for saving renders"
 + * RenderSettings.file_format -> file_format:   enum  "File format to save the rendered images as"
-+ * RenderSettings.file_quality -> file_quality:   int  "Quality of JPEG images, AVI Jpeg and SGI movies"
++ * RenderSettings.file_quality -> file_quality:   int  "Quality of JPEG images, AVI Jpeg and SGI movies, Compression for PNGs"
 + * RenderSettings.output_path -> filepath:   string  "Directory/name to save animations, # characters defines the position and length of frame numbers"
 + * RenderSettings.filter_size -> filter_size:   float  "Pixel width over which the reconstruction filter combines samples"
 + * RenderSettings.fps -> fps:   int  "Framerate, expressed in frames per second"
@@ -3096,9 +3096,9 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * RenderSettings.simplify_child_particles -> simplify_child_particles:   float  "Global child particles percentage"
 + * RenderSettings.simplify_shadow_samples -> simplify_shadow_samples:   int  "Global maximum shadow samples"
 + * RenderSettings.simplify_subdivision -> simplify_subdivision:   int  "Global maximum subdivision level"
-+ * RenderSettings.stamp_background -> stamp_background:   float  "Color to use behind stamp text"
++ * RenderSettings.stamp_background -> stamp_background:   float[4]  "Color to use behind stamp text"
 + * RenderSettings.stamp_font_size -> stamp_font_size:   int  "Size of the font used when rendering stamp text"
-+ * RenderSettings.stamp_foreground -> stamp_foreground:   float  "Color to use for stamp text"
++ * RenderSettings.stamp_foreground -> stamp_foreground:   float[4]  "Color to use for stamp text"
 + * RenderSettings.stamp_note_text -> stamp_note_text:   string  "Custom text to appear in the stamp note"
 + * RenderSettings.threads -> threads:   int  "Number of CPU threads to use simultaneously while rendering (for multi-core/CPU systems)"
 + * RenderSettings.threads_mode -> threads_mode:   enum  "Determine the amount of render threads used"
@@ -3110,10 +3110,10 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * RenderSettings.bake_normalized -> use_bake_normalize:   boolean  "With displacement normalize to the distance, with ambient occlusion normalize without using material settings"
 + * RenderSettings.use_border -> use_border:   boolean  "Render a user-defined border region, within the frame size. Note, this disables save_buffers and full_sample"
 + * RenderSettings.cineon_log -> use_cineon_log:   boolean  "Convert to logarithmic color space"
-+ * RenderSettings.color_management -> use_color_management:   boolean  "Use color profiles and gamma corrected imaging pipeline"
++ * RenderSettings.color_management -> use_color_management:   boolean  "Use linear workflow - gamma corrected imaging pipeline"
 + * RenderSettings.use_compositing -> use_compositing:   boolean  "Process the render result through the compositing pipeline, if compositing nodes are enabled"
 + * RenderSettings.crop_to_border -> use_crop_to_border:   boolean  "Crop the rendered frame to the defined border size"
-+ * RenderSettings.edge -> use_edge_enhance:   boolean  "use_Create a toon outline around the edges of geometry"
++ * RenderSettings.edge -> use_edge_enhance:   boolean  "Create a toon outline around the edges of geometry"
 + * RenderSettings.use_envmaps -> use_envmaps:   boolean  "Calculate environment maps while rendering"
 + * RenderSettings.fields -> use_fields:   boolean  "Render image to two fields per frame, for interlaced TV output"
 + * RenderSettings.fields_still -> use_fields_still:   boolean  "Disable the time difference between fields"
@@ -3170,7 +3170,7 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * SceneGameData.dome_text -> dome_text:   pointer  "Custom Warp Mesh data file"
 + * SceneGameData.dome_tilt -> dome_tilt:   int  "Camera rotation in horizontal axis"
 + * SceneGameData.fps -> fps:   int  "The nominal number of game frames per second. Physics fixed timestep = 1/fps, independently of actual frame rate"
-+ * SceneGameData.framing_color -> frame_color:   float  "Set colour of the bars"
++ * SceneGameData.framing_color -> frame_color:   float[3]  "Set colour of the bars"
 + * SceneGameData.framing_type -> frame_type:   enum  "Select the type of Framing you want"
 + * SceneGameData.frequency -> frequency:   int  "Displays clock frequency of fullscreen display"
 + * SceneGameData.logic_step_max -> logic_step_max:   int  "Sets the maximum number of logic frame per game frame if graphics slows down the game, higher value allows better synchronization with physics"
@@ -3212,8 +3212,8 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * SceneRenderLayer.pass_shadow_exclude -> exclude_shadow:   boolean  "Exclude shadow pass from combined"
 + * SceneRenderLayer.pass_specular_exclude -> exclude_specular:   boolean  "Exclude specular pass from combined"
 + * SceneRenderLayer.zmask_negate -> invert_zmask:   boolean  "For Zmask, only render what is behind solid z values instead of in front"
-+ * SceneRenderLayer.visible_layers -> layers:   boolean  "Scene layers included in this render layer"
-+ * SceneRenderLayer.zmask_layers -> layers_zmask:   boolean  "Zmask scene layers"
++ * SceneRenderLayer.visible_layers -> layers:   boolean[20]  "Scene layers included in this render layer"
++ * SceneRenderLayer.zmask_layers -> layers_zmask:   boolean[20]  "Zmask scene layers"
 + * SceneRenderLayer.light_override -> light_override:   pointer  "Group to override all other lights in this render layer"
 + * SceneRenderLayer.material_override -> material_override:   pointer  "Material to override all other materials in this render layer"
 + * SceneRenderLayer.name -> name:   string  "Render layer name"
@@ -3255,7 +3255,7 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Sensor.pinned -> pin:   boolean  "Display when not linked to a visible states controller"
 + * Sensor.expanded -> show_expanded:   boolean  "Set sensor expanded in the user interface"
 + * Sensor.type -> type:   enum  "NO DESCRIPTION"
-+ * Sensor.level -> use_level:   boolean  "Level detector, trigger controllers of new states (only applicable upon logic state transition)"
++ * Sensor.level -> use_level:   boolean  "Level detector, trigger controllers of new states(only applicable upon logic state transition)"
 + * Sensor.pulse_false_level -> use_pulse_false_level:   boolean  "Activate FALSE level triggering (pulse mode)"
 + * Sensor.pulse_true_level -> use_pulse_true_level:   boolean  "Activate TRUE level triggering (pulse mode)"
 + * Sensor.tap -> use_tap:   boolean  "Trigger controllers only for an instant, even while the sensor remains true"
@@ -3266,7 +3266,7 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Sensor|ArmatureSensor.value -> value:   float  "Specify value to be used in comparison"
 + * Sensor|CollisionSensor.material -> material:   string  "Only look for Objects with this material"
 + * Sensor|CollisionSensor.property -> property:   string  "Only look for Objects with this property"
-+ * Sensor|CollisionSensor.collision_type -> use_material:   boolean  "Use material instead of property"
++ * Sensor|CollisionSensor.collision_type -> use_material:   boolean  "Toggle collision on material or property"
 + * Sensor|CollisionSensor.pulse -> use_pulse:   boolean  "Changes to the set of colliding objects generates pulse"
 + * Sensor|DelaySensor.delay -> delay:   int  "Delay in number of logic tics before the positive trigger (default 60 per second)"
 + * Sensor|DelaySensor.duration -> duration:   int  "If >0, delay in number of logic tics before the negative trigger following the positive trigger"
@@ -3307,7 +3307,7 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Sensor|RaySensor.property -> property:   string  "Only look for Objects with this property"
 + * Sensor|RaySensor.range -> range:   float  "Sense objects no farther than this distance"
 + * Sensor|RaySensor.ray_type -> ray_type:   enum  "Toggle collision on material or property"
-+ * Sensor|RaySensor.x_ray_mode -> use_x_ray:   boolean  "See through objects that dont have the property"
++ * Sensor|RaySensor.x_ray_mode -> use_x_ray:   boolean  "Toggle X-Ray option (see through objects that dont have the property)"
 + * Sensor|TouchSensor.material -> material:   pointer  "Only look for objects with this material"
 + * Sequence.blend_opacity -> blend_alpha:   float  "NO DESCRIPTION"
 + * Sequence.blend_mode -> blend_type:   enum  "NO DESCRIPTION"
@@ -3331,12 +3331,12 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Sequence.speed_fader -> speed_fader:   float  "NO DESCRIPTION"
 + * Sequence.type -> type:   enum,  "(read-only)"
 + * Sequence.use_effect_default_fade -> use_default_fade:   boolean  "Fade effect using the built-in default (usually make transition as long as effect strip)"
-+ * SequenceColorBalance.gain -> gain:   float  "Color balance gain (highlights)"
-+ * SequenceColorBalance.gamma -> gamma:   float  "Color balance gamma (midtones)"
++ * SequenceColorBalance.gain -> gain:   float[3]  "Color balance gain (highlights)"
++ * SequenceColorBalance.gamma -> gamma:   float[3]  "Color balance gamma (midtones)"
 + * SequenceColorBalance.inverse_gain -> invert_gain:   boolean  "NO DESCRIPTION"
 + * SequenceColorBalance.inverse_gamma -> invert_gamma:   boolean  "NO DESCRIPTION"
 + * SequenceColorBalance.inverse_lift -> invert_lift:   boolean  "NO DESCRIPTION"
-+ * SequenceColorBalance.lift -> lift:   float  "Color balance lift (shadows)"
++ * SequenceColorBalance.lift -> lift:   float[3]  "Color balance lift (shadows)"
 + * SequenceCrop.right -> max_x:   int  "NO DESCRIPTION"
 + * SequenceCrop.top -> max_y:   int  "NO DESCRIPTION"
 + * SequenceCrop.bottom -> min_x:   int  "NO DESCRIPTION"
@@ -3372,7 +3372,7 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * Sequence|EffectSequence.proxy_custom_file -> use_proxy_custom_file:   boolean  "Use a custom file to read proxy data from"
 + * Sequence|EffectSequence.reverse_frames -> use_reverse_frames:   boolean  "Reverse frame order"
 + * Sequence|EffectSequence.use_translation -> use_translation:   boolean  "Translate image before processing"
-+ * Sequence|EffectSequence|ColorSequence.color -> color:   float  "NO DESCRIPTION"
++ * Sequence|EffectSequence|ColorSequence.color -> color:   float[3]  "NO DESCRIPTION"
 + * Sequence|EffectSequence|GlowSequence.blur_distance -> blur_radius:   float  "Radius of glow effect"
 + * Sequence|EffectSequence|GlowSequence.boost_factor -> boost_factor:   float  "Brightness multiplier"
 + * Sequence|EffectSequence|GlowSequence.clamp -> clamp:   float  "rightness limit of intensity"
@@ -3525,12 +3525,12 @@ TODO SHOULD THIS BE HERE * Panel.text -> text:   string  "NO DESCRIPTION"
 + * ShapeKey.slider_min -> slider_min:   float  "Minimum for slider"
 + * ShapeKey.value -> value:   float  "Value of shape key at the current frame"
 + * ShapeKey.vertex_group -> vertex_group:   string  "Vertex weight group, to blend with basis shape"
-+ * ShapeKeyBezierPoint.co -> co:   float  "NO DESCRIPTION"
-+ * ShapeKeyBezierPoint.handle_2_co -> handle_hight:   float  "NO DESCRIPTION"
-+ * ShapeKeyBezierPoint.handle_1_co -> handle_left:   float  "NO DESCRIPTION"
-+ * ShapeKeyCurvePoint.co -> co:   float  "NO DESCRIPTION"
++ * ShapeKeyBezierPoint.co -> co:   float[3]  "NO DESCRIPTION"
++ * ShapeKeyBezierPoint.handle_1_co -> handle_left:   float[3]  "NO DESCRIPTION"
++ * ShapeKeyBezierPoint.handle_2_co -> handle_right:   float[3]  "NO DESCRIPTION"
++ * ShapeKeyCurvePoint.co -> co:   float[3]  "NO DESCRIPTION"
 + * ShapeKeyCurvePoint.tilt -> tilt:   float  "NO DESCRIPTION"
-+ * ShapeKeyPoint.co -> co:   float  "NO DESCRIPTION"
++ * ShapeKeyPoint.co -> co:   float[3]  "NO DESCRIPTION"
 TODO BETTER NAME * SmokeDomainSettings.alpha -> alpha:   float  "Higher value results in sinking smoke"
 + * SmokeDomainSettings.amplify -> amplify:   int  "Enhance the resolution of smoke by this factor using noise"
 TODO BETTER NAME * SmokeDomainSettings.beta -> beta:   float  "Higher value results in faster rising smoke"
@@ -3581,14 +3581,14 @@ TODO BETTER NAME * SmokeDomainSettings.beta -> beta:   float  "Higher value resu
 + * SoftBodySettings.goal_spring -> goal_spring:   float  "Goal (vertex target position) spring stiffness"
 + * SoftBodySettings.goal_vertex_group -> goal_vertex_group:   string  "Control point weight values"
 + * SoftBodySettings.gravity -> gravity:   float  "Apply gravitation to point movement"
-+ * SoftBodySettings.lcom -> location_mass_center:   float  "Location of Center of mass"
++ * SoftBodySettings.lcom -> location_mass_center:   float[3]  "Location of Center of mass"
 + * SoftBodySettings.mass -> mass:   float  "General Mass value"
 + * SoftBodySettings.mass_vertex_group -> mass_vertex_group:   string  "Control point mass values"
 + * SoftBodySettings.plastic -> plastic:   float  "Permanent deform"
 + * SoftBodySettings.pull -> pull:   float  "Edge spring stiffness when longer than rest length"
 + * SoftBodySettings.push -> push:   float  "Edge spring stiffness when shorter than rest length"
-+ * SoftBodySettings.lrot -> rotation_estimate:   float  "Estimated rotation matrix"
-+ * SoftBodySettings.lscale -> scale_estimate:   float  "Estimated scale matrix"
++ * SoftBodySettings.lrot -> rotation_estimate:   float[9]  "Estimated rotation matrix"
++ * SoftBodySettings.lscale -> scale_estimate:   float[9]  "Estimated scale matrix"
 + * SoftBodySettings.shear -> shear:   float  "Shear Stiffness"
 + * SoftBodySettings.speed -> speed:   float  "Tweak timing for physics to control frequency and speed"
 + * SoftBodySettings.spring_length -> spring_length:   float  "Alter spring length to shrink/blow up (unit %) 0 to disable"
@@ -3600,12 +3600,12 @@ TODO BETTER NAME * SmokeDomainSettings.beta -> beta:   float  "Higher value resu
 + * SoftBodySettings.edge_collision -> use_edge_collision:   boolean  "Edges collide too"
 + * SoftBodySettings.use_edges -> use_edges:   boolean  "Use Edges as springs"
 + * SoftBodySettings.estimate_matrix -> use_estimate_matrix:   boolean  "estimate matrix .. split to COM , ROT ,SCALE"
-+ * SoftBodySettings.face_collision -> use_face_collision:   boolean  "Faces collide too, SLOOOOOW warning"
++ * SoftBodySettings.face_collision -> use_face_collision:   boolean  "Faces collide too, can be very slow"
 + * SoftBodySettings.use_goal -> use_goal:   boolean  "Define forces for vertices to stick to animated position"
 + * SoftBodySettings.self_collision -> use_self_collision:   boolean  "Enable naive vertex ball self collision"
 + * SoftBodySettings.stiff_quads -> use_stiff_quads:   boolean  "Adds diagonal springs on 4-gons"
 + * Space.type -> type:   enum,  "(read-only)    Space data type"
-+ * SpaceUVEditor.cursor_location -> cursor_location:   float  "2D cursor location for this view"
++ * SpaceUVEditor.cursor_location -> cursor_location:   float[2]  "2D cursor location for this view"
 + * SpaceUVEditor.draw_stretch_type -> draw_stretch_type:   enum  "Type of stretch to draw"
 + * SpaceUVEditor.edge_draw_type -> edge_draw_type:   enum  "Draw type for drawing UV edges"
 + * SpaceUVEditor.constrain_to_image_bounds -> lock_bounds:   boolean  "Constraint to stay within the image bounds while editing"
@@ -3754,12 +3754,12 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * Space|SpaceView3D.clip_end -> clip_end:   float  "3D View far clipping distance"
 + * Space|SpaceView3D.clip_start -> clip_start:   float  "3D View near clipping distance"
 + * Space|SpaceView3D.current_orientation -> current_orientation:   pointer,  "(read-only)    Current Transformation orientation"
-+ * Space|SpaceView3D.cursor_location -> cursor_location:   float  "3D cursor location for this view (dependent on local view setting)"
++ * Space|SpaceView3D.cursor_location -> cursor_location:   float[3]  "3D cursor location for this view (dependent on local view setting)"
 + * Space|SpaceView3D.grid_lines -> grid_lines:   int  "The number of grid lines to display in perspective view"
 + * Space|SpaceView3D.grid_spacing -> grid_spacing:   float  "The distance between 3D View grid lines"
 + * Space|SpaceView3D.grid_subdivisions -> grid_subdivisions:   int  "The number of subdivisions between grid lines"
-+ * Space|SpaceView3D.layers -> layers:   boolean  "Layers visible in this 3D View"
-+ * Space|SpaceView3D.used_layers -> layers_used:   boolean,  "(read-only)    Layers that contain something"
++ * Space|SpaceView3D.layers -> layers:   boolean[20]  "Layers visible in this 3D View"
++ * Space|SpaceView3D.used_layers -> layers_used:   boolean[20],  "(read-only)    Layers that contain something"
 + * Space|SpaceView3D.lens -> lens:   float  "Lens angle (mm) in perspective view"
 + * Space|SpaceView3D.local_view -> local_view:   pointer,  "(read-only)    Display an isolated sub-set of objects, apart from the scene visibility"
 + * Space|SpaceView3D.lock_bone -> lock_bone:   string  "3D View center is locked to this bones position"
@@ -3807,7 +3807,7 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * Spline.endpoint_u -> use_endpoint_u:   boolean  "Make this nurbs curve or surface meet the endpoints in the U direction (Cyclic U must be disabled)"
 + * Spline.endpoint_v -> use_endpoint_v:   boolean  "Make this nurbs surface meet the endpoints in the V direction (Cyclic V must be disabled)"
 + * Spline.smooth -> use_smooth:   boolean  "Smooth the normals of the surface or beveled curve"
-+ * SplinePoint.co -> co:   float  "Point coordinates"
++ * SplinePoint.co -> co:   float[4]  "Point coordinates"
 + * SplinePoint.hide -> hide:   boolean  "Visibility status"
 + * SplinePoint.radius -> radius:   float,  "(read-only)    Radius for bevelling"
 + * SplinePoint.select -> select:   boolean  "Selection status"
@@ -3822,11 +3822,11 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * Struct.name_property -> name_property:   pointer,  "(read-only)    Property that gives the name of the struct"
 + * Struct.nested -> nested:   pointer,  "(read-only)    Struct in which this struct is always nested, and to which it logically belongs"
 + * Struct.properties -> properties:   collection,  "(read-only)    Properties in the struct"
-+ * TexMapping.location -> location:   float  "NO DESCRIPTION"
-+ * TexMapping.maximum -> max:   float  "Maximum value for clipping"
-+ * TexMapping.minimum -> min:   float  "Minimum value for clipping"
-+ * TexMapping.rotation -> rotation:   float  "NO DESCRIPTION"
-+ * TexMapping.scale -> scale:   float  "NO DESCRIPTION"
++ * TexMapping.location -> location:   float[3]  "NO DESCRIPTION"
++ * TexMapping.maximum -> max:   float[3]  "Maximum value for clipping"
++ * TexMapping.minimum -> min:   float[3]  "Minimum value for clipping"
++ * TexMapping.rotation -> rotation:   float[3]  "NO DESCRIPTION"
++ * TexMapping.scale -> scale:   float[3]  "NO DESCRIPTION"
 + * TexMapping.has_maximum -> use_max:   boolean  "Whether to use maximum clipping value"
 + * TexMapping.has_minimum -> use_min:   boolean  "Whether to use minimum clipping value"
 + * TextBox.height -> height:   float  "NO DESCRIPTION"
@@ -3840,19 +3840,19 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * TextLine.body -> body:   string  "Text in the line"
 + * TextMarker.end -> character_index_end:   int,  "(read-only)    Start position of the marker in the line"
 + * TextMarker.start -> character_index_start:   int,  "(read-only)    Start position of the marker in the line"
-+ * TextMarker.color -> color:   float  "Color to display the marker with"
++ * TextMarker.color -> color:   float[4]  "Color to display the marker with"
 + * TextMarker.group -> group:   int,  "(read-only)"
 + * TextMarker.temporary -> is_temporary:   boolean,  "(read-only)    Marker is temporary"
 + * TextMarker.line -> line:   int,  "(read-only)    Line in which the marker is located"
 + * TextMarker.edit_all -> use_edit_all:   boolean,  "(read-only)    Edit all markers of the same group as one"
 + * TextureSlot.blend_type -> blend_type:   enum  "NO DESCRIPTION"
-+ * TextureSlot.color -> color:   float  "The default color for textures that dont return RGB"
++ * TextureSlot.color -> color:   float[3]  "The default color for textures that dont return RGB"
 + * TextureSlot.default_value -> default_value:   float  "Value to use for Ref, Spec, Amb, Emit, Alpha, RayMir, TransLu and Hard"
 + * TextureSlot.negate -> invert:   boolean  "Inverts the values of the texture to reverse its effect"
 + * TextureSlot.name -> name:   string,  "(read-only)    Texture slot name"
-+ * TextureSlot.offset -> offset:   float  "Fine tunes texture mapping X, Y and Z locations"
++ * TextureSlot.offset -> offset:   float[3]  "Fine tunes texture mapping X, Y and Z locations"
 + * TextureSlot.output_node -> output_node:   enum  "Which output node to use, for node-based textures"
-+ * TextureSlot.size -> scale:   float  "Sets scaling for the textures X, Y and Z sizes"
++ * TextureSlot.size -> scale:   float[3]  "Sets scaling for the textures X, Y and Z sizes"
 + * TextureSlot.texture -> texture:   pointer  "Texture datablock used by this texture slot"
 + * TextureSlot.rgb_to_intensity -> use_rgb_to_intensity:   boolean  "Converts texture RGB values to intensity (gray) values"
 + * TextureSlot.stencil -> use_stencil:   boolean  "Use this texture as a blending value on the next texture"
@@ -3948,88 +3948,88 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * Theme.user_interface -> user_interface:   pointer,  "(read-only)"
 + * Theme.user_preferences -> user_preferences:   pointer,  "(read-only)"
 + * Theme.view_3d -> view_3d:   pointer,  "(read-only)"
-+ * ThemeAudioWindow.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.frame_current -> frame_current:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.grid -> grid:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeAudioWindow.window_sliders -> window_sliders:   float  "NO DESCRIPTION"
-+ * ThemeBoneColorSet.active -> active:   float  "Color used for active bones"
-+ * ThemeBoneColorSet.normal -> normal:   float  "Color used for the surface of bones"
-+ * ThemeBoneColorSet.select -> select:   float  "Color used for selected bones"
++ * ThemeAudioWindow.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.frame_current -> frame_current:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.grid -> grid:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeAudioWindow.window_sliders -> window_sliders:   float[3]  "NO DESCRIPTION"
++ * ThemeBoneColorSet.active -> active:   float[3]  "Color used for active bones"
++ * ThemeBoneColorSet.normal -> normal:   float[3]  "Color used for the surface of bones"
++ * ThemeBoneColorSet.select -> select:   float[3]  "Color used for selected bones"
 + * ThemeBoneColorSet.colored_constraints -> show_colored_constraints:   boolean  "Allow the use of colors indicating constraints/keyed status"
-+ * ThemeConsole.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeConsole.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeConsole.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeConsole.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeConsole.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeConsole.cursor -> cursor:   float  "NO DESCRIPTION"
-+ * ThemeConsole.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeConsole.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeConsole.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeConsole.line_error -> line_error:   float  "NO DESCRIPTION"
-+ * ThemeConsole.line_info -> line_info:   float  "NO DESCRIPTION"
-+ * ThemeConsole.line_input -> line_input:   float  "NO DESCRIPTION"
-+ * ThemeConsole.line_output -> line_output:   float  "NO DESCRIPTION"
-+ * ThemeConsole.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeConsole.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeConsole.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.active_channels_group -> active_channels_group:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.channel_group -> channel_group:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.channels -> channels:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.channels_selected -> channels_selected:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.dopesheet_channel -> dopesheet_channel:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.dopesheet_subchannel -> dopesheet_subchannel:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.frame_current -> frame_current:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.grid -> grid:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.list -> list:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.list_text -> list_text:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.list_text_hi -> list_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.list_title -> list_title:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.long_key -> long_key:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.long_key_selected -> long_key_selected:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.value_sliders -> value_sliders:   float  "NO DESCRIPTION"
-+ * ThemeDopeSheet.view_sliders -> view_sliders:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.active_file -> active_file:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.active_file_text -> active_file_text:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.list -> list:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.list_text -> list_text:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.list_text_hi -> list_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.list_title -> list_title:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.scroll_handle -> scroll_handle:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.scrollbar -> scrollbar:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.selected_file -> selected_file:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.tiles -> tiles:   float  "NO DESCRIPTION"
-+ * ThemeFileBrowser.title -> title:   float  "NO DESCRIPTION"
++ * ThemeConsole.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.cursor -> cursor:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.line_error -> line_error:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.line_info -> line_info:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.line_input -> line_input:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.line_output -> line_output:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeConsole.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.active_channels_group -> active_channels_group:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.channel_group -> channel_group:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.channels -> channels:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.channels_selected -> channels_selected:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.dopesheet_channel -> dopesheet_channel:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.dopesheet_subchannel -> dopesheet_subchannel:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.frame_current -> frame_current:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.grid -> grid:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.list -> list:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.list_text -> list_text:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.list_text_hi -> list_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.list_title -> list_title:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.long_key -> long_key:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.long_key_selected -> long_key_selected:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.value_sliders -> value_sliders:   float[3]  "NO DESCRIPTION"
++ * ThemeDopeSheet.view_sliders -> view_sliders:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.active_file -> active_file:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.active_file_text -> active_file_text:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.list -> list:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.list_text -> list_text:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.list_text_hi -> list_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.list_title -> list_title:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.scroll_handle -> scroll_handle:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.scrollbar -> scrollbar:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.selected_file -> selected_file:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.tiles -> tiles:   float[3]  "NO DESCRIPTION"
++ * ThemeFileBrowser.title -> title:   float[3]  "NO DESCRIPTION"
 + * ThemeFontStyle.font_kerning_style -> font_kerning_style:   enum  "Which style to use for font kerning"
 + * ThemeFontStyle.points -> points:   int  "NO DESCRIPTION"
 + * ThemeFontStyle.shadow -> shadow:   int  "Shadow size in pixels (0, 3 and 5 supported)"
@@ -4037,218 +4037,218 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * ThemeFontStyle.shady -> shadow_offset_y:   int  "Shadow offset in pixels"
 + * ThemeFontStyle.shadowalpha -> shadowalpha:   float  "NO DESCRIPTION"
 + * ThemeFontStyle.shadowcolor -> shadowcolor:   float  "Shadow color in grey value"
-+ * ThemeGraphEditor.active_channels_group -> active_channels_group:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.channel_group -> channel_group:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.channels_region -> channels_region:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.dopesheet_channel -> dopesheet_channel:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.dopesheet_subchannel -> dopesheet_subchannel:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.frame_current -> frame_current:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.grid -> grid:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_align -> handle_align:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_auto -> handle_auto:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_free -> handle_free:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_sel_align -> handle_sel_align:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_sel_auto -> handle_sel_auto:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_sel_free -> handle_sel_free:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_sel_vect -> handle_sel_vect:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_vect -> handle_vect:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_vertex -> handle_vertex:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.handle_vertex_select -> handle_vertex_select:   float  "NO DESCRIPTION"
++ * ThemeGraphEditor.active_channels_group -> active_channels_group:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.channel_group -> channel_group:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.channels_region -> channels_region:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.dopesheet_channel -> dopesheet_channel:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.dopesheet_subchannel -> dopesheet_subchannel:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.frame_current -> frame_current:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.grid -> grid:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_align -> handle_align:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_auto -> handle_auto:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_free -> handle_free:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_sel_align -> handle_sel_align:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_sel_auto -> handle_sel_auto:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_sel_free -> handle_sel_free:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_sel_vect -> handle_sel_vect:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_vect -> handle_vect:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_vertex -> handle_vertex:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.handle_vertex_select -> handle_vertex_select:   float[3]  "NO DESCRIPTION"
 + * ThemeGraphEditor.handle_vertex_size -> handle_vertex_size:   int  "NO DESCRIPTION"
-+ * ThemeGraphEditor.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.lastsel_point -> lastsel_point:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.list -> list:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.list_text -> list_text:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.list_text_hi -> list_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.list_title -> list_title:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.panel -> panel:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.vertex -> vertex:   float  "NO DESCRIPTION"
-+ * ThemeGraphEditor.vertex_select -> vertex_select:   float  "NO DESCRIPTION"
++ * ThemeGraphEditor.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.lastsel_point -> lastsel_point:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.list -> list:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.list_text -> list_text:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.list_text_hi -> list_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.list_title -> list_title:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.panel -> panel:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.vertex -> vertex:   float[3]  "NO DESCRIPTION"
++ * ThemeGraphEditor.vertex_select -> vertex_select:   float[3]  "NO DESCRIPTION"
 + * ThemeGraphEditor.vertex_size -> vertex_size:   int  "NO DESCRIPTION"
-+ * ThemeGraphEditor.window_sliders -> window_sliders:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.editmesh_active -> editmesh_active:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.face -> face:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.face_dot -> face_dot:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.face_select -> face_select:   float  "NO DESCRIPTION"
++ * ThemeGraphEditor.window_sliders -> window_sliders:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.editmesh_active -> editmesh_active:   float[4]  "NO DESCRIPTION"
++ * ThemeImageEditor.face -> face:   float[4]  "NO DESCRIPTION"
++ * ThemeImageEditor.face_dot -> face_dot:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.face_select -> face_select:   float[4]  "NO DESCRIPTION"
 + * ThemeImageEditor.facedot_size -> facedot_size:   int  "NO DESCRIPTION"
-+ * ThemeImageEditor.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.scope_back -> scope_back:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.vertex -> vertex:   float  "NO DESCRIPTION"
-+ * ThemeImageEditor.vertex_select -> vertex_select:   float  "NO DESCRIPTION"
++ * ThemeImageEditor.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.scope_back -> scope_back:   float[4]  "NO DESCRIPTION"
++ * ThemeImageEditor.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.vertex -> vertex:   float[3]  "NO DESCRIPTION"
++ * ThemeImageEditor.vertex_select -> vertex_select:   float[3]  "NO DESCRIPTION"
 + * ThemeImageEditor.vertex_size -> vertex_size:   int  "NO DESCRIPTION"
-+ * ThemeInfo.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeInfo.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeInfo.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeInfo.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeInfo.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeInfo.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeInfo.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeInfo.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeInfo.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeInfo.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeInfo.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.panel -> panel:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeLogicEditor.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.bars -> bars:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.bars_selected -> bars_selected:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.frame_current -> frame_current:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.grid -> grid:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.list -> list:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.list_text -> list_text:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.list_text_hi -> list_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.list_title -> list_title:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.strips -> strips:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.strips_selected -> strips_selected:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeNLAEditor.view_sliders -> view_sliders:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.converter_node -> converter_node:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.group_node -> group_node:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.in_out_node -> in_out_node:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.list -> list:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.list_text -> list_text:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.list_text_hi -> list_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.list_title -> list_title:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.node_backdrop -> node_backdrop:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.operator_node -> operator_node:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.selected_text -> selected_text:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.wires -> wire:   float  "NO DESCRIPTION"
-+ * ThemeNodeEditor.wire_select -> wire_select:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeOutliner.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeProperties.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeProperties.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeProperties.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeProperties.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeProperties.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeProperties.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeProperties.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeProperties.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeProperties.panel -> panel:   float  "NO DESCRIPTION"
-+ * ThemeProperties.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeProperties.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeProperties.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.audio_strip -> audio_strip:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.draw_action -> draw_action:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.effect_strip -> effect_strip:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.frame_current -> frame_current:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.grid -> grid:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.image_strip -> image_strip:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.keyframe -> keyframe:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.meta_strip -> meta_strip:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.movie_strip -> movie_strip:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.plugin_strip -> plugin_strip:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.scene_strip -> scene_strip:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.transition_strip -> transition_strip:   float  "NO DESCRIPTION"
-+ * ThemeSequenceEditor.window_sliders -> window_sliders:   float  "NO DESCRIPTION"
++ * ThemeInfo.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeInfo.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.panel -> panel:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeLogicEditor.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.bars -> bars:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.bars_selected -> bars_selected:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.frame_current -> frame_current:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.grid -> grid:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.list -> list:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.list_text -> list_text:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.list_text_hi -> list_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.list_title -> list_title:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.strips -> strips:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.strips_selected -> strips_selected:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeNLAEditor.view_sliders -> view_sliders:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.converter_node -> converter_node:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.group_node -> group_node:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.in_out_node -> in_out_node:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.list -> list:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.list_text -> list_text:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.list_text_hi -> list_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.list_title -> list_title:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.node_backdrop -> node_backdrop:   float[4]  "NO DESCRIPTION"
++ * ThemeNodeEditor.operator_node -> operator_node:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.selected_text -> selected_text:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.wires -> wire:   float[3]  "NO DESCRIPTION"
++ * ThemeNodeEditor.wire_select -> wire_select:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeOutliner.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.panel -> panel:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeProperties.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.audio_strip -> audio_strip:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.draw_action -> draw_action:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.effect_strip -> effect_strip:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.frame_current -> frame_current:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.grid -> grid:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.image_strip -> image_strip:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.keyframe -> keyframe:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.meta_strip -> meta_strip:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.movie_strip -> movie_strip:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.plugin_strip -> plugin_strip:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.scene_strip -> scene_strip:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.transition_strip -> transition_strip:   float[3]  "NO DESCRIPTION"
++ * ThemeSequenceEditor.window_sliders -> window_sliders:   float[3]  "NO DESCRIPTION"
 + * ThemeStyle.grouplabel -> group_label:   pointer,  "(read-only)"
 + * ThemeStyle.paneltitle -> panel_title:   pointer,  "(read-only)"
 + * ThemeStyle.panelzoom -> panelzoom:   float  "Default zoom level for panel areas"
 + * ThemeStyle.widget -> widget:   pointer,  "(read-only)"
 + * ThemeStyle.widgetlabel -> widget_label:   pointer,  "(read-only)"
-+ * ThemeTextEditor.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.cursor -> cursor:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.line_numbers_background -> line_numbers_background:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.scroll_bar -> scroll_bar:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.selected_text -> selected_text:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.syntax_builtin -> syntax_builtin:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.syntax_comment -> syntax_comment:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.syntax_numbers -> syntax_numbers:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.syntax_special -> syntax_special:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.syntax_string -> syntax_string:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeTextEditor.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.frame_current -> frame_current:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.grid -> grid:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeTimeline.title -> title:   float  "NO DESCRIPTION"
++ * ThemeTextEditor.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.cursor -> cursor:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.line_numbers_background -> line_numbers_background:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.scroll_bar -> scroll_bar:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.selected_text -> selected_text:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.syntax_builtin -> syntax_builtin:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.syntax_comment -> syntax_comment:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.syntax_numbers -> syntax_numbers:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.syntax_special -> syntax_special:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.syntax_string -> syntax_string:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeTextEditor.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.frame_current -> frame_current:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.grid -> grid:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeTimeline.title -> title:   float[3]  "NO DESCRIPTION"
 + * ThemeUserInterface.icon_file -> icon_file:   string  "NO DESCRIPTION"
 + * ThemeUserInterface.wcol_box -> wcol_box:   pointer,  "(read-only)"
 + * ThemeUserInterface.wcol_list_item -> wcol_list_item:   pointer,  "(read-only)"
@@ -4267,85 +4267,85 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * ThemeUserInterface.wcol_text -> wcol_text:   pointer,  "(read-only)"
 + * ThemeUserInterface.wcol_toggle -> wcol_toggle:   pointer,  "(read-only)"
 + * ThemeUserInterface.wcol_tool -> wcol_tool:   pointer,  "(read-only)"
-+ * ThemeUserPreferences.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeUserPreferences.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeView3D.act_spline -> act_spline:   float  "NO DESCRIPTION"
-+ * ThemeView3D.back -> back:   float  "NO DESCRIPTION"
-+ * ThemeView3D.bone_pose -> bone_pose:   float  "NO DESCRIPTION"
-+ * ThemeView3D.bone_solid -> bone_solid:   float  "NO DESCRIPTION"
-+ * ThemeView3D.button -> button:   float  "NO DESCRIPTION"
-+ * ThemeView3D.button_text -> button_text:   float  "NO DESCRIPTION"
-+ * ThemeView3D.button_text_hi -> button_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeView3D.button_title -> button_title:   float  "NO DESCRIPTION"
-+ * ThemeView3D.edge_crease -> edge_crease:   float  "NO DESCRIPTION"
-+ * ThemeView3D.edge_facesel -> edge_facesel:   float  "NO DESCRIPTION"
-+ * ThemeView3D.edge_seam -> edge_seam:   float  "NO DESCRIPTION"
-+ * ThemeView3D.edge_select -> edge_select:   float  "NO DESCRIPTION"
-+ * ThemeView3D.edge_sharp -> edge_sharp:   float  "NO DESCRIPTION"
-+ * ThemeView3D.editmesh_active -> editmesh_active:   float  "NO DESCRIPTION"
-+ * ThemeView3D.face -> face:   float  "NO DESCRIPTION"
-+ * ThemeView3D.face_dot -> face_dot:   float  "NO DESCRIPTION"
-+ * ThemeView3D.face_select -> face_select:   float  "NO DESCRIPTION"
++ * ThemeUserPreferences.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeUserPreferences.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.act_spline -> act_spline:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.back -> back:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.bone_pose -> bone_pose:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.bone_solid -> bone_solid:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.button -> button:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.button_text -> button_text:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.button_text_hi -> button_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.button_title -> button_title:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.edge_crease -> edge_crease:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.edge_facesel -> edge_facesel:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.edge_seam -> edge_seam:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.edge_select -> edge_select:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.edge_sharp -> edge_sharp:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.editmesh_active -> editmesh_active:   float[4]  "NO DESCRIPTION"
++ * ThemeView3D.face -> face:   float[4]  "NO DESCRIPTION"
++ * ThemeView3D.face_dot -> face_dot:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.face_select -> face_select:   float[4]  "NO DESCRIPTION"
 + * ThemeView3D.facedot_size -> facedot_size:   int  "NO DESCRIPTION"
-+ * ThemeView3D.frame_current -> frame_current:   float  "NO DESCRIPTION"
-+ * ThemeView3D.grid -> grid:   float  "NO DESCRIPTION"
-+ * ThemeView3D.handle_align -> handle_align:   float  "NO DESCRIPTION"
-+ * ThemeView3D.handle_auto -> handle_auto:   float  "NO DESCRIPTION"
-+ * ThemeView3D.handle_free -> handle_free:   float  "NO DESCRIPTION"
-+ * ThemeView3D.handle_sel_align -> handle_sel_align:   float  "NO DESCRIPTION"
-+ * ThemeView3D.handle_sel_auto -> handle_sel_auto:   float  "NO DESCRIPTION"
-+ * ThemeView3D.handle_sel_free -> handle_sel_free:   float  "NO DESCRIPTION"
-+ * ThemeView3D.handle_sel_vect -> handle_sel_vect:   float  "NO DESCRIPTION"
-+ * ThemeView3D.handle_vect -> handle_vect:   float  "NO DESCRIPTION"
-+ * ThemeView3D.header -> header:   float  "NO DESCRIPTION"
-+ * ThemeView3D.header_text -> header_text:   float  "NO DESCRIPTION"
-+ * ThemeView3D.header_text_hi -> header_text_hi:   float  "NO DESCRIPTION"
-+ * ThemeView3D.lamp -> lamp:   float  "NO DESCRIPTION"
-+ * ThemeView3D.lastsel_point -> lastsel_point:   float  "NO DESCRIPTION"
-+ * ThemeView3D.normal -> normal:   float  "NO DESCRIPTION"
-+ * ThemeView3D.nurb_sel_uline -> nurb_sel_uline:   float  "NO DESCRIPTION"
-+ * ThemeView3D.nurb_sel_vline -> nurb_sel_vline:   float  "NO DESCRIPTION"
-+ * ThemeView3D.nurb_uline -> nurb_uline:   float  "NO DESCRIPTION"
-+ * ThemeView3D.nurb_vline -> nurb_vline:   float  "NO DESCRIPTION"
-+ * ThemeView3D.object_active -> object_active:   float  "NO DESCRIPTION"
-+ * ThemeView3D.object_grouped -> object_grouped:   float  "NO DESCRIPTION"
-+ * ThemeView3D.object_grouped_active -> object_grouped_active:   float  "NO DESCRIPTION"
-+ * ThemeView3D.object_selected -> object_selected:   float  "NO DESCRIPTION"
-+ * ThemeView3D.panel -> panel:   float  "NO DESCRIPTION"
-+ * ThemeView3D.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeView3D.text_hi -> text_hi:   float  "NO DESCRIPTION"
-+ * ThemeView3D.title -> title:   float  "NO DESCRIPTION"
-+ * ThemeView3D.transform -> transform:   float  "NO DESCRIPTION"
-+ * ThemeView3D.vertex -> vertex:   float  "NO DESCRIPTION"
-+ * ThemeView3D.vertex_normal -> vertex_normal:   float  "NO DESCRIPTION"
-+ * ThemeView3D.vertex_select -> vertex_select:   float  "NO DESCRIPTION"
++ * ThemeView3D.frame_current -> frame_current:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.grid -> grid:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.handle_align -> handle_align:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.handle_auto -> handle_auto:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.handle_free -> handle_free:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.handle_sel_align -> handle_sel_align:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.handle_sel_auto -> handle_sel_auto:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.handle_sel_free -> handle_sel_free:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.handle_sel_vect -> handle_sel_vect:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.handle_vect -> handle_vect:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.header -> header:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.header_text -> header_text:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.header_text_hi -> header_text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.lamp -> lamp:   float[4]  "NO DESCRIPTION"
++ * ThemeView3D.lastsel_point -> lastsel_point:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.normal -> normal:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.nurb_sel_uline -> nurb_sel_uline:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.nurb_sel_vline -> nurb_sel_vline:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.nurb_uline -> nurb_uline:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.nurb_vline -> nurb_vline:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.object_active -> object_active:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.object_grouped -> object_grouped:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.object_grouped_active -> object_grouped_active:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.object_selected -> object_selected:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.panel -> panel:   float[4]  "NO DESCRIPTION"
++ * ThemeView3D.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.text_hi -> text_hi:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.title -> title:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.transform -> transform:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.vertex -> vertex:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.vertex_normal -> vertex_normal:   float[3]  "NO DESCRIPTION"
++ * ThemeView3D.vertex_select -> vertex_select:   float[3]  "NO DESCRIPTION"
 + * ThemeView3D.vertex_size -> vertex_size:   int  "NO DESCRIPTION"
-+ * ThemeView3D.wire -> wire:   float  "NO DESCRIPTION"
-+ * ThemeWidgetColors.inner -> inner:   float  "NO DESCRIPTION"
-+ * ThemeWidgetColors.inner_sel -> inner_sel:   float  "NO DESCRIPTION"
-+ * ThemeWidgetColors.item -> item:   float  "NO DESCRIPTION"
-+ * ThemeWidgetColors.outline -> outline:   float  "NO DESCRIPTION"
++ * ThemeView3D.wire -> wire:   float[3]  "NO DESCRIPTION"
++ * ThemeWidgetColors.inner -> inner:   float[4]  "NO DESCRIPTION"
++ * ThemeWidgetColors.inner_sel -> inner_sel:   float[4]  "NO DESCRIPTION"
++ * ThemeWidgetColors.item -> item:   float[4]  "NO DESCRIPTION"
++ * ThemeWidgetColors.outline -> outline:   float[3]  "NO DESCRIPTION"
 + * ThemeWidgetColors.shadedown -> shadedown:   int  "NO DESCRIPTION"
 + * ThemeWidgetColors.shadetop -> shadetop:   int  "NO DESCRIPTION"
 + * ThemeWidgetColors.shaded -> show_shaded:   boolean  "NO DESCRIPTION"
-+ * ThemeWidgetColors.text -> text:   float  "NO DESCRIPTION"
-+ * ThemeWidgetColors.text_sel -> text_sel:   float  "NO DESCRIPTION"
++ * ThemeWidgetColors.text -> text:   float[3]  "NO DESCRIPTION"
++ * ThemeWidgetColors.text_sel -> text_sel:   float[3]  "NO DESCRIPTION"
 + * ThemeWidgetStateColors.blend -> blend:   float  "NO DESCRIPTION"
-+ * ThemeWidgetStateColors.inner_anim -> inner_anim:   float  "NO DESCRIPTION"
-+ * ThemeWidgetStateColors.inner_anim_sel -> inner_anim_sel:   float  "NO DESCRIPTION"
-+ * ThemeWidgetStateColors.inner_driven -> inner_driven:   float  "NO DESCRIPTION"
-+ * ThemeWidgetStateColors.inner_driven_sel -> inner_driven_sel:   float  "NO DESCRIPTION"
-+ * ThemeWidgetStateColors.inner_key -> inner_key:   float  "NO DESCRIPTION"
-+ * ThemeWidgetStateColors.inner_key_sel -> inner_key_sel:   float  "NO DESCRIPTION"
++ * ThemeWidgetStateColors.inner_anim -> inner_anim:   float[3]  "NO DESCRIPTION"
++ * ThemeWidgetStateColors.inner_anim_sel -> inner_anim_sel:   float[3]  "NO DESCRIPTION"
++ * ThemeWidgetStateColors.inner_driven -> inner_driven:   float[3]  "NO DESCRIPTION"
++ * ThemeWidgetStateColors.inner_driven_sel -> inner_driven_sel:   float[3]  "NO DESCRIPTION"
++ * ThemeWidgetStateColors.inner_key -> inner_key:   float[3]  "NO DESCRIPTION"
++ * ThemeWidgetStateColors.inner_key_sel -> inner_key_sel:   float[3]  "NO DESCRIPTION"
 + * TimelineMarker.camera -> camera:   pointer  "Camera this timeline sets to active"
 + * TimelineMarker.frame -> frame:   int  "The frame on which the timeline marker appears"
 + * TimelineMarker.name -> name:   string  "NO DESCRIPTION"
@@ -4361,7 +4361,7 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * ToolSettings.etch_subdivision_number -> etch_subdivision_number:   int  "Number of bones in the subdivided stroke"
 + * ToolSettings.etch_template -> etch_template:   pointer  "Template armature that will be retargeted to the stroke"
 + * ToolSettings.image_paint -> image_paint:   pointer,  "(read-only)"
-+ * ToolSettings.mesh_selection_mode -> mesh_select_mode:   boolean  "Which mesh elements selection works on"
++ * ToolSettings.mesh_selection_mode -> mesh_select_mode:   boolean[3]  "Which mesh elements selection works on"
 + * ToolSettings.normal_size -> normal_size:   float  "Display size for normals in the 3D view"
 + * ToolSettings.particle_edit -> particle_edit:   pointer,  "(read-only)"
 + * ToolSettings.proportional_editing -> proportional_edit:   enum  "Proportional editing mode"
@@ -4390,14 +4390,14 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * ToolSettings.vertex_group_weight -> vertex_group_weight:   float  "Weight to assign in vertex groups"
 + * ToolSettings.vertex_paint -> vertex_paint:   pointer,  "(read-only)"
 + * ToolSettings.weight_paint -> weight_paint:   pointer,  "(read-only)"
-+ * TransformOrientation.matrix -> matrix:   float  "NO DESCRIPTION"
++ * TransformOrientation.matrix -> matrix:   float[9]  "NO DESCRIPTION"
 + * TransformOrientation.name -> name:   string  "NO DESCRIPTION"
 + * UILayout.alignment -> alignment:   enum  "NO DESCRIPTION"
 + * UILayout.operator_context -> operator_context:   enum  "NO DESCRIPTION"
-+ * UILayout.scale_x -> scale_x:   float  "NO DESCRIPTION"
-+ * UILayout.scale_y -> scale_y:   float  "NO DESCRIPTION"
++ * UILayout.scale_x -> scale_x:   float  "Scale factor along the X for items in this (sub)layout."
++ * UILayout.scale_y -> scale_y:   float  "Scale factor along the Y for items in this (sub)layout."
 + * UILayout.active -> show_active:   boolean  "NO DESCRIPTION"
-+ * UILayout.enabled -> show_enabled:   boolean  "NO DESCRIPTION"
++ * UILayout.enabled -> show_enabled:   boolean  "When false, this (sub)layout is greyed out."
 + * UVProjector.object -> object:   pointer  "Object to use as projector transform"
 + * UnitSettings.rotation_units -> rotation_units:   enum  "Unit to use for displaying/editing rotation values"
 + * UnitSettings.scale_length -> scale_length:   float  "Scale to use when converting between blender units and dimensions"
@@ -4420,7 +4420,7 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * UserPreferencesEdit.keyframe_new_interpolation_type -> keyframe_new_interpolation_type:   enum  "NO DESCRIPTION"
 + * UserPreferencesEdit.material_link -> material_link:   enum  "Toggle whether the material is linked to object data or the object block"
 + * UserPreferencesEdit.object_align -> object_align:   enum  "When adding objects from a 3D View menu, either align them to that views direction or the world coordinates"
-+ * UserPreferencesEdit.sculpt_paint_overlay_col -> sculpt_paint_overlay_color:   float  "Color of texture overlay"
++ * UserPreferencesEdit.sculpt_paint_overlay_col -> sculpt_paint_overlay_color:   float[3]  "Color of texture overlay"
 + * UserPreferencesEdit.undo_memory_limit -> undo_memory_limit:   int  "Maximum memory usage in megabytes (0 means unlimited)"
 + * UserPreferencesEdit.undo_steps -> undo_steps:   int  "Number of undo steps available (smaller values conserve memory)"
 + * UserPreferencesEdit.use_auto_keying -> use_auto_keying:   boolean  "Automatic keyframe insertion for Objects and Bones"
@@ -4547,13 +4547,13 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * UserPreferencesView.rotate_around_selection -> use_rotate_around_active:   boolean  "Use selection as the pivot point"
 + * UserPreferencesView.zoom_to_mouse -> use_zoom_to_mouse:   boolean  "Zoom in towards the mouse pointers position in the 3D view, rather than the 2D window center"
 + * UserPreferencesView.view2d_grid_minimum_spacing -> view2d_grid_spacing_min:   int  "Minimum number of pixels between each gridline in 2D Viewports"
-+ * UserSolidLight.diffuse_color -> diffuse_color:   float  "The diffuse color of the OpenGL light"
-+ * UserSolidLight.direction -> direction:   float  "The direction that the OpenGL light is shining"
-+ * UserSolidLight.specular_color -> specular_color:   float  "The color of the lights specular highlight"
++ * UserSolidLight.diffuse_color -> diffuse_color:   float[3]  "The diffuse color of the OpenGL light"
++ * UserSolidLight.direction -> direction:   float[3]  "The direction that the OpenGL light is shining"
++ * UserSolidLight.specular_color -> specular_color:   float[3]  "The color of the lights specular highlight"
 + * UserSolidLight.enabled -> use:   boolean  "Enable this OpenGL light in solid draw mode"
-+ * ValueNodeSocket.default_value -> default_value:   float  "Default value of the socket when no link is attached"
++ * ValueNodeSocket.default_value -> default_value:   float[1]  "Default value of the socket when no link is attached"
 + * ValueNodeSocket.name -> name:   string,  "(read-only)    Socket name"
-+ * VectorNodeSocket.default_value -> default_value:   float  "Default value of the socket when no link is attached"
++ * VectorNodeSocket.default_value -> default_value:   float[3]  "Default value of the socket when no link is attached"
 + * VectorNodeSocket.name -> name:   string,  "(read-only)    Socket name"
 + * VertexGroup.index -> index:   int,  "(read-only)    Index number of the vertex group"
 + * VertexGroup.name -> name:   string  "Vertex group name"
@@ -4565,7 +4565,7 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * VoxelData.source_path -> filepath:   string  "The external source data file to use"
 + * VoxelData.intensity -> intensity:   float  "Multiplier for intensity values"
 + * VoxelData.interpolation -> interpolation:   enum  "Method to interpolate/smooth values between voxel cells"
-+ * VoxelData.resolution -> resolution:   int  "Resolution of the voxel grid"
++ * VoxelData.resolution -> resolution:   int[3]  "Resolution of the voxel grid"
 + * VoxelData.smoke_data_type -> smoke_data_type:   enum  "Simulation value to be used as a texture"
 + * VoxelData.still_frame_number -> still_frame:   int  "The frame number to always use"
 + * VoxelData.still -> use_still_frame:   boolean  "Always render a still frame from the voxel data sequence"
@@ -4602,4 +4602,4 @@ Space|SpaceTextEditor.show_line_highlight -> show_line_highlight:   boolean  "Hi
 + * WorldStarsSettings.color_randomization -> color_random:   float  "Randomize star colors"
 + * WorldStarsSettings.min_distance -> distance_min:   float  "Minimum distance to the camera for stars"
 + * WorldStarsSettings.size -> size:   float  "Average screen dimension of stars"
-+ * WorldStarsSettings.use_stars -> use_stars:   boolean  "Enable starfield generation"
++ * WorldStarsSettings.use_stars -> use_stars:   boolean  "Enable starfield generation[650925 refs]"