{
  "full": {
    "package": "izom_propui",
    "entry_fields": {
      "uid": {
        "default": "",
        "type": "string",
        "label": "UID",
        "description": "Internal stable identifier used for tree parenting",
        "rna_type": "STRING",
        "generated": true
      },
      "parent_uid": {
        "default": "",
        "type": "string",
        "label": "Parent UID",
        "description": "Internal parent link for Entry List hierarchy",
        "rna_type": "STRING"
      },
      "prop_id": {
        "default": "prop_1",
        "type": "string",
        "label": "Property ID",
        "description": "Custom-property key stored on the resolved target owner. Property IDs must be unique per target; duplicate names are auto-suffixed",
        "rna_type": "STRING"
      },
      "label": {
        "default": "Property 1",
        "type": "string",
        "label": "Label",
        "description": "User-facing label shown in the generated UI. You can also edit it directly in the Entry List",
        "rna_type": "STRING"
      },
      "editor_label": {
        "default": "",
        "type": "string",
        "label": "Editor Label",
        "description": "Optional editor-only name used in izom PropUI lists without changing generated labels or custom properties",
        "rna_type": "STRING"
      },
      "description": {
        "default": "",
        "type": "string",
        "label": "Tooltip",
        "description": "Static tooltip shown for this property in the generated UI",
        "rna_type": "STRING"
      },
      "prop_type": {
        "default": "FLOAT",
        "type": "string",
        "label": "Type",
        "description": "Entry type used by the generated UI and property builder",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FLOAT",
            "label": "Float",
            "description": "Floating-point custom property"
          },
          {
            "id": "INT",
            "label": "Integer",
            "description": "Integer custom property"
          },
          {
            "id": "BOOL",
            "label": "Boolean",
            "description": "Boolean custom property"
          },
          {
            "id": "STRING",
            "label": "String",
            "description": "Text custom property"
          },
          {
            "id": "DATA_BLOCK",
            "label": "Data-Block",
            "description": "Data-block custom property with selectable ID type"
          },
          {
            "id": "PYTHON",
            "label": "Python",
            "description": "Python-value custom property for unsupported nested IDProperty data"
          },
          {
            "id": "ARRAY",
            "label": "Array",
            "description": "Typed float, integer, or boolean array custom property with selectable subtype and size"
          },
          {
            "id": "DISPLAY_LINK",
            "label": "Display Link",
            "description": "Draw an existing managed PropUI property again with separate display, label, dynamic label, and condition settings"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Reference an existing Blender RNA property or internal generated UI control"
          },
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Text-only entry shown in the generated UI without an interactable property"
          },
          {
            "id": "OPERATOR",
            "label": "Operator Button",
            "description": "Button that runs a Blender or add-on operator by operator ID"
          },
          {
            "id": "ENUM",
            "label": "Dropdown",
            "description": "Native custom property with stable named choices"
          }
        ]
      },
      "linked_entry_uid": {
        "default": "",
        "type": "string",
        "label": "Linked Entry",
        "description": "Entry List item whose property this Display Link should draw",
        "rna_type": "STRING"
      },
      "display_link_label_mode": {
        "default": "SOURCE",
        "type": "string",
        "label": "Label Source",
        "description": "Choose whether this Display Link uses the source entry label or its own custom label. Custom can be left blank to draw no label",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "SOURCE",
            "label": "Source Entry",
            "description": "Use the linked source entry label"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Use this Display Link label exactly. Leave it blank to draw no label"
          }
        ]
      },
      "display_link_tooltip_mode": {
        "default": "SOURCE",
        "type": "string",
        "label": "Tooltip Source",
        "description": "Choose whether this Display Link uses the source entry tooltip or its own custom tooltip. Custom can be left blank to draw no tooltip",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "SOURCE",
            "label": "Source Entry",
            "description": "Use the linked source entry tooltip"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Use this Display Link tooltip exactly. Leave it blank to draw no tooltip"
          }
        ]
      },
      "display_link_use_component_subset": {
        "default": false,
        "type": "boolean",
        "label": "Component Subset",
        "description": "Draw only selected source components through this Display Link",
        "rna_type": "BOOLEAN"
      },
      "display_link_component_subset_json": {
        "default": "[]",
        "type": "string",
        "label": "Component Subset Data",
        "description": "Internal serialized Display Link component subset",
        "rna_type": "STRING"
      },
      "display_link_component_subset": {
        "default": [],
        "type": "array",
        "label": "display_link_component_subset",
        "description": "",
        "rna_type": "COLLECTION"
      },
      "text_alignment": {
        "default": "LEFT",
        "type": "string",
        "label": "Alignment",
        "description": "How this text block is aligned in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LEFT",
            "label": "Left",
            "description": "Align the text to the left side of the row"
          },
          {
            "id": "CENTER",
            "label": "Center",
            "description": "Align the text to the center of the row"
          },
          {
            "id": "RIGHT",
            "label": "Right",
            "description": "Align the text to the right side of the row"
          }
        ]
      },
      "text_role": {
        "default": "TEXT",
        "type": "string",
        "label": "Role",
        "description": "Choose whether this text entry draws text, a divider, or generated-row space",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Draw a text label row"
          },
          {
            "id": "DIVIDER",
            "label": "Divider",
            "description": "Draw a single generated-row divider line"
          },
          {
            "id": "SPACER",
            "label": "Spacer",
            "description": "Draw empty generated-row space"
          }
        ]
      },
      "text_alert": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this text block with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "text_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Icon",
        "description": "Optional Blender icon drawn before this text block",
        "rna_type": "STRING"
      },
      "text_icon_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the before icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "text_icon_after": {
        "default": "NONE",
        "type": "string",
        "label": "After Icon",
        "description": "Optional Blender icon drawn after this text block",
        "rna_type": "STRING"
      },
      "text_icon_after_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the after icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "operator_id": {
        "default": "",
        "type": "string",
        "label": "Operator ID / Call",
        "description": "Paste an operator ID like object.delete or a full bpy.ops call; keyword arguments are moved to Operator Properties JSON",
        "rna_type": "STRING"
      },
      "operator_icon": {
        "default": "PLAY",
        "type": "string",
        "label": "Icon",
        "description": "Optional Blender icon drawn on this operator button",
        "rna_type": "STRING"
      },
      "operator_icon_value": {
        "default": 0,
        "type": "integer",
        "label": "Custom Icon Value",
        "description": "Advanced Blender icon_value override. Leave at 0 to use the selected icon",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 2147483647
      },
      "operator_emboss": {
        "default": true,
        "type": "boolean",
        "label": "Emboss",
        "description": "Draw the standard Blender button body",
        "rna_type": "BOOLEAN"
      },
      "operator_depress": {
        "default": false,
        "type": "boolean",
        "label": "Pressed Visual",
        "description": "Draw the button as pressed without storing a toggle state",
        "rna_type": "BOOLEAN"
      },
      "operator_enabled": {
        "default": true,
        "type": "boolean",
        "label": "Enabled",
        "description": "Allow this generated operator button to be clickable",
        "rna_type": "BOOLEAN"
      },
      "operator_active": {
        "default": true,
        "type": "boolean",
        "label": "Active",
        "description": "Draw this generated operator button as active",
        "rna_type": "BOOLEAN"
      },
      "operator_context": {
        "default": "INVOKE_DEFAULT",
        "type": "string",
        "label": "Run As",
        "description": "Blender operator context used when this generated button runs",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INVOKE_DEFAULT",
            "label": "Invoke Default",
            "description": "Run the operator through Blender invoke behavior"
          },
          {
            "id": "EXEC_DEFAULT",
            "label": "Execute Default",
            "description": "Run the operator directly through Blender execute behavior"
          },
          {
            "id": "INVOKE_REGION_WIN",
            "label": "Invoke Region Window",
            "description": "Invoke using the current region window context"
          },
          {
            "id": "EXEC_REGION_WIN",
            "label": "Execute Region Window",
            "description": "Execute using the current region window context"
          },
          {
            "id": "INVOKE_REGION_CHANNELS",
            "label": "Invoke Region Channels",
            "description": "Invoke using the current region channels context"
          },
          {
            "id": "EXEC_REGION_CHANNELS",
            "label": "Execute Region Channels",
            "description": "Execute using the current region channels context"
          },
          {
            "id": "INVOKE_REGION_PREVIEW",
            "label": "Invoke Region Preview",
            "description": "Invoke using the current region preview context"
          },
          {
            "id": "EXEC_REGION_PREVIEW",
            "label": "Execute Region Preview",
            "description": "Execute using the current region preview context"
          },
          {
            "id": "INVOKE_AREA",
            "label": "Invoke Area",
            "description": "Invoke using the current area context"
          },
          {
            "id": "EXEC_AREA",
            "label": "Execute Area",
            "description": "Execute using the current area context"
          },
          {
            "id": "INVOKE_SCREEN",
            "label": "Invoke Screen",
            "description": "Invoke using the current screen context"
          },
          {
            "id": "EXEC_SCREEN",
            "label": "Execute Screen",
            "description": "Execute using the current screen context"
          }
        ]
      },
      "operator_translate": {
        "default": true,
        "type": "boolean",
        "label": "Translate Text",
        "description": "Allow Blender UI translation for this button text",
        "rna_type": "BOOLEAN"
      },
      "operator_text_context": {
        "default": "",
        "type": "string",
        "label": "Text Context",
        "description": "Optional Blender translation context for this button text",
        "rna_type": "STRING"
      },
      "operator_search_weight": {
        "default": 0.0,
        "type": "number",
        "label": "Search Weight",
        "description": "Advanced Blender menu search weighting for this operator button",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "operator_props_json": {
        "default": "{}",
        "type": "string",
        "label": "Operator Properties JSON",
        "description": "Optional JSON object of operator property values assigned when drawing the button",
        "rna_type": "STRING"
      },
      "operator_report_timing": {
        "default": "OFF",
        "type": "string",
        "label": "Notification",
        "description": "Optional Blender report shown after this operator button is clicked",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "OFF",
            "label": "No Notification",
            "description": "Do not show a Blender report when this operator button is clicked"
          },
          {
            "id": "ALWAYS",
            "label": "Always After Click",
            "description": "Show a Blender report after the operator finishes or fails"
          },
          {
            "id": "SUCCESS",
            "label": "On Success Only",
            "description": "Show a Blender report only when the operator finishes successfully"
          },
          {
            "id": "FAILURE",
            "label": "On Failure Only",
            "description": "Show a Blender report only when the operator fails or is cancelled"
          }
        ]
      },
      "operator_report_type": {
        "default": "INFO",
        "type": "string",
        "label": "Report Type",
        "description": "Native Blender report type used for this operator button notification",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INFO",
            "label": "Info",
            "description": "Show the notification as an info report"
          },
          {
            "id": "WARNING",
            "label": "Warning",
            "description": "Show the notification as a warning report"
          },
          {
            "id": "ERROR",
            "label": "Error",
            "description": "Show the notification as an error report"
          }
        ]
      },
      "operator_report_message": {
        "default": "",
        "type": "string",
        "label": "Message",
        "description": "Notification message shown after this operator button is clicked",
        "rna_type": "STRING"
      },
      "default_float": {
        "default": 0.0,
        "type": "number",
        "label": "Default",
        "description": "Default float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "enum_items_json": {
        "default": "[{\"id\":\"FIRST\",\"label\":\"First\",\"value\":0},{\"id\":\"SECOND\",\"label\":\"Second\",\"value\":1}]",
        "type": "string",
        "label": "Dropdown Choices",
        "description": "",
        "rna_type": "STRING"
      },
      "default_enum": {
        "default": 0,
        "type": "integer",
        "label": "Default Choice Value",
        "description": "",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "enum_expanded": {
        "default": false,
        "type": "boolean",
        "label": "Expanded Choices",
        "description": "Use native enum buttons instead of a dropdown",
        "rna_type": "BOOLEAN"
      },
      "native_widget": {
        "default": "AUTO",
        "type": "string",
        "label": "Detected Native Widget",
        "description": "",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "AUTO",
            "label": "Automatic",
            "description": ""
          },
          {
            "id": "COLOR_RAMP",
            "label": "Color Ramp",
            "description": ""
          },
          {
            "id": "CURVE_MAPPING",
            "label": "Curve Mapping",
            "description": ""
          }
        ]
      },
      "control_group": {
        "default": "",
        "type": "string",
        "label": "Control Group",
        "description": "Entries with the same name share Reset, Key/Unkey and Save/Apply Values actions. Add buttons through Entry Tools > Add Control Group Actions; naming a group does not change the layout",
        "rna_type": "STRING"
      },
      "native_action": {
        "default": "NONE",
        "type": "string",
        "label": "Action",
        "description": "",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NONE",
            "label": "None",
            "description": ""
          },
          {
            "id": "RESET_GROUP",
            "label": "Reset Group",
            "description": ""
          },
          {
            "id": "KEY_GROUP",
            "label": "Key Group",
            "description": ""
          },
          {
            "id": "UNKEY_GROUP",
            "label": "Unkey Group",
            "description": ""
          },
          {
            "id": "SAVE_VALUES",
            "label": "Save Values",
            "description": ""
          },
          {
            "id": "APPLY_VALUES",
            "label": "Apply Values",
            "description": ""
          },
          {
            "id": "SELECT_COLLECTION",
            "label": "Select Collection",
            "description": ""
          },
          {
            "id": "DESELECT_COLLECTION",
            "label": "Deselect Collection",
            "description": ""
          }
        ]
      },
      "value_preset_name": {
        "default": "Preset",
        "type": "string",
        "label": "Value Preset",
        "description": "",
        "rna_type": "STRING"
      },
      "bone_collection_path": {
        "default": "",
        "type": "string",
        "label": "Bone Collection Path",
        "description": "Validated full RNA path to a Bone Collection",
        "rna_type": "STRING"
      },
      "bone_collection_object_path": {
        "default": "",
        "type": "string",
        "label": "Collection Armature Path",
        "description": "",
        "rna_type": "STRING"
      },
      "native_foldout": {
        "default": false,
        "type": "boolean",
        "label": "Native Foldout",
        "description": "Collapse this one control inside a native full-width foldout. Use Containers for sections of controls. Requires a single top-level row outside Row Boxes",
        "rna_type": "BOOLEAN"
      },
      "native_popover": {
        "default": false,
        "type": "boolean",
        "label": "Native Popover",
        "description": "Offer this control in a native popover",
        "rna_type": "BOOLEAN"
      },
      "native_popover_compact": {
        "default": false,
        "type": "boolean",
        "label": "Compact Popup",
        "description": "Use a smaller popup. Dropdown also requires Compact Button: Blender keeps attached popovers at least as wide as their trigger. Button style allows independent popup width",
        "rna_type": "BOOLEAN"
      },
      "compact_control": {
        "default": false,
        "type": "boolean",
        "label": "Compact Layout",
        "description": "Use the control's natural width inside its layout cell instead of stretching it",
        "rna_type": "BOOLEAN"
      },
      "native_popover_style": {
        "default": "DROPDOWN",
        "type": "string",
        "label": "Popover Button Style",
        "description": "",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "DROPDOWN",
            "label": "Dropdown",
            "description": "Use Blender's native attached popover dropdown"
          },
          {
            "id": "BUTTON",
            "label": "Button",
            "description": "Show a normal Blender button with independent popup sizing"
          }
        ]
      },
      "native_popover_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Popover Icon",
        "description": "",
        "rna_type": "STRING"
      },
      "native_popover_show_label": {
        "default": true,
        "type": "boolean",
        "label": "Show Label in Popup",
        "description": "Use the configured label layout inside the popup; disable to show only the control",
        "rna_type": "BOOLEAN"
      },
      "native_popover_show_keyframes": {
        "default": false,
        "type": "boolean",
        "label": "Keyframe Buttons",
        "description": "Show Blender animation diamonds next to animatable values inside this popover",
        "rna_type": "BOOLEAN"
      },
      "default_int": {
        "default": 0,
        "type": "integer",
        "label": "Default",
        "description": "Default integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "default_bool": {
        "default": false,
        "type": "boolean",
        "label": "Default",
        "description": "Default boolean value for this generated custom property",
        "rna_type": "BOOLEAN"
      },
      "default_string": {
        "default": "",
        "type": "string",
        "label": "Default",
        "description": "Default string value for this generated custom property",
        "rna_type": "STRING"
      },
      "string_multiline": {
        "default": false,
        "type": "boolean",
        "label": "Multiline",
        "description": "Use a multiline text editor when available; use a regular string field on older Blender versions",
        "rna_type": "BOOLEAN"
      },
      "string_visible_lines": {
        "default": 4,
        "type": "integer",
        "label": "Visible Lines",
        "description": "Initial height of the multiline text editor",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 20
      },
      "string_placeholder": {
        "default": "",
        "type": "string",
        "label": "Placeholder",
        "description": "Hint shown when the multiline string is empty",
        "rna_type": "STRING"
      },
      "text_link_url": {
        "default": "",
        "type": "string",
        "label": "Link URL",
        "description": "Optional HTTP or HTTPS link for this Text entry; leave empty for ordinary text",
        "rna_type": "STRING"
      },
      "datablock_id_type": {
        "default": "OBJECT",
        "type": "string",
        "label": "ID Type",
        "description": "Data-block type accepted by this generated custom property",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ACTION",
            "label": "Action",
            "description": "Action data-block"
          },
          {
            "id": "ARMATURE",
            "label": "Armature",
            "description": "Armature data-block"
          },
          {
            "id": "BRUSH",
            "label": "Brush",
            "description": "Brush data-block"
          },
          {
            "id": "CACHEFILE",
            "label": "Cache File",
            "description": "Cache file data-block"
          },
          {
            "id": "CAMERA",
            "label": "Camera",
            "description": "Camera data-block"
          },
          {
            "id": "COLLECTION",
            "label": "Collection",
            "description": "Collection data-block"
          },
          {
            "id": "CURVE",
            "label": "Curve",
            "description": "Curve data-block"
          },
          {
            "id": "CURVES",
            "label": "Curves",
            "description": "Curves data-block"
          },
          {
            "id": "FONT",
            "label": "Font",
            "description": "Font curve data-block"
          },
          {
            "id": "GREASEPENCIL",
            "label": "Grease Pencil (Legacy Alias)",
            "description": "Grease pencil data-block"
          },
          {
            "id": "GREASEPENCIL_V3",
            "label": "Grease Pencil (Current)",
            "description": "Grease pencil v3 data-block"
          },
          {
            "id": "IMAGE",
            "label": "Image",
            "description": "Image data-block"
          },
          {
            "id": "KEY",
            "label": "Key",
            "description": "Shape key data-block"
          },
          {
            "id": "LATTICE",
            "label": "Lattice",
            "description": "Lattice data-block"
          },
          {
            "id": "LIBRARY",
            "label": "Library",
            "description": "Library data-block"
          },
          {
            "id": "LIGHT",
            "label": "Light",
            "description": "Light data-block"
          },
          {
            "id": "LIGHT_PROBE",
            "label": "Light Probe",
            "description": "Light probe data-block"
          },
          {
            "id": "LINESTYLE",
            "label": "Line Style",
            "description": "Freestyle line style data-block"
          },
          {
            "id": "MASK",
            "label": "Mask",
            "description": "Mask data-block"
          },
          {
            "id": "MATERIAL",
            "label": "Material",
            "description": "Material data-block"
          },
          {
            "id": "MESH",
            "label": "Mesh",
            "description": "Mesh data-block"
          },
          {
            "id": "META",
            "label": "Metaball",
            "description": "Metaball data-block"
          },
          {
            "id": "MOVIECLIP",
            "label": "Movie Clip",
            "description": "Movie clip data-block"
          },
          {
            "id": "NODETREE",
            "label": "Node Tree",
            "description": "Node tree data-block"
          },
          {
            "id": "OBJECT",
            "label": "Object",
            "description": "Object data-block"
          },
          {
            "id": "PAINTCURVE",
            "label": "Paint Curve",
            "description": "Paint curve data-block"
          },
          {
            "id": "PALETTE",
            "label": "Palette",
            "description": "Palette data-block"
          },
          {
            "id": "PARTICLE",
            "label": "Particle",
            "description": "Particle settings data-block"
          },
          {
            "id": "POINTCLOUD",
            "label": "Point Cloud",
            "description": "Point cloud data-block"
          },
          {
            "id": "SCENE",
            "label": "Scene",
            "description": "Scene data-block"
          },
          {
            "id": "SCREEN",
            "label": "Screen",
            "description": "Screen data-block"
          },
          {
            "id": "SOUND",
            "label": "Sound",
            "description": "Sound data-block"
          },
          {
            "id": "SPEAKER",
            "label": "Speaker",
            "description": "Speaker data-block"
          },
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Text data-block"
          },
          {
            "id": "TEXTURE",
            "label": "Texture",
            "description": "Texture data-block"
          },
          {
            "id": "VOLUME",
            "label": "Volume",
            "description": "Volume data-block"
          },
          {
            "id": "WINDOWMANAGER",
            "label": "Window Manager",
            "description": "Window manager data-block"
          },
          {
            "id": "WORKSPACE",
            "label": "Workspace",
            "description": "Workspace data-block"
          },
          {
            "id": "WORLD",
            "label": "World",
            "description": "World data-block"
          }
        ]
      },
      "default_datablock_name": {
        "default": "",
        "type": "string",
        "label": "Default",
        "description": "Optional default data-block name for this generated custom property",
        "rna_type": "STRING"
      },
      "default_datablock_path": {
        "default": "",
        "type": "string",
        "label": "Default Data-Block Path",
        "description": "Internal resolved data-block path for this entry's default value",
        "rna_type": "STRING"
      },
      "python_default_expression": {
        "default": "{}",
        "type": "string",
        "label": "Value",
        "description": "Python literal expression assigned as this generated custom property's default value",
        "rna_type": "STRING"
      },
      "default_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Default",
        "description": "Default float values for this generated array custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "default_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Default",
        "description": "Default integer values for this generated array custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "default_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Default",
        "description": "Default boolean values for this generated array custom property",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "min_float": {
        "default": 0.0,
        "type": "number",
        "label": "Min",
        "description": "Minimum float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Max",
        "description": "Maximum float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "min_int": {
        "default": 0,
        "type": "integer",
        "label": "Min",
        "description": "Minimum integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "max_int": {
        "default": 5,
        "type": "integer",
        "label": "Max",
        "description": "Maximum integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "ui_order": {
        "default": 1,
        "type": "integer",
        "label": "UI Order",
        "description": "Internal stored order used by the izom PropUI editor",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "display_order": {
        "default": 1,
        "type": "integer",
        "label": "Display Order",
        "description": "Internal generated row order used by the generated UI",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 2147483647
      },
      "row_slot": {
        "default": 1,
        "type": "integer",
        "label": "Column",
        "description": "1-based left-to-right column inside a shared generated row",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 2147483647
      },
      "slider": {
        "default": true,
        "type": "boolean",
        "label": "Use Slider",
        "description": "Show numeric generated properties and custom IDProperty paths as sliders. Enabling this turns off Soft Limits. Hidden for native RNA paths whose widget style Blender controls internally",
        "rna_type": "BOOLEAN"
      },
      "alert_style": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this generated property control with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "bool_ui_style": {
        "default": "CHECKBOX",
        "type": "string",
        "label": "Style",
        "description": "How this boolean should look in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "CHECKBOX",
            "label": "Checkbox",
            "description": "Show this boolean as a standard checkbox"
          },
          {
            "id": "TOGGLE_BUTTON",
            "label": "Toggle Button",
            "description": "Show this boolean as a button-style toggle"
          }
        ]
      },
      "bool_icon_true": {
        "default": "NONE",
        "type": "string",
        "label": "On Icon",
        "description": "Optional Blender icon to draw while this toggle-style boolean is enabled",
        "rna_type": "STRING"
      },
      "bool_icon_false": {
        "default": "NONE",
        "type": "string",
        "label": "Off Icon",
        "description": "Optional Blender icon to draw while this toggle-style boolean is disabled",
        "rna_type": "STRING"
      },
      "value_label_layout": {
        "default": "INLINE",
        "type": "string",
        "label": "Label Layout",
        "description": "How scalar labels should be placed in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INLINE",
            "label": "One Row",
            "description": "Draw the label and value in one generated UI row"
          },
          {
            "id": "SPLIT_LABEL",
            "label": "One Row, Split Label",
            "description": "Use Blender's property-split row so the label sits to the left of the value field or checkbox"
          },
          {
            "id": "LABEL_ABOVE",
            "label": "Label Above",
            "description": "Draw the label above the value field in the generated UI"
          }
        ]
      },
      "multi_component_layout": {
        "default": "INLINE",
        "type": "string",
        "label": "Multi-Component Layout",
        "description": "How vector-like values should be drawn: inline, with split labels, with label above, or on separate lines inside the same cell",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INLINE",
            "label": "One Row",
            "description": "Draw all array/vector components inline in one generated UI row"
          },
          {
            "id": "SPLIT_LABEL",
            "label": "One Row, Split Label",
            "description": "Use Blender's split-label style for the main label while keeping the value in the same generated UI row"
          },
          {
            "id": "INLINE_LABEL",
            "label": "One Row, Label Above",
            "description": "Draw the label above one inline component row inside the same generated UI cell"
          },
          {
            "id": "STACKED",
            "label": "Separate Rows",
            "description": "Draw array/vector components on separate lines inside the same generated UI cell"
          },
          {
            "id": "STACKED_SPLIT_LABEL",
            "label": "Separate Rows, Split Main Label",
            "description": "Use Blender's split-label style for the main label while keeping component labels with the value controls"
          },
          {
            "id": "STACKED_COMPONENT_SPLIT_LABEL",
            "label": "Separate Rows, Split Component Labels",
            "description": "Draw the main label above, then use Blender's split-label style on each component row"
          }
        ]
      },
      "multi_component_draw_mode": {
        "default": "WIDGET",
        "type": "string",
        "label": "Draw Mode",
        "description": "For color and direction subtypes, choose Blender's native whole-value control or individual component fields",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "WIDGET",
            "label": "Native Control",
            "description": "Use Blender native whole-value controls for color and direction subtypes"
          },
          {
            "id": "COMPONENTS",
            "label": "Component Fields",
            "description": "Draw individual component fields so PropUI component labels and slider settings apply"
          }
        ]
      },
      "stacked_label_use_text_style": {
        "default": false,
        "type": "boolean",
        "label": "Styled Label Above",
        "description": "Render the label above the control as a text block so role, alignment, icons, and alert styling can be edited",
        "rna_type": "BOOLEAN"
      },
      "array_component_label_style": {
        "default": "AUTO",
        "type": "string",
        "label": "Component Labels",
        "description": "Label style used for array, vector, and color components in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "AUTO",
            "label": "Auto",
            "description": "Use labels from the array subtype, such as X/Y/Z, R/G/B/A, or numbered labels"
          },
          {
            "id": "NONE",
            "label": "No Labels",
            "description": "Draw array components with empty labels"
          },
          {
            "id": "NUMBERED",
            "label": "Numbered",
            "description": "Label array components 1, 2, 3, and so on"
          },
          {
            "id": "XYZ",
            "label": "XYZ",
            "description": "Label array components X, Y, Z, W, then numbered fallbacks"
          },
          {
            "id": "ABC",
            "label": "ABC",
            "description": "Label array components A, B, C, and so on"
          },
          {
            "id": "GREEK",
            "label": "Greek",
            "description": "Label array components with Greek symbols"
          },
          {
            "id": "DEGREES",
            "label": "Degrees",
            "description": "Label array components with degree marks"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Start from a base style and override individual component labels"
          }
        ]
      },
      "array_component_label_custom_base": {
        "default": "AUTO",
        "type": "string",
        "label": "Custom Label Base",
        "description": "Base component-label style used before applying custom component label overrides",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "AUTO",
            "label": "Auto",
            "description": "Use labels from the array subtype, such as X/Y/Z, R/G/B/A, or numbered labels"
          },
          {
            "id": "NONE",
            "label": "No Labels",
            "description": "Draw array components with empty labels"
          },
          {
            "id": "NUMBERED",
            "label": "Numbered",
            "description": "Label array components 1, 2, 3, and so on"
          },
          {
            "id": "XYZ",
            "label": "XYZ",
            "description": "Label array components X, Y, Z, W, then numbered fallbacks"
          },
          {
            "id": "ABC",
            "label": "ABC",
            "description": "Label array components A, B, C, and so on"
          },
          {
            "id": "GREEK",
            "label": "Greek",
            "description": "Label array components with Greek symbols"
          },
          {
            "id": "DEGREES",
            "label": "Degrees",
            "description": "Label array components with degree marks"
          }
        ]
      },
      "array_component_label_01": {
        "default": "",
        "type": "string",
        "label": "Component 1",
        "description": "Custom generated UI label for array component 1. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_02": {
        "default": "",
        "type": "string",
        "label": "Component 2",
        "description": "Custom generated UI label for array component 2. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_03": {
        "default": "",
        "type": "string",
        "label": "Component 3",
        "description": "Custom generated UI label for array component 3. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_04": {
        "default": "",
        "type": "string",
        "label": "Component 4",
        "description": "Custom generated UI label for array component 4. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_05": {
        "default": "",
        "type": "string",
        "label": "Component 5",
        "description": "Custom generated UI label for array component 5. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_06": {
        "default": "",
        "type": "string",
        "label": "Component 6",
        "description": "Custom generated UI label for array component 6. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_07": {
        "default": "",
        "type": "string",
        "label": "Component 7",
        "description": "Custom generated UI label for array component 7. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_08": {
        "default": "",
        "type": "string",
        "label": "Component 8",
        "description": "Custom generated UI label for array component 8. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_09": {
        "default": "",
        "type": "string",
        "label": "Component 9",
        "description": "Custom generated UI label for array component 9. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_10": {
        "default": "",
        "type": "string",
        "label": "Component 10",
        "description": "Custom generated UI label for array component 10. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_11": {
        "default": "",
        "type": "string",
        "label": "Component 11",
        "description": "Custom generated UI label for array component 11. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_12": {
        "default": "",
        "type": "string",
        "label": "Component 12",
        "description": "Custom generated UI label for array component 12. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_13": {
        "default": "",
        "type": "string",
        "label": "Component 13",
        "description": "Custom generated UI label for array component 13. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_14": {
        "default": "",
        "type": "string",
        "label": "Component 14",
        "description": "Custom generated UI label for array component 14. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_15": {
        "default": "",
        "type": "string",
        "label": "Component 15",
        "description": "Custom generated UI label for array component 15. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_16": {
        "default": "",
        "type": "string",
        "label": "Component 16",
        "description": "Custom generated UI label for array component 16. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_17": {
        "default": "",
        "type": "string",
        "label": "Component 17",
        "description": "Custom generated UI label for array component 17. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_18": {
        "default": "",
        "type": "string",
        "label": "Component 18",
        "description": "Custom generated UI label for array component 18. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_19": {
        "default": "",
        "type": "string",
        "label": "Component 19",
        "description": "Custom generated UI label for array component 19. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_20": {
        "default": "",
        "type": "string",
        "label": "Component 20",
        "description": "Custom generated UI label for array component 20. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_21": {
        "default": "",
        "type": "string",
        "label": "Component 21",
        "description": "Custom generated UI label for array component 21. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_22": {
        "default": "",
        "type": "string",
        "label": "Component 22",
        "description": "Custom generated UI label for array component 22. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_23": {
        "default": "",
        "type": "string",
        "label": "Component 23",
        "description": "Custom generated UI label for array component 23. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_24": {
        "default": "",
        "type": "string",
        "label": "Component 24",
        "description": "Custom generated UI label for array component 24. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_25": {
        "default": "",
        "type": "string",
        "label": "Component 25",
        "description": "Custom generated UI label for array component 25. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_26": {
        "default": "",
        "type": "string",
        "label": "Component 26",
        "description": "Custom generated UI label for array component 26. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_27": {
        "default": "",
        "type": "string",
        "label": "Component 27",
        "description": "Custom generated UI label for array component 27. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_28": {
        "default": "",
        "type": "string",
        "label": "Component 28",
        "description": "Custom generated UI label for array component 28. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_29": {
        "default": "",
        "type": "string",
        "label": "Component 29",
        "description": "Custom generated UI label for array component 29. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_30": {
        "default": "",
        "type": "string",
        "label": "Component 30",
        "description": "Custom generated UI label for array component 30. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_31": {
        "default": "",
        "type": "string",
        "label": "Component 31",
        "description": "Custom generated UI label for array component 31. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_32": {
        "default": "",
        "type": "string",
        "label": "Component 32",
        "description": "Custom generated UI label for array component 32. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "hidden_in_editor": {
        "default": false,
        "type": "boolean",
        "label": "Hide In Editor",
        "description": "Hide this entry from the izom PropUI editor list until you unhide entries",
        "rna_type": "BOOLEAN"
      },
      "use_value_labels": {
        "default": false,
        "type": "boolean",
        "label": "Dynamic Labels",
        "description": "Change the visible label based on this entry's current value",
        "rna_type": "BOOLEAN"
      },
      "value_labels_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, integer-array, or boolean-array values, evaluate Dynamic Labels from one chosen component or channel instead of matching the whole value",
        "rna_type": "BOOLEAN"
      },
      "value_labels_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by this entry's Dynamic Labels while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "use_bool_state_labels": {
        "default": false,
        "type": "boolean",
        "label": "Per State Labels",
        "description": "Change the visible label based on whether this boolean is on or off",
        "rna_type": "BOOLEAN"
      },
      "bool_label_true": {
        "default": "",
        "type": "string",
        "label": "When On",
        "description": "Label to show when this boolean is on",
        "rna_type": "STRING"
      },
      "bool_label_false": {
        "default": "",
        "type": "string",
        "label": "When Off",
        "description": "Label to show when this boolean is off",
        "rna_type": "STRING"
      },
      "use_other_entry_labels": {
        "default": false,
        "type": "boolean",
        "label": "Dynamic Labels by Other Entry",
        "description": "Change this entry's visible label based on another entry's state or value",
        "rna_type": "BOOLEAN"
      },
      "text_use_other_entry_labels": {
        "default": false,
        "type": "boolean",
        "label": "Dynamic Text",
        "description": "Change this text entry based on another entry's state or value",
        "rna_type": "BOOLEAN"
      },
      "use_soft_limits": {
        "default": false,
        "type": "boolean",
        "label": "Soft Limits",
        "description": "Use separate soft min/max limits in the UI. Enabling this turns off Use Slider",
        "rna_type": "BOOLEAN"
      },
      "soft_min_float": {
        "default": 0.0,
        "type": "number",
        "label": "Soft Min",
        "description": "Soft minimum float value used by the generated custom-property UI",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "soft_max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Soft Max",
        "description": "Soft maximum float value used by the generated custom-property UI",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "soft_min_int": {
        "default": 0,
        "type": "integer",
        "label": "Soft Min",
        "description": "Soft minimum integer value used by the generated custom-property UI",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "soft_max_int": {
        "default": 5,
        "type": "integer",
        "label": "Soft Max",
        "description": "Soft maximum integer value used by the generated custom-property UI",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "step_float": {
        "default": 0.1,
        "type": "number",
        "label": "Step",
        "description": "Native Blender float custom-property step metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "FLOAT",
        "minimum": 0.009999999776482582,
        "maximum": 100.0
      },
      "step_int": {
        "default": 1,
        "type": "integer",
        "label": "Step",
        "description": "Native Blender integer custom-property step metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 100
      },
      "precision": {
        "default": 3,
        "type": "integer",
        "label": "Precision",
        "description": "Native Blender float custom-property precision metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 6
      },
      "array_element_type": {
        "default": "FLOAT",
        "type": "string",
        "label": "Element Type",
        "description": "Element type stored by this generated array property",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FLOAT",
            "label": "Float",
            "description": "Array of floating-point values"
          },
          {
            "id": "INT",
            "label": "Integer",
            "description": "Array of integer values"
          },
          {
            "id": "BOOL",
            "label": "Boolean",
            "description": "Array of boolean values"
          }
        ]
      },
      "array_size": {
        "default": 4,
        "type": "integer",
        "label": "Size",
        "description": "Number of visible elements in this array property",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "float_subtype": {
        "default": "NONE",
        "type": "string",
        "label": "Subtype",
        "description": "Native Blender float custom-property subtype",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NONE",
            "label": "None",
            "description": "No special float subtype"
          },
          {
            "id": "PIXEL",
            "label": "Pixel",
            "description": "Pixel value"
          },
          {
            "id": "UNSIGNED",
            "label": "Unsigned",
            "description": "Unsigned number"
          },
          {
            "id": "PERCENTAGE",
            "label": "Percentage",
            "description": "Percentage"
          },
          {
            "id": "FACTOR",
            "label": "Factor",
            "description": "Factor"
          },
          {
            "id": "ANGLE",
            "label": "Angle",
            "description": "Angle in radians"
          },
          {
            "id": "TIME",
            "label": "Time (Scene Relative)",
            "description": "Time in scene frames converted to seconds"
          },
          {
            "id": "TIME_ABSOLUTE",
            "label": "Time (Absolute)",
            "description": "Time in seconds"
          },
          {
            "id": "DISTANCE",
            "label": "Distance",
            "description": "Distance value"
          },
          {
            "id": "DISTANCE_CAMERA",
            "label": "Camera Distance",
            "description": "Camera distance value"
          },
          {
            "id": "POWER",
            "label": "Power",
            "description": "Power value"
          },
          {
            "id": "TEMPERATURE",
            "label": "Temperature",
            "description": "Temperature value"
          },
          {
            "id": "WAVELENGTH",
            "label": "Wavelength",
            "description": "Wavelength value"
          },
          {
            "id": "COLOR_TEMPERATURE",
            "label": "Color Temperature",
            "description": "Color temperature value"
          },
          {
            "id": "FREQUENCY",
            "label": "Frequency",
            "description": "Frequency value"
          }
        ]
      },
      "float_array_subtype": {
        "default": "NONE",
        "type": "string",
        "label": "Subtype",
        "description": "Native Blender float array subtype applied to the generated custom property",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NONE",
            "label": "None",
            "description": "No special array subtype behavior"
          },
          {
            "id": "COLOR",
            "label": "Linear Color",
            "description": "Color in the linear space"
          },
          {
            "id": "COLOR_GAMMA",
            "label": "Gamma-Corrected Color",
            "description": "Color in the gamma corrected space"
          },
          {
            "id": "TRANSLATION",
            "label": "Translation",
            "description": "Translation"
          },
          {
            "id": "DIRECTION",
            "label": "Direction",
            "description": "Direction"
          },
          {
            "id": "VELOCITY",
            "label": "Velocity",
            "description": "Velocity"
          },
          {
            "id": "ACCELERATION",
            "label": "Acceleration",
            "description": "Acceleration"
          },
          {
            "id": "EULER",
            "label": "Euler Angles",
            "description": "Euler rotation angles in radians"
          },
          {
            "id": "QUATERNION",
            "label": "Quaternion Rotation",
            "description": "Quaternion rotation (affects NLA blending)"
          },
          {
            "id": "AXISANGLE",
            "label": "Axis-Angle",
            "description": "Angle and axis to rotate around"
          },
          {
            "id": "XYZ",
            "label": "XYZ",
            "description": "XYZ"
          }
        ]
      },
      "library_overridable": {
        "default": true,
        "type": "boolean",
        "label": "Library Overridable",
        "description": "Mark this generated custom property as library-overridable",
        "rna_type": "BOOLEAN"
      },
      "entry_target_owner_path": {
        "default": "",
        "type": "string",
        "label": "Storage Override Path",
        "description": "Internal resolved storage owner path for this entry. Empty uses Output Setup Property Storage",
        "rna_type": "STRING"
      },
      "custom_source": {
        "default": "RNA_PATH",
        "type": "string",
        "label": "Source",
        "description": "Where this custom entry gets its generated UI value from",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "RNA_PATH",
            "label": "RNA Path",
            "description": "Draw an existing Blender RNA property by data path"
          },
          {
            "id": "INTERNAL",
            "label": "Internal Generated UI Control",
            "description": "Draw a built-in generated UI control without a data path"
          }
        ]
      },
      "custom_internal_control": {
        "default": "GENERATED_UI_ENABLED",
        "type": "string",
        "label": "Internal Control",
        "description": "Built-in generated UI control drawn by this custom entry",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "GENERATED_UI_ENABLED",
            "label": "Generated UI Enabled",
            "description": "Show or hide this generated UI"
          },
          {
            "id": "DISABLE_WHILE_TRANSFORMING",
            "label": "Disable While Transforming",
            "description": "Disable this generated UI while Blender is transforming"
          },
          {
            "id": "DISABLE_WHILE_PLAYBACK",
            "label": "Disable While Playback",
            "description": "Disable this generated UI during animation playback"
          }
        ]
      },
      "custom_owner_path": {
        "default": "",
        "type": "string",
        "label": "Custom Owner Path",
        "description": "Stored owner path used by the custom entry runtime",
        "rna_type": "STRING"
      },
      "custom_prop_name": {
        "default": "",
        "type": "string",
        "label": "Custom Property Name",
        "description": "Stored property name used by the custom entry runtime",
        "rna_type": "STRING"
      },
      "custom_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Custom Use Component",
        "description": "Editor-only stored component selection parsed from an indexed custom path",
        "rna_type": "BOOLEAN"
      },
      "custom_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Custom Component",
        "description": "Editor-only stored 1-based component selected by an indexed custom path",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "custom_detected_value_kind": {
        "default": "NONE",
        "type": "string",
        "label": "Custom Value Kind",
        "description": "Editor-only detected runtime value kind for the stored custom path",
        "rna_type": "STRING"
      },
      "custom_detected_component_count": {
        "default": 0,
        "type": "integer",
        "label": "Custom Component Count",
        "description": "Editor-only detected number of visible components for the stored custom path",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 32
      },
      "custom_detected_array_subtype": {
        "default": "NONE",
        "type": "string",
        "label": "Custom Array Subtype",
        "description": "Editor-only detected float-array subtype for the stored custom path",
        "rna_type": "STRING"
      },
      "custom_path_readonly": {
        "default": false,
        "type": "boolean",
        "label": "Custom Path Read Only",
        "description": "Editor-only cached read-only flag for the stored custom path",
        "rna_type": "BOOLEAN"
      },
      "custom_path_error": {
        "default": "",
        "type": "string",
        "label": "Custom Path Error",
        "description": "Editor-only validation error for the entered custom path",
        "rna_type": "STRING"
      },
      "bool_child_visibility": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Show Child",
        "description": "When this child entry should be shown, based on its parent boolean value",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always show this child property"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When Parent Is On",
            "description": "Show only when the parent boolean is enabled"
          },
          {
            "id": "WHEN_FALSE",
            "label": "When Parent Is Off",
            "description": "Show only when the parent boolean is disabled"
          }
        ]
      },
      "number_child_visibility": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Show Child",
        "description": "When this child entry should be shown, based on its parent numeric value",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always show this child property"
          },
          {
            "id": "EQUAL",
            "label": "When Parent Equals",
            "description": "Show only when the parent equals a specific value"
          },
          {
            "id": "GREATER",
            "label": "When Parent Is At Least",
            "description": "Show only when the parent is at or above a specific value"
          },
          {
            "id": "LESS",
            "label": "When Parent Is At Most",
            "description": "Show only when the parent is at or below a specific value"
          },
          {
            "id": "RANGE",
            "label": "When Parent In Range",
            "description": "Show only when the parent is within a specific range"
          }
        ]
      },
      "visibility_inheritance_depth": {
        "default": 1,
        "type": "integer",
        "label": "Chain",
        "description": "How many visibility rules this entry uses in the generated UI chain. 1 = parent only, 2 = parent + parent's rule, higher numbers add upstream rules. The editor shows the full parent chain; the generated UI can only use ancestors that are actually present there",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 12
      },
      "visibility_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, or integer-array parents, evaluate Child Visibility from one chosen component or channel instead of matching the whole parent value",
        "rna_type": "BOOLEAN"
      },
      "visibility_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by Child Visibility while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "shared_row_hidden_mode": {
        "default": "FILL_ROW",
        "type": "string",
        "label": "When Hidden In Shared Row",
        "description": "Choose whether this entry collapses out or keeps an empty slot when child visibility hides it in a shared generated row",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FILL_ROW",
            "label": "Auto Fill Row",
            "description": "When hidden in a shared generated row, collapse this entry so the remaining entries re-pack"
          },
          {
            "id": "RESERVE_SLOT",
            "label": "Keep Empty Slot",
            "description": "When hidden in a shared generated row, keep this entry's slot empty so the row stays stable"
          }
        ]
      },
      "visibility_match_float": {
        "default": 0.0,
        "type": "number",
        "label": "Compare Value",
        "description": "Comparison value used against the parent float property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "visibility_match_int": {
        "default": 0,
        "type": "integer",
        "label": "Compare Value",
        "description": "Comparison value used against the parent integer property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "visibility_match_text": {
        "default": "",
        "type": "string",
        "label": "Compare Value",
        "description": "Exact value used against a parent enum, string, or vector-style property",
        "rna_type": "STRING"
      },
      "visibility_match_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Compare Float Array",
        "description": "Exact float-array value used against a parent array property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "visibility_match_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Compare Int Array",
        "description": "Exact integer-array value used against a parent array property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "visibility_match_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Compare Bool Array",
        "description": "Exact boolean-array value used against a parent array property",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "visibility_range_max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Range Max",
        "description": "Upper bound of the visibility range for the parent float property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "visibility_range_max_int": {
        "default": 0,
        "type": "integer",
        "label": "Range Max",
        "description": "Upper bound of the visibility range for the parent integer property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "bool_child_availability": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Enable Child",
        "description": "When this child entry should be enabled, based on its parent boolean value. Disabled entries are visible but grayed out",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always keep this child property enabled"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When Parent Is On",
            "description": "Enable only when the parent boolean is enabled"
          },
          {
            "id": "WHEN_FALSE",
            "label": "When Parent Is Off",
            "description": "Enable only when the parent boolean is disabled"
          }
        ]
      },
      "number_child_availability": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Enable Child",
        "description": "When this child entry should be enabled, based on its parent numeric value. Disabled entries are visible but grayed out",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always keep this child property enabled"
          },
          {
            "id": "EQUAL",
            "label": "When Parent Equals",
            "description": "Enable only when the parent equals a specific value"
          },
          {
            "id": "GREATER",
            "label": "When Parent Is At Least",
            "description": "Enable only when the parent is at or above a specific value"
          },
          {
            "id": "LESS",
            "label": "When Parent Is At Most",
            "description": "Enable only when the parent is at or below a specific value"
          },
          {
            "id": "RANGE",
            "label": "When Parent In Range",
            "description": "Enable only when the parent is within a specific range"
          }
        ]
      },
      "availability_inheritance_depth": {
        "default": 1,
        "type": "integer",
        "label": "Chain",
        "description": "How many availability rules this entry uses in the generated UI chain. 1 = parent only, 2 = parent + parent's rule, higher numbers add upstream rules. The editor shows the full parent chain; the generated UI can only use ancestors that are actually present there",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 12
      },
      "availability_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, or integer-array parents, evaluate Child Availability from one chosen component or channel instead of matching the whole parent value",
        "rna_type": "BOOLEAN"
      },
      "availability_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by Child Availability while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "availability_match_float": {
        "default": 0.0,
        "type": "number",
        "label": "Compare Value",
        "description": "Comparison value used against the parent float property for availability",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "availability_match_int": {
        "default": 0,
        "type": "integer",
        "label": "Compare Value",
        "description": "Comparison value used against the parent integer property for availability",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "availability_match_text": {
        "default": "",
        "type": "string",
        "label": "Compare Value",
        "description": "Exact value used against a parent enum, string, or vector-style property for availability",
        "rna_type": "STRING"
      },
      "availability_match_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Compare Float Array",
        "description": "Exact float-array value used against a parent array property for availability",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "availability_match_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Compare Int Array",
        "description": "Exact integer-array value used against a parent array property for availability",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "availability_match_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Compare Bool Array",
        "description": "Exact boolean-array value used against a parent array property for availability",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "availability_range_max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Range Max",
        "description": "Upper bound of the availability range for the parent float property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "availability_range_max_int": {
        "default": 0,
        "type": "integer",
        "label": "Range Max",
        "description": "Upper bound of the availability range for the parent integer property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_labels": {
        "default": [],
        "type": "array",
        "label": "value_labels",
        "description": "",
        "rna_type": "COLLECTION"
      },
      "other_value_labels": {
        "default": [],
        "type": "array",
        "label": "other_value_labels",
        "description": "",
        "rna_type": "COLLECTION"
      }
    },
    "settings": {
      "izom_propui_replace_storage_on_generate": {
        "default": true,
        "type": "boolean",
        "label": "Replace Storage on Generate",
        "description": "When enabled, Generate UI first removes every custom property from the Property Storage target, then recreates only the properties managed by the current PropUI setup. Disable this to keep other existing custom properties when generating",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_replace_storage_on_apply": {
        "default": false,
        "type": "boolean",
        "label": "Replace Storage on Apply",
        "description": "When enabled, Apply Properties > Apply All Managed first removes every custom property from the Property Storage target, then recreates only managed PropUI properties. Apply Selected never clears the full storage target",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_default_target_owner_path": {
        "default": "",
        "type": "string",
        "label": "Property Storage",
        "description": "Blender data path to the owner where generated managed custom properties live",
        "rna_type": "STRING"
      },
      "izom_propui_generated_panel_tab": {
        "default": "Controls",
        "type": "string",
        "label": "Generated Tab",
        "description": "Sidebar tab/category used when this generated UI appears in editor sidebars",
        "rna_type": "STRING"
      },
      "izom_propui_generated_panel_title": {
        "default": "Custom Controls",
        "type": "string",
        "label": "Generated Panel Title",
        "description": "Title shown on the generated panel",
        "rna_type": "STRING"
      },
      "izom_propui_generated_text_name": {
        "default": "",
        "type": "string",
        "label": "Generated Text Name",
        "description": "Optional .py Text datablock name used when custom branding is enabled; the Text Datablock Prefix is prepended and duplicate generated UIs get a unique suffix",
        "rna_type": "STRING"
      },
      "izom_propui_generated_branding_use_custom": {
        "default": false,
        "type": "boolean",
        "label": "Use Custom Branding",
        "description": "Use custom names and comments in generated UI scripts without changing PropUI's editor data",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_branding_namespace_prefix": {
        "default": "izom_propui",
        "type": "string",
        "label": "Namespace Prefix",
        "description": "Prefix used for generated registry keys, helper operators, and helper properties",
        "rna_type": "STRING"
      },
      "izom_propui_generated_branding_panel_class_prefix": {
        "default": "IZOM_PROPUI_PT",
        "type": "string",
        "label": "Panel Class Prefix",
        "description": "Prefix used for generated Blender panel class names",
        "rna_type": "STRING"
      },
      "izom_propui_generated_branding_text_datablock_prefix": {
        "default": "izom_propui_generated_ui",
        "type": "string",
        "label": "Text Datablock Prefix",
        "description": "Prefix used for generated .py Text datablocks, including custom Text names",
        "rna_type": "STRING"
      },
      "izom_propui_generated_branding_show_credit": {
        "default": true,
        "type": "boolean",
        "label": "Show Credit Comment",
        "description": "Include the generated-source credit comment",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_branding_credit_comment": {
        "default": "Auto-generated by izom PropUI.",
        "type": "string",
        "label": "Credit Comment",
        "description": "Comment written near the top of generated .py output when credit comments are enabled",
        "rna_type": "STRING"
      },
      "izom_propui_generated_panel_location": {
        "default": "SIDEBAR",
        "type": "string",
        "label": "Panel Location",
        "description": "Choose whether the generated panel lives in editor sidebars, in the Properties editor, or both",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "SIDEBAR",
            "label": "Sidebar(s)",
            "description": "Show the panel in editor sidebars"
          },
          {
            "id": "PROPERTIES",
            "label": "Properties Editor",
            "description": "Show the panel in the Properties editor"
          },
          {
            "id": "BOTH",
            "label": "Sidebar(s) + Properties",
            "description": "Show the panel in both editor sidebars and the Properties editor"
          }
        ]
      },
      "izom_propui_generated_mute_during_transform": {
        "default": false,
        "type": "boolean",
        "label": "Disable While Transforming",
        "description": "Skip drawing this generated UI while a Blender transform modal operator is running",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_mute_during_playback": {
        "default": false,
        "type": "boolean",
        "label": "Disable While Playback",
        "description": "Skip drawing this generated UI while animation playback is running",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_ui_conflict_mode": {
        "default": "REPLACE_MATCHING",
        "type": "string",
        "label": "Generated UI Mode",
        "description": "Choose how Generate UI handles existing generated panels",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "REPLACE_ALL",
            "label": "Overwrite All",
            "description": "Remove all saved generated panels and keep only this output"
          },
          {
            "id": "REPLACE_MATCHING",
            "label": "Overwrite Matching",
            "description": "Replace the generated panel with the same tab, title, and property storage; add one if no match exists"
          },
          {
            "id": "ADD",
            "label": "Add New",
            "description": "Add this output as another generated panel without overwriting existing generated panels"
          }
        ]
      },
      "izom_propui_generated_sidebar_mode": {
        "default": "SPECIFIC",
        "type": "string",
        "label": "Show In",
        "description": "Choose which Blender editor sidebars receive the generated panel",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "SPECIFIC",
            "label": "Specific Sidebars",
            "description": "Show generated panels only in the selected editor sidebars"
          },
          {
            "id": "ALL",
            "label": "All Supported Sidebars",
            "description": "Show generated panels in every supported editor sidebar"
          }
        ]
      },
      "izom_propui_generated_sidebar_view_3d": {
        "default": true,
        "type": "boolean",
        "label": "3D Viewport",
        "description": "3D Viewport sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_graph_editor": {
        "default": false,
        "type": "boolean",
        "label": "Graph Editor / Drivers",
        "description": "Graph Editor and Drivers sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_dopesheet_editor": {
        "default": false,
        "type": "boolean",
        "label": "Dope Sheet",
        "description": "Dope Sheet sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_nla_editor": {
        "default": false,
        "type": "boolean",
        "label": "NLA Editor",
        "description": "NLA Editor sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_image_editor": {
        "default": false,
        "type": "boolean",
        "label": "Image / UV Editor",
        "description": "Image and UV Editor sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_node_editor": {
        "default": false,
        "type": "boolean",
        "label": "Node Editor",
        "description": "Node Editor sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_sequence_editor": {
        "default": false,
        "type": "boolean",
        "label": "Video Sequencer",
        "description": "Video Sequencer sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_clip_editor": {
        "default": false,
        "type": "boolean",
        "label": "Movie Clip Editor",
        "description": "Movie Clip Editor sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_text_editor": {
        "default": false,
        "type": "boolean",
        "label": "Text Editor",
        "description": "Text Editor sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_file_browser": {
        "default": false,
        "type": "boolean",
        "label": "File Browser",
        "description": "File Browser sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_sidebar_spreadsheet": {
        "default": false,
        "type": "boolean",
        "label": "Spreadsheet",
        "description": "Spreadsheet sidebar",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_graph_editor_context_mode": {
        "default": "ALL",
        "type": "string",
        "label": "Graph Editors",
        "description": "Choose whether generated Graph Editor panels appear in Graph Editor and Drivers or only selected contexts",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALL",
            "label": "Graph + Drivers",
            "description": "Show generated panels in both Graph Editor and Drivers contexts"
          },
          {
            "id": "SPECIFIC",
            "label": "Specific Graph Editors",
            "description": "Show generated panels only in the selected Graph Editor contexts"
          }
        ]
      },
      "izom_propui_generated_graph_editor_graph": {
        "default": true,
        "type": "boolean",
        "label": "Graph Editor",
        "description": "Graph Editor F-Curves context",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_graph_editor_drivers": {
        "default": true,
        "type": "boolean",
        "label": "Drivers",
        "description": "Drivers context",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_image_editor_context_mode": {
        "default": "ALL",
        "type": "string",
        "label": "Image Editors",
        "description": "Choose whether generated Image Editor panels appear in Image and UV contexts or only selected contexts",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALL",
            "label": "Image + UV Editors",
            "description": "Show generated panels in every Image Editor and UV Editor context"
          },
          {
            "id": "SPECIFIC",
            "label": "Specific Image Editors",
            "description": "Show generated panels only in the selected Image/UV contexts"
          }
        ]
      },
      "izom_propui_generated_image_editor_image": {
        "default": true,
        "type": "boolean",
        "label": "Image Editor",
        "description": "Image editor, image paint, and mask contexts",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_image_editor_uv": {
        "default": true,
        "type": "boolean",
        "label": "UV Editor",
        "description": "UV editor context",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_node_editor_context_mode": {
        "default": "ALL",
        "type": "string",
        "label": "Node Editors",
        "description": "Choose whether generated Node Editor panels appear in every node editor context or only selected contexts",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALL",
            "label": "All Node Editors",
            "description": "Show generated panels in every Node Editor context"
          },
          {
            "id": "SPECIFIC",
            "label": "Specific Node Editors",
            "description": "Show generated panels only in the selected Node Editor contexts"
          }
        ]
      },
      "izom_propui_generated_node_editor_shader": {
        "default": true,
        "type": "boolean",
        "label": "Shader Editor",
        "description": "Shader node editor context",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_node_editor_geometry": {
        "default": true,
        "type": "boolean",
        "label": "Geometry Nodes",
        "description": "Geometry Nodes editor context",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_node_editor_compositor": {
        "default": true,
        "type": "boolean",
        "label": "Compositor",
        "description": "Compositor node editor context",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_mode": {
        "default": "SPECIFIC",
        "type": "string",
        "label": "Properties Tabs",
        "description": "Choose which Properties editor tabs receive the generated panel",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "SPECIFIC",
            "label": "Specific Properties Tabs",
            "description": "Show the panel only in the selected Properties editor tabs"
          },
          {
            "id": "ALL",
            "label": "All Supported Properties Tabs",
            "description": "Show the panel in every supported Properties editor tab"
          }
        ]
      },
      "izom_propui_generated_properties_tool": {
        "default": false,
        "type": "boolean",
        "label": "Tool",
        "description": "Active Tool and Workspace Settings tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_render": {
        "default": false,
        "type": "boolean",
        "label": "Render",
        "description": "Render Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_output": {
        "default": false,
        "type": "boolean",
        "label": "Output",
        "description": "Output Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_view_layer": {
        "default": false,
        "type": "boolean",
        "label": "View Layer",
        "description": "View Layer Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_scene": {
        "default": false,
        "type": "boolean",
        "label": "Scene",
        "description": "Scene Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_world": {
        "default": false,
        "type": "boolean",
        "label": "World",
        "description": "World Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_collection": {
        "default": false,
        "type": "boolean",
        "label": "Collection",
        "description": "Collection Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_object": {
        "default": true,
        "type": "boolean",
        "label": "Object",
        "description": "Object Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_constraint": {
        "default": false,
        "type": "boolean",
        "label": "Constraints",
        "description": "Object Constraint Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_modifier": {
        "default": false,
        "type": "boolean",
        "label": "Modifiers",
        "description": "Modifier Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_data": {
        "default": false,
        "type": "boolean",
        "label": "Object Data",
        "description": "Object Data Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_bone": {
        "default": false,
        "type": "boolean",
        "label": "Bone",
        "description": "Bone Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_bone_constraint": {
        "default": false,
        "type": "boolean",
        "label": "Bone Constraints",
        "description": "Bone Constraint Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_material": {
        "default": false,
        "type": "boolean",
        "label": "Material",
        "description": "Material Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_texture": {
        "default": false,
        "type": "boolean",
        "label": "Texture",
        "description": "Texture Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_particle": {
        "default": false,
        "type": "boolean",
        "label": "Particle",
        "description": "Particle Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_properties_physics": {
        "default": false,
        "type": "boolean",
        "label": "Physics",
        "description": "Physics Properties tab",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_generated_visibility_mode": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Visible When",
        "description": "Choose when the generated panel is visible",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always show the generated panel"
          },
          {
            "id": "SELECTED_OBJECTS",
            "label": "Only When These Items Are Selected",
            "description": "Show the generated panel only when one of the listed objects or bones is selected"
          }
        ]
      },
      "izom_propui_generated_visibility_targets_json": {
        "default": "[]",
        "type": "string",
        "label": "Visibility Items",
        "description": "Internal selected 3D Viewport items used by generated panel visibility filtering",
        "rna_type": "STRING"
      },
      "izom_propui_clean_old_targets_on_generate": {
        "default": true,
        "type": "boolean",
        "label": "Clean Old Targets on Generate",
        "description": "When enabled, Generate UI removes matching managed PropUI properties from old targets that no longer own those entries",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_clean_old_targets_on_apply": {
        "default": true,
        "type": "boolean",
        "label": "Clean Old Targets on Apply",
        "description": "When enabled, Apply Properties removes matching managed PropUI properties from old targets that no longer own those entries",
        "rna_type": "BOOLEAN"
      }
    },
    "layout_row_fields": {
      "subpanel_uid": "",
      "row_height_scale": 1.0,
      "row_inset_left_enabled": false,
      "row_inset_left_amount": 1.0,
      "row_inset_right_enabled": false,
      "row_inset_right_amount": 1.0
    },
    "serialized_entry_fields": [
      "string_multiline",
      "string_visible_lines",
      "string_placeholder",
      "text_link_url",
      "uid",
      "parent_uid",
      "prop_id",
      "label",
      "editor_label",
      "description",
      "prop_type",
      "enum_items_json",
      "default_enum",
      "enum_expanded",
      "native_widget",
      "control_group",
      "native_action",
      "value_preset_name",
      "bone_collection_path",
      "bone_collection_object_path",
      "native_foldout",
      "native_popover",
      "native_popover_compact",
      "compact_control",
      "native_popover_style",
      "native_popover_icon",
      "native_popover_show_label",
      "native_popover_show_keyframes",
      "linked_entry_uid",
      "display_link_label_mode",
      "display_link_tooltip_mode",
      "display_link_use_component_subset",
      "display_link_component_subset_json",
      "text_alignment",
      "text_role",
      "text_alert",
      "text_icon",
      "text_icon_hug_text",
      "text_icon_after",
      "text_icon_after_hug_text",
      "operator_id",
      "operator_icon",
      "operator_icon_value",
      "operator_emboss",
      "operator_depress",
      "operator_enabled",
      "operator_active",
      "operator_context",
      "operator_translate",
      "operator_text_context",
      "operator_search_weight",
      "operator_props_json",
      "operator_report_timing",
      "operator_report_type",
      "operator_report_message",
      "default_float",
      "default_int",
      "default_bool",
      "default_string",
      "datablock_id_type",
      "default_datablock_name",
      "default_datablock_path",
      "python_default_expression",
      "default_float_array",
      "default_int_array",
      "default_bool_array",
      "min_float",
      "max_float",
      "min_int",
      "max_int",
      "ui_order",
      "display_order",
      "row_slot",
      "slider",
      "alert_style",
      "bool_ui_style",
      "bool_icon_true",
      "bool_icon_false",
      "value_label_layout",
      "multi_component_layout",
      "multi_component_draw_mode",
      "stacked_label_use_text_style",
      "array_component_label_style",
      "array_component_label_custom_base",
      "array_component_label_01",
      "array_component_label_02",
      "array_component_label_03",
      "array_component_label_04",
      "array_component_label_05",
      "array_component_label_06",
      "array_component_label_07",
      "array_component_label_08",
      "array_component_label_09",
      "array_component_label_10",
      "array_component_label_11",
      "array_component_label_12",
      "array_component_label_13",
      "array_component_label_14",
      "array_component_label_15",
      "array_component_label_16",
      "array_component_label_17",
      "array_component_label_18",
      "array_component_label_19",
      "array_component_label_20",
      "array_component_label_21",
      "array_component_label_22",
      "array_component_label_23",
      "array_component_label_24",
      "array_component_label_25",
      "array_component_label_26",
      "array_component_label_27",
      "array_component_label_28",
      "array_component_label_29",
      "array_component_label_30",
      "array_component_label_31",
      "array_component_label_32",
      "hidden_in_editor",
      "use_value_labels",
      "value_labels_use_component",
      "value_labels_component_index",
      "use_bool_state_labels",
      "bool_label_true",
      "bool_label_false",
      "use_other_entry_labels",
      "text_use_other_entry_labels",
      "use_soft_limits",
      "soft_min_float",
      "soft_max_float",
      "soft_min_int",
      "soft_max_int",
      "step_float",
      "step_int",
      "precision",
      "array_element_type",
      "array_size",
      "float_subtype",
      "float_array_subtype",
      "library_overridable",
      "entry_target_owner_path",
      "custom_source",
      "custom_internal_control",
      "custom_owner_path",
      "custom_prop_name",
      "custom_use_component",
      "custom_component_index",
      "custom_detected_value_kind",
      "custom_detected_component_count",
      "custom_detected_array_subtype",
      "custom_path_readonly",
      "custom_path_error",
      "bool_child_visibility",
      "number_child_visibility",
      "visibility_inheritance_depth",
      "visibility_use_component",
      "visibility_component_index",
      "shared_row_hidden_mode",
      "visibility_match_float",
      "visibility_match_int",
      "visibility_match_text",
      "visibility_match_float_array",
      "visibility_match_int_array",
      "visibility_match_bool_array",
      "visibility_range_max_float",
      "visibility_range_max_int",
      "bool_child_availability",
      "number_child_availability",
      "availability_inheritance_depth",
      "availability_use_component",
      "availability_component_index",
      "availability_match_float",
      "availability_match_int",
      "availability_match_text",
      "availability_match_float_array",
      "availability_match_int_array",
      "availability_match_bool_array",
      "availability_range_max_float",
      "availability_range_max_int"
    ],
    "entry_types": [
      "FLOAT",
      "INT",
      "BOOL",
      "STRING",
      "DATA_BLOCK",
      "PYTHON",
      "ARRAY",
      "DISPLAY_LINK",
      "CUSTOM",
      "TEXT",
      "OPERATOR",
      "ENUM"
    ],
    "value_label_fields": {
      "uid": {
        "default": "",
        "type": "string",
        "label": "UID",
        "description": "Internal stable identifier used for editor selection",
        "rna_type": "STRING"
      },
      "rule_kind": {
        "default": "LABEL",
        "type": "string",
        "label": "Row Type",
        "description": "Choose whether this row applies a label override or resets to the current fallback label for this rule set",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LABEL",
            "label": "Label Override",
            "description": "Use this row label as the override result"
          },
          {
            "id": "FALLBACK",
            "label": "Fallback",
            "description": "Reset to the current fallback label for this rule set instead of using an override label"
          }
        ]
      },
      "match_mode": {
        "default": "GREATER",
        "type": "string",
        "label": "Match",
        "description": "How this row compares numeric values. Dynamic Labels use the first matching row from top to bottom",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "EQUAL",
            "label": "Equals",
            "description": "Match only when the value equals this value"
          },
          {
            "id": "GREATER",
            "label": "At Least",
            "description": "Match when the value is at or above this value"
          },
          {
            "id": "LESS",
            "label": "At Most",
            "description": "Match when the value is at or below this value"
          },
          {
            "id": "RANGE",
            "label": "In Range",
            "description": "Match when the value is between the two values"
          }
        ]
      },
      "label": {
        "default": "",
        "type": "string",
        "label": "Label",
        "description": "Override label to use when this row matches",
        "rna_type": "STRING"
      },
      "text_override_style": {
        "default": false,
        "type": "boolean",
        "label": "Override Display Style",
        "description": "When enabled, this conditional rule can override role, alignment, icons, icon attachment, and alert styling instead of only changing the text",
        "rna_type": "BOOLEAN"
      },
      "text_alignment": {
        "default": "LEFT",
        "type": "string",
        "label": "Alignment",
        "description": "How this text block is aligned in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LEFT",
            "label": "Left",
            "description": "Align the text to the left side of the row"
          },
          {
            "id": "CENTER",
            "label": "Center",
            "description": "Align the text to the center of the row"
          },
          {
            "id": "RIGHT",
            "label": "Right",
            "description": "Align the text to the right side of the row"
          }
        ]
      },
      "text_role": {
        "default": "TEXT",
        "type": "string",
        "label": "Role",
        "description": "Choose whether this text rule draws text, a divider, or generated-row space",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Draw a text label row"
          },
          {
            "id": "DIVIDER",
            "label": "Divider",
            "description": "Draw a single generated-row divider line"
          },
          {
            "id": "SPACER",
            "label": "Spacer",
            "description": "Draw empty generated-row space"
          }
        ]
      },
      "text_alert": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this text block with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "text_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Before Icon",
        "description": "Optional Blender icon drawn before this text block",
        "rna_type": "STRING"
      },
      "text_icon_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the before icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "text_icon_after": {
        "default": "NONE",
        "type": "string",
        "label": "After Icon",
        "description": "Optional Blender icon drawn after this text block",
        "rna_type": "STRING"
      },
      "text_icon_after_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the after icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "value_float": {
        "default": 0.0,
        "type": "number",
        "label": "Other Entry Value",
        "description": "Primary comparison value for the chosen other float entry",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_int": {
        "default": 0,
        "type": "integer",
        "label": "Other Entry Value",
        "description": "Primary comparison value for the chosen other integer entry",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_range_float": {
        "default": 1.0,
        "type": "number",
        "label": "Other Entry Range End",
        "description": "Second range value for the chosen other float entry when Match is In Range",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_range_int": {
        "default": 0,
        "type": "integer",
        "label": "Other Entry Range End",
        "description": "Second range value for the chosen other integer entry when Match is In Range",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_text": {
        "default": "",
        "type": "string",
        "label": "Other Entry Value",
        "description": "Exact value to match when the chosen other entry is a string, enum, or vector-style custom entry",
        "rna_type": "STRING"
      },
      "value_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Other Entry Float Array",
        "description": "Exact float array value to match when the chosen other entry resolves to a float array",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "value_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Other Entry Int Array",
        "description": "Exact integer-array value to match when the chosen other entry resolves to an integer array",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "value_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Other Entry Bool Array",
        "description": "Exact boolean-array value to match when the chosen other entry resolves to a boolean array",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "target_value_float": {
        "default": 0.0,
        "type": "number"
      },
      "target_value_int": {
        "default": 0,
        "type": "integer"
      },
      "target_value_range_float": {
        "default": 1.0,
        "type": "number"
      },
      "target_value_range_int": {
        "default": 0,
        "type": "integer"
      },
      "target_value_text": {
        "default": "",
        "type": "string"
      },
      "target_value_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array"
      },
      "target_value_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array"
      },
      "target_value_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array"
      },
      "use_other_entry_labels": {
        "default": false,
        "type": "boolean"
      },
      "source_entry_uid": {
        "default": "",
        "type": "string",
        "label": "Other Entry UID",
        "description": "Internal source entry used by this conditional rule row",
        "rna_type": "STRING"
      },
      "use_source_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, integer-array, or boolean-array values, evaluate this rule from one chosen component or channel instead of matching the whole value",
        "rna_type": "BOOLEAN"
      },
      "source_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by this rule while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "source_bool_state": {
        "default": "WHEN_TRUE",
        "type": "string",
        "label": "When Other Entry Is",
        "description": "Boolean state to match when the selected Other Entry is a boolean",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "WHEN_FALSE",
            "label": "When Off",
            "description": "Match when the selected Other Entry is off"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When On",
            "description": "Match when the selected Other Entry is on"
          }
        ]
      },
      "target_bool_scope": {
        "default": "ANY",
        "type": "string"
      }
    },
    "conditional_label_fields": {
      "uid": {
        "default": "",
        "type": "string",
        "label": "UID",
        "description": "Internal stable identifier used for editor selection",
        "rna_type": "STRING"
      },
      "rule_kind": {
        "default": "LABEL",
        "type": "string",
        "label": "Row Type",
        "description": "Choose whether this row applies a label override or resets to the current fallback label for this rule set",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LABEL",
            "label": "Label Override",
            "description": "Use this row label as the override result"
          },
          {
            "id": "FALLBACK",
            "label": "Fallback",
            "description": "Reset to the current fallback label for this rule set instead of using an override label"
          }
        ]
      },
      "match_mode": {
        "default": "GREATER",
        "type": "string",
        "label": "Match",
        "description": "How this row compares numeric values. Dynamic Labels use the first matching row from top to bottom",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "EQUAL",
            "label": "Equals",
            "description": "Match only when the value equals this value"
          },
          {
            "id": "GREATER",
            "label": "At Least",
            "description": "Match when the value is at or above this value"
          },
          {
            "id": "LESS",
            "label": "At Most",
            "description": "Match when the value is at or below this value"
          },
          {
            "id": "RANGE",
            "label": "In Range",
            "description": "Match when the value is between the two values"
          }
        ]
      },
      "label": {
        "default": "",
        "type": "string",
        "label": "Label",
        "description": "Override label to use when this row matches",
        "rna_type": "STRING"
      },
      "text_override_style": {
        "default": false,
        "type": "boolean",
        "label": "Override Display Style",
        "description": "When enabled, this conditional rule can override role, alignment, icons, icon attachment, and alert styling instead of only changing the text",
        "rna_type": "BOOLEAN"
      },
      "text_alignment": {
        "default": "LEFT",
        "type": "string",
        "label": "Alignment",
        "description": "How this text block is aligned in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LEFT",
            "label": "Left",
            "description": "Align the text to the left side of the row"
          },
          {
            "id": "CENTER",
            "label": "Center",
            "description": "Align the text to the center of the row"
          },
          {
            "id": "RIGHT",
            "label": "Right",
            "description": "Align the text to the right side of the row"
          }
        ]
      },
      "text_role": {
        "default": "TEXT",
        "type": "string",
        "label": "Role",
        "description": "Choose whether this text rule draws text, a divider, or generated-row space",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Draw a text label row"
          },
          {
            "id": "DIVIDER",
            "label": "Divider",
            "description": "Draw a single generated-row divider line"
          },
          {
            "id": "SPACER",
            "label": "Spacer",
            "description": "Draw empty generated-row space"
          }
        ]
      },
      "text_alert": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this text block with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "text_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Before Icon",
        "description": "Optional Blender icon drawn before this text block",
        "rna_type": "STRING"
      },
      "text_icon_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the before icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "text_icon_after": {
        "default": "NONE",
        "type": "string",
        "label": "After Icon",
        "description": "Optional Blender icon drawn after this text block",
        "rna_type": "STRING"
      },
      "text_icon_after_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the after icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "value_float": {
        "default": 0.0,
        "type": "number",
        "label": "Other Entry Value",
        "description": "Primary comparison value for the chosen other float entry",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_int": {
        "default": 0,
        "type": "integer",
        "label": "Other Entry Value",
        "description": "Primary comparison value for the chosen other integer entry",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_range_float": {
        "default": 1.0,
        "type": "number",
        "label": "Other Entry Range End",
        "description": "Second range value for the chosen other float entry when Match is In Range",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_range_int": {
        "default": 0,
        "type": "integer",
        "label": "Other Entry Range End",
        "description": "Second range value for the chosen other integer entry when Match is In Range",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_text": {
        "default": "",
        "type": "string",
        "label": "Other Entry Value",
        "description": "Exact value to match when the chosen other entry is a string, enum, or vector-style custom entry",
        "rna_type": "STRING"
      },
      "value_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Other Entry Float Array",
        "description": "Exact float array value to match when the chosen other entry resolves to a float array",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "value_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Other Entry Int Array",
        "description": "Exact integer-array value to match when the chosen other entry resolves to an integer array",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "value_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Other Entry Bool Array",
        "description": "Exact boolean-array value to match when the chosen other entry resolves to a boolean array",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "source_entry_uid": {
        "default": "",
        "type": "string",
        "label": "Other Entry UID",
        "description": "Internal source entry used by this conditional rule row",
        "rna_type": "STRING"
      },
      "use_source_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, integer-array, or boolean-array values, evaluate this rule from one chosen component or channel instead of matching the whole value",
        "rna_type": "BOOLEAN"
      },
      "source_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by this rule while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "source_bool_state": {
        "default": "WHEN_TRUE",
        "type": "string",
        "label": "When Other Entry Is",
        "description": "Boolean state to match when the selected Other Entry is a boolean",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "WHEN_FALSE",
            "label": "When Off",
            "description": "Match when the selected Other Entry is off"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When On",
            "description": "Match when the selected Other Entry is on"
          }
        ]
      }
    },
    "editor_settings": {
      "izom_propui_editor_float_decimals": 3,
      "izom_propui_entry_list_primary_column": "NAME",
      "izom_propui_generated_layout_primary_column": "NAME",
      "izom_propui_default_entry_type": "FLOAT",
      "izom_propui_confirmation_clear_entry_list": "ASK",
      "izom_propui_confirmation_reset_current_setup": "ASK",
      "izom_propui_confirmation_reset_saved_defaults": "ASK",
      "izom_propui_confirmation_full_factory_reset": "ASK",
      "izom_propui_confirmation_save_type_default": "ASK",
      "izom_propui_confirmation_apply_type_default": "ASK",
      "izom_propui_confirmation_reset_type_default": "ASK",
      "izom_propui_confirmation_copy_same_type_settings": "ASK",
      "izom_propui_confirmation_clear_generated_layout": "ASK",
      "izom_propui_confirmation_clear_row_boxes": "ASK",
      "izom_propui_confirmation_clear_dynamic_labels": "ASK",
      "izom_propui_confirmation_reset_editor_settings": "ASK",
      "izom_propui_confirmation_apply_editor_layout": "ASK",
      "izom_propui_confirmation_apply_editor_layout_default": "ASK",
      "izom_propui_confirmation_factory_reset_editor_layout": "ASK",
      "izom_propui_confirmation_clear_full_setup_default": "ASK",
      "izom_propui_confirmation_remove_ui_variant": "ASK",
      "izom_propui_confirmation_clear_ui_variants": "ASK",
      "izom_propui_confirmation_generate_current_conflict": "ASK",
      "izom_propui_confirmation_generate_native_conflict": "ASK",
      "izom_propui_confirmation_generate_empty_layout": "ASK",
      "izom_propui_confirmation_remove_generated_ui": "ASK",
      "izom_propui_confirmation_parent_delete": "ASK",
      "izom_propui_confirmation_subpanel_delete": "ASK",
      "izom_propui_confirmation_save_variant_conflict": "ASK",
      "izom_propui_confirmation_load_variant_unsaved": "ASK",
      "izom_propui_confirmation_copy_conditions": "ASK",
      "izom_propui_show_entry_tree_hints": true,
      "izom_propui_show_all_confirmation_rules": false,
      "izom_propui_gl_auto_sync_new_entries": false,
      "izom_propui_gl_add_into_active_row": false,
      "izom_propui_gl_safe_import": true
    },
    "editor_fields": {
      "izom_propui_editor_float_decimals": {
        "default": 3,
        "type": "integer",
        "label": "Float Decimals",
        "description": "How many decimals editor float values show while editing in the izom PropUI editor",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 6
      },
      "izom_propui_entry_list_primary_column": {
        "default": "NAME",
        "type": "string",
        "label": "Entry List Primary Column",
        "description": "Choose whether the wide leading Entry List column shows the Name or the Property ID",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NAME",
            "label": "Name",
            "description": "Use the wide leading Entry List column for the entry label"
          },
          {
            "id": "PROP_ID",
            "label": "Property ID",
            "description": "Use the wide leading Entry List column for the Property ID instead of the label"
          }
        ]
      },
      "izom_propui_generated_layout_primary_column": {
        "default": "NAME",
        "type": "string",
        "label": "Generated Layout Primary Column",
        "description": "Choose whether the wide leading Generated Layout column shows the Name or the Property ID",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NAME",
            "label": "Name",
            "description": "Use the wide leading Generated Layout column for the entry label"
          },
          {
            "id": "PROP_ID",
            "label": "Property ID",
            "description": "Use the wide leading Generated Layout column for the Property ID instead of the label"
          }
        ]
      },
      "izom_propui_default_entry_type": {
        "default": "FLOAT",
        "type": "string",
        "label": "Default Add Type",
        "description": "Entry type used when adding a new Entry List item",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FLOAT",
            "label": "Float",
            "description": "Floating-point custom property"
          },
          {
            "id": "INT",
            "label": "Integer",
            "description": "Integer custom property"
          },
          {
            "id": "BOOL",
            "label": "Boolean",
            "description": "Boolean custom property"
          },
          {
            "id": "STRING",
            "label": "String",
            "description": "Text custom property"
          },
          {
            "id": "DATA_BLOCK",
            "label": "Data-Block",
            "description": "Data-block custom property with selectable ID type"
          },
          {
            "id": "PYTHON",
            "label": "Python",
            "description": "Python-value custom property for unsupported nested IDProperty data"
          },
          {
            "id": "ARRAY",
            "label": "Array",
            "description": "Typed float, integer, or boolean array custom property with selectable subtype and size"
          },
          {
            "id": "DISPLAY_LINK",
            "label": "Display Link",
            "description": "Draw an existing managed PropUI property again with separate display, label, dynamic label, and condition settings"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Reference an existing Blender RNA property or internal generated UI control"
          },
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Text-only entry shown in the generated UI without an interactable property"
          },
          {
            "id": "OPERATOR",
            "label": "Operator Button",
            "description": "Button that runs a Blender or add-on operator by operator ID"
          },
          {
            "id": "ENUM",
            "label": "Dropdown",
            "description": "Native custom property with stable named choices"
          }
        ]
      },
      "izom_propui_confirmation_clear_entry_list": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Entry List",
        "description": "Default answer when clearing every Entry List entry",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_reset_current_setup": {
        "default": "ASK",
        "type": "string",
        "label": "Reset Current Setup",
        "description": "Default answer when resetting the current setup back to blank",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_reset_saved_defaults": {
        "default": "ASK",
        "type": "string",
        "label": "Reset Saved Defaults",
        "description": "Default answer when deleting saved editor, editor layout, and full setup defaults",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_full_factory_reset": {
        "default": "ASK",
        "type": "string",
        "label": "Full Factory Reset",
        "description": "Default answer when wiping PropUI editor data from every scene and deleting saved defaults",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_save_type_default": {
        "default": "ASK",
        "type": "string",
        "label": "Save Type Default",
        "description": "Default answer when saving the selected entry's type settings as your personal default",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_apply_type_default": {
        "default": "ASK",
        "type": "string",
        "label": "Apply Type Default",
        "description": "Default answer when applying your saved default for the selected entry type",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_reset_type_default": {
        "default": "ASK",
        "type": "string",
        "label": "Reset Type Default",
        "description": "Default answer when removing your saved default for the selected entry type",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_copy_same_type_settings": {
        "default": "ASK",
        "type": "string",
        "label": "Copy Same-Type Settings",
        "description": "Default answer when copying the selected entry's type settings to all other same-type entries",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_clear_generated_layout": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Generated Layout",
        "description": "Default answer when clearing every Generated Layout entry",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_clear_row_boxes": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Row Boxes",
        "description": "Default answer when clearing every Generated Layout row box",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_clear_dynamic_labels": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Dynamic Labels",
        "description": "Default answer when clearing a Dynamic Labels list",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_reset_editor_settings": {
        "default": "ASK",
        "type": "string",
        "label": "Reset Settings Only",
        "description": "Default answer when resetting editor settings to factory defaults",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_apply_editor_layout": {
        "default": "ASK",
        "type": "string",
        "label": "Apply Editor Layout",
        "description": "Default answer when applying the staged Editor Layout list state",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_apply_editor_layout_default": {
        "default": "ASK",
        "type": "string",
        "label": "Apply Layout Default",
        "description": "Default answer when applying the saved Editor Layout default",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_factory_reset_editor_layout": {
        "default": "ASK",
        "type": "string",
        "label": "Factory Reset Layout",
        "description": "Default answer when resetting Editor Layout to built-in defaults",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_clear_full_setup_default": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Full Setup Default",
        "description": "Default answer when deleting the saved full setup default",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_remove_ui_variant": {
        "default": "ASK",
        "type": "string",
        "label": "Remove UI Variant",
        "description": "Default answer when removing the selected UI Variant holder",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_clear_ui_variants": {
        "default": "ASK",
        "type": "string",
        "label": "Clear UI Variants",
        "description": "Default answer when removing every UI Variant holder",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_confirmation_generate_current_conflict": {
        "default": "ASK",
        "type": "string",
        "label": "Generate Current Conflict",
        "description": "Default answer when Generate Current would replace an existing current generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when Generate Current would overwrite the current generated UI"
          },
          {
            "id": "OVERWRITE",
            "label": "Overwrite",
            "description": "Overwrite the current generated UI without asking"
          },
          {
            "id": "ADD",
            "label": "Make New",
            "description": "Create a new generated UI without asking"
          }
        ]
      },
      "izom_propui_confirmation_generate_native_conflict": {
        "default": "ASK",
        "type": "string",
        "label": "Generate Native Conflict",
        "description": "Default answer when Generate preserves storage and managed Property IDs collide with existing native custom properties",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when Generate would touch conflicting native custom properties"
          },
          {
            "id": "OVERWRITE",
            "label": "Overwrite Conflicts",
            "description": "Overwrite only the conflicting native custom properties without asking"
          },
          {
            "id": "SKIP",
            "label": "Keep Native Values",
            "description": "Keep only the conflicting native custom properties without asking"
          }
        ]
      },
      "izom_propui_confirmation_generate_empty_layout": {
        "default": "ASK",
        "type": "string",
        "label": "Generate With Empty Layout",
        "description": "Default answer when Generate runs but no entries are placed in the Generated Layout",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when entries exist but none are placed in the Generated Layout"
          },
          {
            "id": "APPLY_PROPERTIES_ONLY",
            "label": "Apply Properties Only",
            "description": "Apply managed custom properties to the storage target without generating a panel"
          },
          {
            "id": "CANCEL",
            "label": "Cancel",
            "description": "Skip generation entirely when no entries are placed in the Generated Layout"
          }
        ]
      },
      "izom_propui_confirmation_remove_generated_ui": {
        "default": "ASK",
        "type": "string",
        "label": "Remove Generated UI",
        "description": "Default answer when removing a generated UI or clearing the Generated UIs list",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the generated UI removal options popup"
          },
          {
            "id": "EDITOR_ONLY",
            "label": "Remove From Editor Only",
            "description": "Remove the generated UI from the editor list but keep its panel running and its generated .py Text datablock"
          },
          {
            "id": "STOP_KEEP_SCRIPT",
            "label": "Stop UI, Keep Script",
            "description": "Remove the generated UI from the editor and stop its live panel now, but keep its generated .py Text datablock (the panel comes back when the .blend is reopened)"
          },
          {
            "id": "FULL_REMOVE",
            "label": "Remove Everything",
            "description": "Remove the generated UI from the editor, stop its live panel, and delete its generated .py Text datablock"
          }
        ]
      },
      "izom_propui_confirmation_parent_delete": {
        "default": "ASK",
        "type": "string",
        "label": "Parent Delete",
        "description": "Default answer when deleting a parent entry that has children",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when deleting a parent entry with children"
          },
          {
            "id": "DELETE",
            "label": "Delete Parent Only",
            "description": "Delete the parent and promote its children without asking"
          },
          {
            "id": "DELETE_HIERARCHY",
            "label": "Delete Hierarchy",
            "description": "Delete the parent and its child hierarchy without asking"
          }
        ]
      },
      "izom_propui_confirmation_subpanel_delete": {
        "default": "ASK",
        "type": "string",
        "label": "Sub-Panel Delete",
        "description": "Default answer when deleting a Generated Layout sub-panel that has rows or nested sub-panels",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when deleting a sub-panel with rows or nested sub-panels"
          },
          {
            "id": "DELETE",
            "label": "Delete Sub-Panel Only",
            "description": "Delete the sub-panel and promote its rows and child sub-panels without asking"
          },
          {
            "id": "DELETE_HIERARCHY",
            "label": "Delete Hierarchy",
            "description": "Delete the sub-panel, nested sub-panels, and their rows without asking"
          }
        ]
      },
      "izom_propui_confirmation_save_variant_conflict": {
        "default": "ASK",
        "type": "string",
        "label": "Save Variant Conflict",
        "description": "Default answer when saving over a UI variant that already has saved state",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when saving over a UI variant that already has saved state"
          },
          {
            "id": "OVERWRITE",
            "label": "Overwrite",
            "description": "Overwrite the selected UI variant without asking"
          },
          {
            "id": "NEW",
            "label": "Make New",
            "description": "Save as a new UI variant without asking"
          }
        ]
      },
      "izom_propui_confirmation_load_variant_unsaved": {
        "default": "ASK",
        "type": "string",
        "label": "Load Variant With Unsaved Changes",
        "description": "Default answer when loading a UI variant while the current editor has unsaved changes",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when loading a UI variant would lose unsaved editor changes"
          },
          {
            "id": "SAVE_LAST_LOADED",
            "label": "Save To Last Loaded",
            "description": "Save unsaved editor changes back into the last loaded UI variant before loading"
          },
          {
            "id": "SAVE_AS_NEW",
            "label": "Save As New",
            "description": "Save unsaved editor changes as a new UI variant before loading"
          },
          {
            "id": "DISCARD",
            "label": "Lose Changes",
            "description": "Discard unsaved editor changes without asking"
          }
        ]
      },
      "izom_propui_confirmation_copy_conditions": {
        "default": "ASK",
        "type": "string",
        "label": "Copy Conditions",
        "description": "Default answer when copying Conditions settings to all siblings or all child entries",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Ask before copying Conditions settings to all siblings or all child entries"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Copy Conditions settings to multiple entries without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel copying Conditions settings to multiple entries without asking"
          }
        ]
      },
      "izom_propui_show_entry_tree_hints": {
        "default": true,
        "type": "boolean",
        "label": "Entry List Tree Hints",
        "description": "Show lightweight parent/child indentation and icons in the flat Entry List without using collapse or hidden-row filtering",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_show_all_confirmation_rules": {
        "default": false,
        "type": "boolean",
        "label": "Show All Confirmation Rules",
        "description": "Show every confirmation rule instead of only customized confirmation overrides",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_gl_auto_sync_new_entries": {
        "default": false,
        "type": "boolean",
        "label": "Auto-Sync New Entries",
        "description": "Automatically add new Entry List entries to Generated Layout when you create them",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_gl_add_into_active_row": {
        "default": false,
        "type": "boolean",
        "label": "Add Into Active Row",
        "description": "When enabled, new Generated Layout entries and imports join the selected row instead of creating a new row",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_gl_safe_import": {
        "default": true,
        "type": "boolean",
        "label": "Safe Import",
        "description": "Prevent importing the same Entry List entry into Generated Layout more than once",
        "rna_type": "BOOLEAN"
      }
    },
    "editor_layout": {
      "expanded": {
        "izom_propui_editor_section_diagnostics_expanded": true,
        "izom_propui_editor_section_output_setup_expanded": true,
        "izom_propui_editor_section_entry_list_expanded": true,
        "izom_propui_editor_section_selected_entry_expanded": true,
        "izom_propui_editor_section_generated_layout_expanded": true,
        "izom_propui_editor_section_editor_settings_expanded": true,
        "izom_propui_editor_section_editor_layout_expanded": true,
        "izom_propui_entry_hierarchy_lens_expanded": true,
        "izom_propui_display_expanded": true,
        "izom_propui_custom_prop_expanded": true,
        "izom_propui_child_behavior_expanded": true,
        "izom_propui_type_defaults_expanded": true,
        "izom_propui_copy_settings_expanded": true,
        "izom_propui_import_export_expanded": true,
        "izom_propui_selected_row_expanded": true,
        "izom_propui_row_boxes_expanded": true,
        "izom_propui_output_setup_variants_expanded": true,
        "izom_propui_output_setup_branding_expanded": true,
        "izom_propui_output_setup_generated_uis_expanded": true,
        "izom_propui_output_setup_visibility_expanded": true,
        "izom_propui_output_setup_storage_expanded": true,
        "izom_propui_editor_settings_display_expanded": true,
        "izom_propui_editor_settings_entry_list_expanded": true,
        "izom_propui_editor_settings_confirmations_expanded": true,
        "izom_propui_editor_settings_json_expanded": true,
        "izom_propui_editor_settings_defaults_expanded": true,
        "izom_propui_editor_settings_reset_expanded": true
      },
      "hidden": {
        "izom_propui_hide_diagnostics_section": false,
        "izom_propui_hide_output_setup_section": false,
        "izom_propui_hide_entry_list_section": false,
        "izom_propui_hide_selected_entry_section": false,
        "izom_propui_hide_generated_layout_section": false,
        "izom_propui_hide_editor_settings_section": false,
        "izom_propui_hide_output_generate_controls": false,
        "izom_propui_hide_output_variants_section": false,
        "izom_propui_hide_output_branding_section": false,
        "izom_propui_hide_output_generated_uis_section": false,
        "izom_propui_hide_output_visibility_section": false,
        "izom_propui_hide_output_storage_section": false,
        "izom_propui_hide_entry_hierarchy_lens": false,
        "izom_propui_hide_selected_basics_section": false,
        "izom_propui_hide_selected_value_section": false,
        "izom_propui_hide_selected_display_section": false,
        "izom_propui_hide_selected_dynamic_labels_section": false,
        "izom_propui_hide_selected_conditions_section": false,
        "izom_propui_hide_selected_storage_section": false,
        "izom_propui_hide_selected_tools_section": false,
        "izom_propui_hide_selected_tools_type_defaults_section": false,
        "izom_propui_hide_selected_tools_copy_settings_section": false,
        "izom_propui_hide_selected_tools_presets_section": false,
        "izom_propui_hide_generated_layout_selected_row_section": false,
        "izom_propui_hide_generated_layout_sync_options_section": false,
        "izom_propui_hide_generated_layout_row_boxes_section": false,
        "izom_propui_hide_editor_settings_display_section": false,
        "izom_propui_hide_editor_settings_entry_list_section": false,
        "izom_propui_hide_editor_settings_confirmations_section": false,
        "izom_propui_hide_editor_settings_json_section": false,
        "izom_propui_hide_editor_settings_defaults_section": false,
        "izom_propui_hide_editor_settings_reset_section": false
      },
      "misc": {
        "izom_propui_editor_section_order_json": "[]",
        "izom_propui_editor_subsection_order_json": "{}"
      }
    },
    "preset_scalar_fields": [
      "string_multiline",
      "string_visible_lines",
      "string_placeholder",
      "text_link_url",
      "prop_id",
      "label",
      "editor_label",
      "description",
      "enum_items_json",
      "default_enum",
      "enum_expanded",
      "native_widget",
      "control_group",
      "native_action",
      "value_preset_name",
      "bone_collection_path",
      "bone_collection_object_path",
      "native_foldout",
      "native_popover",
      "native_popover_compact",
      "compact_control",
      "native_popover_style",
      "native_popover_icon",
      "native_popover_show_label",
      "native_popover_show_keyframes",
      "display_link_label_mode",
      "display_link_tooltip_mode",
      "display_link_use_component_subset",
      "display_link_component_subset_json",
      "text_alignment",
      "text_role",
      "text_alert",
      "text_icon",
      "text_icon_hug_text",
      "text_icon_after",
      "text_icon_after_hug_text",
      "operator_id",
      "operator_icon",
      "operator_icon_value",
      "operator_emboss",
      "operator_depress",
      "operator_enabled",
      "operator_active",
      "operator_context",
      "operator_translate",
      "operator_text_context",
      "operator_search_weight",
      "operator_props_json",
      "operator_report_timing",
      "operator_report_type",
      "operator_report_message",
      "default_float",
      "default_int",
      "default_bool",
      "default_string",
      "datablock_id_type",
      "default_datablock_name",
      "default_datablock_path",
      "python_default_expression",
      "default_float_array",
      "default_int_array",
      "default_bool_array",
      "min_float",
      "max_float",
      "min_int",
      "max_int",
      "slider",
      "alert_style",
      "bool_ui_style",
      "bool_icon_true",
      "bool_icon_false",
      "value_label_layout",
      "multi_component_layout",
      "multi_component_draw_mode",
      "stacked_label_use_text_style",
      "array_component_label_style",
      "array_component_label_custom_base",
      "array_component_label_01",
      "array_component_label_02",
      "array_component_label_03",
      "array_component_label_04",
      "array_component_label_05",
      "array_component_label_06",
      "array_component_label_07",
      "array_component_label_08",
      "array_component_label_09",
      "array_component_label_10",
      "array_component_label_11",
      "array_component_label_12",
      "array_component_label_13",
      "array_component_label_14",
      "array_component_label_15",
      "array_component_label_16",
      "array_component_label_17",
      "array_component_label_18",
      "array_component_label_19",
      "array_component_label_20",
      "array_component_label_21",
      "array_component_label_22",
      "array_component_label_23",
      "array_component_label_24",
      "array_component_label_25",
      "array_component_label_26",
      "array_component_label_27",
      "array_component_label_28",
      "array_component_label_29",
      "array_component_label_30",
      "array_component_label_31",
      "array_component_label_32",
      "use_value_labels",
      "value_labels_use_component",
      "value_labels_component_index",
      "use_bool_state_labels",
      "bool_label_true",
      "bool_label_false",
      "use_other_entry_labels",
      "text_use_other_entry_labels",
      "use_soft_limits",
      "soft_min_float",
      "soft_max_float",
      "soft_min_int",
      "soft_max_int",
      "step_float",
      "step_int",
      "precision",
      "array_element_type",
      "array_size",
      "float_subtype",
      "float_array_subtype",
      "library_overridable",
      "custom_source",
      "custom_internal_control",
      "custom_owner_path",
      "custom_prop_name",
      "custom_use_component",
      "custom_component_index",
      "custom_detected_value_kind",
      "custom_detected_component_count",
      "custom_detected_array_subtype",
      "custom_path_readonly",
      "custom_path_error",
      "bool_child_visibility",
      "number_child_visibility",
      "visibility_inheritance_depth",
      "visibility_use_component",
      "visibility_component_index",
      "shared_row_hidden_mode",
      "visibility_match_float",
      "visibility_match_int",
      "visibility_match_text",
      "visibility_match_float_array",
      "visibility_match_int_array",
      "visibility_match_bool_array",
      "visibility_range_max_float",
      "visibility_range_max_int",
      "bool_child_availability",
      "number_child_availability",
      "availability_inheritance_depth",
      "availability_use_component",
      "availability_component_index",
      "availability_match_float",
      "availability_match_int",
      "availability_match_text",
      "availability_match_float_array",
      "availability_match_int_array",
      "availability_match_bool_array",
      "availability_range_max_float",
      "availability_range_max_int"
    ],
    "preset_fields": [
      "string_multiline",
      "string_visible_lines",
      "string_placeholder",
      "text_link_url",
      "prop_id",
      "label",
      "editor_label",
      "description",
      "enum_items_json",
      "default_enum",
      "enum_expanded",
      "native_widget",
      "control_group",
      "native_action",
      "value_preset_name",
      "bone_collection_path",
      "bone_collection_object_path",
      "native_foldout",
      "native_popover",
      "native_popover_compact",
      "compact_control",
      "native_popover_style",
      "native_popover_icon",
      "native_popover_show_label",
      "native_popover_show_keyframes",
      "display_link_label_mode",
      "display_link_tooltip_mode",
      "display_link_use_component_subset",
      "display_link_component_subset_json",
      "text_alignment",
      "text_role",
      "text_alert",
      "text_icon",
      "text_icon_hug_text",
      "text_icon_after",
      "text_icon_after_hug_text",
      "operator_id",
      "operator_icon",
      "operator_icon_value",
      "operator_emboss",
      "operator_depress",
      "operator_enabled",
      "operator_active",
      "operator_context",
      "operator_translate",
      "operator_text_context",
      "operator_search_weight",
      "operator_props_json",
      "operator_report_timing",
      "operator_report_type",
      "operator_report_message",
      "default_float",
      "default_int",
      "default_bool",
      "default_string",
      "datablock_id_type",
      "default_datablock_name",
      "default_datablock_path",
      "python_default_expression",
      "default_float_array",
      "default_int_array",
      "default_bool_array",
      "min_float",
      "max_float",
      "min_int",
      "max_int",
      "slider",
      "alert_style",
      "bool_ui_style",
      "bool_icon_true",
      "bool_icon_false",
      "value_label_layout",
      "multi_component_layout",
      "multi_component_draw_mode",
      "stacked_label_use_text_style",
      "array_component_label_style",
      "array_component_label_custom_base",
      "array_component_label_01",
      "array_component_label_02",
      "array_component_label_03",
      "array_component_label_04",
      "array_component_label_05",
      "array_component_label_06",
      "array_component_label_07",
      "array_component_label_08",
      "array_component_label_09",
      "array_component_label_10",
      "array_component_label_11",
      "array_component_label_12",
      "array_component_label_13",
      "array_component_label_14",
      "array_component_label_15",
      "array_component_label_16",
      "array_component_label_17",
      "array_component_label_18",
      "array_component_label_19",
      "array_component_label_20",
      "array_component_label_21",
      "array_component_label_22",
      "array_component_label_23",
      "array_component_label_24",
      "array_component_label_25",
      "array_component_label_26",
      "array_component_label_27",
      "array_component_label_28",
      "array_component_label_29",
      "array_component_label_30",
      "array_component_label_31",
      "array_component_label_32",
      "use_value_labels",
      "value_labels_use_component",
      "value_labels_component_index",
      "use_bool_state_labels",
      "bool_label_true",
      "bool_label_false",
      "use_other_entry_labels",
      "text_use_other_entry_labels",
      "use_soft_limits",
      "soft_min_float",
      "soft_max_float",
      "soft_min_int",
      "soft_max_int",
      "step_float",
      "step_int",
      "precision",
      "array_element_type",
      "array_size",
      "float_subtype",
      "float_array_subtype",
      "library_overridable",
      "custom_source",
      "custom_internal_control",
      "custom_owner_path",
      "custom_prop_name",
      "custom_use_component",
      "custom_component_index",
      "custom_detected_value_kind",
      "custom_detected_component_count",
      "custom_detected_array_subtype",
      "custom_path_readonly",
      "custom_path_error",
      "bool_child_visibility",
      "number_child_visibility",
      "visibility_inheritance_depth",
      "visibility_use_component",
      "visibility_component_index",
      "shared_row_hidden_mode",
      "visibility_match_float",
      "visibility_match_int",
      "visibility_match_text",
      "visibility_match_float_array",
      "visibility_match_int_array",
      "visibility_match_bool_array",
      "visibility_range_max_float",
      "visibility_range_max_int",
      "bool_child_availability",
      "number_child_availability",
      "availability_inheritance_depth",
      "availability_use_component",
      "availability_component_index",
      "availability_match_float",
      "availability_match_int",
      "availability_match_text",
      "availability_match_float_array",
      "availability_match_int_array",
      "availability_match_bool_array",
      "availability_range_max_float",
      "availability_range_max_int",
      "value_labels",
      "other_value_labels"
    ],
    "legacy_or_derived_fields": [
      "custom_detected_array_subtype",
      "custom_detected_component_count",
      "custom_detected_value_kind",
      "custom_path_error",
      "custom_path_readonly",
      "display_link_component_subset",
      "native_widget",
      "operator_icon_value",
      "operator_search_weight"
    ]
  },
  "free": {
    "package": "izom_propui_free",
    "entry_fields": {
      "uid": {
        "default": "",
        "type": "string",
        "label": "UID",
        "description": "Internal stable identifier used for tree parenting",
        "rna_type": "STRING",
        "generated": true
      },
      "parent_uid": {
        "default": "",
        "type": "string",
        "label": "Parent UID",
        "description": "Internal parent link for Entry List hierarchy",
        "rna_type": "STRING"
      },
      "prop_id": {
        "default": "prop_1",
        "type": "string",
        "label": "Property ID",
        "description": "Custom-property key stored on the resolved target owner. Property IDs must be unique per target; duplicate names are auto-suffixed",
        "rna_type": "STRING"
      },
      "label": {
        "default": "Property 1",
        "type": "string",
        "label": "Label",
        "description": "User-facing label shown in the generated UI. You can also edit it directly in the Entry List",
        "rna_type": "STRING"
      },
      "editor_label": {
        "default": "",
        "type": "string",
        "label": "Editor Label",
        "description": "Optional editor-only name used in izom PropUI lists without changing generated labels or custom properties",
        "rna_type": "STRING"
      },
      "description": {
        "default": "",
        "type": "string",
        "label": "Tooltip",
        "description": "Static tooltip shown for this property in the generated UI",
        "rna_type": "STRING"
      },
      "prop_type": {
        "default": "FLOAT",
        "type": "string",
        "label": "Type",
        "description": "Entry type used by the generated UI and property builder",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FLOAT",
            "label": "Float",
            "description": "Floating-point custom property"
          },
          {
            "id": "INT",
            "label": "Integer",
            "description": "Integer custom property"
          },
          {
            "id": "BOOL",
            "label": "Boolean",
            "description": "Boolean custom property"
          },
          {
            "id": "ARRAY",
            "label": "Array",
            "description": "Typed float, integer, or boolean array custom property with selectable subtype and size"
          },
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Text-only entry shown in the generated UI without an interactable property"
          }
        ]
      },
      "text_alignment": {
        "default": "LEFT",
        "type": "string",
        "label": "Alignment",
        "description": "How this text block is aligned in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LEFT",
            "label": "Left",
            "description": "Align the text to the left side of the row"
          },
          {
            "id": "CENTER",
            "label": "Center",
            "description": "Align the text to the center of the row"
          },
          {
            "id": "RIGHT",
            "label": "Right",
            "description": "Align the text to the right side of the row"
          }
        ]
      },
      "text_role": {
        "default": "TEXT",
        "type": "string",
        "label": "Role",
        "description": "Choose whether this text entry draws text, a divider, or generated-row space",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Draw a text label row"
          },
          {
            "id": "DIVIDER",
            "label": "Divider",
            "description": "Draw a single generated-row divider line"
          },
          {
            "id": "SPACER",
            "label": "Spacer",
            "description": "Draw empty generated-row space"
          }
        ]
      },
      "text_alert": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this text block with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "text_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Icon",
        "description": "Optional Blender icon drawn before this text block",
        "rna_type": "STRING"
      },
      "text_icon_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the before icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "text_icon_after": {
        "default": "NONE",
        "type": "string",
        "label": "After Icon",
        "description": "Optional Blender icon drawn after this text block",
        "rna_type": "STRING"
      },
      "text_icon_after_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the after icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "default_float": {
        "default": 0.0,
        "type": "number",
        "label": "Default",
        "description": "Default float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "default_int": {
        "default": 0,
        "type": "integer",
        "label": "Default",
        "description": "Default integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "default_bool": {
        "default": false,
        "type": "boolean",
        "label": "Default",
        "description": "Default boolean value for this generated custom property",
        "rna_type": "BOOLEAN"
      },
      "default_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Default",
        "description": "Default float values for this generated array custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "default_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Default",
        "description": "Default integer values for this generated array custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "default_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Default",
        "description": "Default boolean values for this generated array custom property",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "min_float": {
        "default": 0.0,
        "type": "number",
        "label": "Min",
        "description": "Minimum float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Max",
        "description": "Maximum float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "min_int": {
        "default": 0,
        "type": "integer",
        "label": "Min",
        "description": "Minimum integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "max_int": {
        "default": 5,
        "type": "integer",
        "label": "Max",
        "description": "Maximum integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "ui_order": {
        "default": 1,
        "type": "integer",
        "label": "UI Order",
        "description": "Internal stored order used by the izom PropUI editor",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "display_order": {
        "default": 1,
        "type": "integer",
        "label": "Display Order",
        "description": "Internal generated row order used by the generated UI",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 2147483647
      },
      "row_slot": {
        "default": 1,
        "type": "integer",
        "label": "Column",
        "description": "1-based left-to-right column inside a shared generated row",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 2147483647
      },
      "slider": {
        "default": true,
        "type": "boolean",
        "label": "Use Slider",
        "description": "Show numeric generated properties and custom IDProperty paths as sliders. Enabling this turns off Soft Limits. Hidden for native RNA paths whose widget style Blender controls internally",
        "rna_type": "BOOLEAN"
      },
      "alert_style": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this generated property control with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "value_label_layout": {
        "default": "INLINE",
        "type": "string",
        "label": "Label Layout",
        "description": "How scalar labels should be placed in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INLINE",
            "label": "One Row",
            "description": "Draw the label and value in one generated UI row"
          },
          {
            "id": "SPLIT_LABEL",
            "label": "One Row, Split Label",
            "description": "Use Blender's property-split row so the label sits to the left of the value field or checkbox"
          },
          {
            "id": "LABEL_ABOVE",
            "label": "Label Above",
            "description": "Draw the label above the value field in the generated UI"
          }
        ]
      },
      "multi_component_layout": {
        "default": "INLINE_LABEL",
        "type": "string",
        "label": "Multi-Component Layout",
        "description": "How vector-like values should be drawn: inline, with split labels, with label above, or on separate lines inside the same cell",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INLINE",
            "label": "One Row",
            "description": "Draw array components inline in one generated UI row"
          },
          {
            "id": "SPLIT_LABEL",
            "label": "One Row, Split Label",
            "description": "Use Blender's split-label style for the main label while keeping the value in the same generated UI row"
          },
          {
            "id": "INLINE_LABEL",
            "label": "One Row, Label Above",
            "description": "Draw the label above one inline component row inside the same generated UI cell"
          },
          {
            "id": "STACKED",
            "label": "Separate Rows",
            "description": "Draw array components on separate lines inside the same generated UI cell"
          },
          {
            "id": "STACKED_SPLIT_LABEL",
            "label": "Separate Rows, Split Main Label",
            "description": "Use Blender's split-label style for the main label while keeping component labels with the value controls"
          },
          {
            "id": "STACKED_COMPONENT_SPLIT_LABEL",
            "label": "Separate Rows, Split Component Labels",
            "description": "Draw the main label above, then use Blender's split-label style on each component row"
          }
        ]
      },
      "multi_component_draw_mode": {
        "default": "WIDGET",
        "type": "string",
        "label": "Draw Mode",
        "description": "For color and direction subtypes, choose Blender's native whole-value control or individual component fields",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "WIDGET",
            "label": "Native Control",
            "description": "Use Blender native whole-value controls for color and direction subtypes"
          },
          {
            "id": "COMPONENTS",
            "label": "Component Fields",
            "description": "Draw individual component fields"
          }
        ]
      },
      "use_value_labels": {
        "default": false,
        "type": "boolean",
        "label": "Dynamic Labels",
        "description": "Change the visible label based on this entry's current value",
        "rna_type": "BOOLEAN"
      },
      "value_labels_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, integer-array, or boolean-array values, evaluate Dynamic Labels from one chosen component or channel instead of matching the whole value",
        "rna_type": "BOOLEAN"
      },
      "value_labels_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by this entry's Dynamic Labels while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "use_bool_state_labels": {
        "default": false,
        "type": "boolean",
        "label": "Per State Labels",
        "description": "Change the visible label based on whether this boolean is on or off",
        "rna_type": "BOOLEAN"
      },
      "bool_label_true": {
        "default": "",
        "type": "string",
        "label": "When On",
        "description": "Label to show when this boolean is on",
        "rna_type": "STRING"
      },
      "bool_label_false": {
        "default": "",
        "type": "string",
        "label": "When Off",
        "description": "Label to show when this boolean is off",
        "rna_type": "STRING"
      },
      "use_soft_limits": {
        "default": false,
        "type": "boolean",
        "label": "Soft Limits",
        "description": "Use separate soft min/max limits in the UI. Enabling this turns off Use Slider",
        "rna_type": "BOOLEAN"
      },
      "soft_min_float": {
        "default": 0.0,
        "type": "number",
        "label": "Soft Min",
        "description": "Soft minimum float value used by the generated custom-property UI",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "soft_max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Soft Max",
        "description": "Soft maximum float value used by the generated custom-property UI",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "soft_min_int": {
        "default": 0,
        "type": "integer",
        "label": "Soft Min",
        "description": "Soft minimum integer value used by the generated custom-property UI",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "soft_max_int": {
        "default": 5,
        "type": "integer",
        "label": "Soft Max",
        "description": "Soft maximum integer value used by the generated custom-property UI",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "step_float": {
        "default": 0.1,
        "type": "number",
        "label": "Step",
        "description": "Native Blender float custom-property step metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "FLOAT",
        "minimum": 0.009999999776482582,
        "maximum": 100.0
      },
      "step_int": {
        "default": 1,
        "type": "integer",
        "label": "Step",
        "description": "Native Blender integer custom-property step metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 100
      },
      "precision": {
        "default": 3,
        "type": "integer",
        "label": "Precision",
        "description": "Native Blender float custom-property precision metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 6
      },
      "array_element_type": {
        "default": "FLOAT",
        "type": "string",
        "label": "Element Type",
        "description": "Element type stored by this generated array property",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FLOAT",
            "label": "Float",
            "description": "Array of floating-point values"
          },
          {
            "id": "INT",
            "label": "Integer",
            "description": "Array of integer values"
          },
          {
            "id": "BOOL",
            "label": "Boolean",
            "description": "Array of boolean values"
          }
        ]
      },
      "array_size": {
        "default": 4,
        "type": "integer",
        "label": "Size",
        "description": "Number of visible elements in this array property",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "float_subtype": {
        "default": "NONE",
        "type": "string",
        "label": "Subtype",
        "description": "Native Blender float custom-property subtype",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NONE",
            "label": "None",
            "description": "No special float subtype"
          },
          {
            "id": "PIXEL",
            "label": "Pixel",
            "description": "Pixel value"
          },
          {
            "id": "UNSIGNED",
            "label": "Unsigned",
            "description": "Unsigned number"
          },
          {
            "id": "PERCENTAGE",
            "label": "Percentage",
            "description": "Percentage"
          },
          {
            "id": "FACTOR",
            "label": "Factor",
            "description": "Factor"
          },
          {
            "id": "ANGLE",
            "label": "Angle",
            "description": "Angle in radians"
          },
          {
            "id": "TIME",
            "label": "Time (Scene Relative)",
            "description": "Time in scene frames converted to seconds"
          },
          {
            "id": "TIME_ABSOLUTE",
            "label": "Time (Absolute)",
            "description": "Time in seconds"
          },
          {
            "id": "DISTANCE",
            "label": "Distance",
            "description": "Distance value"
          },
          {
            "id": "DISTANCE_CAMERA",
            "label": "Camera Distance",
            "description": "Camera distance value"
          },
          {
            "id": "POWER",
            "label": "Power",
            "description": "Power value"
          },
          {
            "id": "TEMPERATURE",
            "label": "Temperature",
            "description": "Temperature value"
          },
          {
            "id": "WAVELENGTH",
            "label": "Wavelength",
            "description": "Wavelength value"
          },
          {
            "id": "COLOR_TEMPERATURE",
            "label": "Color Temperature",
            "description": "Color temperature value"
          },
          {
            "id": "FREQUENCY",
            "label": "Frequency",
            "description": "Frequency value"
          }
        ]
      },
      "float_array_subtype": {
        "default": "NONE",
        "type": "string",
        "label": "Subtype",
        "description": "Native Blender float array subtype applied to the generated custom property",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NONE",
            "label": "None",
            "description": "No special array subtype behavior"
          },
          {
            "id": "COLOR",
            "label": "Linear Color",
            "description": "Color in the linear space"
          },
          {
            "id": "COLOR_GAMMA",
            "label": "Gamma-Corrected Color",
            "description": "Color in the gamma corrected space"
          },
          {
            "id": "TRANSLATION",
            "label": "Translation",
            "description": "Translation"
          },
          {
            "id": "DIRECTION",
            "label": "Direction",
            "description": "Direction"
          },
          {
            "id": "VELOCITY",
            "label": "Velocity",
            "description": "Velocity"
          },
          {
            "id": "ACCELERATION",
            "label": "Acceleration",
            "description": "Acceleration"
          },
          {
            "id": "EULER",
            "label": "Euler Angles",
            "description": "Euler rotation angles in radians"
          },
          {
            "id": "QUATERNION",
            "label": "Quaternion Rotation",
            "description": "Quaternion rotation"
          },
          {
            "id": "AXISANGLE",
            "label": "Axis-Angle",
            "description": "Angle and axis to rotate around"
          },
          {
            "id": "XYZ",
            "label": "XYZ",
            "description": "XYZ"
          }
        ]
      },
      "library_overridable": {
        "default": true,
        "type": "boolean",
        "label": "Library Overridable",
        "description": "Mark this generated custom property as library-overridable",
        "rna_type": "BOOLEAN"
      },
      "bool_child_visibility": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Show Child",
        "description": "When this child entry should be shown, based on its parent boolean value",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always show this child property"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When Parent Is On",
            "description": "Show only when the parent boolean is enabled"
          },
          {
            "id": "WHEN_FALSE",
            "label": "When Parent Is Off",
            "description": "Show only when the parent boolean is disabled"
          }
        ]
      },
      "number_child_visibility": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Show Child",
        "description": "When this child entry should be shown, based on its parent numeric value",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always show this child property"
          },
          {
            "id": "EQUAL",
            "label": "When Parent Equals",
            "description": "Show only when the parent equals a specific value"
          },
          {
            "id": "GREATER",
            "label": "When Parent Is At Least",
            "description": "Show only when the parent is at or above a specific value"
          },
          {
            "id": "LESS",
            "label": "When Parent Is At Most",
            "description": "Show only when the parent is at or below a specific value"
          },
          {
            "id": "RANGE",
            "label": "When Parent In Range",
            "description": "Show only when the parent is within a specific range"
          }
        ]
      },
      "visibility_inheritance_depth": {
        "default": 1,
        "type": "integer",
        "label": "Chain",
        "description": "How many visibility rules this entry uses in the generated UI chain. 1 = parent only, 2 = parent + parent's rule, higher numbers add upstream rules. The editor shows the full parent chain; the generated UI can only use ancestors that are actually present there",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 12
      },
      "visibility_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, or integer-array parents, evaluate Child Visibility from one chosen component or channel instead of matching the whole parent value",
        "rna_type": "BOOLEAN"
      },
      "visibility_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by Child Visibility while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "visibility_match_float": {
        "default": 0.0,
        "type": "number",
        "label": "Compare Value",
        "description": "Comparison value used against the parent float property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "visibility_match_int": {
        "default": 0,
        "type": "integer",
        "label": "Compare Value",
        "description": "Comparison value used against the parent integer property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "visibility_match_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Compare Float Array",
        "description": "Exact float-array value used against a parent array property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "visibility_match_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Compare Int Array",
        "description": "Exact integer-array value used against a parent array property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "visibility_match_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Compare Bool Array",
        "description": "Exact boolean-array value used against a parent array property",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "visibility_range_max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Range Max",
        "description": "Upper bound of the visibility range for the parent float property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "visibility_range_max_int": {
        "default": 0,
        "type": "integer",
        "label": "Range Max",
        "description": "Upper bound of the visibility range for the parent integer property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_labels": {
        "default": [],
        "type": "array",
        "label": "value_labels",
        "description": "",
        "rna_type": "COLLECTION"
      }
    },
    "settings": {
      "izom_propui_generated_panel_tab": {
        "default": "Controls",
        "type": "string",
        "label": "Generated Tab",
        "description": "Sidebar tab/category used when this generated UI appears in editor sidebars",
        "rna_type": "STRING"
      },
      "izom_propui_generated_panel_title": {
        "default": "Custom Controls",
        "type": "string",
        "label": "Generated Panel Title",
        "description": "Title shown on the generated panel",
        "rna_type": "STRING"
      },
      "izom_propui_default_target_owner_path": {
        "default": "",
        "type": "string",
        "label": "Property Storage",
        "description": "Blender data path to the owner where generated managed custom properties live",
        "rna_type": "STRING"
      },
      "izom_propui_replace_storage_on_generate": {
        "default": false,
        "type": "boolean",
        "label": "Replace Storage on Generate",
        "description": "When enabled, Generate UI first removes every custom property from the Property Storage target, then recreates only the properties managed by the current PropUI setup. Disable this to keep other existing custom properties when generating",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_clean_old_targets_on_generate": {
        "default": true,
        "type": "boolean",
        "label": "Clean Old Targets on Generate",
        "description": "When enabled, Generate UI removes matching managed PropUI properties from old targets that no longer own those entries",
        "rna_type": "BOOLEAN"
      }
    },
    "layout_row_fields": {
      "row_height_scale": 1.0,
      "row_inset_left_enabled": false,
      "row_inset_left_amount": 1.5
    },
    "serialized_entry_fields": [
      "uid",
      "parent_uid",
      "prop_id",
      "label",
      "editor_label",
      "description",
      "prop_type",
      "text_alignment",
      "text_role",
      "text_alert",
      "text_icon",
      "text_icon_hug_text",
      "text_icon_after",
      "text_icon_after_hug_text",
      "default_float",
      "default_int",
      "default_bool",
      "default_float_array",
      "default_int_array",
      "default_bool_array",
      "min_float",
      "max_float",
      "min_int",
      "max_int",
      "ui_order",
      "display_order",
      "row_slot",
      "slider",
      "alert_style",
      "value_label_layout",
      "multi_component_layout",
      "multi_component_draw_mode",
      "use_value_labels",
      "value_labels_use_component",
      "value_labels_component_index",
      "use_bool_state_labels",
      "bool_label_true",
      "bool_label_false",
      "use_soft_limits",
      "soft_min_float",
      "soft_max_float",
      "soft_min_int",
      "soft_max_int",
      "step_float",
      "step_int",
      "precision",
      "array_element_type",
      "array_size",
      "float_subtype",
      "float_array_subtype",
      "library_overridable",
      "bool_child_visibility",
      "number_child_visibility",
      "visibility_inheritance_depth",
      "visibility_use_component",
      "visibility_component_index",
      "visibility_match_float",
      "visibility_match_int",
      "visibility_match_float_array",
      "visibility_match_int_array",
      "visibility_match_bool_array",
      "visibility_range_max_float",
      "visibility_range_max_int"
    ],
    "entry_types": [
      "FLOAT",
      "INT",
      "BOOL",
      "ARRAY",
      "TEXT"
    ],
    "value_label_fields": {
      "uid": {
        "default": "",
        "type": "string",
        "label": "UID",
        "description": "Internal stable identifier used for editor selection",
        "rna_type": "STRING"
      },
      "rule_kind": {
        "default": "LABEL",
        "type": "string",
        "label": "Row Type",
        "description": "Choose whether this row applies a label override or resets to the current fallback label for this rule set",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LABEL",
            "label": "Label Override",
            "description": "Use this row label as the override result"
          },
          {
            "id": "FALLBACK",
            "label": "Fallback",
            "description": "Reset to the current fallback label for this rule set instead of using an override label"
          }
        ]
      },
      "match_mode": {
        "default": "GREATER",
        "type": "string",
        "label": "Match",
        "description": "How this row compares numeric values. Dynamic Labels use the first matching row from top to bottom",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "EQUAL",
            "label": "Equals",
            "description": "Match only when the value equals this value"
          },
          {
            "id": "GREATER",
            "label": "At Least",
            "description": "Match when the value is at or above this value"
          },
          {
            "id": "LESS",
            "label": "At Most",
            "description": "Match when the value is at or below this value"
          },
          {
            "id": "RANGE",
            "label": "In Range",
            "description": "Match when the value is between the two values"
          }
        ]
      },
      "label": {
        "default": "",
        "type": "string",
        "label": "Label",
        "description": "Label to use when this row matches",
        "rna_type": "STRING"
      },
      "value_float": {
        "default": 0.0,
        "type": "number",
        "label": "Value",
        "description": "Primary comparison value for this row",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_int": {
        "default": 0,
        "type": "integer",
        "label": "Value",
        "description": "Primary comparison value for this row",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_range_float": {
        "default": 1.0,
        "type": "number",
        "label": "Range End",
        "description": "Second range value when Match is In Range",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_range_int": {
        "default": 0,
        "type": "integer",
        "label": "Range End",
        "description": "Second range value when Match is In Range",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "From Float Array",
        "description": "Exact float array value to match when this entry resolves to a float array",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "value_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "From Int Array",
        "description": "Exact integer-array value to match when this entry resolves to an integer array",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "value_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "From Bool Array",
        "description": "Exact boolean-array value to match when this entry resolves to a boolean array",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "target_value_float": {
        "default": 0.0,
        "type": "number",
        "label": "This Entry Value",
        "description": "Primary comparison value for this entry's own float value",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "target_value_int": {
        "default": 0,
        "type": "integer",
        "label": "This Entry Value",
        "description": "Primary comparison value for this entry's own integer value",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "target_value_range_float": {
        "default": 1.0,
        "type": "number",
        "label": "This Entry Range End",
        "description": "Second range value for this entry's own float value when Match is In Range",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "target_value_range_int": {
        "default": 0,
        "type": "integer",
        "label": "This Entry Range End",
        "description": "Second range value for this entry's own integer value when Match is In Range",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "target_value_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "This Entry Float Array",
        "description": "Exact float array value this entry must have for the bucket to apply",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "target_value_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "This Entry Int Array",
        "description": "Exact integer-array value this entry must have for the bucket to apply",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "target_value_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "This Entry Bool Array",
        "description": "Exact boolean-array value this entry must have for the bucket to apply",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "use_source_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, integer-array, or boolean-array values, evaluate this rule from one chosen component or channel instead of matching the whole value",
        "rna_type": "BOOLEAN"
      },
      "source_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by this rule while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "source_bool_state": {
        "default": "WHEN_TRUE",
        "type": "string",
        "label": "When Component Is",
        "description": "Boolean state to match when the selected component is a boolean",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "WHEN_FALSE",
            "label": "When Off",
            "description": "Match when the selected boolean component is off"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When On",
            "description": "Match when the selected boolean component is on"
          }
        ]
      }
    },
    "legacy_or_derived_fields": []
  },
  "rigify": {
    "package": "rigify.feature_sets.izom_propui_rigify",
    "entry_fields": {
      "uid": {
        "default": "",
        "type": "string",
        "label": "UID",
        "description": "Internal stable identifier used for tree parenting",
        "rna_type": "STRING",
        "generated": true
      },
      "parent_uid": {
        "default": "",
        "type": "string",
        "label": "Parent UID",
        "description": "Internal parent link for Entry List hierarchy",
        "rna_type": "STRING"
      },
      "prop_id": {
        "default": "prop_1",
        "type": "string",
        "label": "Property ID",
        "description": "Custom-property key stored on the resolved target owner. Property IDs must be unique per target; duplicate names are auto-suffixed",
        "rna_type": "STRING"
      },
      "label": {
        "default": "Property 1",
        "type": "string",
        "label": "Label",
        "description": "User-facing label shown in the generated UI. You can also edit it directly in the Entry List",
        "rna_type": "STRING"
      },
      "editor_label": {
        "default": "",
        "type": "string",
        "label": "Editor Label",
        "description": "Optional editor-only name used in izom PropUI Rigify lists without changing generated labels or custom properties",
        "rna_type": "STRING"
      },
      "description": {
        "default": "",
        "type": "string",
        "label": "Tooltip",
        "description": "Static tooltip shown for this property in the generated UI",
        "rna_type": "STRING"
      },
      "prop_type": {
        "default": "FLOAT",
        "type": "string",
        "label": "Type",
        "description": "Entry type used by the generated UI and property builder",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FLOAT",
            "label": "Float",
            "description": "Floating-point custom property"
          },
          {
            "id": "INT",
            "label": "Integer",
            "description": "Integer custom property"
          },
          {
            "id": "BOOL",
            "label": "Boolean",
            "description": "Boolean custom property"
          },
          {
            "id": "STRING",
            "label": "String",
            "description": "Text custom property"
          },
          {
            "id": "DATA_BLOCK",
            "label": "Data-Block",
            "description": "Data-block custom property with selectable ID type"
          },
          {
            "id": "PYTHON",
            "label": "Python",
            "description": "Python-value custom property for unsupported nested IDProperty data"
          },
          {
            "id": "ARRAY",
            "label": "Array",
            "description": "Typed float, integer, or boolean array custom property with selectable subtype and size"
          },
          {
            "id": "DISPLAY_LINK",
            "label": "Display Link",
            "description": "Draw an existing managed PropUI property again with separate display, label, dynamic label, and condition settings"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Reference an existing Blender RNA property or internal generated UI control"
          },
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Text-only entry shown in the generated UI without an interactable property"
          },
          {
            "id": "OPERATOR",
            "label": "Operator Button",
            "description": "Button that runs a Blender or feature-set operator by operator ID"
          },
          {
            "id": "ENUM",
            "label": "Dropdown",
            "description": "Native custom property with stable named choices"
          }
        ]
      },
      "linked_entry_uid": {
        "default": "",
        "type": "string",
        "label": "Linked Entry",
        "description": "Entry List item whose property this Display Link should draw",
        "rna_type": "STRING"
      },
      "display_link_label_mode": {
        "default": "SOURCE",
        "type": "string",
        "label": "Label Source",
        "description": "Choose whether this Display Link uses the source entry label or its own custom label. Custom can be left blank to draw no label",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "SOURCE",
            "label": "Source Entry",
            "description": "Use the linked source entry label"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Use this Display Link label exactly. Leave it blank to draw no label"
          }
        ]
      },
      "display_link_tooltip_mode": {
        "default": "SOURCE",
        "type": "string",
        "label": "Tooltip Source",
        "description": "Choose whether this Display Link uses the source entry tooltip or its own custom tooltip. Custom can be left blank to draw no tooltip",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "SOURCE",
            "label": "Source Entry",
            "description": "Use the linked source entry tooltip"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Use this Display Link tooltip exactly. Leave it blank to draw no tooltip"
          }
        ]
      },
      "display_link_use_component_subset": {
        "default": false,
        "type": "boolean",
        "label": "Component Subset",
        "description": "Draw only selected source components through this Display Link",
        "rna_type": "BOOLEAN"
      },
      "display_link_component_subset_json": {
        "default": "[]",
        "type": "string",
        "label": "Component Subset Data",
        "description": "Internal serialized Display Link component subset",
        "rna_type": "STRING"
      },
      "display_link_component_subset": {
        "default": [],
        "type": "array",
        "label": "display_link_component_subset",
        "description": "",
        "rna_type": "COLLECTION"
      },
      "text_alignment": {
        "default": "LEFT",
        "type": "string",
        "label": "Alignment",
        "description": "How this text block is aligned in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LEFT",
            "label": "Left",
            "description": "Align the text to the left side of the row"
          },
          {
            "id": "CENTER",
            "label": "Center",
            "description": "Align the text to the center of the row"
          },
          {
            "id": "RIGHT",
            "label": "Right",
            "description": "Align the text to the right side of the row"
          }
        ]
      },
      "text_role": {
        "default": "TEXT",
        "type": "string",
        "label": "Role",
        "description": "Choose whether this text entry draws text, a divider, or generated-row space",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Draw a text label row"
          },
          {
            "id": "DIVIDER",
            "label": "Divider",
            "description": "Draw a single generated-row divider line"
          },
          {
            "id": "SPACER",
            "label": "Spacer",
            "description": "Draw empty generated-row space"
          }
        ]
      },
      "text_alert": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this text block with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "text_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Icon",
        "description": "Optional Blender icon drawn before this text block",
        "rna_type": "STRING"
      },
      "text_icon_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the before icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "text_icon_after": {
        "default": "NONE",
        "type": "string",
        "label": "After Icon",
        "description": "Optional Blender icon drawn after this text block",
        "rna_type": "STRING"
      },
      "text_icon_after_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the after icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "operator_id": {
        "default": "",
        "type": "string",
        "label": "Operator ID / Call",
        "description": "Paste an operator ID like object.delete or a full bpy.ops call; keyword arguments are moved to Operator Properties JSON",
        "rna_type": "STRING"
      },
      "operator_icon": {
        "default": "PLAY",
        "type": "string",
        "label": "Icon",
        "description": "Optional Blender icon drawn on this operator button",
        "rna_type": "STRING"
      },
      "operator_icon_value": {
        "default": 0,
        "type": "integer",
        "label": "Custom Icon Value",
        "description": "Advanced Blender icon_value override. Leave at 0 to use the selected icon",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 2147483647
      },
      "operator_emboss": {
        "default": true,
        "type": "boolean",
        "label": "Emboss",
        "description": "Draw the standard Blender button body",
        "rna_type": "BOOLEAN"
      },
      "operator_depress": {
        "default": false,
        "type": "boolean",
        "label": "Pressed Visual",
        "description": "Draw the button as pressed without storing a toggle state",
        "rna_type": "BOOLEAN"
      },
      "operator_enabled": {
        "default": true,
        "type": "boolean",
        "label": "Enabled",
        "description": "Allow this generated operator button to be clickable",
        "rna_type": "BOOLEAN"
      },
      "operator_active": {
        "default": true,
        "type": "boolean",
        "label": "Active",
        "description": "Draw this generated operator button as active",
        "rna_type": "BOOLEAN"
      },
      "operator_context": {
        "default": "INVOKE_DEFAULT",
        "type": "string",
        "label": "Run As",
        "description": "Blender operator context used when this generated button runs",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INVOKE_DEFAULT",
            "label": "Invoke Default",
            "description": "Run the operator through Blender invoke behavior"
          },
          {
            "id": "EXEC_DEFAULT",
            "label": "Execute Default",
            "description": "Run the operator directly through Blender execute behavior"
          },
          {
            "id": "INVOKE_REGION_WIN",
            "label": "Invoke Region Window",
            "description": "Invoke using the current region window context"
          },
          {
            "id": "EXEC_REGION_WIN",
            "label": "Execute Region Window",
            "description": "Execute using the current region window context"
          },
          {
            "id": "INVOKE_REGION_CHANNELS",
            "label": "Invoke Region Channels",
            "description": "Invoke using the current region channels context"
          },
          {
            "id": "EXEC_REGION_CHANNELS",
            "label": "Execute Region Channels",
            "description": "Execute using the current region channels context"
          },
          {
            "id": "INVOKE_REGION_PREVIEW",
            "label": "Invoke Region Preview",
            "description": "Invoke using the current region preview context"
          },
          {
            "id": "EXEC_REGION_PREVIEW",
            "label": "Execute Region Preview",
            "description": "Execute using the current region preview context"
          },
          {
            "id": "INVOKE_AREA",
            "label": "Invoke Area",
            "description": "Invoke using the current area context"
          },
          {
            "id": "EXEC_AREA",
            "label": "Execute Area",
            "description": "Execute using the current area context"
          },
          {
            "id": "INVOKE_SCREEN",
            "label": "Invoke Screen",
            "description": "Invoke using the current screen context"
          },
          {
            "id": "EXEC_SCREEN",
            "label": "Execute Screen",
            "description": "Execute using the current screen context"
          }
        ]
      },
      "operator_translate": {
        "default": true,
        "type": "boolean",
        "label": "Translate Text",
        "description": "Allow Blender UI translation for this button text",
        "rna_type": "BOOLEAN"
      },
      "operator_text_context": {
        "default": "",
        "type": "string",
        "label": "Text Context",
        "description": "Optional Blender translation context for this button text",
        "rna_type": "STRING"
      },
      "operator_search_weight": {
        "default": 0.0,
        "type": "number",
        "label": "Search Weight",
        "description": "Advanced Blender menu search weighting for this operator button",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "operator_props_json": {
        "default": "{}",
        "type": "string",
        "label": "Operator Properties JSON",
        "description": "Optional JSON object of operator property values assigned when drawing the button",
        "rna_type": "STRING"
      },
      "operator_report_timing": {
        "default": "OFF",
        "type": "string",
        "label": "Notification",
        "description": "Optional Blender report shown after this operator button is clicked",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "OFF",
            "label": "No Notification",
            "description": "Do not show a Blender report when this operator button is clicked"
          },
          {
            "id": "ALWAYS",
            "label": "Always After Click",
            "description": "Show a Blender report after the operator finishes or fails"
          },
          {
            "id": "SUCCESS",
            "label": "On Success Only",
            "description": "Show a Blender report only when the operator finishes successfully"
          },
          {
            "id": "FAILURE",
            "label": "On Failure Only",
            "description": "Show a Blender report only when the operator fails or is cancelled"
          }
        ]
      },
      "operator_report_type": {
        "default": "INFO",
        "type": "string",
        "label": "Report Type",
        "description": "Native Blender report type used for this operator button notification",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INFO",
            "label": "Info",
            "description": "Show the notification as an info report"
          },
          {
            "id": "WARNING",
            "label": "Warning",
            "description": "Show the notification as a warning report"
          },
          {
            "id": "ERROR",
            "label": "Error",
            "description": "Show the notification as an error report"
          }
        ]
      },
      "operator_report_message": {
        "default": "",
        "type": "string",
        "label": "Message",
        "description": "Notification message shown after this operator button is clicked",
        "rna_type": "STRING"
      },
      "default_float": {
        "default": 0.0,
        "type": "number",
        "label": "Default",
        "description": "Default float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "enum_items_json": {
        "default": "[{\"id\":\"FIRST\",\"label\":\"First\",\"value\":0},{\"id\":\"SECOND\",\"label\":\"Second\",\"value\":1}]",
        "type": "string",
        "label": "Dropdown Choices",
        "description": "",
        "rna_type": "STRING"
      },
      "default_enum": {
        "default": 0,
        "type": "integer",
        "label": "Default Choice Value",
        "description": "",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "enum_expanded": {
        "default": false,
        "type": "boolean",
        "label": "Expanded Choices",
        "description": "Use native enum buttons instead of a dropdown",
        "rna_type": "BOOLEAN"
      },
      "native_widget": {
        "default": "AUTO",
        "type": "string",
        "label": "Detected Native Widget",
        "description": "",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "AUTO",
            "label": "Automatic",
            "description": ""
          },
          {
            "id": "COLOR_RAMP",
            "label": "Color Ramp",
            "description": ""
          },
          {
            "id": "CURVE_MAPPING",
            "label": "Curve Mapping",
            "description": ""
          }
        ]
      },
      "control_group": {
        "default": "",
        "type": "string",
        "label": "Control Group",
        "description": "Entries with the same name share Reset, Key/Unkey and Save/Apply Values actions. Add buttons through Entry Tools > Add Control Group Actions; naming a group does not change the layout",
        "rna_type": "STRING"
      },
      "native_action": {
        "default": "NONE",
        "type": "string",
        "label": "Action",
        "description": "",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NONE",
            "label": "None",
            "description": ""
          },
          {
            "id": "RESET_GROUP",
            "label": "Reset Group",
            "description": ""
          },
          {
            "id": "KEY_GROUP",
            "label": "Key Group",
            "description": ""
          },
          {
            "id": "UNKEY_GROUP",
            "label": "Unkey Group",
            "description": ""
          },
          {
            "id": "SAVE_VALUES",
            "label": "Save Values",
            "description": ""
          },
          {
            "id": "APPLY_VALUES",
            "label": "Apply Values",
            "description": ""
          },
          {
            "id": "SELECT_COLLECTION",
            "label": "Select Collection",
            "description": ""
          },
          {
            "id": "DESELECT_COLLECTION",
            "label": "Deselect Collection",
            "description": ""
          }
        ]
      },
      "value_preset_name": {
        "default": "Preset",
        "type": "string",
        "label": "Value Preset",
        "description": "",
        "rna_type": "STRING"
      },
      "bone_collection_path": {
        "default": "",
        "type": "string",
        "label": "Bone Collection Path",
        "description": "Validated full RNA path to a Bone Collection",
        "rna_type": "STRING"
      },
      "bone_collection_object_path": {
        "default": "",
        "type": "string",
        "label": "Collection Armature Path",
        "description": "",
        "rna_type": "STRING"
      },
      "native_foldout": {
        "default": false,
        "type": "boolean",
        "label": "Native Foldout",
        "description": "Collapse this one control inside a native full-width foldout. Use Containers for sections of controls. Requires a single top-level row outside Row Boxes",
        "rna_type": "BOOLEAN"
      },
      "native_popover": {
        "default": false,
        "type": "boolean",
        "label": "Native Popover",
        "description": "Offer this control in a native popover",
        "rna_type": "BOOLEAN"
      },
      "native_popover_compact": {
        "default": false,
        "type": "boolean",
        "label": "Compact Popup",
        "description": "Use a smaller popup. Dropdown also requires Compact Button: Blender keeps attached popovers at least as wide as their trigger. Button style allows independent popup width",
        "rna_type": "BOOLEAN"
      },
      "compact_control": {
        "default": false,
        "type": "boolean",
        "label": "Compact Layout",
        "description": "Use the control's natural width inside its layout cell instead of stretching it",
        "rna_type": "BOOLEAN"
      },
      "native_popover_style": {
        "default": "DROPDOWN",
        "type": "string",
        "label": "Popover Button Style",
        "description": "",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "DROPDOWN",
            "label": "Dropdown",
            "description": "Use Blender's native attached popover dropdown"
          },
          {
            "id": "BUTTON",
            "label": "Button",
            "description": "Show a normal Blender button with independent popup sizing"
          }
        ]
      },
      "native_popover_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Popover Icon",
        "description": "",
        "rna_type": "STRING"
      },
      "native_popover_show_label": {
        "default": true,
        "type": "boolean",
        "label": "Show Label in Popup",
        "description": "Use the configured label layout inside the popup; disable to show only the control",
        "rna_type": "BOOLEAN"
      },
      "native_popover_show_keyframes": {
        "default": false,
        "type": "boolean",
        "label": "Keyframe Buttons",
        "description": "Show Blender animation diamonds next to animatable values inside this popover",
        "rna_type": "BOOLEAN"
      },
      "default_int": {
        "default": 0,
        "type": "integer",
        "label": "Default",
        "description": "Default integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "default_bool": {
        "default": false,
        "type": "boolean",
        "label": "Default",
        "description": "Default boolean value for this generated custom property",
        "rna_type": "BOOLEAN"
      },
      "default_string": {
        "default": "",
        "type": "string",
        "label": "Default",
        "description": "Default string value for this generated custom property",
        "rna_type": "STRING"
      },
      "string_multiline": {
        "default": false,
        "type": "boolean",
        "label": "Multiline",
        "description": "Use a multiline text editor when available; use a regular string field on older Blender versions",
        "rna_type": "BOOLEAN"
      },
      "string_visible_lines": {
        "default": 4,
        "type": "integer",
        "label": "Visible Lines",
        "description": "Initial height of the multiline text editor",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 20
      },
      "string_placeholder": {
        "default": "",
        "type": "string",
        "label": "Placeholder",
        "description": "Hint shown when the multiline string is empty",
        "rna_type": "STRING"
      },
      "text_link_url": {
        "default": "",
        "type": "string",
        "label": "Link URL",
        "description": "Optional HTTP or HTTPS link for this Text entry; leave empty for ordinary text",
        "rna_type": "STRING"
      },
      "datablock_id_type": {
        "default": "OBJECT",
        "type": "string",
        "label": "ID Type",
        "description": "Data-block type accepted by this generated custom property",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ACTION",
            "label": "Action",
            "description": "Action data-block"
          },
          {
            "id": "ARMATURE",
            "label": "Armature",
            "description": "Armature data-block"
          },
          {
            "id": "BRUSH",
            "label": "Brush",
            "description": "Brush data-block"
          },
          {
            "id": "CACHEFILE",
            "label": "Cache File",
            "description": "Cache file data-block"
          },
          {
            "id": "CAMERA",
            "label": "Camera",
            "description": "Camera data-block"
          },
          {
            "id": "COLLECTION",
            "label": "Collection",
            "description": "Collection data-block"
          },
          {
            "id": "CURVE",
            "label": "Curve",
            "description": "Curve data-block"
          },
          {
            "id": "CURVES",
            "label": "Curves",
            "description": "Curves data-block"
          },
          {
            "id": "FONT",
            "label": "Font",
            "description": "Font curve data-block"
          },
          {
            "id": "GREASEPENCIL",
            "label": "Grease Pencil (Legacy Alias)",
            "description": "Grease pencil data-block"
          },
          {
            "id": "GREASEPENCIL_V3",
            "label": "Grease Pencil (Current)",
            "description": "Grease pencil v3 data-block"
          },
          {
            "id": "IMAGE",
            "label": "Image",
            "description": "Image data-block"
          },
          {
            "id": "KEY",
            "label": "Key",
            "description": "Shape key data-block"
          },
          {
            "id": "LATTICE",
            "label": "Lattice",
            "description": "Lattice data-block"
          },
          {
            "id": "LIBRARY",
            "label": "Library",
            "description": "Library data-block"
          },
          {
            "id": "LIGHT",
            "label": "Light",
            "description": "Light data-block"
          },
          {
            "id": "LIGHT_PROBE",
            "label": "Light Probe",
            "description": "Light probe data-block"
          },
          {
            "id": "LINESTYLE",
            "label": "Line Style",
            "description": "Freestyle line style data-block"
          },
          {
            "id": "MASK",
            "label": "Mask",
            "description": "Mask data-block"
          },
          {
            "id": "MATERIAL",
            "label": "Material",
            "description": "Material data-block"
          },
          {
            "id": "MESH",
            "label": "Mesh",
            "description": "Mesh data-block"
          },
          {
            "id": "META",
            "label": "Metaball",
            "description": "Metaball data-block"
          },
          {
            "id": "MOVIECLIP",
            "label": "Movie Clip",
            "description": "Movie clip data-block"
          },
          {
            "id": "NODETREE",
            "label": "Node Tree",
            "description": "Node tree data-block"
          },
          {
            "id": "OBJECT",
            "label": "Object",
            "description": "Object data-block"
          },
          {
            "id": "PAINTCURVE",
            "label": "Paint Curve",
            "description": "Paint curve data-block"
          },
          {
            "id": "PALETTE",
            "label": "Palette",
            "description": "Palette data-block"
          },
          {
            "id": "PARTICLE",
            "label": "Particle",
            "description": "Particle settings data-block"
          },
          {
            "id": "POINTCLOUD",
            "label": "Point Cloud",
            "description": "Point cloud data-block"
          },
          {
            "id": "SCENE",
            "label": "Scene",
            "description": "Scene data-block"
          },
          {
            "id": "SCREEN",
            "label": "Screen",
            "description": "Screen data-block"
          },
          {
            "id": "SOUND",
            "label": "Sound",
            "description": "Sound data-block"
          },
          {
            "id": "SPEAKER",
            "label": "Speaker",
            "description": "Speaker data-block"
          },
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Text data-block"
          },
          {
            "id": "TEXTURE",
            "label": "Texture",
            "description": "Texture data-block"
          },
          {
            "id": "VOLUME",
            "label": "Volume",
            "description": "Volume data-block"
          },
          {
            "id": "WINDOWMANAGER",
            "label": "Window Manager",
            "description": "Window manager data-block"
          },
          {
            "id": "WORKSPACE",
            "label": "Workspace",
            "description": "Workspace data-block"
          },
          {
            "id": "WORLD",
            "label": "World",
            "description": "World data-block"
          }
        ]
      },
      "default_datablock_name": {
        "default": "",
        "type": "string",
        "label": "Default",
        "description": "Optional default data-block name for this generated custom property",
        "rna_type": "STRING"
      },
      "default_datablock_path": {
        "default": "",
        "type": "string",
        "label": "Default Data-Block Path",
        "description": "Internal resolved data-block path for this entry's default value",
        "rna_type": "STRING"
      },
      "python_default_expression": {
        "default": "{}",
        "type": "string",
        "label": "Value",
        "description": "Python literal expression assigned as this generated custom property's default value",
        "rna_type": "STRING"
      },
      "default_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Default",
        "description": "Default float values for this generated array custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "default_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Default",
        "description": "Default integer values for this generated array custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "default_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Default",
        "description": "Default boolean values for this generated array custom property",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "min_float": {
        "default": 0.0,
        "type": "number",
        "label": "Min",
        "description": "Minimum float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Max",
        "description": "Maximum float value for this generated custom property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "min_int": {
        "default": 0,
        "type": "integer",
        "label": "Min",
        "description": "Minimum integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "max_int": {
        "default": 5,
        "type": "integer",
        "label": "Max",
        "description": "Maximum integer value for this generated custom property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "ui_order": {
        "default": 1,
        "type": "integer",
        "label": "UI Order",
        "description": "Internal stored order used by the izom PropUI Rigify editor",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "display_order": {
        "default": 1,
        "type": "integer",
        "label": "Display Order",
        "description": "Internal generated row order used by the generated UI",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 2147483647
      },
      "row_slot": {
        "default": 1,
        "type": "integer",
        "label": "Column",
        "description": "1-based left-to-right column inside a shared generated row",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 2147483647
      },
      "slider": {
        "default": true,
        "type": "boolean",
        "label": "Use Slider",
        "description": "Show numeric generated properties and custom IDProperty paths as sliders. Enabling this turns off Soft Limits. Hidden for native RNA paths whose widget style Blender controls internally",
        "rna_type": "BOOLEAN"
      },
      "alert_style": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this generated property control with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "bool_ui_style": {
        "default": "CHECKBOX",
        "type": "string",
        "label": "Style",
        "description": "How this boolean should look in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "CHECKBOX",
            "label": "Checkbox",
            "description": "Show this boolean as a standard checkbox"
          },
          {
            "id": "TOGGLE_BUTTON",
            "label": "Toggle Button",
            "description": "Show this boolean as a button-style toggle"
          }
        ]
      },
      "bool_icon_true": {
        "default": "NONE",
        "type": "string",
        "label": "On Icon",
        "description": "Optional Blender icon to draw while this toggle-style boolean is enabled",
        "rna_type": "STRING"
      },
      "bool_icon_false": {
        "default": "NONE",
        "type": "string",
        "label": "Off Icon",
        "description": "Optional Blender icon to draw while this toggle-style boolean is disabled",
        "rna_type": "STRING"
      },
      "value_label_layout": {
        "default": "INLINE",
        "type": "string",
        "label": "Label Layout",
        "description": "How scalar labels should be placed in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INLINE",
            "label": "One Row",
            "description": "Draw the label and value in one generated UI row"
          },
          {
            "id": "SPLIT_LABEL",
            "label": "One Row, Split Label",
            "description": "Use Blender's property-split row so the label sits to the left of the value field or checkbox"
          },
          {
            "id": "LABEL_ABOVE",
            "label": "Label Above",
            "description": "Draw the label above the value field in the generated UI"
          }
        ]
      },
      "multi_component_layout": {
        "default": "INLINE",
        "type": "string",
        "label": "Multi-Component Layout",
        "description": "How vector-like values should be drawn: inline, split label, label above, or separate component rows inside the same cell",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "INLINE",
            "label": "One Row",
            "description": "Draw all array/vector components inline in one generated UI row"
          },
          {
            "id": "SPLIT_LABEL",
            "label": "One Row, Split Label",
            "description": "Use Blender's split-label style for the main label while keeping the value in the same generated UI row"
          },
          {
            "id": "INLINE_LABEL",
            "label": "One Row, Label Above",
            "description": "Draw the label above one inline component row inside the same generated UI cell"
          },
          {
            "id": "STACKED",
            "label": "Separate Rows",
            "description": "Draw array/vector components on separate lines inside the same generated UI cell"
          },
          {
            "id": "STACKED_SPLIT_LABEL",
            "label": "Separate Rows, Split Main Label",
            "description": "Use Blender's split-label style for the main label while keeping component labels with the value controls"
          },
          {
            "id": "STACKED_COMPONENT_SPLIT_LABEL",
            "label": "Separate Rows, Split Component Labels",
            "description": "Draw the main label above, then use Blender's split-label style on each component row"
          }
        ]
      },
      "multi_component_draw_mode": {
        "default": "WIDGET",
        "type": "string",
        "label": "Draw Mode",
        "description": "For color and direction subtypes, choose Blender's native whole-value control or individual component fields",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "WIDGET",
            "label": "Native Control",
            "description": "Use Blender native whole-value controls for color and direction subtypes"
          },
          {
            "id": "COMPONENTS",
            "label": "Component Fields",
            "description": "Draw individual component fields so PropUI component labels and slider settings apply"
          }
        ]
      },
      "stacked_label_use_text_style": {
        "default": false,
        "type": "boolean",
        "label": "Styled Label Above",
        "description": "Render the label above the control as a text block so role, alignment, icons, and alert styling can be edited",
        "rna_type": "BOOLEAN"
      },
      "array_component_label_style": {
        "default": "AUTO",
        "type": "string",
        "label": "Component Labels",
        "description": "Label style used for array, vector, and color components in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "AUTO",
            "label": "Auto",
            "description": "Use labels from the array subtype, such as X/Y/Z, R/G/B/A, or numbered labels"
          },
          {
            "id": "NONE",
            "label": "No Labels",
            "description": "Draw array components with empty labels"
          },
          {
            "id": "NUMBERED",
            "label": "Numbered",
            "description": "Label array components 1, 2, 3, and so on"
          },
          {
            "id": "XYZ",
            "label": "XYZ",
            "description": "Label array components X, Y, Z, W, then numbered fallbacks"
          },
          {
            "id": "ABC",
            "label": "ABC",
            "description": "Label array components A, B, C, and so on"
          },
          {
            "id": "GREEK",
            "label": "Greek",
            "description": "Label array components with Greek symbols"
          },
          {
            "id": "DEGREES",
            "label": "Degrees",
            "description": "Label array components with degree marks"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Start from a base style and override individual component labels"
          }
        ]
      },
      "array_component_label_custom_base": {
        "default": "AUTO",
        "type": "string",
        "label": "Custom Label Base",
        "description": "Base component-label style used before applying custom component label overrides",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "AUTO",
            "label": "Auto",
            "description": "Use labels from the array subtype, such as X/Y/Z, R/G/B/A, or numbered labels"
          },
          {
            "id": "NONE",
            "label": "No Labels",
            "description": "Draw array components with empty labels"
          },
          {
            "id": "NUMBERED",
            "label": "Numbered",
            "description": "Label array components 1, 2, 3, and so on"
          },
          {
            "id": "XYZ",
            "label": "XYZ",
            "description": "Label array components X, Y, Z, W, then numbered fallbacks"
          },
          {
            "id": "ABC",
            "label": "ABC",
            "description": "Label array components A, B, C, and so on"
          },
          {
            "id": "GREEK",
            "label": "Greek",
            "description": "Label array components with Greek symbols"
          },
          {
            "id": "DEGREES",
            "label": "Degrees",
            "description": "Label array components with degree marks"
          }
        ]
      },
      "array_component_label_01": {
        "default": "",
        "type": "string",
        "label": "Component 1",
        "description": "Custom generated UI label for array component 1. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_02": {
        "default": "",
        "type": "string",
        "label": "Component 2",
        "description": "Custom generated UI label for array component 2. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_03": {
        "default": "",
        "type": "string",
        "label": "Component 3",
        "description": "Custom generated UI label for array component 3. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_04": {
        "default": "",
        "type": "string",
        "label": "Component 4",
        "description": "Custom generated UI label for array component 4. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_05": {
        "default": "",
        "type": "string",
        "label": "Component 5",
        "description": "Custom generated UI label for array component 5. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_06": {
        "default": "",
        "type": "string",
        "label": "Component 6",
        "description": "Custom generated UI label for array component 6. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_07": {
        "default": "",
        "type": "string",
        "label": "Component 7",
        "description": "Custom generated UI label for array component 7. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_08": {
        "default": "",
        "type": "string",
        "label": "Component 8",
        "description": "Custom generated UI label for array component 8. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_09": {
        "default": "",
        "type": "string",
        "label": "Component 9",
        "description": "Custom generated UI label for array component 9. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_10": {
        "default": "",
        "type": "string",
        "label": "Component 10",
        "description": "Custom generated UI label for array component 10. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_11": {
        "default": "",
        "type": "string",
        "label": "Component 11",
        "description": "Custom generated UI label for array component 11. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_12": {
        "default": "",
        "type": "string",
        "label": "Component 12",
        "description": "Custom generated UI label for array component 12. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_13": {
        "default": "",
        "type": "string",
        "label": "Component 13",
        "description": "Custom generated UI label for array component 13. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_14": {
        "default": "",
        "type": "string",
        "label": "Component 14",
        "description": "Custom generated UI label for array component 14. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_15": {
        "default": "",
        "type": "string",
        "label": "Component 15",
        "description": "Custom generated UI label for array component 15. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_16": {
        "default": "",
        "type": "string",
        "label": "Component 16",
        "description": "Custom generated UI label for array component 16. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_17": {
        "default": "",
        "type": "string",
        "label": "Component 17",
        "description": "Custom generated UI label for array component 17. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_18": {
        "default": "",
        "type": "string",
        "label": "Component 18",
        "description": "Custom generated UI label for array component 18. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_19": {
        "default": "",
        "type": "string",
        "label": "Component 19",
        "description": "Custom generated UI label for array component 19. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_20": {
        "default": "",
        "type": "string",
        "label": "Component 20",
        "description": "Custom generated UI label for array component 20. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_21": {
        "default": "",
        "type": "string",
        "label": "Component 21",
        "description": "Custom generated UI label for array component 21. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_22": {
        "default": "",
        "type": "string",
        "label": "Component 22",
        "description": "Custom generated UI label for array component 22. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_23": {
        "default": "",
        "type": "string",
        "label": "Component 23",
        "description": "Custom generated UI label for array component 23. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_24": {
        "default": "",
        "type": "string",
        "label": "Component 24",
        "description": "Custom generated UI label for array component 24. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_25": {
        "default": "",
        "type": "string",
        "label": "Component 25",
        "description": "Custom generated UI label for array component 25. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_26": {
        "default": "",
        "type": "string",
        "label": "Component 26",
        "description": "Custom generated UI label for array component 26. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_27": {
        "default": "",
        "type": "string",
        "label": "Component 27",
        "description": "Custom generated UI label for array component 27. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_28": {
        "default": "",
        "type": "string",
        "label": "Component 28",
        "description": "Custom generated UI label for array component 28. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_29": {
        "default": "",
        "type": "string",
        "label": "Component 29",
        "description": "Custom generated UI label for array component 29. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_30": {
        "default": "",
        "type": "string",
        "label": "Component 30",
        "description": "Custom generated UI label for array component 30. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_31": {
        "default": "",
        "type": "string",
        "label": "Component 31",
        "description": "Custom generated UI label for array component 31. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "array_component_label_32": {
        "default": "",
        "type": "string",
        "label": "Component 32",
        "description": "Custom generated UI label for array component 32. Leave empty to use the selected base style",
        "rna_type": "STRING"
      },
      "hidden_in_editor": {
        "default": false,
        "type": "boolean",
        "label": "Hide In Editor",
        "description": "Hide this entry from the izom PropUI Rigify editor list until you unhide entries",
        "rna_type": "BOOLEAN"
      },
      "use_value_labels": {
        "default": false,
        "type": "boolean",
        "label": "Dynamic Labels",
        "description": "Change the visible label based on this entry's current value",
        "rna_type": "BOOLEAN"
      },
      "value_labels_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, integer-array, or boolean-array values, evaluate Dynamic Labels from one chosen component or channel instead of matching the whole value",
        "rna_type": "BOOLEAN"
      },
      "value_labels_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by this entry's Dynamic Labels while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "use_bool_state_labels": {
        "default": false,
        "type": "boolean",
        "label": "Per State Labels",
        "description": "Change the visible label based on whether this boolean is on or off",
        "rna_type": "BOOLEAN"
      },
      "bool_label_true": {
        "default": "",
        "type": "string",
        "label": "When On",
        "description": "Label to show when this boolean is on",
        "rna_type": "STRING"
      },
      "bool_label_false": {
        "default": "",
        "type": "string",
        "label": "When Off",
        "description": "Label to show when this boolean is off",
        "rna_type": "STRING"
      },
      "use_other_entry_labels": {
        "default": false,
        "type": "boolean",
        "label": "Dynamic Labels by Other Entry",
        "description": "Change this entry's visible label based on another entry's state or value",
        "rna_type": "BOOLEAN"
      },
      "text_use_other_entry_labels": {
        "default": false,
        "type": "boolean",
        "label": "Dynamic Text",
        "description": "Change this text entry based on another entry's state or value",
        "rna_type": "BOOLEAN"
      },
      "use_soft_limits": {
        "default": false,
        "type": "boolean",
        "label": "Soft Limits",
        "description": "Use separate soft min/max limits in the UI. Enabling this turns off Use Slider",
        "rna_type": "BOOLEAN"
      },
      "soft_min_float": {
        "default": 0.0,
        "type": "number",
        "label": "Soft Min",
        "description": "Soft minimum float value used by the generated custom-property UI",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "soft_max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Soft Max",
        "description": "Soft maximum float value used by the generated custom-property UI",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "soft_min_int": {
        "default": 0,
        "type": "integer",
        "label": "Soft Min",
        "description": "Soft minimum integer value used by the generated custom-property UI",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "soft_max_int": {
        "default": 5,
        "type": "integer",
        "label": "Soft Max",
        "description": "Soft maximum integer value used by the generated custom-property UI",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "step_float": {
        "default": 0.1,
        "type": "number",
        "label": "Step",
        "description": "Native Blender float custom-property step metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "FLOAT",
        "minimum": 0.009999999776482582,
        "maximum": 100.0
      },
      "step_int": {
        "default": 1,
        "type": "integer",
        "label": "Step",
        "description": "Native Blender integer custom-property step metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 100
      },
      "precision": {
        "default": 3,
        "type": "integer",
        "label": "Precision",
        "description": "Native Blender float custom-property precision metadata. This affects Blender's property metadata, not the generated row layout",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 6
      },
      "array_element_type": {
        "default": "FLOAT",
        "type": "string",
        "label": "Element Type",
        "description": "Element type stored by this generated array property",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FLOAT",
            "label": "Float",
            "description": "Array of floating-point values"
          },
          {
            "id": "INT",
            "label": "Integer",
            "description": "Array of integer values"
          },
          {
            "id": "BOOL",
            "label": "Boolean",
            "description": "Array of boolean values"
          }
        ]
      },
      "array_size": {
        "default": 4,
        "type": "integer",
        "label": "Size",
        "description": "Number of visible elements in this array property",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "float_subtype": {
        "default": "NONE",
        "type": "string",
        "label": "Subtype",
        "description": "Native Blender float custom-property subtype",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NONE",
            "label": "None",
            "description": "No special float subtype"
          },
          {
            "id": "PIXEL",
            "label": "Pixel",
            "description": "Pixel value"
          },
          {
            "id": "UNSIGNED",
            "label": "Unsigned",
            "description": "Unsigned number"
          },
          {
            "id": "PERCENTAGE",
            "label": "Percentage",
            "description": "Percentage"
          },
          {
            "id": "FACTOR",
            "label": "Factor",
            "description": "Factor"
          },
          {
            "id": "ANGLE",
            "label": "Angle",
            "description": "Angle in radians"
          },
          {
            "id": "TIME",
            "label": "Time (Scene Relative)",
            "description": "Time in scene frames converted to seconds"
          },
          {
            "id": "TIME_ABSOLUTE",
            "label": "Time (Absolute)",
            "description": "Time in seconds"
          },
          {
            "id": "DISTANCE",
            "label": "Distance",
            "description": "Distance value"
          },
          {
            "id": "DISTANCE_CAMERA",
            "label": "Camera Distance",
            "description": "Camera distance value"
          },
          {
            "id": "POWER",
            "label": "Power",
            "description": "Power value"
          },
          {
            "id": "TEMPERATURE",
            "label": "Temperature",
            "description": "Temperature value"
          },
          {
            "id": "WAVELENGTH",
            "label": "Wavelength",
            "description": "Wavelength value"
          },
          {
            "id": "COLOR_TEMPERATURE",
            "label": "Color Temperature",
            "description": "Color temperature value"
          },
          {
            "id": "FREQUENCY",
            "label": "Frequency",
            "description": "Frequency value"
          }
        ]
      },
      "float_array_subtype": {
        "default": "NONE",
        "type": "string",
        "label": "Subtype",
        "description": "Native Blender float array subtype applied to the generated custom property",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NONE",
            "label": "None",
            "description": "No special array subtype behavior"
          },
          {
            "id": "COLOR",
            "label": "Linear Color",
            "description": "Color in the linear space"
          },
          {
            "id": "COLOR_GAMMA",
            "label": "Gamma-Corrected Color",
            "description": "Color in the gamma corrected space"
          },
          {
            "id": "TRANSLATION",
            "label": "Translation",
            "description": "Translation"
          },
          {
            "id": "DIRECTION",
            "label": "Direction",
            "description": "Direction"
          },
          {
            "id": "VELOCITY",
            "label": "Velocity",
            "description": "Velocity"
          },
          {
            "id": "ACCELERATION",
            "label": "Acceleration",
            "description": "Acceleration"
          },
          {
            "id": "EULER",
            "label": "Euler Angles",
            "description": "Euler rotation angles in radians"
          },
          {
            "id": "QUATERNION",
            "label": "Quaternion Rotation",
            "description": "Quaternion rotation (affects NLA blending)"
          },
          {
            "id": "AXISANGLE",
            "label": "Axis-Angle",
            "description": "Angle and axis to rotate around"
          },
          {
            "id": "XYZ",
            "label": "XYZ",
            "description": "XYZ"
          }
        ]
      },
      "library_overridable": {
        "default": true,
        "type": "boolean",
        "label": "Library Overridable",
        "description": "Mark this generated custom property as library-overridable",
        "rna_type": "BOOLEAN"
      },
      "entry_target_owner_path": {
        "default": "",
        "type": "string",
        "label": "Storage Override Path",
        "description": "Internal generated owner path; Rigify generation fills this with the resolved pose-bone storage path",
        "rna_type": "STRING"
      },
      "custom_source": {
        "default": "RNA_PATH",
        "type": "string",
        "label": "Source",
        "description": "Where this custom entry gets its generated UI value from",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "RNA_PATH",
            "label": "RNA Path",
            "description": "Draw an existing Blender RNA property by data path"
          },
          {
            "id": "INTERNAL",
            "label": "Internal Generated UI Control",
            "description": "Draw a built-in generated UI control without a data path"
          }
        ]
      },
      "custom_internal_control": {
        "default": "GENERATED_UI_ENABLED",
        "type": "string",
        "label": "Internal Control",
        "description": "Built-in generated UI control drawn by this custom entry",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "GENERATED_UI_ENABLED",
            "label": "Generated UI Enabled",
            "description": "Show or hide this generated UI"
          },
          {
            "id": "DISABLE_WHILE_TRANSFORMING",
            "label": "Disable While Transforming",
            "description": "Disable this generated UI while Blender is transforming"
          },
          {
            "id": "DISABLE_WHILE_PLAYBACK",
            "label": "Disable While Playback",
            "description": "Disable this generated UI during animation playback"
          }
        ]
      },
      "custom_owner_path": {
        "default": "",
        "type": "string",
        "label": "Custom Owner Path",
        "description": "Stored owner path used by the custom entry runtime",
        "rna_type": "STRING"
      },
      "custom_prop_name": {
        "default": "",
        "type": "string",
        "label": "Custom Property Name",
        "description": "Stored property name used by the custom entry runtime",
        "rna_type": "STRING"
      },
      "custom_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Custom Use Component",
        "description": "Editor-only stored component selection parsed from an indexed custom path",
        "rna_type": "BOOLEAN"
      },
      "custom_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Custom Component",
        "description": "Editor-only stored 1-based component selected by an indexed custom path",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "custom_detected_value_kind": {
        "default": "NONE",
        "type": "string",
        "label": "Custom Value Kind",
        "description": "Editor-only detected runtime value kind for the stored custom path",
        "rna_type": "STRING"
      },
      "custom_detected_component_count": {
        "default": 0,
        "type": "integer",
        "label": "Custom Component Count",
        "description": "Editor-only detected number of visible components for the stored custom path",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 32
      },
      "custom_detected_array_subtype": {
        "default": "NONE",
        "type": "string",
        "label": "Custom Array Subtype",
        "description": "Editor-only detected float-array subtype for the stored custom path",
        "rna_type": "STRING"
      },
      "custom_path_readonly": {
        "default": false,
        "type": "boolean",
        "label": "Custom Path Read Only",
        "description": "Editor-only cached read-only flag for the stored custom path",
        "rna_type": "BOOLEAN"
      },
      "custom_path_error": {
        "default": "",
        "type": "string",
        "label": "Custom Path Error",
        "description": "Editor-only validation error for the entered custom path",
        "rna_type": "STRING"
      },
      "bool_child_visibility": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Show Child",
        "description": "When this child entry should be shown, based on its parent boolean value",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always show this child property"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When Parent Is On",
            "description": "Show only when the parent boolean is enabled"
          },
          {
            "id": "WHEN_FALSE",
            "label": "When Parent Is Off",
            "description": "Show only when the parent boolean is disabled"
          }
        ]
      },
      "number_child_visibility": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Show Child",
        "description": "When this child entry should be shown, based on its parent numeric value",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always show this child property"
          },
          {
            "id": "EQUAL",
            "label": "When Parent Equals",
            "description": "Show only when the parent equals a specific value"
          },
          {
            "id": "GREATER",
            "label": "When Parent Is At Least",
            "description": "Show only when the parent is at or above a specific value"
          },
          {
            "id": "LESS",
            "label": "When Parent Is At Most",
            "description": "Show only when the parent is at or below a specific value"
          },
          {
            "id": "RANGE",
            "label": "When Parent In Range",
            "description": "Show only when the parent is within a specific range"
          }
        ]
      },
      "visibility_inheritance_depth": {
        "default": 1,
        "type": "integer",
        "label": "Chain",
        "description": "How many visibility rules this entry uses in the generated UI chain. 1 = parent only, 2 = parent + parent's rule, higher numbers add upstream rules. The editor shows the full parent chain; the generated UI can only use ancestors that are actually present there",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 12
      },
      "visibility_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, or integer-array parents, evaluate Child Visibility from one chosen component or channel instead of matching the whole parent value",
        "rna_type": "BOOLEAN"
      },
      "visibility_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by Child Visibility while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "shared_row_hidden_mode": {
        "default": "FILL_ROW",
        "type": "string",
        "label": "When Hidden In Shared Row",
        "description": "Choose whether this entry collapses out or keeps an empty slot when child visibility hides it in a shared generated row",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FILL_ROW",
            "label": "Auto Fill Row",
            "description": "When hidden in a shared generated row, collapse this entry so the remaining entries re-pack"
          },
          {
            "id": "RESERVE_SLOT",
            "label": "Keep Empty Slot",
            "description": "When hidden in a shared generated row, keep this entry's slot empty so the row stays stable"
          }
        ]
      },
      "visibility_match_float": {
        "default": 0.0,
        "type": "number",
        "label": "Compare Value",
        "description": "Comparison value used against the parent float property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "visibility_match_int": {
        "default": 0,
        "type": "integer",
        "label": "Compare Value",
        "description": "Comparison value used against the parent integer property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "visibility_match_text": {
        "default": "",
        "type": "string",
        "label": "Compare Value",
        "description": "Exact value used against a parent enum, string, or vector-style property",
        "rna_type": "STRING"
      },
      "visibility_match_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Compare Float Array",
        "description": "Exact float-array value used against a parent array property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "visibility_match_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Compare Int Array",
        "description": "Exact integer-array value used against a parent array property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "visibility_match_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Compare Bool Array",
        "description": "Exact boolean-array value used against a parent array property",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "visibility_range_max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Range Max",
        "description": "Upper bound of the visibility range for the parent float property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "visibility_range_max_int": {
        "default": 0,
        "type": "integer",
        "label": "Range Max",
        "description": "Upper bound of the visibility range for the parent integer property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "bool_child_availability": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Enable Child",
        "description": "When this child entry should be enabled, based on its parent boolean value. Disabled entries are visible but grayed out",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always keep this child property enabled"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When Parent Is On",
            "description": "Enable only when the parent boolean is enabled"
          },
          {
            "id": "WHEN_FALSE",
            "label": "When Parent Is Off",
            "description": "Enable only when the parent boolean is disabled"
          }
        ]
      },
      "number_child_availability": {
        "default": "ALWAYS",
        "type": "string",
        "label": "Enable Child",
        "description": "When this child entry should be enabled, based on its parent numeric value. Disabled entries are visible but grayed out",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ALWAYS",
            "label": "Always",
            "description": "Always keep this child property enabled"
          },
          {
            "id": "EQUAL",
            "label": "When Parent Equals",
            "description": "Enable only when the parent equals a specific value"
          },
          {
            "id": "GREATER",
            "label": "When Parent Is At Least",
            "description": "Enable only when the parent is at or above a specific value"
          },
          {
            "id": "LESS",
            "label": "When Parent Is At Most",
            "description": "Enable only when the parent is at or below a specific value"
          },
          {
            "id": "RANGE",
            "label": "When Parent In Range",
            "description": "Enable only when the parent is within a specific range"
          }
        ]
      },
      "availability_inheritance_depth": {
        "default": 1,
        "type": "integer",
        "label": "Chain",
        "description": "How many availability rules this entry uses in the generated UI chain. 1 = parent only, 2 = parent + parent's rule, higher numbers add upstream rules. The editor shows the full parent chain; the generated UI can only use ancestors that are actually present there",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 12
      },
      "availability_use_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, or integer-array parents, evaluate Child Availability from one chosen component or channel instead of matching the whole parent value",
        "rna_type": "BOOLEAN"
      },
      "availability_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by Child Availability while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "availability_match_float": {
        "default": 0.0,
        "type": "number",
        "label": "Compare Value",
        "description": "Comparison value used against the parent float property for availability",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "availability_match_int": {
        "default": 0,
        "type": "integer",
        "label": "Compare Value",
        "description": "Comparison value used against the parent integer property for availability",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "availability_match_text": {
        "default": "",
        "type": "string",
        "label": "Compare Value",
        "description": "Exact value used against a parent enum, string, or vector-style property for availability",
        "rna_type": "STRING"
      },
      "availability_match_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Compare Float Array",
        "description": "Exact float-array value used against a parent array property for availability",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "availability_match_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Compare Int Array",
        "description": "Exact integer-array value used against a parent array property for availability",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "availability_match_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Compare Bool Array",
        "description": "Exact boolean-array value used against a parent array property for availability",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "availability_range_max_float": {
        "default": 1.0,
        "type": "number",
        "label": "Range Max",
        "description": "Upper bound of the availability range for the parent float property",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "availability_range_max_int": {
        "default": 0,
        "type": "integer",
        "label": "Range Max",
        "description": "Upper bound of the availability range for the parent integer property",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_labels": {
        "default": [],
        "type": "array",
        "label": "value_labels",
        "description": "",
        "rna_type": "COLLECTION"
      },
      "other_value_labels": {
        "default": [],
        "type": "array",
        "label": "other_value_labels",
        "description": "",
        "rna_type": "COLLECTION"
      },
      "entry_prop_bone_override_enabled": {
        "default": false,
        "type": "boolean",
        "label": "Use Prop Bone Override",
        "description": "Store this entry on its own selected bone instead of following the shared Host or One Prop Bone setting",
        "rna_type": "BOOLEAN"
      },
      "entry_prop_bone": {
        "default": "",
        "type": "string",
        "label": "Prop Bone",
        "description": "Exact generated control or metarig bone used while Use Prop Bone Override is enabled",
        "rna_type": "STRING"
      }
    },
    "settings": {},
    "layout_row_fields": {
      "subpanel_uid": "",
      "row_height_scale": 1.0,
      "row_inset_left_enabled": false,
      "row_inset_left_amount": 1.0,
      "row_inset_right_enabled": false,
      "row_inset_right_amount": 1.0
    },
    "serialized_entry_fields": [
      "string_multiline",
      "string_visible_lines",
      "string_placeholder",
      "text_link_url",
      "uid",
      "parent_uid",
      "prop_id",
      "label",
      "editor_label",
      "description",
      "prop_type",
      "enum_items_json",
      "default_enum",
      "enum_expanded",
      "native_widget",
      "control_group",
      "native_action",
      "value_preset_name",
      "bone_collection_path",
      "bone_collection_object_path",
      "native_foldout",
      "native_popover",
      "native_popover_compact",
      "compact_control",
      "native_popover_style",
      "native_popover_icon",
      "native_popover_show_label",
      "native_popover_show_keyframes",
      "linked_entry_uid",
      "display_link_label_mode",
      "display_link_tooltip_mode",
      "display_link_use_component_subset",
      "display_link_component_subset_json",
      "text_alignment",
      "text_role",
      "text_alert",
      "text_icon",
      "text_icon_hug_text",
      "text_icon_after",
      "text_icon_after_hug_text",
      "operator_id",
      "operator_icon",
      "operator_icon_value",
      "operator_emboss",
      "operator_depress",
      "operator_enabled",
      "operator_active",
      "operator_context",
      "operator_translate",
      "operator_text_context",
      "operator_search_weight",
      "operator_props_json",
      "operator_report_timing",
      "operator_report_type",
      "operator_report_message",
      "default_float",
      "default_int",
      "default_bool",
      "default_string",
      "datablock_id_type",
      "default_datablock_name",
      "default_datablock_path",
      "python_default_expression",
      "default_float_array",
      "default_int_array",
      "default_bool_array",
      "min_float",
      "max_float",
      "min_int",
      "max_int",
      "ui_order",
      "display_order",
      "row_slot",
      "slider",
      "alert_style",
      "bool_ui_style",
      "bool_icon_true",
      "bool_icon_false",
      "value_label_layout",
      "multi_component_layout",
      "multi_component_draw_mode",
      "stacked_label_use_text_style",
      "array_component_label_style",
      "array_component_label_custom_base",
      "array_component_label_01",
      "array_component_label_02",
      "array_component_label_03",
      "array_component_label_04",
      "array_component_label_05",
      "array_component_label_06",
      "array_component_label_07",
      "array_component_label_08",
      "array_component_label_09",
      "array_component_label_10",
      "array_component_label_11",
      "array_component_label_12",
      "array_component_label_13",
      "array_component_label_14",
      "array_component_label_15",
      "array_component_label_16",
      "array_component_label_17",
      "array_component_label_18",
      "array_component_label_19",
      "array_component_label_20",
      "array_component_label_21",
      "array_component_label_22",
      "array_component_label_23",
      "array_component_label_24",
      "array_component_label_25",
      "array_component_label_26",
      "array_component_label_27",
      "array_component_label_28",
      "array_component_label_29",
      "array_component_label_30",
      "array_component_label_31",
      "array_component_label_32",
      "hidden_in_editor",
      "use_value_labels",
      "value_labels_use_component",
      "value_labels_component_index",
      "use_bool_state_labels",
      "bool_label_true",
      "bool_label_false",
      "use_other_entry_labels",
      "text_use_other_entry_labels",
      "use_soft_limits",
      "soft_min_float",
      "soft_max_float",
      "soft_min_int",
      "soft_max_int",
      "step_float",
      "step_int",
      "precision",
      "array_element_type",
      "array_size",
      "float_subtype",
      "float_array_subtype",
      "library_overridable",
      "entry_target_owner_path",
      "entry_prop_bone_override_enabled",
      "entry_prop_bone",
      "custom_source",
      "custom_internal_control",
      "custom_owner_path",
      "custom_prop_name",
      "custom_use_component",
      "custom_component_index",
      "custom_detected_value_kind",
      "custom_detected_component_count",
      "custom_detected_array_subtype",
      "custom_path_readonly",
      "custom_path_error",
      "bool_child_visibility",
      "number_child_visibility",
      "visibility_inheritance_depth",
      "visibility_use_component",
      "visibility_component_index",
      "shared_row_hidden_mode",
      "visibility_match_float",
      "visibility_match_int",
      "visibility_match_text",
      "visibility_match_float_array",
      "visibility_match_int_array",
      "visibility_match_bool_array",
      "visibility_range_max_float",
      "visibility_range_max_int",
      "bool_child_availability",
      "number_child_availability",
      "availability_inheritance_depth",
      "availability_use_component",
      "availability_component_index",
      "availability_match_float",
      "availability_match_int",
      "availability_match_text",
      "availability_match_float_array",
      "availability_match_int_array",
      "availability_match_bool_array",
      "availability_range_max_float",
      "availability_range_max_int"
    ],
    "entry_types": [
      "FLOAT",
      "INT",
      "BOOL",
      "STRING",
      "DATA_BLOCK",
      "PYTHON",
      "ARRAY",
      "DISPLAY_LINK",
      "CUSTOM",
      "TEXT",
      "OPERATOR",
      "ENUM"
    ],
    "value_label_fields": {
      "uid": {
        "default": "",
        "type": "string",
        "label": "UID",
        "description": "Internal stable identifier used for editor selection",
        "rna_type": "STRING"
      },
      "rule_kind": {
        "default": "LABEL",
        "type": "string",
        "label": "Row Type",
        "description": "Choose whether this row applies a label override or resets to the current fallback label for this rule set",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LABEL",
            "label": "Label Override",
            "description": "Use this row label as the override result"
          },
          {
            "id": "FALLBACK",
            "label": "Fallback",
            "description": "Reset to the current fallback label for this rule set instead of using an override label"
          }
        ]
      },
      "match_mode": {
        "default": "GREATER",
        "type": "string",
        "label": "Match",
        "description": "How this row compares numeric values. Dynamic Labels use the first matching row from top to bottom",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "EQUAL",
            "label": "Equals",
            "description": "Match only when the value equals this value"
          },
          {
            "id": "GREATER",
            "label": "At Least",
            "description": "Match when the value is at or above this value"
          },
          {
            "id": "LESS",
            "label": "At Most",
            "description": "Match when the value is at or below this value"
          },
          {
            "id": "RANGE",
            "label": "In Range",
            "description": "Match when the value is between the two values"
          }
        ]
      },
      "label": {
        "default": "",
        "type": "string",
        "label": "Label",
        "description": "Override label to use when this row matches",
        "rna_type": "STRING"
      },
      "text_override_style": {
        "default": false,
        "type": "boolean",
        "label": "Override Display Style",
        "description": "When enabled, this conditional rule can override role, alignment, icons, icon attachment, and alert styling instead of only changing the text",
        "rna_type": "BOOLEAN"
      },
      "text_alignment": {
        "default": "LEFT",
        "type": "string",
        "label": "Alignment",
        "description": "How this text block is aligned in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LEFT",
            "label": "Left",
            "description": "Align the text to the left side of the row"
          },
          {
            "id": "CENTER",
            "label": "Center",
            "description": "Align the text to the center of the row"
          },
          {
            "id": "RIGHT",
            "label": "Right",
            "description": "Align the text to the right side of the row"
          }
        ]
      },
      "text_role": {
        "default": "TEXT",
        "type": "string",
        "label": "Role",
        "description": "Choose whether this text rule draws text, a divider, or generated-row space",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Draw a text label row"
          },
          {
            "id": "DIVIDER",
            "label": "Divider",
            "description": "Draw a single generated-row divider line"
          },
          {
            "id": "SPACER",
            "label": "Spacer",
            "description": "Draw empty generated-row space"
          }
        ]
      },
      "text_alert": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this text block with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "text_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Before Icon",
        "description": "Optional Blender icon drawn before this text block",
        "rna_type": "STRING"
      },
      "text_icon_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the before icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "text_icon_after": {
        "default": "NONE",
        "type": "string",
        "label": "After Icon",
        "description": "Optional Blender icon drawn after this text block",
        "rna_type": "STRING"
      },
      "text_icon_after_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the after icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "value_float": {
        "default": 0.0,
        "type": "number",
        "label": "Other Entry Value",
        "description": "Primary comparison value for the chosen other float entry",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_int": {
        "default": 0,
        "type": "integer",
        "label": "Other Entry Value",
        "description": "Primary comparison value for the chosen other integer entry",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_range_float": {
        "default": 1.0,
        "type": "number",
        "label": "Other Entry Range End",
        "description": "Second range value for the chosen other float entry when Match is In Range",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_range_int": {
        "default": 0,
        "type": "integer",
        "label": "Other Entry Range End",
        "description": "Second range value for the chosen other integer entry when Match is In Range",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_text": {
        "default": "",
        "type": "string",
        "label": "Other Entry Value",
        "description": "Exact value to match when the chosen other entry is a string, enum, or vector-style custom entry",
        "rna_type": "STRING"
      },
      "value_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Other Entry Float Array",
        "description": "Exact float array value to match when the chosen other entry resolves to a float array",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "value_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Other Entry Int Array",
        "description": "Exact integer-array value to match when the chosen other entry resolves to an integer array",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "value_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Other Entry Bool Array",
        "description": "Exact boolean-array value to match when the chosen other entry resolves to a boolean array",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "target_value_float": {
        "default": 0.0,
        "type": "number"
      },
      "target_value_int": {
        "default": 0,
        "type": "integer"
      },
      "target_value_range_float": {
        "default": 1.0,
        "type": "number"
      },
      "target_value_range_int": {
        "default": 0,
        "type": "integer"
      },
      "target_value_text": {
        "default": "",
        "type": "string"
      },
      "target_value_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array"
      },
      "target_value_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array"
      },
      "target_value_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array"
      },
      "use_other_entry_labels": {
        "default": false,
        "type": "boolean"
      },
      "source_entry_uid": {
        "default": "",
        "type": "string",
        "label": "Other Entry UID",
        "description": "Internal source entry used by this conditional rule row",
        "rna_type": "STRING"
      },
      "use_source_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, integer-array, or boolean-array values, evaluate this rule from one chosen component or channel instead of matching the whole value",
        "rna_type": "BOOLEAN"
      },
      "source_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by this rule while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "source_bool_state": {
        "default": "WHEN_TRUE",
        "type": "string",
        "label": "When Other Entry Is",
        "description": "Boolean state to match when the selected Other Entry is a boolean",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "WHEN_FALSE",
            "label": "When Off",
            "description": "Match when the selected Other Entry is off"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When On",
            "description": "Match when the selected Other Entry is on"
          }
        ]
      },
      "target_bool_scope": {
        "default": "ANY",
        "type": "string"
      }
    },
    "conditional_label_fields": {
      "uid": {
        "default": "",
        "type": "string",
        "label": "UID",
        "description": "Internal stable identifier used for editor selection",
        "rna_type": "STRING"
      },
      "rule_kind": {
        "default": "LABEL",
        "type": "string",
        "label": "Row Type",
        "description": "Choose whether this row applies a label override or resets to the current fallback label for this rule set",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LABEL",
            "label": "Label Override",
            "description": "Use this row label as the override result"
          },
          {
            "id": "FALLBACK",
            "label": "Fallback",
            "description": "Reset to the current fallback label for this rule set instead of using an override label"
          }
        ]
      },
      "match_mode": {
        "default": "GREATER",
        "type": "string",
        "label": "Match",
        "description": "How this row compares numeric values. Dynamic Labels use the first matching row from top to bottom",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "EQUAL",
            "label": "Equals",
            "description": "Match only when the value equals this value"
          },
          {
            "id": "GREATER",
            "label": "At Least",
            "description": "Match when the value is at or above this value"
          },
          {
            "id": "LESS",
            "label": "At Most",
            "description": "Match when the value is at or below this value"
          },
          {
            "id": "RANGE",
            "label": "In Range",
            "description": "Match when the value is between the two values"
          }
        ]
      },
      "label": {
        "default": "",
        "type": "string",
        "label": "Label",
        "description": "Override label to use when this row matches",
        "rna_type": "STRING"
      },
      "text_override_style": {
        "default": false,
        "type": "boolean",
        "label": "Override Display Style",
        "description": "When enabled, this conditional rule can override role, alignment, icons, icon attachment, and alert styling instead of only changing the text",
        "rna_type": "BOOLEAN"
      },
      "text_alignment": {
        "default": "LEFT",
        "type": "string",
        "label": "Alignment",
        "description": "How this text block is aligned in the generated UI",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "LEFT",
            "label": "Left",
            "description": "Align the text to the left side of the row"
          },
          {
            "id": "CENTER",
            "label": "Center",
            "description": "Align the text to the center of the row"
          },
          {
            "id": "RIGHT",
            "label": "Right",
            "description": "Align the text to the right side of the row"
          }
        ]
      },
      "text_role": {
        "default": "TEXT",
        "type": "string",
        "label": "Role",
        "description": "Choose whether this text rule draws text, a divider, or generated-row space",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Draw a text label row"
          },
          {
            "id": "DIVIDER",
            "label": "Divider",
            "description": "Draw a single generated-row divider line"
          },
          {
            "id": "SPACER",
            "label": "Spacer",
            "description": "Draw empty generated-row space"
          }
        ]
      },
      "text_alert": {
        "default": false,
        "type": "boolean",
        "label": "Alert Style",
        "description": "Draw this text block with Blender's alert styling",
        "rna_type": "BOOLEAN"
      },
      "text_icon": {
        "default": "NONE",
        "type": "string",
        "label": "Before Icon",
        "description": "Optional Blender icon drawn before this text block",
        "rna_type": "STRING"
      },
      "text_icon_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the before icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "text_icon_after": {
        "default": "NONE",
        "type": "string",
        "label": "After Icon",
        "description": "Optional Blender icon drawn after this text block",
        "rna_type": "STRING"
      },
      "text_icon_after_hug_text": {
        "default": true,
        "type": "boolean",
        "label": "Hug Text",
        "description": "For centered text only, keep the after icon attached to the text instead of pinning it to the row edge; left and right aligned text always hugs icons",
        "rna_type": "BOOLEAN"
      },
      "value_float": {
        "default": 0.0,
        "type": "number",
        "label": "Other Entry Value",
        "description": "Primary comparison value for the chosen other float entry",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_int": {
        "default": 0,
        "type": "integer",
        "label": "Other Entry Value",
        "description": "Primary comparison value for the chosen other integer entry",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_range_float": {
        "default": 1.0,
        "type": "number",
        "label": "Other Entry Range End",
        "description": "Second range value for the chosen other float entry when Match is In Range",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38
      },
      "value_range_int": {
        "default": 0,
        "type": "integer",
        "label": "Other Entry Range End",
        "description": "Second range value for the chosen other integer entry when Match is In Range",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "value_text": {
        "default": "",
        "type": "string",
        "label": "Other Entry Value",
        "description": "Exact value to match when the chosen other entry is a string, enum, or vector-style custom entry",
        "rna_type": "STRING"
      },
      "value_float_array": {
        "default": [
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0,
          1.0
        ],
        "type": "array",
        "label": "Other Entry Float Array",
        "description": "Exact float array value to match when the chosen other entry resolves to a float array",
        "rna_type": "FLOAT",
        "minimum": -3.4028234663852886e+38,
        "maximum": 3.4028234663852886e+38,
        "buffer_size": 32
      },
      "value_int_array": {
        "default": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "type": "array",
        "label": "Other Entry Int Array",
        "description": "Exact integer-array value to match when the chosen other entry resolves to an integer array",
        "rna_type": "INT",
        "minimum": -2147483648,
        "maximum": 2147483647,
        "buffer_size": 32
      },
      "value_bool_array": {
        "default": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false
        ],
        "type": "array",
        "label": "Other Entry Bool Array",
        "description": "Exact boolean-array value to match when the chosen other entry resolves to a boolean array",
        "rna_type": "BOOLEAN",
        "buffer_size": 32
      },
      "source_entry_uid": {
        "default": "",
        "type": "string",
        "label": "Other Entry UID",
        "description": "Internal source entry used by this conditional rule row",
        "rna_type": "STRING"
      },
      "use_source_component": {
        "default": false,
        "type": "boolean",
        "label": "Use One Component",
        "description": "For vector, color, integer-array, or boolean-array values, evaluate this rule from one chosen component or channel instead of matching the whole value",
        "rna_type": "BOOLEAN"
      },
      "source_component_index": {
        "default": 1,
        "type": "integer",
        "label": "Component",
        "description": "1-based component or channel used by this rule while Use One Component is enabled",
        "rna_type": "INT",
        "minimum": 1,
        "maximum": 32
      },
      "source_bool_state": {
        "default": "WHEN_TRUE",
        "type": "string",
        "label": "When Other Entry Is",
        "description": "Boolean state to match when the selected Other Entry is a boolean",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "WHEN_FALSE",
            "label": "When Off",
            "description": "Match when the selected Other Entry is off"
          },
          {
            "id": "WHEN_TRUE",
            "label": "When On",
            "description": "Match when the selected Other Entry is on"
          }
        ]
      }
    },
    "editor_settings": {
      "izom_propui_rigify_editor_float_decimals": 3,
      "izom_propui_rigify_editor_location": "RIGIFY",
      "izom_propui_rigify_entry_list_primary_column": "NAME",
      "izom_propui_rigify_generated_layout_primary_column": "NAME",
      "izom_propui_rigify_default_entry_type": "FLOAT",
      "izom_propui_rigify_confirmation_clear_entry_list": "ASK",
      "izom_propui_rigify_confirmation_follow_shared_storage": "ASK",
      "izom_propui_rigify_confirmation_clean_managed_metarig": "ASK",
      "izom_propui_rigify_confirmation_clean_all_metarig": "ASK",
      "izom_propui_rigify_confirmation_reset_current_setup": "ASK",
      "izom_propui_rigify_confirmation_reset_saved_defaults": "ASK",
      "izom_propui_rigify_confirmation_full_factory_reset": "ASK",
      "izom_propui_rigify_confirmation_save_type_default": "ASK",
      "izom_propui_rigify_confirmation_apply_type_default": "ASK",
      "izom_propui_rigify_confirmation_reset_type_default": "ASK",
      "izom_propui_rigify_confirmation_copy_same_type_settings": "ASK",
      "izom_propui_rigify_confirmation_clear_generated_layout": "ASK",
      "izom_propui_rigify_confirmation_clear_row_boxes": "ASK",
      "izom_propui_rigify_confirmation_clear_dynamic_labels": "ASK",
      "izom_propui_rigify_confirmation_reset_editor_settings": "ASK",
      "izom_propui_rigify_confirmation_apply_editor_layout": "ASK",
      "izom_propui_rigify_confirmation_apply_editor_layout_default": "ASK",
      "izom_propui_rigify_confirmation_factory_reset_editor_layout": "ASK",
      "izom_propui_rigify_confirmation_clear_full_setup_default": "ASK",
      "izom_propui_rigify_confirmation_parent_delete": "ASK",
      "izom_propui_rigify_confirmation_subpanel_delete": "ASK",
      "izom_propui_rigify_confirmation_copy_conditions": "ASK",
      "izom_propui_rigify_disable_shortcuts": false,
      "izom_propui_rigify_show_entry_tree_hints": true,
      "izom_propui_rigify_show_all_confirmation_rules": false,
      "izom_propui_rigify_gl_auto_sync_new_entries": false,
      "izom_propui_rigify_gl_add_into_active_row": false,
      "izom_propui_rigify_gl_safe_import": true
    },
    "editor_fields": {
      "izom_propui_rigify_editor_float_decimals": {
        "default": 3,
        "type": "integer",
        "label": "Float Decimals",
        "description": "How many decimals editor float values show while editing in the izom PropUI Rigify editor",
        "rna_type": "INT",
        "minimum": 0,
        "maximum": 6
      },
      "izom_propui_rigify_editor_location": {
        "default": "RIGIFY",
        "type": "string",
        "label": "Editor Lives In",
        "description": "Choose where the izom PropUI Rigify editor is displayed",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "RIGIFY",
            "label": "Rigify Parameters",
            "description": "Show the editor in the active metarig bone Rigify Type parameters"
          },
          {
            "id": "SIDEBAR",
            "label": "3D Viewport Sidebar",
            "description": "Show the editor in the PropUI Rigify tab of the 3D Viewport Sidebar (N-panel)"
          }
        ]
      },
      "izom_propui_rigify_entry_list_primary_column": {
        "default": "NAME",
        "type": "string",
        "label": "Entry List Primary Column",
        "description": "Choose whether the wide leading Entry List column shows the Name or the Property ID",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NAME",
            "label": "Name",
            "description": "Use the wide leading Entry List column for the entry label"
          },
          {
            "id": "PROP_ID",
            "label": "Property ID",
            "description": "Use the wide leading Entry List column for the Property ID instead of the label"
          }
        ]
      },
      "izom_propui_rigify_generated_layout_primary_column": {
        "default": "NAME",
        "type": "string",
        "label": "Generated Layout Primary Column",
        "description": "Choose whether the wide leading Generated Layout column shows the Name or the Property ID",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "NAME",
            "label": "Name",
            "description": "Use the wide leading Generated Layout column for the entry label"
          },
          {
            "id": "PROP_ID",
            "label": "Property ID",
            "description": "Use the wide leading Generated Layout column for the Property ID instead of the label"
          }
        ]
      },
      "izom_propui_rigify_default_entry_type": {
        "default": "FLOAT",
        "type": "string",
        "label": "Default Add Type",
        "description": "Entry type used when adding a new Entry List item",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "FLOAT",
            "label": "Float",
            "description": "Floating-point custom property"
          },
          {
            "id": "INT",
            "label": "Integer",
            "description": "Integer custom property"
          },
          {
            "id": "BOOL",
            "label": "Boolean",
            "description": "Boolean custom property"
          },
          {
            "id": "STRING",
            "label": "String",
            "description": "Text custom property"
          },
          {
            "id": "DATA_BLOCK",
            "label": "Data-Block",
            "description": "Data-block custom property with selectable ID type"
          },
          {
            "id": "PYTHON",
            "label": "Python",
            "description": "Python-value custom property for unsupported nested IDProperty data"
          },
          {
            "id": "ARRAY",
            "label": "Array",
            "description": "Typed float, integer, or boolean array custom property with selectable subtype and size"
          },
          {
            "id": "DISPLAY_LINK",
            "label": "Display Link",
            "description": "Draw an existing managed PropUI property again with separate display, label, dynamic label, and condition settings"
          },
          {
            "id": "CUSTOM",
            "label": "Custom",
            "description": "Reference an existing Blender RNA property or internal generated UI control"
          },
          {
            "id": "TEXT",
            "label": "Text",
            "description": "Text-only entry shown in the generated UI without an interactable property"
          },
          {
            "id": "OPERATOR",
            "label": "Operator Button",
            "description": "Button that runs a Blender or feature-set operator by operator ID"
          },
          {
            "id": "ENUM",
            "label": "Dropdown",
            "description": "Native custom property with stable named choices"
          }
        ]
      },
      "izom_propui_rigify_confirmation_clear_entry_list": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Entry List",
        "description": "Default answer when clearing every Entry List entry",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_follow_shared_storage": {
        "default": "ASK",
        "type": "string",
        "label": "Make All Entries Follow Shared Storage",
        "description": "Default answer when disabling every per-entry Prop Bone Override",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_clean_managed_metarig": {
        "default": "ASK",
        "type": "string",
        "label": "Clean Managed Props Across Metarig",
        "description": "Default answer when removing matching managed Property IDs from every metarig pose bone",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_clean_all_metarig": {
        "default": "ASK",
        "type": "string",
        "label": "Remove All Custom Properties from Metarig",
        "description": "Default answer when removing every custom property from every metarig pose bone",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_reset_current_setup": {
        "default": "ASK",
        "type": "string",
        "label": "Reset Current Setup",
        "description": "Default answer when resetting the current setup back to blank",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_reset_saved_defaults": {
        "default": "ASK",
        "type": "string",
        "label": "Reset Saved Defaults",
        "description": "Default answer when deleting saved editor, editor layout, and full setup defaults",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_full_factory_reset": {
        "default": "ASK",
        "type": "string",
        "label": "Full Factory Reset",
        "description": "Default answer when wiping PropUI editor data from every scene and deleting saved defaults",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_save_type_default": {
        "default": "ASK",
        "type": "string",
        "label": "Save Type Default",
        "description": "Default answer when saving the selected entry's type settings as your personal default",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_apply_type_default": {
        "default": "ASK",
        "type": "string",
        "label": "Apply Type Default",
        "description": "Default answer when applying your saved default for the selected entry type",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_reset_type_default": {
        "default": "ASK",
        "type": "string",
        "label": "Reset Type Default",
        "description": "Default answer when removing your saved default for the selected entry type",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_copy_same_type_settings": {
        "default": "ASK",
        "type": "string",
        "label": "Copy Same-Type Settings",
        "description": "Default answer when copying the selected entry's type settings to all other same-type entries",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_clear_generated_layout": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Generated Layout",
        "description": "Default answer when clearing every Generated Layout entry",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_clear_row_boxes": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Row Boxes",
        "description": "Default answer when clearing every Generated Layout row box",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_clear_dynamic_labels": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Dynamic Labels",
        "description": "Default answer when clearing a Dynamic Labels list",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_reset_editor_settings": {
        "default": "ASK",
        "type": "string",
        "label": "Reset Settings Only",
        "description": "Default answer when resetting editor settings to factory defaults",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_apply_editor_layout": {
        "default": "ASK",
        "type": "string",
        "label": "Apply Editor Layout",
        "description": "Default answer when applying the staged Editor Layout list state",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_apply_editor_layout_default": {
        "default": "ASK",
        "type": "string",
        "label": "Apply Layout Default",
        "description": "Default answer when applying the saved Editor Layout default",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_factory_reset_editor_layout": {
        "default": "ASK",
        "type": "string",
        "label": "Factory Reset Layout",
        "description": "Default answer when resetting Editor Layout to built-in defaults",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_clear_full_setup_default": {
        "default": "ASK",
        "type": "string",
        "label": "Clear Full Setup Default",
        "description": "Default answer when deleting the saved full setup default",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Show the normal confirmation popup"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Run this confirmation action without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel this confirmation action without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_parent_delete": {
        "default": "ASK",
        "type": "string",
        "label": "Parent Delete",
        "description": "Default answer when deleting a parent entry that has children",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when deleting a parent entry with children"
          },
          {
            "id": "DELETE",
            "label": "Delete Parent Only",
            "description": "Delete the parent and promote its children without asking"
          },
          {
            "id": "DELETE_HIERARCHY",
            "label": "Delete Hierarchy",
            "description": "Delete the parent and its child hierarchy without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_subpanel_delete": {
        "default": "ASK",
        "type": "string",
        "label": "Sub-Panel Delete",
        "description": "Default answer when deleting a Generated Layout sub-panel that has rows or nested sub-panels",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask When Needed",
            "description": "Ask when deleting a sub-panel with rows or nested sub-panels"
          },
          {
            "id": "DELETE",
            "label": "Delete Sub-Panel Only",
            "description": "Delete the sub-panel and promote its rows and child sub-panels without asking"
          },
          {
            "id": "DELETE_HIERARCHY",
            "label": "Delete Hierarchy",
            "description": "Delete the sub-panel, nested sub-panels, and their rows without asking"
          }
        ]
      },
      "izom_propui_rigify_confirmation_copy_conditions": {
        "default": "ASK",
        "type": "string",
        "label": "Copy Conditions",
        "description": "Default answer when copying Conditions settings to all siblings or all child entries",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ASK",
            "label": "Ask Every Time",
            "description": "Ask before copying Conditions settings to all siblings or all child entries"
          },
          {
            "id": "CONFIRM",
            "label": "Confirm Automatically",
            "description": "Copy Conditions settings to multiple entries without asking"
          },
          {
            "id": "CANCEL",
            "label": "Cancel Automatically",
            "description": "Cancel copying Conditions settings to multiple entries without asking"
          }
        ]
      },
      "izom_propui_rigify_disable_shortcuts": {
        "default": false,
        "type": "boolean",
        "label": "Disable Keyboard Shortcuts",
        "description": "Completely disable izom PropUI Rigify keyboard shortcuts and hide shortcut-target controls in the editor",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_show_entry_tree_hints": {
        "default": true,
        "type": "boolean",
        "label": "Entry List Tree Hints",
        "description": "Show lightweight parent/child indentation and icons in the flat Entry List without using collapse or hidden-row filtering",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_show_all_confirmation_rules": {
        "default": false,
        "type": "boolean",
        "label": "Show All Confirmation Rules",
        "description": "Show every confirmation rule instead of only customized confirmation overrides",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_gl_auto_sync_new_entries": {
        "default": false,
        "type": "boolean",
        "label": "Auto-Sync New Entries",
        "description": "Automatically add new Entry List entries to Generated Layout when you create them",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_gl_add_into_active_row": {
        "default": false,
        "type": "boolean",
        "label": "Add Into Active Row",
        "description": "When enabled, new Generated Layout entries and imports join the selected row instead of creating a new row",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_gl_safe_import": {
        "default": true,
        "type": "boolean",
        "label": "Safe Import",
        "description": "Prevent importing the same Entry List entry into Generated Layout more than once",
        "rna_type": "BOOLEAN"
      }
    },
    "editor_layout": {
      "expanded": {
        "izom_propui_rigify_editor_section_diagnostics_expanded": true,
        "izom_propui_rigify_editor_section_output_setup_expanded": true,
        "izom_propui_rigify_editor_section_entry_list_expanded": true,
        "izom_propui_rigify_editor_section_selected_entry_expanded": true,
        "izom_propui_rigify_editor_section_generated_layout_expanded": true,
        "izom_propui_rigify_editor_section_editor_settings_expanded": true,
        "izom_propui_rigify_editor_section_editor_layout_expanded": true,
        "izom_propui_rigify_entry_hierarchy_lens_expanded": true,
        "izom_propui_rigify_display_expanded": true,
        "izom_propui_rigify_custom_prop_expanded": true,
        "izom_propui_rigify_child_behavior_expanded": true,
        "izom_propui_rigify_type_defaults_expanded": true,
        "izom_propui_rigify_copy_settings_expanded": true,
        "izom_propui_rigify_import_export_expanded": true,
        "izom_propui_rigify_selected_row_expanded": true,
        "izom_propui_rigify_row_boxes_expanded": true,
        "izom_propui_rigify_output_setup_visible_on_bones_expanded": true,
        "izom_propui_rigify_output_setup_storage_expanded": true,
        "izom_propui_rigify_output_setup_native_expanded": true,
        "izom_propui_rigify_output_setup_raw_copy_expanded": true,
        "izom_propui_rigify_editor_settings_display_expanded": true,
        "izom_propui_rigify_editor_settings_shortcuts_expanded": true,
        "izom_propui_rigify_editor_settings_entry_list_expanded": true,
        "izom_propui_rigify_editor_settings_confirmations_expanded": true,
        "izom_propui_rigify_editor_settings_json_expanded": true,
        "izom_propui_rigify_editor_settings_defaults_expanded": true,
        "izom_propui_rigify_editor_settings_reset_expanded": true
      },
      "hidden": {
        "izom_propui_rigify_hide_diagnostics_section": false,
        "izom_propui_rigify_hide_output_setup_section": false,
        "izom_propui_rigify_hide_entry_list_section": false,
        "izom_propui_rigify_hide_selected_entry_section": false,
        "izom_propui_rigify_hide_generated_layout_section": false,
        "izom_propui_rigify_hide_editor_settings_section": false,
        "izom_propui_rigify_hide_output_generated_ui_display_section": false,
        "izom_propui_rigify_hide_output_storage_section": false,
        "izom_propui_rigify_hide_output_native_passthrough_section": false,
        "izom_propui_rigify_hide_basic_raw_copy_section": false,
        "izom_propui_rigify_hide_entry_hierarchy_lens": false,
        "izom_propui_rigify_hide_selected_basics_section": false,
        "izom_propui_rigify_hide_selected_value_section": false,
        "izom_propui_rigify_hide_selected_display_section": false,
        "izom_propui_rigify_hide_selected_dynamic_labels_section": false,
        "izom_propui_rigify_hide_selected_conditions_section": false,
        "izom_propui_rigify_hide_selected_storage_section": false,
        "izom_propui_rigify_hide_selected_tools_section": false,
        "izom_propui_rigify_hide_selected_tools_type_defaults_section": false,
        "izom_propui_rigify_hide_selected_tools_copy_settings_section": false,
        "izom_propui_rigify_hide_selected_tools_presets_section": false,
        "izom_propui_rigify_hide_generated_layout_selected_row_section": false,
        "izom_propui_rigify_hide_generated_layout_sync_options_section": false,
        "izom_propui_rigify_hide_generated_layout_row_boxes_section": false,
        "izom_propui_rigify_hide_editor_settings_display_section": false,
        "izom_propui_rigify_hide_editor_settings_shortcuts_section": false,
        "izom_propui_rigify_hide_editor_settings_entry_list_section": false,
        "izom_propui_rigify_hide_editor_settings_confirmations_section": false,
        "izom_propui_rigify_hide_editor_settings_json_section": false,
        "izom_propui_rigify_hide_editor_settings_defaults_section": false,
        "izom_propui_rigify_hide_editor_settings_reset_section": false
      },
      "misc": {
        "izom_propui_rigify_editor_section_order_json": "[]",
        "izom_propui_rigify_editor_subsection_order_json": "{}"
      }
    },
    "preset_scalar_fields": [
      "string_multiline",
      "string_visible_lines",
      "string_placeholder",
      "text_link_url",
      "prop_id",
      "label",
      "editor_label",
      "description",
      "enum_items_json",
      "default_enum",
      "enum_expanded",
      "native_widget",
      "control_group",
      "native_action",
      "value_preset_name",
      "bone_collection_path",
      "bone_collection_object_path",
      "native_foldout",
      "native_popover",
      "native_popover_compact",
      "compact_control",
      "native_popover_style",
      "native_popover_icon",
      "native_popover_show_label",
      "native_popover_show_keyframes",
      "display_link_label_mode",
      "display_link_tooltip_mode",
      "display_link_use_component_subset",
      "display_link_component_subset_json",
      "text_alignment",
      "text_role",
      "text_alert",
      "text_icon",
      "text_icon_hug_text",
      "text_icon_after",
      "text_icon_after_hug_text",
      "operator_id",
      "operator_icon",
      "operator_icon_value",
      "operator_emboss",
      "operator_depress",
      "operator_enabled",
      "operator_active",
      "operator_context",
      "operator_translate",
      "operator_text_context",
      "operator_search_weight",
      "operator_props_json",
      "operator_report_timing",
      "operator_report_type",
      "operator_report_message",
      "default_float",
      "default_int",
      "default_bool",
      "default_string",
      "datablock_id_type",
      "default_datablock_name",
      "default_datablock_path",
      "python_default_expression",
      "default_float_array",
      "default_int_array",
      "default_bool_array",
      "min_float",
      "max_float",
      "min_int",
      "max_int",
      "slider",
      "alert_style",
      "bool_ui_style",
      "bool_icon_true",
      "bool_icon_false",
      "value_label_layout",
      "multi_component_layout",
      "multi_component_draw_mode",
      "stacked_label_use_text_style",
      "array_component_label_style",
      "array_component_label_custom_base",
      "array_component_label_01",
      "array_component_label_02",
      "array_component_label_03",
      "array_component_label_04",
      "array_component_label_05",
      "array_component_label_06",
      "array_component_label_07",
      "array_component_label_08",
      "array_component_label_09",
      "array_component_label_10",
      "array_component_label_11",
      "array_component_label_12",
      "array_component_label_13",
      "array_component_label_14",
      "array_component_label_15",
      "array_component_label_16",
      "array_component_label_17",
      "array_component_label_18",
      "array_component_label_19",
      "array_component_label_20",
      "array_component_label_21",
      "array_component_label_22",
      "array_component_label_23",
      "array_component_label_24",
      "array_component_label_25",
      "array_component_label_26",
      "array_component_label_27",
      "array_component_label_28",
      "array_component_label_29",
      "array_component_label_30",
      "array_component_label_31",
      "array_component_label_32",
      "use_value_labels",
      "value_labels_use_component",
      "value_labels_component_index",
      "use_bool_state_labels",
      "bool_label_true",
      "bool_label_false",
      "use_other_entry_labels",
      "text_use_other_entry_labels",
      "use_soft_limits",
      "soft_min_float",
      "soft_max_float",
      "soft_min_int",
      "soft_max_int",
      "step_float",
      "step_int",
      "precision",
      "array_element_type",
      "array_size",
      "float_subtype",
      "float_array_subtype",
      "library_overridable",
      "custom_source",
      "custom_internal_control",
      "custom_owner_path",
      "custom_prop_name",
      "custom_use_component",
      "custom_component_index",
      "custom_detected_value_kind",
      "custom_detected_component_count",
      "custom_detected_array_subtype",
      "custom_path_readonly",
      "custom_path_error",
      "bool_child_visibility",
      "number_child_visibility",
      "visibility_inheritance_depth",
      "visibility_use_component",
      "visibility_component_index",
      "shared_row_hidden_mode",
      "visibility_match_float",
      "visibility_match_int",
      "visibility_match_text",
      "visibility_match_float_array",
      "visibility_match_int_array",
      "visibility_match_bool_array",
      "visibility_range_max_float",
      "visibility_range_max_int",
      "bool_child_availability",
      "number_child_availability",
      "availability_inheritance_depth",
      "availability_use_component",
      "availability_component_index",
      "availability_match_float",
      "availability_match_int",
      "availability_match_text",
      "availability_match_float_array",
      "availability_match_int_array",
      "availability_match_bool_array",
      "availability_range_max_float",
      "availability_range_max_int"
    ],
    "preset_fields": [
      "string_multiline",
      "string_visible_lines",
      "string_placeholder",
      "text_link_url",
      "prop_id",
      "label",
      "editor_label",
      "description",
      "enum_items_json",
      "default_enum",
      "enum_expanded",
      "native_widget",
      "control_group",
      "native_action",
      "value_preset_name",
      "bone_collection_path",
      "bone_collection_object_path",
      "native_foldout",
      "native_popover",
      "native_popover_compact",
      "compact_control",
      "native_popover_style",
      "native_popover_icon",
      "native_popover_show_label",
      "native_popover_show_keyframes",
      "display_link_label_mode",
      "display_link_tooltip_mode",
      "display_link_use_component_subset",
      "display_link_component_subset_json",
      "text_alignment",
      "text_role",
      "text_alert",
      "text_icon",
      "text_icon_hug_text",
      "text_icon_after",
      "text_icon_after_hug_text",
      "operator_id",
      "operator_icon",
      "operator_icon_value",
      "operator_emboss",
      "operator_depress",
      "operator_enabled",
      "operator_active",
      "operator_context",
      "operator_translate",
      "operator_text_context",
      "operator_search_weight",
      "operator_props_json",
      "operator_report_timing",
      "operator_report_type",
      "operator_report_message",
      "default_float",
      "default_int",
      "default_bool",
      "default_string",
      "datablock_id_type",
      "default_datablock_name",
      "default_datablock_path",
      "python_default_expression",
      "default_float_array",
      "default_int_array",
      "default_bool_array",
      "min_float",
      "max_float",
      "min_int",
      "max_int",
      "slider",
      "alert_style",
      "bool_ui_style",
      "bool_icon_true",
      "bool_icon_false",
      "value_label_layout",
      "multi_component_layout",
      "multi_component_draw_mode",
      "stacked_label_use_text_style",
      "array_component_label_style",
      "array_component_label_custom_base",
      "array_component_label_01",
      "array_component_label_02",
      "array_component_label_03",
      "array_component_label_04",
      "array_component_label_05",
      "array_component_label_06",
      "array_component_label_07",
      "array_component_label_08",
      "array_component_label_09",
      "array_component_label_10",
      "array_component_label_11",
      "array_component_label_12",
      "array_component_label_13",
      "array_component_label_14",
      "array_component_label_15",
      "array_component_label_16",
      "array_component_label_17",
      "array_component_label_18",
      "array_component_label_19",
      "array_component_label_20",
      "array_component_label_21",
      "array_component_label_22",
      "array_component_label_23",
      "array_component_label_24",
      "array_component_label_25",
      "array_component_label_26",
      "array_component_label_27",
      "array_component_label_28",
      "array_component_label_29",
      "array_component_label_30",
      "array_component_label_31",
      "array_component_label_32",
      "use_value_labels",
      "value_labels_use_component",
      "value_labels_component_index",
      "use_bool_state_labels",
      "bool_label_true",
      "bool_label_false",
      "use_other_entry_labels",
      "text_use_other_entry_labels",
      "use_soft_limits",
      "soft_min_float",
      "soft_max_float",
      "soft_min_int",
      "soft_max_int",
      "step_float",
      "step_int",
      "precision",
      "array_element_type",
      "array_size",
      "float_subtype",
      "float_array_subtype",
      "library_overridable",
      "custom_source",
      "custom_internal_control",
      "custom_owner_path",
      "custom_prop_name",
      "custom_use_component",
      "custom_component_index",
      "custom_detected_value_kind",
      "custom_detected_component_count",
      "custom_detected_array_subtype",
      "custom_path_readonly",
      "custom_path_error",
      "bool_child_visibility",
      "number_child_visibility",
      "visibility_inheritance_depth",
      "visibility_use_component",
      "visibility_component_index",
      "shared_row_hidden_mode",
      "visibility_match_float",
      "visibility_match_int",
      "visibility_match_text",
      "visibility_match_float_array",
      "visibility_match_int_array",
      "visibility_match_bool_array",
      "visibility_range_max_float",
      "visibility_range_max_int",
      "bool_child_availability",
      "number_child_availability",
      "availability_inheritance_depth",
      "availability_use_component",
      "availability_component_index",
      "availability_match_float",
      "availability_match_int",
      "availability_match_text",
      "availability_match_float_array",
      "availability_match_int_array",
      "availability_match_bool_array",
      "availability_range_max_float",
      "availability_range_max_int",
      "value_labels",
      "other_value_labels"
    ],
    "host_settings": {
      "izom_propui_rigify_host_output_mode": {
        "default": "KEEP_HOST",
        "type": "string",
        "label": "Host Output",
        "description": "Choose whether the PropUI host remains as a generated control or exists only on the metarig",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "KEEP_HOST",
            "label": "Keep Host Control (Raw Copy)",
            "description": "Keep the PropUI host as a native basic.raw_copy control on the generated rig"
          },
          {
            "id": "METARIG_ONLY",
            "label": "Metarig Only (No Generated Host)",
            "description": "Use the host only for authoring and remove it from the generated rig"
          }
        ]
      },
      "izom_propui_rigify_use_one_prop_bone": {
        "default": false,
        "type": "boolean",
        "label": "Use One Prop Bone",
        "description": "Store generated custom properties on one chosen Rigify output bone instead of using the host control",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_one_prop_bone": {
        "default": "",
        "type": "string",
        "label": "One Prop Bone",
        "description": "Exact generated control or metarig bone whose resolved control stores PropUI custom properties",
        "rna_type": "STRING"
      },
      "izom_propui_rigify_generated_ui_position": {
        "default": "ABOVE_NATIVE",
        "type": "string",
        "label": "PropUI Position",
        "description": "Place this generated PropUI above or below native Rigify UI for the selected visibility bones",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "ABOVE_NATIVE",
            "label": "Above Native Rigify UI",
            "description": "Draw this PropUI before native Rigify controls when a visibility target has its own generated UI"
          },
          {
            "id": "BELOW_NATIVE",
            "label": "Below Native Rigify UI",
            "description": "Draw this PropUI after native Rigify controls when a visibility target has its own generated UI"
          }
        ]
      },
      "izom_propui_rigify_generated_ui_panel_location": {
        "default": "RIG_MAIN",
        "type": "string",
        "label": "Panel Location",
        "description": "Choose whether this generated UI joins Rig Main Properties or receives its own panel",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "RIG_MAIN",
            "label": "Rig Main Properties",
            "description": "Draw this setup inside Rigify's standard Rig Main Properties panel"
          },
          {
            "id": "SEPARATE_PANEL",
            "label": "Separate PropUI Panel",
            "description": "Generate a separate top-level panel for this setup in the Item sidebar tab"
          }
        ]
      },
      "izom_propui_rigify_generated_ui_panel_title": {
        "default": "",
        "type": "string",
        "label": "Panel Title",
        "description": "Title of the separate generated panel; leave empty to use PropUI followed by the host bone name",
        "rna_type": "STRING"
      },
      "izom_propui_rigify_generated_ui_sidebar_tab": {
        "default": "Item",
        "type": "string",
        "label": "Sidebar Tab",
        "description": "Sidebar tab containing the separate generated panel; leave empty to use Item",
        "rna_type": "STRING"
      },
      "izom_propui_rigify_generated_ui_always_visible": {
        "default": false,
        "type": "boolean",
        "label": "Always Visible",
        "description": "Show this generated UI for the active generated rig regardless of which control bones are selected",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_move_matching_managed_props": {
        "default": true,
        "type": "boolean",
        "label": "Move Matching Props Between Bones",
        "description": "When syncing, move matching managed custom properties between currently active host and prop storage bones",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_clean_target_scope": {
        "default": "ALL",
        "type": "string",
        "label": "Clean Target",
        "description": "Choose which currently active metarig storage bones normal Clean Metarig Props can modify",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "HOST",
            "label": "Host Bone",
            "description": "Clean only the active PropUI host bone"
          },
          {
            "id": "PROP",
            "label": "Active Prop Bones",
            "description": "Clean the enabled One Prop Bone and enabled per-entry Prop Bone Overrides"
          },
          {
            "id": "ALL",
            "label": "Host + Active Prop Bones",
            "description": "Clean the host plus the enabled One Prop Bone and enabled per-entry overrides"
          }
        ]
      },
      "izom_propui_rigify_overwrite_native_custom_properties": {
        "default": true,
        "type": "boolean",
        "label": "Overwrite Native Custom Properties",
        "description": "Replace unmanaged native custom properties on generated output bones with this PropUI setup",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_transfer_unmanaged_native_to_prop_bone": {
        "default": true,
        "type": "boolean",
        "label": "Transfer Native Props to One Prop Bone",
        "description": "When using One Prop Bone, move unmanaged native custom properties there too",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_show_unmanaged_native_in_generated_ui": {
        "default": true,
        "type": "boolean",
        "label": "Show Native Props in Generated UI",
        "description": "Draw unmanaged native custom properties beside managed PropUI controls in the generated Rigify UI",
        "rna_type": "BOOLEAN"
      },
      "izom_propui_rigify_native_section_position": {
        "default": "BELOW_MANAGED",
        "type": "string",
        "label": "Native Props Position",
        "description": "Choose whether unmanaged native custom properties appear above or below managed PropUI controls",
        "rna_type": "ENUM",
        "choices": [
          {
            "id": "BELOW_MANAGED",
            "label": "Below Managed Props",
            "description": "Draw the Native Props section below the managed izom PropUI Rigify section"
          },
          {
            "id": "ABOVE_MANAGED",
            "label": "Above Managed Props",
            "description": "Draw the Native Props section above the managed izom PropUI Rigify section"
          }
        ]
      },
      "relink_constraints": {
        "default": false,
        "type": "boolean",
        "label": "Relink Constraints",
        "description": "For constraints with names formed like 'base@bonename', use the part after '@' as the new subtarget after all bones are created. Use '@CTRL', '@DEF' or '@MCH' to simply replace the prefix",
        "rna_type": "BOOLEAN"
      },
      "parent_bone": {
        "default": "",
        "type": "string",
        "label": "Parent",
        "description": "Replace the parent with a different bone after all bones are created. Using simply CTRL, DEF or MCH will replace the prefix instead",
        "rna_type": "STRING"
      },
      "optional_widget_type": {
        "default": "",
        "type": "string",
        "label": "Widget Type",
        "description": "Choose the type of the widget to create",
        "rna_type": "STRING"
      }
    },
    "legacy_or_derived_fields": [
      "custom_detected_array_subtype",
      "custom_detected_component_count",
      "custom_detected_value_kind",
      "custom_path_error",
      "custom_path_readonly",
      "display_link_component_subset",
      "native_widget",
      "operator_icon_value",
      "operator_search_weight"
    ]
  }
}
