user: Explain Getter/Setter Example in complete detail according to the official Blender documentation.

assistant: alue is modified,
          This function must take 2 values (self, context) and return None.
          *Warning* there are no safety checks to avoid infinite recursion.
        - **get** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")], int]) –

          Function to be called when this value is ‘read’, and the default,
          system-defined storage is not used for this property.
          This function must take 1 value (self) and return the value of the property.
        - **set** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), int], None]) –

          Function to be called when this value is ‘written’, and the default,
          system-defined storage is not used for this property.
          This function must take 2 values (self, value) and return None.
        - **get_transform** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), int, bool], int]) –

          Function to be called when this value is ‘read’,
          if some additional processing must be performed on the stored value.
          This function must take three arguments (self, the stored value,
          and a boolean indicating if the property is currently set),
          and return the final, transformed value of the property.
        - **set_transform** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), int, int, bool], int]) –

          Function to be called when this value is ‘written’,
          if some additional processing must be performed on the given value before storing it.
          This function must take four arguments (self, the given value to store,
          the currently stored value (‘raw’ value, without any `get_transform` applied to it),
          and a boolean indicating if the property is currently set),
          and return the final, transformed value of the property.

bpy.props.FloatProperty(*\**, *name=''*, *description=''*, *translation_context='\*'*, *default=0.0*, *min=-3.402823e+38*, *max=3.402823e+38*, *soft_min=-3.402823e+38*, *soft_max=3.402823e+38*, *step=3*, *precision=2*, *options={'ANIMATABLE'}*, *override=set()*, *tags=set()*, *subtype='NONE'*, *unit='NONE'*, *update=None*, *get=None*, *set=None*, *get_transform=None*, *set_transform=None*)
:   Returns a new float (single precision) property definition.

    Parameters:
    :   - **name** (*str*) – Name used in the user interface.
        - **description** (*str*) – Text used for the tooltip and api documentation.
        - **translation_context** (*str*) – Text used as context to disambiguate translations.
        - **min** (*float*) – Hard minimum, trying to assign a value below will silently assign this minimum instead.
        - **max** (*float*) – Hard maximum, trying to assign a value above will silently assign this maximum instead.
        - **soft_min** (*float*) – Soft minimum (>= *min*), user won’t be able to drag the widget below this value in the UI.
        - **soft_max** (*float*) – Soft maximum (<= *max*), user won’t be able to drag the widget above this value in the UI.
        - **step** (*int*) – Step of increment/decrement in UI, in [1, 100], defaults to 3 (WARNING: actual value is /100).
        - **precision** (*int*) – Maximum number of decimal digits to display, in [0, 6]. Fraction is automatically hidden for exact integer values of fields with unit ‘NONE’ or ‘TIME’ (frame count) and step divisible by 100.
        - **options** (*set**[**str**]*) – Enumerator in [Property Flag Items](bpy_types_enum_items/property_flag_items.html#rna-enum-property-flag-items).
        - **override** (*set**[**str**]*) – Enumerator in [Property Override Flag Items](bpy_types_enum_items/property_override_flag_items.html#rna-enum-property-override-flag-items).
        - **tags** (*set**[**str**]*) – Enumerator of tags that are defined by parent class.
        - **subtype** (*str*) – Enumerator in [Property Subtype Number Items](bpy_types_enum_items/property_subtype_number_items.html#rna-enum-property-subtype-number-items).
        - **unit** (*str*) – Enumerator in [Property Unit Items](bpy_types_enum_items/property_unit_items.html#rna-enum-property-unit-items).
        - **update** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`bpy.types.Context`](bpy.types.Context.html#bpy.types.Context "bpy.types.Context")], None]) – Function to be called when this value is modified,
          This function must take 2 values (self, context) and return None.
          *Warning* there are no safety checks to avoid infinite recursion.
        - **get** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")], float]) –

          Function to be called when this value is ‘read’, and the default,
          system-defined storage is not used for this property.
          This function must take 1 value (self) and return the value of the property.
        - **set** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), float], None]) –

          Function to be called when this value is ‘written’, and the default,
          system-defined storage is not used for this property.
          This function must take 2 values (self, value) and return None.
        - **get_transform** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), float, bool], float]) –

          Function to be called when this value is ‘read’,
          if some additional processing must be performed on the stored value.
          This function must take three arguments (self, the stored value,
          and a boolean indicating if the property is currently set),
          and return the final, transformed value of the property.
        - **set_transform** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), float, float, bool], float]) –

          Function to be called when this value is ‘written’,
          if some additional processing must be performed on the given value before storing it.
          This function must take four arguments (self, the given value to store,
          the currently stored value (‘raw’ value, without any `get_transform` applied to it),
          and a boolean indicating if the property is currently set),
          and return the final, transformed value of the property.

