CR_0147_reticulated_python.md

creatures/CR_0147_reticulated_python.md

CR_0147 — the reticulated python of the flood-forest, the snake that is not the naga

CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
The canon: the CVD · the T1 foundation docs · the T0 registries (registries/) · the spine
(docs/spine/CH_*.md) · the region pages (_source/02_Tier_2_Region_Pages/). Authority order: docs/DOC_MAP.md § 0.
Canon served (scanned from this document's own citations — widen it by hand where it is thin):
T0_Creature_Roster · docs/spine/CH_05.md · _source/02_Tier_2_Region_Pages/angkor_khmer.md
READ THAT CANON FIRST — open it and derive from it before you build anything from this document.
If this document disagrees with canon, CANON WINS and this document is the defect — fix the
document, never the canon. Nothing here is applied until it is ratified into canon.

STATUS: PROPOSAL-TIER design sheet, written to docs/proposals/bestiary/BESTIARY_ELEVATION_DOCTRINE.md

and critic-gated against its ten refusal tests. It cites canon rows and writes none.

1. identity

with the root-split enclosure at bayon_taprohm as ambient range

[build/3d/schema/anatomy_reference/LIMBLESS.json; ANATOMY_REFERENCE.md], which names this row as

an exemplar alongside CR_0002

combat-facing FALSE on the ruled demand table (DEMAND_RULED_IN via RULING_7 DANGEROUS-is-IN and

RULING_8 APEX-is-IN)

serpentine · docs/spine/CH_05.md L12, L43, L81, L330 ·

angkor_khmer.md § 3 L184-191, § 5 L378-381, § 1 L139-143 ·

CREATURE_DEMAND_RULED_STATE_L11.json CH_05 · DIRECTOR_RULING_L11.json RULING_7, RULING_8 ·

docs/proposals/bestiary/sheets/CR_0002_naga_tana_water_aspect.md

TWO ROWS, ONE BINOMIAL, AND THE DISTINCTION IS THE DESIGN. CR_0002 is the Flores guardian —

mythologically-stylized when roused, holding a ngoeng-de-tana contract, appeased and never slain — and

it has its own landed sheet and its own boss encounters at BE_0002_S1 and BE_0003_S1. THIS row is the

Khmer wild population and the roster says so in its own words: a distinct angkor_khmer cohort, cf

CR_0002 Flores, the great constrictor of the flood-forest, folk-linked to the naga water-serpent

tradition — the naga itself revered and LEFT; this is the ambient reptile

[T0_Creature_Roster @ CR_0147 :: notes, cultural_significance]. Row is the unit. A lane that reads

the binomial rather than the id will build the wrong animal, and this sheet exists partly to stop it.

2. base_species

DERIVED FROM THE ANATOMY REFERENCE TABLE, NOT DECLARED INLINE. The per-archetype table is on disk and

this row is one of its named exemplars, so the doctrine § 2.1 inline-licence no longer applies here:

the block below is re-derived from build/3d/schema/anatomy_reference/LIMBLESS.json sub-plan

serpentine. Where the bucket is silent, the line is labelled INLINE_DECLARED. AN EARLIER DRAFT OF

THIS SHEET UNDERSTATED THE PER-JOINT PLAY AS "a few degrees" — copied forward from the CR_0002 sheet

— and the bucket's measured figures replace it below, along with the regional-limit note and the

named locomotion modes that draft omitted.

choice: it is set by how far a real vertebral joint can bend.

folded into a disc a little under two metres across, which is how it is met and how it is first read

chain; ROM caps of 25 degrees lateral, 20 dorsoventral and 10 axial per joint; and the centreline

rule — the chain must span at least half the body's horizontal axis, because a chain spanning 16

per cent of it is a rod driven through a coil rather than a centreline. The bucket records the

measured failure it was written from: the pre-fix CR_0002 rig spanned 24.3 cm on an axis the body

spanned 147.9 cm, and shipped with 11 segments where the derivation floor is 22.

caudals, one rib pair per precloacal vertebra and all of them free with no sternum, zero limbs, and

vestigial pelvic spurs flanking the vent that are VISIBLE — a python model that omits them is

missing a real feature.

carries an independently mobile QUADRATE and paired mandibles joined at the front by an ELASTIC

LIGAMENT rather than a bony symphysis, which is what lets the jaw open around large prey and is

four extra bones a swallow animation cannot fake.

joint, dorsoventral -20 to +20, axial rotation -10 to +10 [GASC1974, MOON1999, HOFFSTETTER1969].

THE ASYMMETRY IS THE WHOLE SHAPE OF SNAKE MOTION: the zygosphene-zygantrum is a wedge-in-socket

that PERMITS lateral flexion and BLOCKS axial rotation, so the body flows sideways freely, resists

twisting, and cannot corkscrew. THE LATERAL LIMITS ARE REGIONAL, not uniform — highest at mid-body

and lower in the neck and near the vent — which is why a uniform per-joint cap posed along the

whole chain reads wrong at both ends. Quadrate-mandibular gape 0 to 130 degrees with a quadrate

swing of 0 to 60, and the mandibles also SEPARATE at the front, which is a translation and not an

angle.

this animal: LATERAL UNDULATION, a travelling wave passed head to tail against surface

irregularities, the default; RECTILINEAR, no lateral wave at all, the ventral scales walked forward

in patches by the costocutaneous muscles — a big python stalking uses THIS; and CONCERTINA,

anchor-and-extend with alternating static and moving regions, which is the mode this animal's

arboreal flood half runs on a bough. Sidewinding belongs to desert taxa and is not this row's.

Wave parameters: 2 to 12 degrees amplitude per joint, wavelength 0.4 to 1.0 body lengths, frequency

0.2 to 2.0 Hz [JAYNE1986, GRAY1946]. Constriction is 1 to 3 loops applied and then TIGHTENED in

pulses timed to the prey's exhalation — the coil is not a static clamp [BOBACK2015].

read. The bucket's bind-pose rule binds the mesh lane directly — a coiled model must be rigged

along its own centreline through the coil so that uncoiling is a pose the solver can REACH.

line lying along a bough with two loops hanging free below it

3. lore_source

and the row's own phrasing separates the two things carefully: folk-linked to the naga water-serpent

tradition, the naga itself revered and LEFT, this is the ambient reptile.

creative and dynastic pole — the seven-headed balustrade causeway, the water-lord and rainbow-bridge

of the threshold between the secular and the sacred, and the Kaundinya-Soma founding legend

[angkor_khmer.md:378-381; CH_05.md:43]. It is examined and deliberately NOT villainized

[CH_05.md:330], and the roused balustrade in this chapter is a ward-OBJECT, never the deity

[angkor_khmer.md:186-191].

clearly that a player who met the naga tana at Ch 3 cannot mistake it for a guardian. The lesson

taught is that guardianship in this world is a CONTRACT and not a species. Blurring the two would

quietly convert a revered living-tradition being into a snake to be fought, which is the exact

outcome the chapter's care framing forbids.

the fishery and the crocodile but no python. The cohort-wide dangle flagged on CR_0140's notes

covers this row; the staging here grounds on the roster row and on the flood-forest and flow-

reversal the region page does author [angkor_khmer.md:139-141, L155-157].

4. elevation

register: REAL_FAUNA (TRUE_TO_LIFE) — doctrine § 3D, ratified 2026-08-12, and this row is one of the

six instances it was ratified from.

WHY ELEVATION IS REFUSED, IN ONE LINE: the row's folklore columns are empty and its own

cultural_significance cell rules it "the ambient reptile" with the naga revered and LEFT, so an

elevated python here would take the register the chapter's care architecture reserves for the naga.

THE LEGIBILITY CONTRACT, which is half of how the replica test discharges in this register. This

row's confusable neighbour is not another animal in the chapter — it is ANOTHER ROW OF ITS OWN

BINOMIAL three chapters back, and the contract is stated against it: CR_0002 is met as a raised

forebody at eye height, mineral-crusted, mythologically-stylized when roused; this row is met as a

horizontal line on a bough or a disc in leaf litter, uncrusted, and it never rises to meet anyone. A

player who reads guardian here has been failed by the plates, and that is the acceptance test in § 6.

The chapter's water reads sit beside it and do not collide: this animal is a forest read, not a

surface read, and it takes no entry in the CR_0133 / CR_0146 / CR_0148 three-read water system.

THE STATE LADDER, which is the other half: the two-band ventral wear from a body that lives in two

mediums a year, the seasonal shed retention that clears in flood and rings the eye caps and vent in

drawdown, and the healed constriction loop whose half-row scale-register step is permanent. A

photograph of a species-typical Malayopython reticulatus — and a captive one especially — carries

none of it.

ONE-LINE SILHOUETTE READ: a six-metre snake lying along a flood-forest bough as a segment of branch

with the wrong diameter, its skin throwing oil-slick colour where the light crosses it.

ELEVATION BUDGET: ONE PRIMARY AND ONE SUPPORTING AXIS, A5 AND A10, DECLARED AND DELIBERATELY NARROW.

CR_0002's sheet spends A8 material substitution on a roused guardian; this row spends NONE of it. No

mineral crust, no ossification, no raised forebody meeting a supplicant at eye height, nothing

mythologically-stylized. THE UN-ELEVATED-TWIN PATTERN IS THE LANE'S, NOT THE DOCTRINE'S: it was

established on CR_0005 as the un-elevated twin of CR_0001, this row is its second instance against

CR_0002, and it has since been merged into the § 3D REAL_FAUNA ratification of 2026-08-12, which is

now its home. The sheet names the lesson it teaches rather than leaving the contrast to chance.

PRIMARY — A5 AGE AND STATE, and the state is a CALENDAR. MECHANISM: the Tonle Sap reverses once a

year [angkor_khmer.md:139-141], so this animal lives half its life in trees and half on the ground,

and its body carries both halves at once.

belly midline from rectilinear creep over drawdown mud and root, and a pair of narrow polished

wear-lines along the lateral scute edges from the grip that holds it on bark in flood. Two wear

patterns on one belly is a body that lives in two mediums, and no photograph of a captive animal

has both.

clears in flood. The animal's season is legible on its head.

scale rows step out of register by half a row at that band — a permanent alignment error that reads

as a seam and identifies the individual from any angle.

SUPPORTING — A10 NEGATIVE SPACE, which is the honest read of the real animal. The reticulation is

genuine disruptive camouflage, and in flood-forest dapple it does not decorate the snake, it DELETES

its edge. What the player sees is an absence: a bough whose line is interrupted, a segment of the

wrong diameter, a shadow under a branch with no branch above it. The animal is found by noticing the

break, not by noticing the snake — which is the cheapest, most light-free and most frightening

elevation available for an ambush predator, and it costs the art budget nothing.

EMISSION: none, and this row is where the light law is easiest to get wrong. The species' skin is

strongly iridescent in life, and iridescence is STRUCTURAL COLOUR — an optical effect of layered

scale microstructure splitting light already in the scene. It is a scattering read and never an

emission, it goes dark in shadow like every other surface, and the sheet declares it explicitly so

that no downstream lane converts a real animal's oil-slick sheen into a glow.

5. articulation_delta

the midline abrasion runs the full precloacal length, the polished lateral lines sit on the outer

third of each scute and stop at the vent.

vertebral segments; the segments themselves keep their declared ROM and weight passes through the

band unchanged. It is a scar, not a joint.

6. fight_grammar

NO STAGED ENCOUNTER EXISTS ON THIS ROW, AND THAT IS AN AFFIRMATIVE STATEMENT. combat_permission is

EMPTY, the ruled demand table carries it combat_facing FALSE, and the chapter stages no python beat.

The part-economy home is NONE. What the row stages instead:

it. A flood-forest that contains a six-metre constrictor the player usually fails to see is a

different place to walk through than one that does not, and the negative-space read in § 4 is the

mechanic.

APEX. It does not pursue, it does not display, and it does not warn; what it does is not move. The

danger is entirely a function of the player's own distance, which is the honest version of an

ambush predator and needs no encounter to be true.

converge — the trade CAN take it, dangerously, and it is a body that threatens (RULING_7). No

trade-8 mechanic exists to receive that today and the sheet boards the absence rather than

inventing the mechanic.

no raised forebody at eye height, no mineral crust, no stylization, and no encounter framing. If a

player reads guardian here, the design has failed, and that is the acceptance test for the plates.

around it and the route is the interaction. Nothing breaks, nothing escalates, and nothing is owed.

CR_0005, carried at CH_05 by CR_0146, CR_0148 and CR_0140 — is that residents VACATE in a direction

and the direction is a free warning. This animal is its exact inverse and that is the point: an

ambush predator's answer to a larger arrival is to not move, so it gives the player nothing and it

is never the early-warning body. THE DISCRIMINATOR that governs the shape elsewhere in the chapter

is stated here in the same words the other three sheets use: A WATER READ ANSWERS TO WATER AND A

STONE READ ANSWERS TO STONE — the monitor going in (CR_0146) and the otter troupe's alarm chorus

(CR_0148) answer to CR_0133 coming up; the macaque troop leaving a gallery (CR_0140) answers to the

wards rousing. This row is a forest read, it is the shape's fourth case and its inverse, and it

answers to nothing visibly at all.

7. care_read

sheet does not re-apply collective protection to a game animal.

being of a living tradition, deliberately LEFT [CH_05.md:330], and the one way a fauna sheet could

damage it is by letting an ordinary snake carry the naga's register. The sheet's whole design law in

§ 3 and its acceptance test in § 6 exist to prevent exactly that, and nothing is removed to achieve

it — the animal keeps every frightening thing it has.

requirement.

template serves it correctly. That is also the route that keeps it distinct from CR_0002, which is

attended-design by construction.

a player could never be surprised by an APEX constrictor in a chapter with no python encounter.

REFUSED. The row says APEX and DANGEROUS, the ruling put it in demand on exactly those cells, and an

ambush predator the player can always see is not an ambush predator. The counterweight was also

checked in the other direction: building it a fight because APEX feels like it deserves one would

invent encounter canon this lane has no authority to write, and would put a naga-adjacent serpent in

the target position the chapter's care framing keeps it out of.

_source/02_Tier_2_Region_Pages/angkor_khmer.md and matched SRC_00322 at L44 and throughout § 5,

§ 13 and § 14 — the page's ONLY SRC_ id across 1383 lines. The matcher works, and no SRC_ id on the

page reaches this row, which is why every claim here is cited to file:line or to the registry cell.

constriction loop with its half-row scale step, and the negative-space read are INVENTED BY THIS

SHEET as the game's own design. The anatomy, the disruptive reticulation and the structural

iridescence are DERIVED FROM THE ANATOMY BUCKET (LIMBLESS / serpentine), with the structural-colour

reading INLINE_DECLARED where that bucket is silent. The distinct-cohort status, the flood-forest range, the naga

folk-link with the naga itself LEFT, and the flow-reversal calendar are CITED.

8. plate_brief

the composition built so the eye finds the wrong diameter before it finds the snake.

pattern for the first time and the oil-slick structural sheen carried where the light crosses.

scale step crossing the frame.

midline and the polished lateral lines.

9. boarded_debts

trap CR_0005 and CR_0146 board.

records census_boss_rows_citing_this_id as BE_0002_S1 and BE_0003_S1 for CR_0147 — those are the

Flores guardian's Ch-2 and Ch-3 encounters and they belong to CR_0002. This is a name-match, not a

reference, and it is exactly the failure mode the row-is-the-unit rule exists to catch. THE DEFECT

IS INFORMATIONAL-CELL ONLY AND THE RULED DISPOSITION IS SOUND: the dedup axis already rejected this

same name match on its own evidence (dedup_evidence_kind NAME_MATCH_REJECTED_ON_CHAPTER_OR_REGION),

so the row entered demand on its own DANGEROUS and APEX cells under RULING_7 and RULING_8 and its

combat_facing FALSE is unaffected; only the census's informational cell is wrong, and the emitter

repair is boarded to the next mesh_routing leg.

it will first bite. Two live rows share the binomial Malayopython reticulatus and the anatomy

bucket names BOTH as serpentine exemplars, so any lane that keys a plate, a mesh, a conditioning

image or a rig by species name rather than by creature_id will serve one row's asset into the

other's slot — and the two are not interchangeable in either direction: CR_0002 is

mythologically-stylized when roused and attended-design, this row is a real animal on the ordinary

asset path. The guard is: id-keyed lookup only, and a correct CR_0147 asset must never satisfy

CR_0002's slot by binomial match, nor the reverse.

husbandry cells (husbandry_breedable, husbandry_venue, offspring_tier_lock all EMPTY), and no

quest hook.

thread alongside Naga Padoha and the Khmer naga. The link is defensible as ecology but the column

cannot express the difference between carrying a thread and being its subject.

pending, and this is the longest-bodied row in the chapter.

unresolved.

silent. The CR_0002 template ruled the block in on 2026-08-06 and requires a MEASURED

enclosed_volume_m3 read off a shipped mesh at canon scale — CR_0002 could take that leg because

its rebuild mesh exists. This row's generation_status is pending and mesh_id_ref is EMPTY, so

the measured leg cannot be taken and a guessed volume would poison

harness/asset_factory/emit_creature_physical.py at its source. Deferred to the mesh landing, with

the § 2 ROM table already re-derived from the anatomy bucket and ready to carry into § 10.2.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root