CTS Building Builder Pro v1.0.26

Undo / Redo and immediate display
- Tool dialogs use native Sketchup.undo and Sketchup.redo where available.
- History dispatch returns focus to the model and redraws after native history.
- Grooves finish their preview and schedule one native repaint after the dialog
  callback returns. No mouse movement, Space key or dialog close is needed.
- Display completion does not create extra model operations or change geometry.
- Repeated selected-line Create callbacks cannot duplicate completed grooves.
- Preference or dialog transport errors after commit cannot skip display completion.

Saved settings
- Empty legacy groove preferences are treated as no saved settings.
- Invalid JSON is repaired with one visible explanation instead of repeating
  the same error whenever the tool opens.
- A failure saving preferences does not prevent valid groove geometry creation.

Horizontal XY surfaces
- The surface picker accepts XY faces in addition to vertical wall surfaces.
- Horizontal runs along model red/X; Vertical runs along model green/Y.
- Width, depth, tapered/custom profiles, spacing, count and inside/outside output
  keep their existing meaning, applied in the selected surface's plane.
- Coplanar XY fragments share coordinates and do not select slab side faces.
- Separate XY surfaces use independent layouts. Where a shared band cannot fit
  a divided surface, the groove count applies to each selected XY face.
- World coordinates and instance transformations determine the actual plane.
- Existing selected-line wall grooving remains available with its prior properties.

Validation
Automated math, callback, transaction-boundary, preference, rendered HTML and
API-adapter checks pass. Native SketchUp geometry, paint and Undo/Redo still
need a check in SketchUp on the user's model.
