# Step 9: legacy-definition-compatibility ## Read First Read these files before editing: - `/AGENTS.md` - `/docs/AGENT_RULES.md` - `/docs/ARCHITECTURE.md` - `/docs/implementation-plans/analysis-model-objects-implementation-plan.md` - `/include/fesa/core/Domain.hpp` - `/tests/core/domain_storage_test.cpp` - `/tests/core/domain_model_object_test.cpp` ## Task Preserve and document compatibility between existing `*Definition` value objects and new model-object base classes. Allowed files: - Modify `/docs/implementation-plans/analysis-model-objects-implementation-plan.md` - Modify tests only if compatibility gaps are found - Modify production code only for narrow compatibility fixes Required behavior: - Existing Domain definition-storage tests still pass. - New model-object ownership tests still pass. - The implementation plan clearly states that `*Definition` objects remain parser/factory DTOs until the parser phase decides whether to map or replace them. ## Tests To Write First If production code must change, write or extend a failing C++ test before the change. If this is documentation-only, do not add production code. ## Acceptance Criteria Run: ```powershell python scripts/validate_workspace.py ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R "domain|model-object" ``` Update step 9 status. ## Do Not - Do not delete existing `*Definition` headers or tests. - Do not rewrite parser or factory behavior.