Date: 2026-07-22
Decision#
V5 has real period rules, schedules, case closure, radio-program descriptors, and authored live-event contracts. It does not currently produce one authoritative per-day world event log from which a procedurally true newspaper can be compiled. The daily newspaper, derived radio bulletin, Rail channel, and their downstream pacing tests must stay unregistered until that source exists. The separately declared world-window gate remains unchanged.
This is a source-integration gate, not a claim that the V5 systems are empty.
What the period simulation actually produces#
Time and NPC schedules#
V5Open advances a 48-minute game-day clock and exposes density, weather,
traffic, and pedestrian calculations. V5Schedules loads era-specific NPC
schedule rows and can resolve an NPC's activity/location at a supplied time. It
also evaluates a named-NPC route crossing and suppresses a repeat when the
caller says it already triggered that day.
These are deterministic query systems. They do not own a persistent scheduler
that advances every period NPC, records completed activities, or appends a
day-stamped event stream. The bAlreadyTriggeredToday state is supplied by the
caller; the schedule evaluator does not persist it.
Period cases#
V5PeriodViceSquad contains real case, desk, evidence, interrogation, and
closure rules. CloseCase returns a closure record, including a generated
NewspaperHeadline. The headline is a short deterministic string derived from
the case title, rating, and solved flag; the poor/failure path intentionally
still closes the case and prints a city-edition headline.
That result is a valid newspaper input event. It is not a newspaper issue or a daily event log, and no inspected path persists the closure into an editorial queue with event time, district, public-safety impact, source corroboration, or story body.
Persistent world events#
V5OnlineServices authors twelve Year-1 world-event scripts. Two are
period-specific (union strike and vice sweep), and their declared settlement
rules mention civic tension, checkpoint density, informant availability,
security, and newspaper headlines. The client builds a request for
/v5/live-service-calendar/world-events/year1 and validates script metadata,
ETag requirements, and settled-snapshot intent.
These records are scheduled content definitions and request contracts. They do not contain observed objective progress, a chosen settlement, applied world state, or a persisted day-level outcome. They therefore cannot evidence what actually happened in a player's simulation day.
Personas#
V5 has companion/persona state and learning-signal structures in individual cells, plus partner/witness memory in the period case systems. None of the inspected period paths composes those states into an authoritative daily public-event record. Persona flavor can inform future editorial voice only after the underlying event is real; it cannot supply the missing event.
Newspaper gap#
A fail-loud newspaper compiler needs a versioned source envelope containing at least:
- world/save identity, in-game date, era, city, and monotonically ordered event sequence;
- committed case closures and world-event settlements;
- material schedule/encounter, faction, economy, crime, civic, and weather outcomes rather than queries or planned scripts;
- stable subject/location identifiers, public-safe facts, and provenance; and
- a state hash or cursor tying the issue to the persisted simulation state.
No such envelope, event store, or read endpoint exists in the inspected V5 UE and service surfaces. Creating article prose from the catalog's case titles or twelve planned event scripts would be canned copy. Per RC.4, an empty source must mean no paper, not fallback stories.
Radio gap#
V5RadioTV has a real station/segment catalog, deterministic segment selection,
MetaSound/bus descriptors, talk-rotation selection, and a news-bulletin
injection record. V5Audio also defines period AM/FM routing. The catalog's
segments reference cue IDs and the period music manifest references an Unreal
runtime path.
There are no checked-in .wav, .ogg, or .mp3 media files under
V5/ue/Content, and V5/V5_TODOS.md still leaves authoring the 18 roughly
90-minute radio loops open. The current bulletin API takes caller-supplied
headline text and schedules it; it does not render that text through a TTS
authority or return playable audio. Consequently RC.4 cannot yet publish a valid
audio-lane holder from period assets plus sim-derived interstitials.
Mind Palace and world windows#
The independent Mind Palace seam is now implemented in the existing RA.5
@oshun/v10-case-files-cook job. A strict v10.case-files.v5-period-source.v1
boundary requires a versioned V5 snapshot, era, themes, at least six cast
records, and one to four setting locations. The adapter converts those records
into the V8 CanonContext and existing CaseSpec.castConstraints; Clew now
enforces required cast/location existence and uses required locations in the
actual ground truth rather than treating them as descriptive metadata.
cookPeriodSlowDripCase traverses the same Minos, direct DPLL, finite-domain
CSP, G4–G8, Daedalus, provenance, Ed25519 receipt, and immutable artifact path
as the RA.5 daily cook. Its schedule releases evidence and witnesses across 3–14
whole local days before the accusation window. The end-to-end fixture uses six
named V5 cast members and four V5 locations, proves all of them reach the
public/realized case, crosses the 2026 America/New_York daylight-saving
transition without moving the 20:00 local accusation, verifies all eight gates,
and verifies the signed receipt. The file-backed CLI path is covered as well.
The V5 world runtime/media source required for streets, harbor, or trains is still the explicit world-window gate. RC.1 and RB.3 are ready to consume real media when that source exists; they are not evidence of V5 render bytes.
Verification performed#
The source audit covered V5's open-world clock and population systems, NPC schedules, period Vice Squad case/closure path, persistent Year-1 world-event contracts, RadioTV catalog and bulletin injection, period audio routing, content manifests, and the V5 implementation ledger. The checked-in media catalog and period radio manifest parse as descriptors, while the content tree contains no source audio files.
Focused TypeScript/Vitest verification also covers the V5 period-source schema, required engine geography, missing-source fail-loud behavior, a real slow-drip cook, multi-day pacing, DST wall-clock preservation, CLI persistence, and receipt verification.
A focused Unreal automation run for V5.PeriodViceSquad was attempted with the
required local UE 5.5 editor as ueagent. The editor found V5Editor.target
but failed before automation discovery because its installed PCG plugin could
not load the PCGCompute module; shutdown then hit the engine's queued-thread
pool assertion. This is a local engine/plugin build-compatibility blocker, not
evidence of a daily event source or playable radio content.
Reopen criteria#
The newspaper and channel work can begin when V5 provides:
- a persisted, versioned, per-save daily event stream with committed outcomes and a stable cursor/state hash;
- a production read boundary that returns a complete in-game day or fails loudly when the day is incomplete;
- editorial eligibility and public-safety metadata for each event class;
- period radio media whose cue IDs resolve to playable, rights-cleared assets;
- a production TTS/audio-render receipt for sim-derived bulletins; and
- an integration fixture that advances a known period day and proves exact events, issue selection, bulletin order, and issue-to-state provenance.
The Mind Palace case no longer depends on these reopen criteria. World windows additionally require the declared V5 render/runtime source.