Repository: godot
Issue: Surprising edge cases with export suffix hints
Labels: enhancement,discussion,topic:gdscript,topic:editor

### Tested versions

4.3

### System information

Windows 10

### Issue description

Noting some edge cases around export suffix/unit hints.
**Test script:**
```gdscript
extends Node
@export_category("Possibly nonsensical")
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _basis : Basis
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _quaternion : Quaternion

@export_category("Missing fields (Also possibly nonsensical)")
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _transform2d : Transform2D
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _transform3d : Transform3D
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _plane : Plane
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _projection : Projection

@export_category("Supported and Sensible")
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _float : float
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _int : int
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _vec2 : Vector2
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _vec2I : Vector2i
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _vec3 : Vector3
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _vec3I : Vector3i
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _vec4 : Vector4
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _vec4I : Vector4i
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _rect2 : Rect2
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _aabb : AABB

@export_category("Not supported (Not Numeric)")
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _bool : bool
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _color : Color
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _string : String
@export_custom(PROPERTY_HINT_NONE, "suffix:units") var _nodepath : NodePath
```
**Output:**
![Godot_v4 3-stable_win64_JErXtxIgGA](https://github.com/user-attachments/assets/6fe998cf-876e-4c99-8e10-54e2fbdb5443)
![Godot_v4 3-stable_win64_RG1etM5qC3](https://github.com/user-attachments/assets/577cfd26-7fe5-45ca-9e0b-9bcb6630fdeb)

**Surprising Behavior:**
**Missing field suffixes:**
`Transform2D`, `Transform3D`, `Plane`, and `Projection` only have unit suffixes on the last input field in each row. Other multiline types like `Rect2` and `AABB` do have every field suffixed.
Strings are not able to be suffixed. (I assume this was outside of the original scope of adding unit suffixes to numeric types; but as a user it is something I want anyway)

**Suffixes for unitless or mixed-unit types:**
`Transform2D`, `Transform3D`, `Plane`, `Projection`, `Basis`, and `Quaternion` arguably do not make sense to have units - they have defined meanings for each field, and mostly are unitless (my math may be off for some of these). I don't think it makes sense to restrict the use of the suffix export, though. Types can be reused for different purposes.

**Possible Fix:**
String should arguably be able to be suffixed.
`Transform2D`, `Transform3D`, `Plane`, and `Projection` should have suffixes on each subfield.


### Steps to reproduce

Open the MRP and select the only node in the scene. Look at its inspector.

### Minimal reproduction project (MRP)

[mrp-suffix-hints.zip](https://github.com/user-attachments/files/16668914/mrp-suffix-hints.zip)