Implement ordinary packed event conditions

This commit is contained in:
Jan Petykiewicz 2026-04-15 18:27:04 -07:00
commit f73234cb99
28 changed files with 2624 additions and 86 deletions

View file

@ -84,8 +84,11 @@ The highest-value next passes are now:
- widen real packed-event executable coverage descriptor by descriptor after identity, target mask,
and normalized effect semantics are all grounded, not just after row framing is parsed
- the first grounded condition-side unlock now exists for negative-sentinel `raw_condition_id = -1`
company scopes; broader ordinary condition-id evaluation and player/territory runtime ownership
are the remaining condition frontier, and mixed supported/unsupported real rows stay parity-only
company scopes, and the first ordinary nonnegative condition batch now executes too: numeric
thresholds for company finance, company track, aggregate territory track, and company-territory
track
- named-territory ordinary rows and player-owned condition scope are still the remaining condition
frontier, and mixed supported/unsupported real rows stay parity-only
- keep in mind that the current local `.gms` corpus still exports with no packed event collection,
so real descriptor mapping needs to stay plumbing-first until better captures exist
- use `rrt-hook` primarily as optional capture or integration tooling, not as the first execution

View file

@ -35,11 +35,15 @@ Implemented today:
`raw_condition_id = -1` company scope lowers `condition_true_company` into normalized company
targets during import, while player and territory scope variants remain parity-visible and
explicitly blocked
- the first ordinary nonnegative condition-id batch now executes too: numeric-threshold company
finance, company track, aggregate territory track, and company-territory track rows can import
through overlay-backed runtime context, while named-territory bindings stay parity-only and
player-owned condition scope still has no runtime owner
That means the next implementation work is breadth, not bootstrap. The recommended next slice is
ordinary nonnegative condition-id semantics plus runtime ownership for the still-blocked player and
territory scope families, alongside broader real grouped-descriptor coverage beyond the current
company-scoped batch.
broader ordinary condition-id coverage beyond numeric thresholds, plus runtime ownership for the
still-blocked player-scoped and named-territory condition families, alongside wider real
grouped-descriptor coverage beyond the current company-scoped batch.
## Why This Boundary
@ -236,8 +240,10 @@ Current status:
raw `.smp` binaries
- overlay-backed captured-runtime inputs now provide enough runtime company context for symbolic
selected-company and controller-role scopes without inventing company state from save bytes alone
- the remaining gap is wider real grouped-descriptor semantic coverage plus ordinary condition-id
evaluation and player/territory runtime ownership, not first-pass captured-runtime plumbing
- aggregate territory context and company-territory track counters now flow through tracked overlay
snapshots, so the remaining gap is broader ordinary condition-id coverage beyond numeric
thresholds, named-territory binding, player runtime ownership, and wider real grouped-descriptor
semantic coverage, not first-pass captured-runtime plumbing
### Milestone 4: Domain Expansion
@ -380,48 +386,52 @@ Checked-in fixture families already include:
## Next Slice
The recommended next implementation slice is broader real grouped-descriptor coverage on top of the
now-stable compact-control, symbolic-target, and current company-scoped real-family batch.
The recommended next implementation slice is broader ordinary-condition breadth on top of the
now-stable numeric-threshold, overlay-context, and current company-scoped real-descriptor batch.
Target behavior:
- keep descriptors `2` `Company Cash`, `13` `Deactivate Company`, and `16`
`Company Track Pieces Buildable` as the proof that real grouped rows can cross the whole path:
parse, semantic summary, overlay-backed import, and ordinary trigger execution
- recover more real descriptor identities from the checked-in effect table and expose their target
masks and conservative semantic previews without guessing unsupported behavior
- widen executable real import only when both descriptor identity and runtime effect semantics are
grounded enough to map into the normalized runtime path honestly
- keep condition-relative company scopes explicit until a real condition evaluator exists, instead
of silently degrading or inventing target resolution
- preserve the current proof set for real ordinary-condition execution:
company finance, company track, aggregate territory track, and company-territory track numeric
thresholds all pass through parse, semantic summary, overlay-backed import, and ordinary trigger
execution
- extend ordinary condition coverage beyond numeric thresholds only when comparator semantics,
runtime ownership, and binding rules are grounded enough to lower honestly into the normalized
runtime path
- keep named-territory ordinary rows explicit and parity-visible until candidate-name territory
binding is grounded
- keep player-owned condition scope explicit and parity-visible until there is a first-class player
runtime model
- continue widening real grouped-descriptor execution only when both descriptor identity and
runtime effect semantics are grounded enough to map into the normalized runtime path honestly
Public-model expectations for that slice:
- additional checked-in grouped-descriptor metadata entries keyed by recovered descriptor id
- more parity summaries with real descriptor labels, target masks, parameter families, and semantic
previews
- more selective real-row `decoded_actions` only where the descriptor-to-runtime mapping is
supported end to end
- additional checked-in ordinary-condition metadata entries beyond the current numeric-threshold
allowlist
- richer runtime ownership for still-blocked condition domains such as named territory and player
scope
- more selective real-row `decoded_conditions` and `decoded_actions` only where the
condition/effect-to-runtime mapping is supported end to end
Fixture work for that slice:
- preserve the parity-heavy tracked sample as the condition-relative blocked frontier while it now
carries recovered `Company Cash` semantics with executable import readiness
- keep overlay-backed captured fixtures for the executable company-scoped real families:
`Company Cash`, `Deactivate Company`, and `Company Track Pieces Buildable`
- keep a mixed real-row overlay fixture to lock the all-or-nothing parity rule for partially
supported real records
- preserve the new ordinary-condition tracked overlays for executable company finance, company
track, aggregate territory track, and company-territory track thresholds
- preserve the named-territory tracked overlay as the explicit binding blocker frontier
- keep the older negative-sentinel, mixed real-row, and company-scoped descriptor fixtures green so
ordinary-condition breadth does not regress descriptor-side execution
- keep synthetic harness, save-slice, and overlay paths green as the real descriptor surface widens
Current local constraint:
- the local checked-in and on-disk `.gms` corpus still does not provide a richer captured packed
event save set, so descriptor recovery must continue to rely on the grounded static tables and
tracked JSON artifacts until new captures exist
event save set, so wider ordinary-condition and descriptor recovery still needs to rely on the
grounded static tables and tracked JSON artifacts until new captures exist
Do not mix this slice with:
- shell queue/modal behavior
- territory-access or selected-profile parity
- broad condition evaluation without grounded runtime ownership
- speculative condition execution without grounded runtime ownership
- speculative executable import for real rows whose descriptor meaning is still weak