Reworked handler usage based on reviewer feedback:
The add-on no longer registers anything at enable time: no application handlers, no msgbus subscriptions, no draw handler. The depsgraph watch and msgbus subscriptions exist only while a camera is in the Initialize state, and the plate overlay draw handler only while Show Plate is on.
Removed save_pre / save_post / load_post entirely: the session-only Initialize state now lives outside the .blend data and is never written into the file.
Lighter external-edit detection: direct transform comparison for the initialized camera instead of scanning depsgraph updates and objects.
Behavior change: Show Plate is now session-only and resets to off when a file is reopened.
Compose-preserving camera movement around a world-fixed target plane: shift_x / shift_y are recalculated in real time so the frame center stays on the target
Camera Position controls (Delta X / Y / Z along the plane's local axes, Radial Distance toward / away from the target), bidirectionally synced
Plate Transform controls (location / rotation) with rigid camera follow — shift values stay unchanged
Live sync with focal length / FOV / shift edits via bpy.msgbus
Get Distance from Click operator to pick the target depth directly in the viewport
Translucent plate overlay with per-camera fill / edge color, edge width, and In Front toggle
Automatic de-initialize (bake-out) on external camera edits, camera deactivation, file save, or switching the camera to ortho / panoramic
Add-on preferences: configurable N-Panel tab category with reset button