Skip to content

feat(archetypes): make lit candle fixtures emit warm light #90

Description

@zoeyrose

Important

Evidence policy update (2026-08-11): #66 is complete through #124; any wording
below treating it as a future prerequisite is superseded. #126/#127 retire the
committed renderer-review capture surface. The removed files were generated
review artifacts, not authored gameplay art. Any requirement below to commit
rendered screenshots, contact sheets, manifests, proof maps, or capture tooling
is superseded. Keep authored semantic review in
maps/light-source-review.json (rationales, current digests, complete coverage,
and zero unreviewed emitters). Optional smooth/discrete diagnostics belong only
under ignored build/ or deployment output; summarize conclusions in the PR,
but never commit or gate merge on those files.

Follow-up to #65 and its implementation in #67, with the compatible main integration tracked by #66.

Outcome

Make all six visibly lit candle fixture archetypes emit a small warm-gold light by default:

  • candle_on and candle2_on;
  • candlelight1.101, candlelight2.101, candlelight3.101, and candlelight4.101.

Keep candle_off and candle2_off dark. Use the established ffd080 lantern-and-candle palette rather than neutral white.

Evidence

A lossless audit at #67 head 1476bfa81c35f7764af327a84fe4045eb0eff97e finds 478 fixtures across 119 maps:

Archetype Placements Maps Own radius Same-tile neutral source No current source
candle_on 5 2 0 5 0
candle2_on 1 1 0 1 0
candlelight1.101 47 22 0 39 8
candlelight2.101 25 12 0 24 1
candlelight3.101 122 44 2 99 21
candlelight4.101 278 89 35 166 77

Only 37 fixtures emit from their own map-local radius; 334 depend on a co-located neutral light, and 107 have neither source. All 37 self-emitting candles already resolve to ffd080, with radii 2, 4, 5, or 7. The neutral companions range from radius 2 through 9.

#67 already gives ffd080 to candlelight3.101 and candlelight4.101; the other four lit definitions have neither radius nor color. Nine candle-bearing maps are absent from the current effective-emitter baseline.

Useful review scenes include underground_city_2_3 (13 companion-lit fixtures covering all four candlelight forms), world_5_67_-1 (15 companion-lit tall candles), Quick Wolves Guild (11 without a current source), Incuna world_3_84 (eight established radius-5 gold sources), and Asteria world_4_47 (mixed candle/cauldron radii).

Scope

  • Add ffd080 to the four lit definitions that lack it and retain it on candlelight3.101/candlelight4.101.
  • Add the smallest rendered-effective default appropriate to each silhouette. Start from radius-2/radius-3 small-source precedent; keep room-scale radius-4 through radius-9 compositions map-local.
  • Leave candle_off and candle2_off non-emitting.
  • Preserve deliberate current positive overrides.
  • Reconcile all 334 same-tile neutral sources: transfer the intended footprint to the candle and remove the redundant source when equivalent, or retain/document deliberate ambient fill. Do not leave accidental double emitters.
  • Review all 119 maps semantically and render representative cases for every form, radius class, dense cluster, wall adjacency, map seam, and mixed-color overlap.
  • Preserve faces, layers, no_pick, names/plurals, placement, obstruction, scripts, and every gameplay field.

Land this fixture work before dependent palette issues. #80 has 24 candles with no current source—eight each on Daffodil, Lingholm, and Marigold. #83 contains eight candles across five Everlink tiles: seven are companion-lit and one has no current source. #87 uses different archetypes but overlaps world_4_83; serialize/rebase generated audit artifacts.

Acceptance criteria

  • All six lit candle archetypes are reviewed effective ffd080 emitters, and all 478 placements appear in the refreshed inventory with inherited or intentional local radii.
  • candle_off and candle2_off remain non-emitting.
  • Every form is legible in smooth and discrete lighting without turning small candles into room-scale sources.
  • All 334 same-tile neutral companions are migrated, retained, or excepted with a rationale; no accidental double source remains.
  • Existing radius-2 through radius-7 candle compositions retain their footprint, while the 107 newly considered placements avoid clipping, oversaturation, wall bleed, seam regressions, and lost navigation cues.
  • The nine newly lit maps enter the chore(maps): audit authored light-source colors #65 baseline and all review records, semantic digests, evidence manifests, and rendered evidence are refreshed.
  • No off-state, face, layer, obstruction, script, or gameplay behavior changes.
  • python3 tools/world_content_audit.py lights --check, python3 tools/validate.py, and git diff --check pass.

Release lines

