**InputSystem(입력 수집) → Games(룰/상태 결정) → Presentation(GameScene에서 Engine과 조합해 실행) →
GameEngineCore(물리/카메라 적용)**

1) GameEngineCore (Module)
역할
-
카메라 엔진 + 물리 엔진 제공
-
“어떻게 움직이고/따라가고/충돌시키는가” 같은 기계적 처리만 담당
-
도메인 지식 없음
(벽에 닿으면 죽는다, 점프 횟수 제한, 캐릭터 수 등 “게임 규칙”은 여기 없음)
포인트
- 재사용/확장 대상: 게임이 늘어나도 EngineCore는 그대로 두고 튜닝(상수/프로파일) 으로 대응
2) Games (Rule Module)
역할
- 여러 게임(JumpGame, StairGame 등)의 룰셋/도메인 로직 보관
- 예: 캐릭터 수, 승패 조건, 점프 가능 조건, 벽/바닥 접촉 시 규칙, 스코어/진행 규칙 등
- SpriteKit 의존성 없음 (순수 로직)
구성 예
JumpGameManager, StairGameManager 같은 “게임별 관리자”가
- 입력(의도/커맨드)을 받아 상태/명령을 결정하고
- Presentation 쪽에 전달할 “결과(명령/상태)”를 만든다
3) InputSystem (Module)