Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions arch/special/magic_wall/magic_wall.arc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ is_turnable 1
speed -0.02
last_eat 1
maxsp 1
glow_radius 1
light_color ff3030
no_pick 1
sys_object 1
dam -1
Expand Down
18 changes: 14 additions & 4 deletions docs/LIGHT_SOURCE_AUDIT.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,15 @@ Schema version 7 supports semantic `fixture_groups` for an authored fixture
family. A group pins its archetype set, default radii and color,
per-archetype placement counts, map coverage, intentional non-emitting members,
the reviewed count of emitting same-tile compositions, applicable contextual
checks, and a digest of every resolved placement. The count makes overlap
acceptance explicit while the digest pins the exact placements and co-emitter
identities, effective light fields, visible art, and source semantics. These
checks, and a digest of every resolved placement. A required family may set
`same_tile_review` to `exact` in the fixture contract; its review must then
provide `intentional_same_tile_emitters`, mapping
each emitting fixture placement ID that shares a tile with another source to a
concise review rationale. The count makes overlap acceptance explicit, while
the contracted ledger additionally makes its exact placement keys fail closed.
The semantic digest always pins co-located source identities, effective light
fields, visible art, and source semantics, so adding, removing, moving, or
replacing either source requires an explicit review refresh. These
checks are derived entirely from authored sources: fixture groups do not carry
view IDs or depend on screenshots, capture manifests, or image files.
Required families are anchored independently in
Expand Down Expand Up @@ -66,7 +72,11 @@ When an emitter changes, inspect its actual main-line archetype or map context
and the pinned Classic decision. Preserve or revise the color and rationale
intentionally; do not mass-color invisible or map-local lights by name or
radius. Update the matching ledger row with the semantic hash from the read-only
inventory, then run `python3 tools/world_content_audit.py lights --check` and
inventory. For a fixture that shares its tile with another emitter, also verify
the exact `same_tile_emitters` identities in the inventory. For a family whose
fixture contract sets `same_tile_review` to `exact`, add or update its
`intentional_same_tile_emitters` rationale. Then run
`python3 tools/world_content_audit.py lights --check` and
`python3 tools/validate.py`. Genuine replacement-specific divergences must be
documented rather than copied mechanically from `1.x`.

Expand Down
15 changes: 15 additions & 0 deletions maps/light-source-fixture-contract.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
{
"schema_version": 1,
"fixture_groups": {
"magic-wall-rune-fixtures": {
"archetypes": [
"magic_wall"
],
"checks": [
"magic-wall-active-state",
"magic-wall-corners",
"magic-wall-dense-cluster",
"magic-wall-disabled-state",
"magic-wall-narrow-corridors",
"magic-wall-same-tile-sources",
"magic-wall-switch-transitions"
],
"same_tile_review": "exact"
},
"warm-candle-fixtures": {
"archetypes": [
"candle2_on",
Expand Down
Loading