Land only after #65/#67 are integrated on 1.x and #66 supplies the matching field/audit contract on main. All affected maps are byte-identical between the lines; preserve main-only plural metadata. Deliver separate linked pull requests, with the canonical main pull request closing this issue and the 1.x companion linking it without a closing keyword.

Activity

added theissue type on Aug 11, 2026
self-assigned this
on Aug 11, 2026
moved this from Inbox to In progress in Atrinik workon Aug 11, 2026

zoeyrose commented on Aug 11, 2026

@zoeyrose
MemberAuthor

Reconciliation update

The Classic 1.x implementation is updated in PR #121 at head 47db92422c0ec7c0aad7cdf41fbc9bcec5de2017.

The authored candle changes genuinely alter the fixed syntax input lock and representative-map measurements, so that measurement refresh remains. This update leaves the issue open for its separate release-line delivery decisions.

zoeyrose commented on Aug 12, 2026

@zoeyrose
MemberAuthor

Program delivery gate: 1.x companion ready

PR #121 is ready for maintainer squash merge as the 1.x half of #90.

  • PR: fix(lighting): migrate warm candle fixtures #121
  • Base: 1.x@d863b1d66967841ad56ae5f205e88d87c681a688
  • Head: 66ccf13370b508d1faf16600ef1175bb94f964e3
  • Tree: 966a8f4af6d82e45c931a4b9cedf8bbb6e5b80ec
  • Shape: 102 changed paths; the base-to-head tree is the exact independently reviewed artifact
  • Checks: Content validation, conventional-title policy, and Ubuntu/Windows syntax prototypes all pass
  • Local validation: tools/validate.py passes 131 tests plus lossless/schema/catalog/contract/syntax/resource/archive checks; the light audit reports 11,682 instances across 638 maps and zero unreviewed
  • Review: corrected-head independent review reports zero actionable findings; zero GitHub reviews/comments/threads remain
  • Mergeability: mergeable/clean

Merge order is strict: squash-merge PR #121 into 1.x first. Do not merge a canonical main companion yet. After this merge, the program will record the resulting squash SHA, re-query 1.x and main independently, and build/review the canonical main companion from that fresh tip.

This issue remains open under the master-program closure constraint.

zoeyrose commented on Aug 12, 2026

@zoeyrose
MemberAuthor

Program delivery gate: canonical main

Ready for maintainer squash-merge: #178.

  • Merge order: squash-merge feat(lighting): migrate warm candle fixtures #178 into main; do not merge any fix(syntax): resolve provider-keyed benchmark topology inputs #138-or-later work first.
  • Exact base: 7075ad95519f24877718af2f9e9f10a3671fd26a
  • Exact head: be09e752312dcb11c5f3906b2207a5dd4660a02d
  • Exact tree: 8487f5a8d50e91f1e649620ebefa1fc074dbd119
  • Shape: one commit, 102 changed paths
  • Checks: Content validation passed (4m27s); Conventional PR title passed (4s); Syntax prototypes Ubuntu passed (36s); Syntax prototypes Windows passed (41s).
  • Validation: full tools/validate.py passed (129 tests plus content/schema/catalog/contracts/syntax/resources/runtime collection); light audit passed with 11,682 instances across 638 maps and zero unreviewed; 44 focused tests, cross-line mechanical audit, JSON/prohibited-surface checks, and git diff --check passed.
  • Review: primary and independent exact-head reviews report zero actionable findings; zero GitHub reviews, comments, or review threads; mergeable state is clean.
  • Release-line relationship: merged 1.x squash is 08ebe8d39eb2d8af0dddbb120af178d87e1fb7f6; all 91 authored map results and core authored artifacts match exactly where required while main-native provenance/runtime boundaries are retained.

After the maintainer merge I will verify the actual squash SHA and exact tree, re-query main and 1.x independently, and only then begin #138. Please leave #90 and #154 open; issue closure is reserved for the final exact-tip audit and human action.

moved this from In progress to Ready in Atrinik workon Aug 12, 2026

zoeyrose commented on Aug 12, 2026

@zoeyrose
MemberAuthor

Completed on both release lines: 1.x PR #121 merged as 08ebe8d39eb2d8af0dddbb120af178d87e1fb7f6; main PR #178 merged as dc37068cc514c4a22a02f0156f54b74f6c845938. Final program-wide exact-tip validation passed with zero unreviewed emitters and no retired evidence/capture surfaces. Closing as delivered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Fields

Priority

None yet

Start date

None yet

Target date

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions