Summary
WorldQuery 접근 경계를 EngineWorld::query()로 일원화하고, engine 외부 코드가 EcsCore 기반 query facade를 직접 생성하지 않도록 public API 경계를 정리한다.
Parent Issue
#1
Area
Engine
Target Sprint
Sprint 1
Why Needed
engine foundation에서 EngineWorld는 query/commands/resources의 단일 접근 지점이어야 한다. 테스트나 후속 코드에 WorldQuery(EcsCore&) 직접 생성 패턴이 남아 있으면 runtime이 제공하려는 world boundary가 약해지고, 이후 resource/scheduler/lifecycle 규칙도 한 곳에 모으기 어려워진다.
Scope
- 테스트 코드의
WorldQuery(EcsCore&) 직접 생성 패턴을 EngineWorld::query() 경유 접근으로 교체한다.
- 필요하면
WorldQuery 생성자를 engine 내부 전용 또는 제한된 경계로 두는 방안을 적용한다.
- 접근 경계 정리 이후 기존 테스트 전체 통과를 확인한다.
Out of Scope
- query API의 기능 확장
- domain snapshot 계약 정의
- ECS storage 구조 변경
Core Design Criteria
- engine public 사용자는
EngineWorld를 통해 query/commands/resources에 접근한다.
WorldQuery는 world facade 뒤에 있는 구현 상세로 점차 정리한다.
- 테스트도 실제 public access pattern을 따르도록 유지한다.
Acceptance Criteria
- 테스트 코드가
WorldQuery(EcsCore&)를 직접 호출하지 않는다.
EngineWorld::query() 경유 접근이 기준 패턴으로 정리된다.
- 기존 테스트 전체가 통과한다.
Related Docs
- docs/architecture/프로젝트 구조.md
- uml/engine-ecs-core.puml
- uml/engine-runtime-core.puml
Dependencies / Blockers
- #12의
EngineWorld 접근 경계를 기반으로 한다.
- #21의 resources 접근까지 포함한 world facade 방향과 일치해야 한다.
Repository Checks
Summary
WorldQuery접근 경계를EngineWorld::query()로 일원화하고, engine 외부 코드가EcsCore기반 query facade를 직접 생성하지 않도록 public API 경계를 정리한다.Parent Issue
#1
Area
Engine
Target Sprint
Sprint 1
Why Needed
engine foundation에서
EngineWorld는 query/commands/resources의 단일 접근 지점이어야 한다. 테스트나 후속 코드에WorldQuery(EcsCore&)직접 생성 패턴이 남아 있으면 runtime이 제공하려는 world boundary가 약해지고, 이후 resource/scheduler/lifecycle 규칙도 한 곳에 모으기 어려워진다.Scope
WorldQuery(EcsCore&)직접 생성 패턴을EngineWorld::query()경유 접근으로 교체한다.WorldQuery생성자를 engine 내부 전용 또는 제한된 경계로 두는 방안을 적용한다.Out of Scope
Core Design Criteria
EngineWorld를 통해 query/commands/resources에 접근한다.WorldQuery는 world facade 뒤에 있는 구현 상세로 점차 정리한다.Acceptance Criteria
WorldQuery(EcsCore&)를 직접 호출하지 않는다.EngineWorld::query()경유 접근이 기준 패턴으로 정리된다.Related Docs
Dependencies / Blockers
EngineWorld접근 경계를 기반으로 한다.Repository Checks