§6.4.3-5 가 정의하는 순서다.
Emergency > Fault > Warning > Smart Access 피드백 > Goodbye > 일반 Ambient
각 등급이 자기보다 낮은 것들을 전부 열거하는 방식으로 쓰여 있다. 중복처럼 보이지만 §9 의 검증 가능성 때문이다 — "Emergency > Fault"만 쓰고 추이성에 기대면 "Emergency vs 일반 Ambient"를 직접 검증할 근거 요구사항이 없어진다.
왜 안전 3종이 일시적 표시보다 위인가
일시적 표시는 정보이고 안전 표시는 경고다. 문이 잠겼다는 사실은 나중에 확인해도 되지만, 손가락이 끼었다는 사실은 지금 알아야 한다.
Smart Access 피드백 > Goodbye 의 순서에도 근거가 있다 — 전자는 사용자 행동에 대한 응답이고 후자는 시스템의 자발적 표시다.
선점된 일시적 표시는 되살아나지 않는다
"안전 관련 표시가 종료된 이후 이전에 중단된 일시적 Smart Access 시각 피드백 또는 Goodbye Lighting 을 자동으로 재개하지 않아야 한다."
Goodbye 가 Emergency 에 밀려 중단됐다가 5분 뒤 되살아나면 사용자는 "왜 지금 작별 인사를?"이라고 생각한다. 일시적 표시는 그 순간에만 의미가 있다.
구조로 막는 구현
매 주기 살아있는 항목 중 최우선을 다시 고르면 선점이 자동으로 일어나고, 재개 로직을 만들 자리가 없다.
for (int i = 0; i < AMB_PRIO_COUNT; i++) {
if (!alive(i)) continue;
ambient_apply(&g_amb[i]);
return;
}
요구사항을 if 로 방어하는 대신 어길 수 없는 자료구조를 고르는 것이다.