bpy.props.FloatVectorProperty(*\**, *name=''*, *description=''*, *translation_context='\*'*, *default=(0.0, 0.0, 0.0)*, *min=sys.float_info.min*, *max=sys.float_info.max*, *soft_min=sys.float_info.min*, *soft_max=sys.float_info.max*, *step=3*, *precision=2*, *options={'ANIMATABLE'}*, *override=set()*, *tags=set()*, *subtype='NONE'*, *unit='NONE'*, *size=3*, *update=None*, *get=None*, *set=None*)
:   Returns a new vector float property definition.

    Parameters:
    :   - **name** (*str*) – Name used in the user interface.
        - **description** (*str*) – Text used for the tooltip and api documentation.
        - **translation_context** (*str*) – Text used as context to disambiguate translations.
        - **default** (*Sequence**[**float**]*) – Sequence of floats the length of *size*.
        - **min** (*float*) – Hard minimum, trying to assign a value below will silently assign this minimum instead.
        - **max** (*float*) – Hard maximum, trying to assign a value above will silently assign this maximum instead.
        - **soft_min** (*float*) – Soft minimum (>= *min*), user won’t be able to drag the widget below this value in the UI.
        - **soft_max** (*float*) – Soft maximum (<= *max*), user won’t be able to drag the widget above this value in the UI.
        - **options** (*set**[**str**]*) – Enumerator in [Property Flag Items](bpy_types_enum_items/property_flag_items.html#rna-enum-property-flag-items).
        - **override** (*set**[**str**]*) – Enumerator in [Property Override Flag Items](bpy_types_enum_items/property_override_flag_items.html#rna-enum-property-override-flag-items).
        - **tags** (*set**[**str**]*) – Enumerator of tags that are defined by parent class.
        - **step** (*int*) – Step of increment/decrement in UI, in [1, 100], defaults to 3 (WARNING: actual value is /100).
        - **precision** (*int*) – Maximum number of decimal digits to display, in [0, 6]. Fraction is automatically hidden for exact integer values of fields with unit ‘NONE’ or ‘TIME’ (frame count) and step divisible by 100.
        - **subtype** (*str*) – Enumerator in [Property Subtype Number Array Items](bpy_types_enum_items/property_subtype_number_array_items.html#rna-enum-property-subtype-number-array-items).
        - **unit** (*str*) – Enumerator in [Property Unit Items](bpy_types_enum_items/property_unit_items.html#rna-enum-property-unit-items).
        - **size** (*int* *|* *Sequence**[**int**]*) – Vector dimensions in [1, 32]. An int sequence can be used to define multi-dimension arrays.
        - **update** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`bpy.types.Context`](bpy.types.Context.html#bpy.types.Context "bpy.types.Context")], None]) – Function to be called when this value is modified,
          This function must take 2 values (self, context) and return None.
          *Warning* there are no safety checks to avoid infinite recursion.
        - **get** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")], Sequence[float]]) –

          Function to be called when this value is ‘read’, and the default,
          system-defined storage is not used for this property.
          This function must take 1 value (self) and return the value of the property.
        - **set** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), tuple[float, …]], None]) –

          Function to be called when this value is ‘written’, and the default,
          system-defined storage is not used for this property.
          This function must take 2 values (self, value) and return None.
        - **get_transform** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), Sequence[float], bool], Sequence[float]]) –

          Function to be called when this value is ‘read’,
          if some additional processing must be performed on the stored value.
          This function must take three arguments (self, the stored value,
          and a boolean indicating if the property is currently set),
          and return the final, transformed value of the property.
        - **set_transform** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), Sequence[float], Sequence[float], bool], Sequence[float]]) –

          Function to be called when this value is ‘written’,
          if some additional processing must be performed on the given value before storing it.
          This function must take four arguments (self, the given value to store,
          the currently stored value (‘raw’ value, without any `get_transform` applied to it),
          and a boolean indicating if the property is currently set),
          and return the final, transformed value of the property.

bpy.props.IntProperty(*\**, *name=''*, *description=''*, *translation_context='\*'*, *default=0*, *min=-2\*\*31*, *max=2\*\*31 - 1*, *soft_min=-2\*\*31*, *soft_max=2\*\*31 - 1*, *step=1*, *options={'ANIMATABLE'}*, *override=set()*, *tags=set()*, *subtype='NONE'*, *update=None*, *get=None*, *set=None*, *get_transform=None*, *set_transform=None*)
:   Returns a new int property definition.

    Parameters:
    :   - **name** (*str*) – Name used in the user interface.
        - **description** (*str*) – Text used for the tooltip and api documentation.
        - **translation_context** (*str*) – Text used as context to disambiguate translations.
        - **min** (*int*) – Hard minimum, trying to assign a value below will silently assign this minimum instead.
        - **max** (*int*) – Hard maximum, trying to assign a value above will silently assign this maximum instead.
        - **soft_min** (*int*) – Soft minimum (>= *min*), user won’t be able to drag the widget below this value in the UI.
        - **soft_max** (*int*) – Soft maximum (<= *max*), user won’t be able to drag the widget above this value in the UI.
        - **step** (*int*) – Step of increment/decrement in UI, in [1, 100], defaults to 1 (WARNING: unused currently!).
        - **options** (*set**[**str**]*) – Enumerator in [Property Flag Items](bpy_types_enum_items/property_flag_items.html#rna-enum-property-flag-items).
        - **override** (*set**[**str**]*) – Enumerator in [Property Override Flag Items](bpy_types_enum_items/property_override_flag_items.html#rna-enum-property-override-flag-items).
        - **tags** (*set**[**str**]*) – Enumerator of tags that are defined by parent class.
        - **subtype** (*str*) – Enumerator in [Property Subtype Number Items](bpy_types_enum_items/property_subtype_number_items.html#rna-enum-property-subtype-number-items).
        - **update** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`bpy.types.Context`](bpy.types.Context.html#bpy.types.Context "bpy.types.Context")], None]) – Function to be called when this value is modified,
          This function must take 2 values (self, context) and return None.
          *Warning* there are no safety checks to avoid infinite recursion.
        - **get** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")], int]) –

          Function to be called when this value is ‘read’, and the default,
          system-defined storage is not used for this property.
          This function must take 1 value (self) and return the value of the property.
        - **set** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), int], None]) –

          Function to be called when this value is ‘written’, and the default,
          system-defined storage is not used for this property.
          This function must take 2 values (self, value) and return None.
        - **get_transform** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), int, bool], int]) –

          Function to be called when this value is ‘read’,
          if some additional processing must be performed on the stored value.
          This function must take three arguments (self, the stored value,
          and a boolean indicating if the property is currently set),
          and return the final, transformed value of the property.
        - **set_transform** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), int, int, bool], int]) –

          Function to be called when this value is ‘written’,
          if some additional processing must be performed on the given value before storing it.
          This function must take four arguments (self, the given value to store,
          the currently stored value (‘raw’ value, without any `get_transform` applied to it),
          and a boolean indicating if the property is currently set),
          and return the final, transformed value of the property.

bpy.props.IntVectorProperty(*\**, *name=''*, *description=''*, *translation_context='\*'*, *default=(0, 0, 0)*, *min=-2\*\*31*, *max=2\*\*31 - 1*, *soft_min=-2\*\*31*, *soft_max=2\*\*31 - 1*, *step=1*, *options={'ANIMATABLE'}*, *override=set()*, *tags=set()*, *subtype='NONE'*, *size=3*, *update=None*, *get=None*, *set=None*, *get_transform=None*, *set_transform=None*)
:   Returns a new vector int property definition.

    Parameters:
    :   - **name** (*str*) – Name used in the user interface.
        - **description** (*str*) – Text used for the tooltip and api documentation.
        - **translation_context** (*str*) – Text used as context to disambiguate translations.
        - **default** (*Sequence**[**int**]*) – sequence of ints the length of *size*.
        - **min** (*int*) – Hard minimum, trying to assign a value below will silently assign this minimum instead.
        - **max** (*int*) – Hard maximum, trying to assign a value above will silently assign this maximum instead.
        - **soft_min** (*int*) – Soft minimum (>= *min*), user won’t be able to drag the widget below this value in the UI.
        - **soft_max** (*int*) – Soft maximum (<= *max*), user won’t be able to drag the widget above this value in the UI.
        - **step** (*int*) – Step of increment/decrement in UI, in [1, 100], defaults to 1 (WARNING: unused currently!).
        - **options** (*set**[**str**]*) – Enumerator in [Property Flag Items](bpy_types_enum_items/property_flag_items.html#rna-enum-property-flag-items).
        - **override** (*set**[**str**]*) – Enumerator in [Property Override Flag Items](bpy_types_enum_items/property_override_flag_items.html#rna-enum-property-override-flag-items).
        - **tags** (*set**[**str**]*) – Enumerator of tags that are defined by parent class.
        - **subtype** (*str*) – Enumerator in [Property Subtype Number Array Items](bpy_types_enum_items/property_subtype_number_array_items.html#rna-enum-property-subtype-number-array-items).
        - **size** (*int* *|* *Sequence**[**int**]*) – Vector dimensions in [1, 32]. An int sequence can be used to define multi-dimension arrays.
        - **update** (Callable[[[`bpy.types.bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`bpy.typ