A world built from knowledge. A game built around the programs its player learns to write.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Reality remembers what someone preserves.
Knowledge is physical. Magic is a program. Preservation is a choice.
An isometric action RPG about restoring a world whose relationships, memories and meanings are being erased. As the last Archivist, the player discovers concepts, composes executable knowledge and learns why each corrupted region is failing.
The central promise is expressive authorship: two players can recover the same vocabulary and build spells that solve the encounter in fundamentally different ways.
01 / World
Knowledge is physical
Relations form bridges. Memories preserve state. Missing provenance leaves gaps in the structure of reality.
02 / Play
Magic is programming
Typed semantic primitives combine with operators and carriers. Every cast is finite, explainable and constrained.
03 / Progress
Learn a language
Discovery unlocks new ways to compose effects, not only larger damage values.
04 / Conflict
Understand corruption
Enemies embody erasure, noise, contradiction and drift. Observation can change the fight.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Implement O17..O32 and Aura, Tether, Sigil, Construct with fanout and lifetime evidence.
X04
World and enemy expansion
Author the remaining seven regions and four corruption families with unique restoration rules and navigation evidence.
X05
Campaign and knowledge crises
Author region progression, contested-history encounters, final compression antagonist and multiple stewardship outcomes.
X06
Advanced item language
Add signatures, axioms, exceptions and artifacts through admitted schema transforms with no compiler bypass.
X07
Asset forge and authored polish
Build the optional development-time asset pipeline with tool versions, rights records, deterministic cleanup and human selection.
X08
Product hardening
Expand localization, hardware matrix, controller coverage, save migrations and accessibility based on demo evidence.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
The gameSECTION 05 / 32
The spell language
Meaning, computation and geometry stay separate so new combinations remain explainable.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
A spell is a finite, typed program
Primitive × Operator × Carrier × Target × Trigger
Domain primitives specify what an operation means. Operators specify evaluation order, branching and repetition. Carriers specify how an effect reaches the world. Equipment can change admitted parameters or schemas, but cannot bypass types, budgets or persistence rules.
SEMANTICS
Domain primitive
Memory.Restore moves an eligible target toward captured state. It knows nothing about whether delivery is a bolt or a field.
COMPOSITION
Structural operator
Gate evaluates a body only when its Boolean condition is true. Delay schedules a bounded later evaluation.
DELIVERY
Carrier
A Bolt determines travel, collision and reach. It does not invent damage or decide whether a claim is supported.
The compilation path
parse versioned graph
resolve catalog IDs and bindings
unify exact ports and units
validate visibility/capabilities
normalize pure graph
calculate worst-case resources and fanout
prove bounded scheduling and termination
emit effect plan with source map
run reference VM
project committed events to presentation
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
The gameSECTION 06 / 32
Shapes & execution
The shared rules every primitive, operator and component must obey.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Values carry shape, units and provenance
Scalar
signed int64 / UnitRef / 1024 / value=raw/1024; no implicit unit conversions
raw: signed int64; unit: UnitRef; scale: 1024; meaning: value=raw/1024; no implicit unit conversions
At each tick read from immutable start-of-tick snapshot, evaluate plans, then apply conflict-resolved deltas atomically per cast; later casts see the same read snapshot but reservation and write-version conflicts are serialized by cast_id. A version conflict rejects the later conflicting cast instead of silently reevaluating it.
numeric add
Conflict rule
Sum same-unit deltas then clamp once to effective capacity.
numeric multiply
Conflict rule
Multiply fixed-point modifiers in ascending effect ID order; cap total penalty at 75 percent unless a primitive is tighter.
capacity
Conflict rule
Apply capacity modifiers before current-value deltas; expiry restores cap without healing.
exclusive slots
Conflict rule
Conflicting replacements on the same slot reject the later cast by cast_id.
restoration
Conflict rule
Never restore currency, pickups, permanent progression, entity generation, attestation history or Archive Authority. Recheck navigation for position writes.
spawn
Conflict rule
Reserve IDs and summon slots before committing; no loot from temporary entities.
read staleness
Conflict rule
Observed data keeps its timestamp; staleness is not erased by encoding, copying or attesting.
periodic
Conflict rule
Current-tick effects are atomic; already committed prior ticks are never rolled back if a later scheduled activation fails.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
RepresentationSECTION 07 / 32
Information
Signals, encoding and transport. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Information / contracts 01–08
Representation is a tactical material.
The player can reduce a signal’s precision to carry it more cheaply, route it through an exposed relay, or distribute it to several recipients. None of those actions establishes that its contents are true. This distinction lets a packet remain perfectly encoded while the claim it carries is wrong.
A relay encounter can reward the player who recognizes the valid packet and preserves its precision, while another build spends bandwidth broadcasting a coarse threshold. Both manipulate representation; they should produce visibly different transport and precision tradeoffs.
Boundary Does not establish truth, create meaning or measure hidden state.
P01.01Demopure
Encode
value: Scalar, codec: Codec → Signal<Scalar>
Serialize value with the selected codec and retain its unit and source IDs; output error_bound is zero.
Reject
Codec does not support the value unit.
Counterplay
Intercept the carrier before delivery.
BW 1 · Coherence 0 · Debt 0 · Authority 0
P01.02Demopure
Decode
signal: Signal<Scalar>, codec: Codec → Scalar
Recover the represented scalar and its declared error bound; decoding alone cannot write an entity field.
Return after.value-before.value with summed error bounds and unioned source IDs.
Reject
Units or codec IDs differ.
Counterplay
Change an unmeasured field to evade this comparison.
BW 1 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
RepresentationSECTION 08 / 32
Semantics
Context-bound symbols and interpretation. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Semantics / contracts 01–08
The same symbol can mean different things.
Semantics binds symbols to explicit contexts and registered meanings. Translation, reframing and disambiguation must state what mapping they use. Analogy is useful, but it is not factual support. Literal physical responses are authored allowlisted interactions.
An inscription puzzle should make its context legible through the room, not demand arbitrary word guessing. A clever build can preserve or scope a binding while a drift-oriented enemy changes another one.
Boundary Does not manufacture global meanings or equate analogy with factual support.
P09.01Expansionread
Denote
symbol: Atom, context: ContextRef → MeaningRef
Resolve the exact symbol in the explicit context dictionary; no fallback to another context.
Limit one owned local dictionary binding to the specified observed entities for duration.
Reject
Binding is not owned or targets exceed sixteen.
Counterplay
Leave the explicitly scoped target set.
BW 4 · Coherence 2 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
RepresentationSECTION 09 / 32
Grammar
Inert typed syntax and reusable graph structures. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Grammar / contracts 01–08
The language itself becomes a reusable object.
Grammar handles inert syntax, named bindings, typed fragments and schema transformations. Quoting a graph does not execute it. Simplification cannot remove effects, lineage or charges. Every reconstructed graph still passes through the compiler.
Advanced players can abstract a reliable spell into a template, substitute a compatible fragment and preserve a versioned schema. The interface should make structural changes explainable without presenting arbitrary source code execution as magic.
Boundary Does not execute quoted graphs or bypass compilation.
P12.01Expansionpure
Tokenize
text: Text, grammar: GrammarRef → List<Token>
Split bounded DSL text using the registered lexer; report source spans for each token.
Reject
Text exceeds 4096 bytes or contains an invalid token.
Counterplay
In puzzles, use a symbol outside the admitted grammar.
Attach an explicit schema version and parent content hash without altering node behavior.
Reject
Version is not greater than the fragment's current version.
Counterplay
Reject callers still pinned to the old version.
BW 1 · Coherence 0 · Debt 0 · Authority 0
P12.16Expansionpure
SealSchema
fragment: GraphFragment → Certificate
Produce a content-addressed schema seal over normalized nodes, bindings and budgets; excludes presentation notes.
Reject
Fragment contains unresolved ports not declared public.
Counterplay
Any semantic edit invalidates the seal.
BW 1 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
RepresentationSECTION 10 / 32
Observation
Observable measurements and uncertainty. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Observation / contracts 01–08
Knowing begins with an available measurement.
Observation exposes visible fields, uncertainty and measurement age. It does not look through walls or authenticate a record’s origin. Missing samples become gaps; calibration cannot invent resolution. A remembered marker is not continuous tracking.
The player can illuminate a clue, instrument a construct or compare readings. Enemies can move within an error interval, break a sensor line, or change an unmeasured variable. Make those limits perceptible.
Boundary Does not read through walls, attest truth or promote absent data to zero.
P15.01Expansionread
Sense
target: Entity, field: FieldRef → Scalar
Read one currently visible allowlisted numeric field from target; include observation tick and unit in value metadata.
Reject
Field is hidden or belongs to another entity.
Counterplay
Occlude the target or conceal that field.
BW 2 · Coherence 0 · Debt 0 · Authority 0
P15.02Expansionread
Inspect
target: Entity → Record
Return currently observable identity, position and revealed resistance fields; unknown fields remain explicitly absent.
Attach one owned sensor to a construct; readings obey range, occlusion, cadence and the shared observation budget.
Reject
Target is unowned or sensor slot occupied.
Counterplay
Destroy or occlude the instrumented construct.
BW 4 · Coherence 2 · Debt 0 · Authority 0
P15.16Expansionread
ObserveObserver
target: Entity → EntitySet
Return visible entities currently directing detectable sensors at target; undetectable sensors stay unknown.
Reject
Target is not owned or visible.
Counterplay
Disable sensor emission before observation.
BW 2 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
State & changeSECTION 11 / 32
Entropy
Loss, degradation and conserved redistribution. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Entropy / contracts 01–08
Loss should have a readable object.
Entropy attacks current values, maximum capacity, maintenance and recovery links through separate operations. Those distinctions matter because the healthy response changes: replenishing current shield helps against a drain but cannot remove a lowered capacity.
The player should recognize whether armor is rusted, a ward is unraveling or restoration is severed. Debt limits sustained manipulation. It should not become an excuse for unexplained random punishment.
Boundary Does not reroll probability, alter permanent progression or delete historical evidence.
Replace one breakable shield attachment with parts targetable fragments; divide integrity without increasing its sum; expiry recombines surviving integrity.
Reject
Attachment is not breakable or parts is outside 2..4.
Counterplay
Guard the exposed fragments or interrupt the cast.
Cap this field's inbound restoration per tick at threshold; discard excess without affecting other fields.
Reject
Field cannot receive restoration or threshold is negative.
Counterplay
Heal through multiple fields or after expiry.
BW 4 · Coherence 2 · Debt 2 · Authority 0
P02.16Expansionwrite
Exhaust
target: Entity, duration: Duration → Effect
Suspend regeneration of temporary shield and bandwidth for duration; preserve current pools and movement.
Reject
duration exceeds thirty-two ticks.
Counterplay
Retreat until regeneration resumes.
BW 4 · Coherence 2 · Debt 2 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
State & changeSECTION 12 / 32
Memory
Recorded past state and bounded replay. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Memory / contracts 01–08
A record is not a reset button.
Memory separates capturing, reading, replaying and restoring. A snapshot carries identity, generation and expiry; a recall reads without changing reality. Restoration must honor current capacity, navigation and permanent progression boundaries.
The strongest memory play rewards preparation and timing. An opponent can block a bookmarked position or sever a recovery link. Echoes replay eligible committed events once and never create an unlimited chain of echoes.
Boundary Does not rewind global time, restore currency or echo an echo.
Return a copy with selected payload fields removed and explicit redaction markers; keep lineage and capture tick.
Reject
Requested removal includes lineage or ownership metadata.
Counterplay
Require a redacted field and force fresh observation.
BW 1 · Coherence 0 · Debt 0 · Authority 0
P03.16Expansionpure
Interleave
left: Pattern, right: Pattern → Pattern
Alternate one event token from each pattern, preserving each internal order; append the remaining suffix.
Reject
Combined sequence exceeds sixteen tokens.
Counterplay
Interrupt between alternating attacks.
BW 1 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
State & changeSECTION 13 / 32
Causality
Explicit cause-response links and interventions. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Causality / contracts 01–08
A relationship can carry a consequence.
Causality adds bounded event-response behavior to explicit links. It distinguishes querying an event’s instigator from tracing its longer path, and a modeled intervention from a live world edit. Every hop costs budget and recursion stays guarded.
Players can defend a mediator, isolate a target or sever an early link instead of absorbing the final cascade. The architecture should reveal cause and response in sequence, so the encounter teaches its own causal rule.
Boundary Does not infer causation from correlation or mutate reality through a sandbox intervention.
Retarget the cause endpoint of an owned causal edge to a compatible entity; effect endpoint remains fixed.
Reject
Replacement lacks the required event source capability.
Counterplay
Avoid triggering the new cause entity.
BW 4 · Coherence 2 · Debt 0 · Authority 0
P10.16Expansionwrite
BreakCycle
links: List<Relationship> → Effect
Suspend the lowest-priority dispellable edge in each supplied cyclic component, ties by edge ID.
Reject
Cycle includes no dispellable edge or more than sixteen links.
Counterplay
Use an acyclic chain instead of a loop.
BW 4 · Coherence 2 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
State & changeSECTION 14 / 32
Temporality
Ordering, durations and local schedules. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Temporality / contracts 01–08
Timing changes without erasing history.
Temporality owns ages, intervals, local schedules and duration. A stretched status lasts longer; it does not heal its target. Hasten changes future windups, not every game clock. Stasis leaves damage and cooldown clocks running.
Readable time rings and half-open windows make timing a skill rather than a hidden exception. Enemies can commit an attack before slow lands, interrupt a synchronized group, or pressure a stationary construct.
Boundary Does not pause the global clock or restore saved state.
P13.01Expansionread
Now
clock: ClockRef → Duration
Return the current simulation tick as a duration from encounter start; render time is inaccessible.
Reject
ClockRef is not the simulation clock.
Counterplay
Act between separate observation ticks.
BW 2 · Coherence 0 · Debt 0 · Authority 0
P13.02Expansionpure
Age
event: Event<Record>, now: Duration → Duration
Return max(0,now-event.tick) after rejecting future events; units are ticks.
Increase future interruptible windups by fraction, capped at original times 1.5; active windups remain unchanged.
Reject
fraction exceeds 0.5 or target has temporal immunity.
Counterplay
Commit an attack before slow lands.
BW 4 · Coherence 2 · Debt 0 · Authority 0
P13.11Expansionwrite
Synchronize
targets: EntitySet, cadence: Duration → Effect
Align owned actors' next periodic pulse to the next shared cadence boundary; preserve remaining pulse counts.
Reject
cadence is zero or actors have incompatible periodic statuses.
Counterplay
Interrupt the group before the shared pulse.
BW 4 · Coherence 2 · Debt 0 · Authority 0
P13.12Expansionwrite
PhaseShift
target: Entity, offset: Duration → Effect
Shift one owned periodic schedule forward by offset without changing count or granting invulnerability.
Reject
offset exceeds sixteen ticks or would exceed effect expiry.
Counterplay
React to the shifted visible cadence.
BW 4 · Coherence 2 · Debt 0 · Authority 0
P13.13Expansionwrite
Deadline
target: Entity, interval: Interval → Effect
Attach a visible objective timer that emits one DeadlineMissed event if the tagged objective is unfinished at end.
Reject
Objective is not a local optional encounter objective.
Counterplay
Complete the objective before the displayed deadline.
BW 4 · Coherence 2 · Debt 0 · Authority 0
P13.14Expansionread
CooldownRead
target: Entity, ability: Atom → Duration
Return remaining cooldown ticks of an observed ability; hidden ability IDs are rejected.
Reject
Ability has not been observed.
Counterplay
Use an unrevealed ability.
BW 2 · Coherence 0 · Debt 0 · Authority 0
P13.15Expansionpure
Reorder
events: List<Event<Record>> → List<Event<Record>>
Stable-sort supplied records by original event tuple; does not reschedule committed world events.
Reject
Events span incomparable clocks.
Counterplay
Use actual timing differences rather than list ordering.
BW 1 · Coherence 0 · Debt 0 · Authority 0
P13.16Expansionwrite
Stasis
target: Entity, duration: Duration → Effect
Pause one owned construct's AI and movement for at most sixteen ticks; damage, status expiry and cooldown clocks continue.
Reject
Target is player, boss or not owned.
Counterplay
Damage the stationary construct while its clocks continue.
BW 4 · Coherence 2 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
ReasoningSECTION 15 / 32
Logic
Explicit predicates and finite inference. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Logic / contracts 01–08
A clever condition can be the spell.
Logic produces explicit Boolean results, bindings and premise-linked claims. It does not hide execution inside a truth operator. Imply computes material implication; Gate decides whether another expression runs. Unknown facts must remain visible as missing input rather than convenient false values.
A logic-focused build trades broad effect coverage for the right response at the right time. Give predicates readable thresholds and let enemies invalidate one premise. The player needs to understand why the graph chose not to cast.
Boundary Does not turn unknown into false or execute consequences through Imply.
Enumerate Boolean assignments in ascending bit order and return the first satisfying binding; at most eight variables.
Reject
Variables exceed eight or clause set exceeds sixteen.
Counterplay
Add an incompatible clause so the result is None.
BW 8 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
ReasoningSECTION 16 / 32
Ontology
Entity types, schemas and relationships. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Ontology / contracts 01–08
Classification changes what can interact.
Ontology owns encounter types, admissible relationships and carefully bounded transformation. A membership query does not retype an enemy. A local subtype does not rewrite the world’s permanent taxonomy. These boundaries keep type manipulation powerful without becoming unrestricted reality editing.
A precise classification can turn a modest effect into a good answer for one enemy family. Broader classifications should lose specificity. Make temporary tags and relation proxies visible so opponents can escape, cleanse or attack them.
Boundary Does not fabricate evidence, change identity through a query or write global type definitions.
P05.01Demoread
Type
target: Entity, type: TypeRef → Boolean
Query membership in the current encounter type hierarchy; no assignment is performed.
Replace exactly one endpoint of an owned relation after endpoint-type and reach validation.
Reject
Endpoint is absent, relation is protected or replacement is incompatible.
Counterplay
Move the replacement out of reach.
BW 4 · Coherence 2 · Debt 0 · Authority 0
P05.14Expansionpure
Exclude
type: TypeRef, excluded: TypeRef → TypeRef
Return a local set-difference type matching type AND NOT excluded.
Reject
Types belong to different registries.
Counterplay
Adopt the excluded temporary classification.
BW 1 · Coherence 0 · Debt 0 · Authority 0
P05.15Expansionread
Enumerate
type: TypeRef, candidates: EntitySet → EntitySet
Return present candidates matching type in ascending ID order; never discovers unseen entities.
Reject
Candidates contain entities inaccessible to the caster.
Counterplay
Hide outside the observed candidate set.
BW 2 · Coherence 0 · Debt 0 · Authority 0
P05.16Expansionpure
Normalize
type: TypeRef → TypeRef
Resolve registry aliases to the canonical type ID without changing membership.
Reject
Alias graph is cyclic or unresolved.
Counterplay
Use an actual subtype difference rather than an alias.
BW 1 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
ReasoningSECTION 17 / 32
Probability
Explicit distributions and seeded sampling. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Probability / contracts 01–08
Uncertainty is something the player can shape.
Weights, distributions and explicit seeds let the player choose how much variability to tolerate. Sampling a distribution and changing its outcomes are different operations. A shared roll can create correlation, but never becomes knowledge that the underlying claim is true.
The interface should expose possible outcomes and bounds before a commitment. A low-variance build and a reroll-focused build can feel different without requiring opaque luck. Replays preserve exact keyed draws so observed behavior can be explained.
Boundary Does not predict truth or search unbounded alternatives.
P06.01Demopure
Seed
value: Integer, stream: Integer → Seed
Create an explicit deterministic random stream from unsigned value and stream index; consumes no draws.
Return the normalized probability mass of the exact observed discrete value, zero when absent.
Reject
Observed unit differs.
Counterplay
Produce an observation the model assigns negligible mass.
BW 1 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
ReasoningSECTION 18 / 32
Counterfactual
Explicit hypothetical scenarios and comparison. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Counterfactual / contracts 01–08
Alternatives help decide; they do not rewrite the past.
Counterfactual branches are copied scenarios with explicit assumptions, missing fields and finite horizons. A forecast is hypothetical. Contrast, regret and sensitivity mean something only when the compared baselines and metrics match.
The player can rehearse a plan, identify a robust choice and precommit conditionally. Live checks still happen at execution. An opponent can change an assumption and invalidate the forecast without the game pretending the simulation had perfect knowledge.
Boundary Does not modify past history, assert forecasts as fact or carry unknown state into simulation.
P16.01Expansionsandbox
BranchHistory
memory: Memory<Record> → Scenario
Create an isolated scenario from captured allowed fields, with explicit missing-field list and no world-write capability.
Reject
Memory is expired or lacks minimum combat fields.
Counterplay
Exploit missing variables that the branch cannot model.
Apply scenario's explicit input edits to a newer compatible snapshot; mark forecast caches invalid.
Reject
Entity generation changed or edited fields disappeared.
Counterplay
Change the entity identity to invalidate stale alternatives.
BW 8 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Actors & trustSECTION 19 / 32
Persona
Perceived identity and archetype traits. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Persona / contracts 01–08
Identity has appearance, behavior and limits.
Persona works with masks, temporary archetypes, traits and owned aspects. A perceived faction never changes actual damage permissions. Copying an observed attack does not grant every behavior of its origin. Archetypes keep weaknesses as well as bonuses.
A familiar can wear a role or project a convincing decoy, while a witness-focused opponent reveals the mismatch. The player keeps control of their own actions; these mechanics affect NPC interpretation and bounded owned actors.
Boundary Does not rewrite actual faction permissions or control player decisions.
Simulate the persona policy for sixteen ticks in the provided copied scenario; return chosen actions and outcomes.
Reject
Scenario lacks required observable policy fields.
Counterplay
Change encounter conditions after rehearsal.
BW 8 · Coherence 0 · Debt 0 · Authority 0
P07.15Expansionwrite
Transfer
from: Entity, to: Entity, trait: Trait, duration: Duration → Effect
Move one removable trait between two owned aspects atomically; source loses exactly what destination receives.
Reject
Source lacks trait or destination has an exclusive conflict.
Counterplay
Break reach between aspects before transfer.
BW 4 · Coherence 2 · Debt 0 · Authority 0
P07.16Expansionwrite
AnchorIdentity
target: Entity, duration: Duration → Effect
Prevent replacement of one actor's Assume and Mask slots for duration; existing slots persist.
Reject
Target is not owned or anchor already active.
Counterplay
Wait for anchor expiry instead of attempting overwrite.
BW 4 · Coherence 2 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Actors & trustSECTION 20 / 32
Provenance
Evidence lineage, support and contested claims. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Provenance / contracts 01–08
A claim needs a route back to its support.
Witnessing, citing, tracing, checking and attesting are separate operations. Ten copies of one record are not ten independent witnesses. An attestation authenticates origin, not truth. A supported claim may still become disputed when relevant counterevidence appears.
Restoration becomes a meaningful culmination of combat and observation. Canonize requires a supported claim, independent sources, no unresolved dispute and explicit Authority. Rejected commits spend no Authority, and required evidence remains recoverable.
Boundary Does not equate confidence with certainty or turn simulated evidence into witnessed fact.
Return true only when evidence contains a matching subject/time counterexample to the claim predicate.
Reject
Evidence is not independently checkable.
Counterplay
Narrow the claim to exclude the counterexample honestly.
BW 1 · Coherence 0 · Debt 0 · Authority 0
P08.06Demopure
Triangulate
evidence: List<Evidence> → Evidence
Deduplicate by ultimate source ID and combine support as 1-product(1-confidence) across independent groups; cap at 0.95.
Reject
Evidence concerns different propositions or no independent sources remain.
Counterplay
Reveal that apparent witnesses share one origin.
BW 1 · Coherence 0 · Debt 0 · Authority 0
P08.07Demopure
Attest
evidence: Evidence, key: KeyRef → Evidence
Add a game-issued attestation binding evidence digest to an authorized in-game witness key; truth is unchanged.
Reject
Key cannot attest for the stated witness.
Counterplay
Revoke the witness key or supply contradictory evidence.
BW 1 · Coherence 0 · Debt 0 · Authority 0
P08.08Demowrite
Canonize
claim: Claim<Boolean>, target: Entity → Effect
Commit one restoration milestone when claim is supported, confidence>=0.9, two independent sources exist and no unresolved dispute remains; spend one Archive Authority.
Reject
Target is not a restoration anchor or milestone already committed.
Counterplay
Expose a dispute before the explicit commit action.
Bind graph content hash and required premise digests into a certificate with earliest evidence expiry; grants no new permissions.
Reject
Any declared required premise is unsupported.
Counterplay
Change the graph or allow evidence to expire.
BW 1 · Coherence 0 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Actors & trustSECTION 21 / 32
Attention
Salience and allocation of perception. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Attention / contracts 01–08
What an actor notices is not what it must do.
Attention governs salience, focus, retained observations and allocation. A stimulus may influence an NPC without forcing its next action. An old last-seen position stays visibly stale. Observation owns field visibility; Agency owns an owned actor’s goals.
Decoys, divided attention and narrow perception create spatial tactics. Counterplay should be concrete: inspect the decoy, flank the cone, break sight or create stronger legitimate evidence of danger.
Boundary Does not reveal hidden fields or guarantee an actor will obey a stimulus.
Copy an owned actor's highest observed stimulus as a low-strength suggestion to allies, preserving observation age.
Reject
Recipients are hostile or exceed eight.
Counterplay
Break sight after the shared observation.
BW 4 · Coherence 2 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Actors & trustSECTION 22 / 32
Agency
Bounded goals, plans and owned actors. Sixteen distinct contracts and their interaction boundaries.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Agency / contracts 01–08
A plan is conditional, not a promise.
Agency separates goals, plans, evaluation and commitment. An owned construct has a bounded action allowance, an authored ability schema and safe fallback behaviors. Planning can fail honestly when no valid route exists inside its search budget.
A familiar can defend, pursue or hold without gaining unlimited autonomy. The interesting choice is which goal to reserve resources for, and when new evidence should make the player abandon that plan.
Boundary Does not grant abilities outside an actor schema or override player input.
Set owned construct policy mode to 0=hold, 1=defend, 2=pursue; enforce shared leash and budget in every mode.
Reject
level is outside 0..2.
Counterplay
Bait pursuit toward the leash boundary.
BW 4 · Coherence 2 · Debt 0 · Authority 0
Shared rule: exact typed ports; resource reservation before commit; no authoritative sandbox writes. Every primitive requires positive, rejection, boundary, legal-edge and illegal-edge evidence. Full state, cost, source and acceptance fields are available in its contract panel and source YAML.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Systems & deliverySECTION 23 / 32
Composition operators
Thirty-two operators, with exact ports, evaluation behavior and hard bounds.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
The source grammar / O01–O16
The first sixteen operators form the demo vocabulary. They are domain-neutral and preserve effect linearity: deferred effects cannot be freely copied, memoized or retried.
O01demo
Sequence
first: Expr<A>, second: Expr<B> → B
Evaluate first to completion then second, preserving effect order and charging both worst-case budgets.
Bound: No cyclic dependency; A may be discarded only if it is not an unconsumed linear Effect.
O02demo
Parallel
branches: List<Expr<T>> → List<T>
Evaluate branches against one snapshot; merge in branch index order, never wall-clock completion order.
Bound: At most four branches; reject incompatible exclusive writes.
O03demo
Fork
value: T, count: Integer → List<T>
Copy an immutable value count times, charging payload bandwidth for every copy.
Bound: count 1..4; T must not contain Effect or mutable capability.
O04demo
Join
values: List<T> → List<T>
Wait for all declared sibling results and return their original branch order.
Bound: One failed sibling fails Join; no unbounded wait.
O05demo
Gate
condition: Boolean, body: Expr<T> → Option<T>
Evaluate body only when condition is true; otherwise return None without charging body execution cost.
Bound: Static analysis still reserves the body's possible worst-case budget.
O06demo
Select
index: Integer, branches: List<Expr<T>> → T
Evaluate exactly the zero-based selected branch.
Bound: Index must be in bounds; all branches share output type.
O07demo
Map
items: List<T>, body: Expr<U> → List<U>
Bind item and index, evaluate body once per item in input order.
Bound: At most sixteen items; aggregate all child costs and target caps.
O08demo
Reduce
items: List<T>, initial: U, body: Expr<U> → U
Fold left using explicit accumulator and item bindings.
Bound: Body must be pure; no assumed associativity or parallel reassociation.
O09demo
Iterate
initial: T, count: Integer, body: Expr<T> → T
Apply body count times with accumulator and iteration bindings.
Bound: count 0..8; nested total operations must fit the cast budget.
O10demo
Delay
duration: Duration, body: Expr<T> → Event<T>
Schedule one evaluation at current tick plus duration with copied immutable bindings.
Bound: duration 1..320 ticks; recheck live handles at activation; pending event count is bounded.
Retain events with start<=tick<end, preserving order.
Bound: Interval must be valid and available history bounded.
Extensions / O17–O32
These extensions add collection handling, bounded event control and typed recovery. They are specified for the full catalog and are not silently enabled in the first demo.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Systems & deliverySECTION 25 / 32
Resources & progression
Five resource dimensions, four progression tracks and loot that changes the spell language.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Power pays in five currencies
01
Bandwidth
Pays for computation and transport. Capacity 64; regeneration target 8 per second. Missed carriers still cost bandwidth.
02
Complexity
Caps the graph: 16 nodes in the demo, 64 in the full design. More targets and repetitions also consume static budget.
03
Coherence
Reserve cost while effect active; release on expiry. Do not permit reservations above capacity.
04
Entropy Debt
Accumulate on commit up to 100; reject a cast that would exceed 100; decay by one per second out of combat, no random punishment.
05
Archive Authority
Start demo with one; receive one only at designated milestone, never from ordinary enemy loot; milestone spends are idempotent.
Progression expands expression
TRACK
Archivist
Survivability, basic attributes and recovery.
TRACK
Domains
Mastery and access to semantic primitives.
TRACK
Grammar
New operators and bounded composition depth.
TRACK
Codex
Stored spells, observations, schemas and enemy knowledge.
Items modify the language
The demo contains eight authored items centered on slots, modifiers and reusable schemas. Full-product signatures, axioms, exceptions and artifacts require admitted graph transformations. No item may bypass typing, budget analysis or persistence exclusions.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Systems & deliverySECTION 26 / 32
Components & features
Thirty-two owned implementation components and all 64 demo requirements.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Components 01–08 / the semantic kernel
Owned paths are proposed locations in the future game repository. Each component must return its implemented feature IDs and actual acceptance evidence.
C01 / phase 02
Catalog loader
Load versioned primitive, operator, carrier and asset data without evaluating it.
F01 Resolve all 256 primitive IDs
F02 Reject duplicate or unknown catalog IDs
Accept: All catalog IDs resolve and an unknown ID yields UNKNOWN_NODE before execution.
src/catalog/ · depends: none
C02 / phase 02
Type system
Own exact port unification, generic binding and unit dimensions.
F03 Enforce nominal payload shapes
F04 Reject illegal unit conversions
Accept: Entity-to-Vector and hp-to-m inputs reject with the precise node and port.
src/types/ · depends: C01
C03 / phase 02
Graph model
Own immutable graph documents, edges, bindings and revisions.
F05 Serialize graph documents
F06 Track semantic and presentation hashes separately
Accept: A graph round-trip preserves semantic hash; changing only a note preserves that hash.
src/graph/ · depends: C01, C02
C04 / phase 03
Compiler
Transform validated graphs into source-mapped bounded effect plans.
F07 Compile typed graphs
F08 Explain invalid graphs at their source nodes
Accept: Golden legal graph emits a plan and each invalid edge produces its named diagnostic.
src/compiler/ · depends: C01, C02, C03
C05 / phase 03
Budget analyzer
Compute conservative graph, fanout, memory and event ceilings.
F09 Estimate worst-case spell cost
F10 Reject unbounded schedules before play
Accept: Nested loops exceeding 64 events reject before any runtime allocation.
src/budgets/ · depends: C04
C06 / phase 04
Reference VM
Execute plans with deterministic ordering and explicit seeds.
F11 Run plans without rendering
F12 Record replayable execution traces
Accept: The same snapshot, graph and action log produce byte-identical effect traces.
src/vm/ · depends: C04, C05
C07 / phase 04
Effect resolver
Stage, conflict-check and commit authoritative world deltas.
F13 Apply atomic current-tick effects
F14 Enforce write conflicts and restoration exclusions
Accept: A failed precondition leaves all current-tick writes unchanged and restores reservations.
src/effects/ · depends: C06
C08 / phase 07
Observation service
Expose visible field/event bindings with timestamps and unknown markers.
F15 Reveal observed enemy fields
F16 Preserve measurement age and uncertainty
Accept: An occluded field is unavailable; cached observations retain their original tick.
src/observation/ · depends: C06, C07
Components 09–16 / a playable simulation
Owned paths are proposed locations in the future game repository. Each component must return its implemented feature IDs and actual acceptance evidence.
C09 / phase 04
Simulation clock and events
Own ticks, event queues, stable ordering and bounded subscriptions.
F17 Schedule deterministic delayed actions
F18 Cancel expired subscriptions
Accept: Same-tick events order identically at different rendering frame rates.
src/events/ · depends: C06
C10 / phase 05
Resource economy
Own bandwidth, coherence, complexity, entropy debt and authority ledgers.
F19 Reserve and settle cast resources
F20 Prevent authority and restoration duplication
Accept: Repeated milestone activation spends and rewards once; a miss still costs bandwidth.
src/resources/ · depends: C05, C07, C09
C11 / phase 06
Archivist controller
Own player locomotion, aim, dodge, health and death actions.
F21 Move aim cast and dodge
F22 Recover from death at checkpoint
Accept: Movement remains responsive while casting and death returns to a valid checkpoint.
src/player/ · depends: C07, C09, C10
C12 / phase 06
Camera and input
Own fixed isometric camera, input mapping and device prompts.
F23 Support keyboard mouse and gamepad
F24 Support remapping and focus loss
Accept: Unplugging a controller or losing focus never leaves movement or casting held.
src/input/ · depends: C11
C13 / phase 06
Carrier system
Own geometric delivery and hit eligibility.
F25 Deliver Bolt Beam Field Self
F26 Bound repeated hits and collision targets
Accept: A fast bolt does not tunnel through the test wall and a beam respects its hit cadence.
src/carriers/ · depends: C07, C09
C14 / phase 06
Targeting service
Resolve observed candidate sets and explicit selectors.
F27 Select visible eligible targets
F28 Preview affected area before casting
Accept: Preview and committed target eligibility agree on the same tick snapshot.
src/targeting/ · depends: C08, C12, C13
C15 / phase 07
Primitive runtime registry
Dispatch semantic handlers and report unimplemented nodes honestly.
F29 Implement core 64 semantic handlers
F30 Hide unsupported content behind clear availability state
Accept: Every demo primitive passes its contract fixture; other 192 return UNSUPPORTED_PRIMITIVE in play.
src/primitives/ · depends: C01, C06, C07, C08
C16 / phase 08
Combat and statuses
Own damage, resistance, status expiry and interrupt windows.
F31 Resolve shields health and resistance
F32 Expose status stacking and cleansing
Accept: Erosion expiry restores capacity without healing; shields absorb only eligible damage.
src/combat/ · depends: C07, C10, C11, C13, C15
Components 17–24 / encounter and world systems
Owned paths are proposed locations in the future game repository. Each component must return its implemented feature IDs and actual acceptance evidence.
C17 / phase 08
Enemy ecology and AI
Own four demo corruption families and deterministic behavior policies.
F33 Teach distinct corruption counterplay
F34 Telegraph attacks and recovery windows
Accept: Each family has one unique behavior, readable weakness and a non-damage discovery action.
src/enemies/ · depends: C08, C09, C14, C16
C18 / phase 08
Encounter director
Own spawn pacing, room completion and retry state.
F35 Run authored encounter templates
F36 Prevent impossible spawn combinations
Accept: Each of sixteen test seeds has a reachable exit and no required target outside navigation.
src/encounters/ · depends: C16, C17
C19 / phase 09
Spell editor
Own typed node editing, templates, undo and live diagnostics.
F37 Edit spell graphs visually
F38 Keep Manuscript Graph and Glyph views synchronized
Accept: Editing one parameter updates all three views; invalid graph cannot enter the cast slot.
src/editor/ · depends: C03, C04, C05, C15
C20 / phase 09
Spellbook and loadouts
Own named spell revisions, slots and equipped graphs.
Own Archivist, Domain, Grammar and Codex unlock tracks.
F41 Unlock expressive options through discovery
F42 Record observed enemy knowledge
Accept: A discovered resistance persists after reload without granting unobserved properties.
src/progression/ · depends: C08, C10, C20
C22 / phase 10
Item and schema system
Own equipment modifiers and admitted graph fragments.
F43 Provide eight authored demo items
F44 Apply slots modifiers and reusable schemas safely
Accept: An item cannot grant a node that bypasses type, budget or persistence rules.
src/items/ · depends: C01, C04, C10, C21
C23 / phase 11
Region grammar and navigation
Own seeded room topology, navigation and restoration-state geometry.
F45 Generate one biome from bounded room grammar
F46 Reconnect restored routes
Accept: Generated critical path is reachable before and after restoration for sixteen fixed seeds.
src/world/ · depends: C13, C18
C24 / phase 11
Restoration and Archive
Own source-backed restoration objectives and permanent milestones.
F47 Restore three local knowledge anchors
F48 Persist final Archive milestone idempotently
Accept: Canonize requires the exact evidence gate and repeat commit cannot duplicate rewards.
src/archive/ · depends: C07, C10, C21, C23
Components 25–32 / presentation, recovery and return
Owned paths are proposed locations in the future game repository. Each component must return its implemented feature IDs and actual acceptance evidence.
C25 / phase 11
Narrative and onboarding
Own authored prompts, tutorial beats and skip/re-entry.
F49 Teach the eight-stage expedition loop
F50 Explain the Unwriting through playable clues
Accept: A novice can observe, modify a template and restore one anchor without opening Graph View.
src/narrative/ · depends: C19, C21, C23, C24
C26 / phase 12
Boss encounter
Own the Lacuna Warden's three stages and evidence puzzle.
F51 Run a learnable three-stage boss
F52 Unlock victory through restoration and combat
Accept: Damage alone cannot bypass the evidence stage; every stage has a visible recovery route.
src/boss/ · depends: C16, C17, C18, C24, C25
C27 / phase 13
Visual effect grammar
Map domain/operator/carrier events to legible bounded visuals.
F53 Compose spell visuals from grammar
F54 Scale effects to readability and frame budgets
Accept: Two domains remain distinguishable in grayscale and VFX disable does not change simulation trace.
src/presentation/vfx/ · depends: C09, C13, C16
C28 / phase 13
Audio grammar
Map spell and corruption events to a bounded audio vocabulary.
F55 Compose domain attack sustain release sounds
F56 Cap polyphony and mix threat cues
Accept: Critical enemy telegraphs remain audible during eight simultaneous carriers.
src/presentation/audio/ · depends: C09, C16, C27
C29 / phase 14
HUD and accessibility
Own resource readouts, source badges, scaling and assist settings.
F57 Present readable feedback and failure remedies
F58 Support text scaling reduced motion and non-color cues
Accept: At 200 percent text scale all essential controls remain reachable with keyboard and gamepad.
src/ui/ · depends: C10, C12, C19, C21, C27, C28
C30 / phase 14
Persistence and migrations
Own save checksums, migrations and checkpoint recovery.
F59 Save atomically with a recoverable backup
F60 Handle older or corrupted saves safely
Accept: A corrupt newest save loads last valid backup; migration never overwrites the only valid source.
src/persistence/ · depends: C03, C20, C21, C24
C31 / phase 13
Asset import and manifests
Own local import recipes, provenance and resource limits.
F61 Import approved art and audio
F62 Validate scale collision rights and export hashes
Accept: Every imported demo asset has a manifest; rejected meshes use a traceable placeholder.
tools/assets/ · depends: C01, C27, C28
C32 / phase 16
Replay evaluation and packaging
Own evidence bundles, demo builds and reproducible session scripts.
F63 Run deterministic and playability evidence suite
F64 Package a local Linux demo with known limitations
Accept: Clean local launch completes tutorial-to-boss-to-Archive and records exact build and catalog hashes.
Meet demo thresholds or document explicit human waivers; no unsupported fun, accessibility or performance claim.
If blocked
Reduce active effects or room density with a recorded tradeoff and repeat affected evidence.
PH16L scope
Local demo and delegation return
Package a reproducible offline Linux build with source hashes, controls, known issues, credits and a start-to-finish walkthrough.
Deliver
Local demo artifact, build manifest, evidence index and final implementation return.
Exit gate
Clean install-directory launch completes tutorial, editor change, boss, Archive commit and reload without blocking defect.
If blocked
Return a candidate build with failed gates named; never label it accepted or publish it automatically.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Systems & deliverySECTION 28 / 32
The asset production atlas
Sixty-four briefs with generation prompts, deliverables, budgets and traceable placeholders.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Assets 001–032 / establish the world
The first calibration set is the Archivist, restoration anchor, Lacuna Scribe and Information VFX vocabulary. Every entry below is a brief, not generated or approved media.
ID
Family
Asset & purpose
Review
A001
environment
aqueduct floor Walkable archive floor module with inset readable channels
demo
A002
environment
aqueduct wall Occluding wall with shelf niches and clean collision silhouette
demo
A003
environment
bridge segment Graph-edge bridge with intact and missing-link sockets
demo
A004
environment
index pillar Index tower pillar framing routes without blocking the camera
demo
A005
environment
archive door Closed and restored doorway sharing collision bounds
demo
A006
environment
stairs ramp Walkable ramp disguised as broad archive stairs
demo
A007
environment
restoration anchor Three-source anchor with broken, ready and restored states
demo
A008
environment
fragment pickup Collectible knowledge shard with a square center and clear pickup radius
demo
A009
environment
mnemonic overlay Translucent historical floor overlay without collision
demo
A010
environment
ward gate Predicate gate with separate true, false and unknown symbols
demo
A011
environment
safe platform Unmistakable permanent refuge in the boss arena
demo
A012
environment
boss arena ring Segmented circular floor framing three phase stations
demo
A013
environment
source pedestal Independent witness source with a traceable beam socket
demo
A014
environment
corruption gap Nonwalkable missing topology with a visible warning rim
demo
A015
environment
archive terminal Home Archive workstation with spellbook and restoration access
archivist movement Footsteps dodge cloth and safe landing cues
demo
A050
audio
information packets Packet attack sustain release and corruption sound atoms
demo
A051
audio
entropy decay Granular erosion and abrupt fracture sound atoms
demo
A052
audio
memory echo Delayed harmonic afterimage and snapshot cues
demo
A053
audio
logic ontology Distinct predicate decision and type-change cues
demo
A054
audio
probability persona Outcome commitment and mask reveal cues with distinct envelopes
demo
A055
audio
provenance archive Witness dispute verification and restoration chimes
demo
A056
audio
encounter threats Enemy windup hit stagger death and boss phase alerts
demo
A057
animation
archivist locomotion Idle walk run and eight-direction aim blend references
demo
A058
animation
archivist cast Cast windup release and recovery with event marker references
demo
A059
animation
archivist dodge Dodge anticipation motion and recovery with collision references
demo
A060
animation
scribe attack Gap attack tell release stagger and death
demo
A061
animation
relay attack Packet charge triple emission and collapse
demo
A062
animation
bailiff attack Ward swap cone windup release and recoil
demo
A063
animation
indexer attack Type shift dash tell dash and recovery
demo
A064
animation
warden phases Three phase transitions attack tells restoration kneel and defeat
demo
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Systems & deliverySECTION 29 / 32
Art, audio & interface
Ember Circuit gives the document its reading language; Noetic Gothic gives the game its world.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Noetic Gothic, rendered through Ember Circuit
Charcoal#0e1114
Parchment#f1e7d2
Ember#f07a37
Antique gold#d4ab63
Cyan#82c4c3
The game’s source direction combines archives, astronomical instruments, diagrams and impossible information architecture. This review surface uses the current Ember Circuit web palette and typography. Symbolic geometry supports reading; it does not pretend to be live gameplay.
TYPE
A book with technical edges
Fraunces carries titles and editorial passages. Inter carries dense controls and body reading. Monospaced signatures distinguish contracts from prose.
VFX
Let the graph have a visual vocabulary
Information pulses, Entropy fragments, Memory leaves afterimages, Logic branches, Ontology nests, Probability fans, Persona masks and Provenance threads.
AUDIO
Make important behavior recognizable
Compose attack, sustain and release atoms from committed events. Cap polyphony and keep enemy threat cues audible during complex casts.
EDITOR
Three readings of one graph
Manuscript explains intent, Graph exposes structure and Glyph supports combat use. A change in one must update the others.
ACCESS
Redundant channels
Use shapes, text and sound alongside color. Preserve keyboard/controller navigation, large text, reduced motion and visible focus.
REVIEW
Judge at the actual distance
A concept sheet can look beautiful and still fail in the isometric camera. Inspect silhouette, collision, timing and grayscale before approving an asset.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Systems & deliverySECTION 30 / 32
Evidence & risk
Sixteen evidence gates, concrete falsifiers and a small, honest playtest protocol.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
What would count as evidence?
V01
Catalog completeness
256 unique primitives, sixteen per domain, 32 operators, eight carriers and all ports resolve.
Artifact: schema report
PH02 · not run
V02
Primitive semantics
Each enabled primitive has positive, rejection, boundary, legal-edge and illegal-edge tests; demo minimum 320 cases.
Artifact: machine-readable test results with fixture IDs
PH07 · not run
V03
Type and unit rejection
All 32 interaction fixtures have expected edge disposition; illegal unknown/persistent/hypothetical conversions reject.
Artifact: diagnostic snapshots
PH03 · not run
V04
Determinism
Sixteen fixed seeds, three render rates (30/60/144), same action log yield same simulation hash per seed.
Artifact: per-tick hashes and first-divergence report
PH15 · not run
V05
Termination and resource bounds
Adversarial graphs hit static/runtime caps without hang, queue growth beyond cap or uncharged fanout.
Sixteen specified region seeds retain a reachable critical path and boss recovery route before and after restoration.
Artifact: seeded reachability reports
PH11 · not run
V08
Enemy differentiation
Each of four families has a distinct observed rule, telegraph and counterplay; damage-only route cannot skip boss evidence gate.
Artifact: recorded encounter walkthrough and rubric
PH12 · not run
V09
Editor and save round-trip
Graph edits preserve synchronized views and reload exact semantic hashes; corrupt/migrated saves preserve last valid backup.
Artifact: round-trip and recovery fixtures
PH14 · not run
V10
Performance
On pinned hardware at 1080p target p95 frame<=16.7ms, simulation<=4ms, compile<=16ms for demo graphs, with eight carriers and sixteen enemies.
Artifact: hardware/driver manifest, warmup method and 120-second trace
PH15 · not run
V11
Accessibility
Essential flow is navigable by keyboard and gamepad at 200 percent text scale, reduced motion and grayscale; cues have redundant channels.
Artifact: manual walkthrough and screenshots
PH14 · not run
V12
Playability
At least four consenting playtesters: three complete first restoration within ten minutes without facilitator repair, and three explain their spell change and a counterplay rule.
Artifact: anonymized session protocol and observations
PH15 · not run
V13
Asset production
Every imported asset has source/rights/import records and applicable scale/collision/rig/audio checks.
Artifact: asset manifest and review sheet
PH13 · not run
V14
Complete demo
Fresh local launch -> tutorial -> template edit -> four families -> Warden -> Archive -> reload without a blocking defect.
Artifact: build hash, action log, walkthrough, known issues
PH16 · not run
V15
Source fidelity and distinctness
Original 64 named concepts remain recognizable; all new primitives own a distinct state/query transformation and avoid fake synonym expansion.
Artifact: human domain comparison review
PH07 · not run
V16
Delegation traceability
Each feature maps to owner, phase, implementation paths, check and receipt; actual outcomes distinguished from target criteria.
Artifact: feature/evidence matrix
PH16 · not run
Playtest, falsify, recover
Four sessions are directional design evidence, not proof of market demand or broad usability.
SESSION
A first-run script
Start without Graph View. → Explain visible corruption clue. → Modify a supplied spell template. → Predict what the change will do. → Fight using the change. → Restore one anchor. → Explain one failure and recovery.
MEASURE
Observe the actual attempt
time to first useful cast; time to first restoration; invalid graph attempts; unassisted recovery; prediction versus observed effect; self-reported clarity and desire to try another build
R01
256 names can conceal overlapping mechanics.
Two primitives cannot be distinguished by a state-delta example.
Response: Require unique postconditions and human domain comparison; merge or redesign rather than pad.
R02
Spellcraft UI overwhelms first-time players.
More than one of four cannot make a useful change without intervention.
Response: Improve templates and error remedies before widening graph freedom.
R03
Combinatorial event growth bypasses cost bounds.
Nested schedules exceed predicted queue or resource use.
Response: Worst-case static analysis plus runtime caps and deterministic failure.
R04
Restoration and evidence create duplication or dead ends.
A commit repeats rewards or required evidence becomes unobtainable.
Response: Idempotent milestones, repeatable observations, safe boss recovery.
R05
Asset production delays gameplay learning.
Playable loop waits for rigged/generated assets.
Response: Use manifested placeholders until core evidence exists.
R06
Confidence is presented as objective truth.
Copies increase confidence or hypothetical output canonizes an anchor.
Response: Independent source groups, explicit dissent, hypothetical type barrier.
R07
The initial demo is too large.
Core semantic or editor gates remain unproven after repeated batches.
Response: Return a proposed smaller eight-template prototype with exact omitted primitive IDs; do not silently claim the 64-primitive milestone.
R08
Determinism differs across tools or hardware.
First divergent tick in replay corpus.
Response: Fixed arithmetic, explicit seeds/order, pinned versions and golden state hashes.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Systems & deliverySECTION 31 / 32
Implementation handoff
Thirty-two task packets with owned paths, dependencies and evidence-bearing returns.
PALIMPSEST / DESIGN EDITION 01 · CANDIDATE
Give an agent a bounded job
The implementing agent works in a separately selected game repository. It reads the assigned task, shared contracts and relevant domain sources, implements the behavior, runs real checks and returns evidence. This document does not start that work.
Task
Owner / phase
Deliverable & acceptance
T01
Catalog loader / PH02
All catalog IDs resolve and an unknown ID yields UNKNOWN_NODE before execution.
T02
Type system / PH02
Entity-to-Vector and hp-to-m inputs reject with the precise node and port.
T03
Graph model / PH02
A graph round-trip preserves semantic hash; changing only a note preserves that hash.
T04
Compiler / PH03
Golden legal graph emits a plan and each invalid edge produces its named diagnostic.
T05
Budget analyzer / PH03
Nested loops exceeding 64 events reject before any runtime allocation.
T06
Reference VM / PH04
The same snapshot, graph and action log produce byte-identical effect traces.
T07
Effect resolver / PH04
A failed precondition leaves all current-tick writes unchanged and restores reservations.
T08
Observation service / PH07
An occluded field is unavailable; cached observations retain their original tick.
T09
Simulation clock and events / PH04
Same-tick events order identically at different rendering frame rates.
T10
Resource economy / PH05
Repeated milestone activation spends and rewards once; a miss still costs bandwidth.
T11
Archivist controller / PH06
Movement remains responsive while casting and death returns to a valid checkpoint.
T12
Camera and input / PH06
Unplugging a controller or losing focus never leaves movement or casting held.
T13
Carrier system / PH06
A fast bolt does not tunnel through the test wall and a beam respects its hit cadence.
T14
Targeting service / PH06
Preview and committed target eligibility agree on the same tick snapshot.
T15
Primitive runtime registry / PH07
Every demo primitive passes its contract fixture; other 192 return UNSUPPORTED_PRIMITIVE in play.
T16
Combat and statuses / PH08
Erosion expiry restores capacity without healing; shields absorb only eligible damage.
T17
Enemy ecology and AI / PH08
Each family has one unique behavior, readable weakness and a non-damage discovery action.
T18
Encounter director / PH08
Each of sixteen test seeds has a reachable exit and no required target outside navigation.
T19
Spell editor / PH09
Editing one parameter updates all three views; invalid graph cannot enter the cast slot.
T20
Spellbook and loadouts / PH09
Reload restores exact graph hashes and unavailable nodes remain explainable.
T21
Progression and Codex / PH10
A discovered resistance persists after reload without granting unobserved properties.
T22
Item and schema system / PH10
An item cannot grant a node that bypasses type, budget or persistence rules.
T23
Region grammar and navigation / PH11
Generated critical path is reachable before and after restoration for sixteen fixed seeds.
T24
Restoration and Archive / PH11
Canonize requires the exact evidence gate and repeat commit cannot duplicate rewards.
T25
Narrative and onboarding / PH11
A novice can observe, modify a template and restore one anchor without opening Graph View.
T26
Boss encounter / PH12
Damage alone cannot bypass the evidence stage; every stage has a visible recovery route.
T27
Visual effect grammar / PH13
Two domains remain distinguishable in grayscale and VFX disable does not change simulation trace.
T28
Audio grammar / PH13
Critical enemy telegraphs remain audible during eight simultaneous carriers.
T29
HUD and accessibility / PH14
At 200 percent text scale all essential controls remain reachable with keyboard and gamepad.
T30
Persistence and migrations / PH14
A corrupt newest save loads last valid backup; migration never overwrites the only valid source.
T31
Asset import and manifests / PH13
Every imported demo asset has a manifest; rejected meshes use a traceable placeholder.
T32
Replay evaluation and packaging / PH16
Clean local launch completes tutorial-to-boss-to-Archive and records exact build and catalog hashes.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence
Systems & deliverySECTION 32 / 32
Decisions & review
Sixteen proposed defaults, a bounded Socratic method and a clear route back to source.
Does this demo scope justify its semantic implementation cost?
Q02 / Camera and platform
Fixed isometric 3D, Linux offline single-player
Is fixed isometric presentation the desired first experience?
Q03 / Engine direction
Source-preferred Godot 4 family; exact versions pinned in PH01
Which separate implementation repository should own the game?
Q04 / Determinism
32 Hz fixed simulation with fixed-point game quantities
Does the prototype feel responsive under the selected tick and dodge timing?
Q05 / Primitive differentiation
Preserve source 64 and author distinct additional 192
Which domain boundary or primitive transformation feels redundant?
Q06 / Persistent restoration
Canonize requires supported claim, two independent sources, no dispute and one Authority
How much evidence work should a restoration require?
Q07 / Failure feel
Readable deterministic rejection and recovery; no arbitrary random graph corruption
Should risky builds add later, explicit player-chosen consequences?
Q08 / Editor onboarding
Start with templates; synchronize Manuscript, Graph and Glyph
What is the smallest satisfying first template edit?
Q09 / Assets
Graybox first, four calibration assets before broader generation
Which silhouette or mood should the calibration pass change?
Q10 / Full expansion
X01-X08 backlog follows demo evidence
Which expansion domain should receive the first post-demo implementation batch?
Q11 / Operator reconciliation
Restore the original sixteen domain-neutral operators and add sixteen explicit extensions
Are any old bundle concepts worth reintroducing under a distinct contract?
Q12 / Interaction safety
Hypothetical scenarios never masquerade as witnessed evidence
Should any future game mechanic bridge hypothesis to observation through an explicit experiment?
Q13 / Numerical tuning
Treat every balance number and performance threshold as a hypothesis
Which resource should constrain expert builds most strongly?
Q14 / Player control
Persona and Agency affect NPCs and owned constructs, not player input
How autonomous should a familiar feel within its leash and budget?
Q15 / Review cadence
Two domain chapters per review, then a cross-domain worked spell
What must become easier, what must stay costly, and what failure is unacceptable?
Q16 / Acceptance evidence
Machine contracts plus recorded gameplay and four voluntary first-run sessions
What observed outcome would make us reduce or redirect scope?
Lineage and return
The original 64 primitive names remain in their source order. The additional 192 and the detailed numerical contracts are proposed synthesis. New Pdd.pp identities do not silently replace old scaffold slots. The old defaults, components and September 7 receipt remain intact.
Review notes in this HTML stay in this browser when storage is available. Export them as a JSON review packet to carry them into a later design revision. Notes do not change the YAML or approve the design.
Hearth & Code / Ember CircuitSource-bound projection · proposed design, not gameplay evidence