day-night · git:20260913.6102fc3 · 2026-09-13 · sha256 9124572286a4a4ba

day-night git:20260913.6102fc3A

Immutable. This exact content never changes and is served at /api/v1/blob/9124572286a4a4ba.

---
name: day-night
description: Use when world time changes lighting, schedules, availability, stealth, spawning or other systems and the project needs one versioned clock contract with explicit consumers.
---

# Day night

Ask the mode: cosmetic, scheduled-world, gameplay-linked, externally-driven, hybrid, or existing.

## Contract

Publish:
- stable `time_cycle_id` and revision
- clock source and time scale/pause policy
- canonical time state and boundary definitions
- stable transition identity for dawn/day/dusk/night or project equivalents
- persistence/suspend behavior
- list of authorized effect consumers

## Ownership

`day-night` owns canonical world-time state and transition events. Lighting, spawn schedules, stealth, weather, quests and audio consume that state through their own skills. It does not rewrite combat clocks or save bytes.

## Rules

1. A transition is emitted once for a given state boundary/revision; resume or duplicate callbacks cannot replay it accidentally.
2. Time skips, sleeps and scripted jumps declare source and resulting transition sequence.
3. Save/load restores canonical time plus policy revision; presentation interpolations are not the source of truth.
4. Systems may ignore world time or depend on it according to project policy; neither choice is universal.

## Acceptance

Given the same `time_cycle_id`, revision, clock source and start state, the same canonical time and transition identities result. Consumers can change presentation or schedules without becoming a second time owner.