- Add extract_windows() and register 'windows' in ALL_DOMAINS
- Remove windows extraction from extract_doors; no more double keys
- extract_windows also captures the overall windows.open_state
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
run() stays in server/collect.py with relative imports.
main() (CLI arg parsing, credential loading) moves to server/main.py.
install.sh updated to use `python -m server.main` (required for relative
imports to resolve correctly when invoked as a module).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>