fix: Ref 게임 로직과 시나리오 풀 호환을 보정

월 경계, 전투 기술 상한, 연감과 베팅·설문·경매 정산 순서를 Ref 계약에 맞춘다.\n\n시나리오 일반 풀을 ENGINE mutation과 logical tick 기반으로 직렬화하고 914·915 catalog 및 조건부 100기 pool 실행 경계를 추가한다.\n\n경매 worker는 세대별 durable event만 만들고 ENGINE이 row lock 후 상태 전이와 정산을 단일 transaction으로 소유한다.
This commit is contained in:
2026-08-23 16:26:14 +00:00
parent bf6b7be7b0
commit 85591c68ad
114 changed files with 13327 additions and 901 deletions
+18 -6
View File
@@ -21,14 +21,26 @@ const stableJson = (value: unknown): string => {
}
return JSON.stringify(value) ?? 'null';
};
const commandIdentityJson = (value: unknown): string => {
export const commandIdentityJson = (value: unknown): string => {
if (!value || typeof value !== 'object' || Array.isArray(value)) {
return stableJson(value);
}
const commandType = String(Reflect.get(value, 'type'));
if (
value &&
typeof value === 'object' &&
!Array.isArray(value) &&
Reflect.get(value, 'type') === 'npcPossessGeneral'
[
'npcPossessGeneral',
'selectPoolReserve',
'selectPoolCreate',
'selectPoolReselect',
'voteReward',
'auctionBid',
].includes(commandType)
) {
const { acceptedGameAt: _acceptedGameAt, ...identity } = value as Record<string, unknown>;
const {
acceptedGameAt: _acceptedGameAt,
acceptedGameTick: _acceptedGameTick,
...identity
} = value as Record<string, unknown>;
return stableJson(identity);
}
return stableJson(value);