Replicates the slab Stage D recipe for ceiling: four affordances
routed through the registry — def.tool for the placement flow,
def.affordanceTools for boundary edit / hole edit / whole-ceiling move.
Ceiling-specific bits preserved:
- Placement tool keeps the dual-cursor + vertical TSL-gradient
connector + ground-shadow lines (1:1 with legacy).
- Move tool wrapper renders the translucent preview fill + outline
overlay so the user sees the destination before clicking.
ToolManager mount sites for CeilingBoundaryEditor / CeilingHoleEditor
now route through `getRegistryAffordanceTool` with legacy fallback.
Per-kind progress: ceiling A ✅ B (n/a, def.renderer escape hatch
preserved) C ✅ D ✅; E + F pending.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>