9273f0d8de
Squash 7 estimation migrations (m6_003, 992484befd85, m6_005, m6_006, m6_007, m6_008, m7_002) into a single clean m6_003_estimation_schema with linear dependency on m4_003_plan_env_columns. Rename column estimation_skipped_json to estimation_skipped for naming consistency. Domain model hardening: replace deprecated FieldValidationInfo with ValidationInfo, change historical_basis from list[str] to tuple[str,...] to prevent mutation on frozen model, add max_length=10_000 to rationale. Service improvements: remove unnecessary ThreadPoolExecutor wrapping, add EstimationActorProtocol for pluggable actor dispatch, log unexpected exceptions at error level, document EstimationService as stateless. Deduplicate estimation serialization via static helpers on LifecyclePlanModel used by both from_domain() and _update_plan_row(). Remove 6 out-of-scope coverage-boost files (container_73_lines, plan_cli_print_coverage, resume_coverage) and revert 3 unrelated benchmark import fixes. Add Behave scenario for update_plan_overrides atomic field setting. ISSUES CLOSED: #209