Dated source reference. Current release status: handoff state. Full original relative paths are in the developer archive.
October29 DV candidate, validation pending. Opt-in native_scoreboard.v4
adds phase11 period labels through ScoreFacts.2, which copies the established
native finished value together with its sampled phase. A checked nonfinal
phase11 copy uses the current period; a checked final copy at phase11/12/19 uses
FINAL. Unknown profiles, invalid flags, mismatched phase/raw period, stale
content and unsupported combinations withhold the scorebug. No score, clock or
elapsed-time inference establishes finality.
ScoreFacts.2 has a64-byte process-identity header (OHPFACT2, version2) and a
160-byte record. It retains the exact Content.2 occurrence/instance/revision,
run/epoch/device identity and100ms sample/draw freshness checks. Both phase and
finished participate in the host's content dependency revision; the host also
checks phase, raw period, score and content at the draw. ScoreFacts.1 remains
independently published with its unchanged152-byte layout, and schemas v2/v3
retain their existing reader and label behavior. The fast72-byte clock
observation and public API are unchanged. The neutral generator opts in with
native_finish=True alongside score_facts=True, native_period=True.
This candidate is not native acceptance or complete transition-smoothness proof. See the exact frozen-stage and subsequent Windows/live receipts before using any result as evidence.
October29 CV diagnostic update. Production draft3 uses the separate Local\OpenHoops.Presentation.Trace.2.<token> observation mapping. Its64-byte header and1,520-byte frame retain31 owners and64 ring entries; magic/version are OHPTRC2/2. Open TraceReader(..., version=2) explicitly. Draft1/2 continue to use Trace.1, and legacy readers reject the expanded reason bits.
Trace.2 retains the first18 reasons and adds invalid-clock/sample, regressed sample, pause/replay, score, phase, period, content, invalid claim and busy-observation distinctions. These identify per-owner/per-Present withholding; draw counts remain primitive counts, and observed visual boundaries are not native completion authority. No100ms freshness, identity, occurrence, producer-liveness or content-revision guard is relaxed. The new private controller write-boundary log remains research evidence and is not a public semantic cue contract.
October29 CI candidate: CG original visually passes its observed 10–7 game, cards and fallback/recovery, but per-Present evidence retains phase-transition gaps. The neutral copied-score example now declares score, period and content dependencies: its only public dynamic binding, period_label, depends on raw period, not live/dead-ball phase. Any added public stat/timeout/bonus field restores the broader dependency requirement. Pause/replay, identity, source age and content revisions remain host guards. Windows and new-candidate game checks are pending.
Observation.2 candidate CO keeps raw native clocks and permits only shot expiry strictly above-0.1 seconds. Display binding rounds it to zero as both original x86 formatter branches do. Game clock stays nonnegative; v1 retains its bounds. Identity,100ms freshness, source ordering, content and liveness guards remain. Windows/native acceptance is pending.
Typed scene data — private framework versions 4 and 5
Current native card coverage is recorded in live-cd-review.json and
live-ce-review.json. CD passes144 Windows presentation cases and92 checks of
captured native field geometry. Its exact production DLL finishes the original
profile4–14 with4,081 schema checks and reviewed titlecard, correctly paired
break-board columns, a named halftime report and producer recovery. CE reviews
the college halftime fields but stops on an overly early harness expiry check;
the same-DLL retry is active. These are occurrence-specific results.
Native schemas include native_titlecard.v1, native_break_board.v1 and
native_studio_report.v1. The break board preserves physical left/right team
columns; those columns are not assumed to mean home/away. card.native_heading
keeps the original text. card.heading uses the frozen adapter rule profile to
format verified college raw periods1 and3 as first/second halves. An unknown
profile or incompatible banner remains unknown. The studio schema exposes the
native report title, each team's name/score/detail/player summary, the selected
subject's first/last text and three literal stat label/value pairs. Names are
required by the neutral example before replacing its report. No canonical player
identity or award winner is inferred from these strings.
Pending candidate CG adds native_scoreboard.v1: notice fields plus typed
score.away, score.home, clock.game and clock.shot from the coherent native
game-thread observation. Only a scorebug whose dynamic bindings use this schema
may bridge an HTTP score lag. Its period still comes from the public profile;
phase/period changes, stale public identity, native content changes and the100ms
host checks still withhold replacement. Adding a public stat, timeout or bonus
binding disables that exception. Public catalogs, cue eligibility and source age
are never rewritten. Windows and native acceptance for CG are pending.
The neutral example generator is python -m presentation.framework.make_data_diagnostic
OUTPUT --font FONT. Its editable cards bind player statistics, team statistics,
the five current on-court players, match information and a finished result.
Those headings describe actual fields; they do not claim native subject discovery
or automatic postgame support.
Scene-framework data readiness applies to entering and visible layers. Hidden cards do not require an invented subject. If an outgoing card loses required content, its entire layer disappears, including its panel. Required resources still preload for the full package. The legacy preview retains its existing whole-package data checks.
Private candidate BC passes120 Windows presentation tests,124 portable-core checks,52 actual x86 runtime checks,22 legacy pixel checks and16 managed-request regressions. The example's five schemas are exercised through the real software renderer with explicitly simulated inputs. These checks are not game acceptance.
Same BC production DLL now has scoped college acceptance in
p74-live-data-college-bc2: four reviewed Desktop Duplication captures show the
explicitly selected player, team, current lineup and match cards. The natural
7–1 game passes2,216 schema checks, reconciles two consumers, recovers after
producer termination and restores99 baseline files. See
live-bc2-review.json.
The captured player/team totals are zero; changing statistics, final-card
visibility, native automatic subject selection and the original profile remain
separate checks. The failed first BC capture campaign is preserved.
Version 4 packages can bind graphics to typed fields from the same copied public
API snapshot as their frame. The software runtime uses a new private version 2
wire (OHPR74D). The existing 31-value preview wire remains unchanged. This does
not change the released game API or grant new native component capabilities.
Declare a scene's data and refer to it by its scene ID:
{
"id": "player_card",
"layers": [2],
"trigger": "manual",
"priority": 20,
"exclusive_group": "insert",
"duration_ms": 5000,
"data": {"schema": "player_stats.v1", "selection": "client"}
}
A text node in layer 2 can use scene.player_card.player.name or
scene.player_card.player.points. A field cannot bind a different scene's
layers. Private data_00–data_63 slots are an internal encoding and cannot be
authored in package JSON.
| Schema | Selection | Fields |
|---|---|---|
player_stats.v1 |
Explicit player_key |
Key, name, side, current-game statistics, seconds played and plus/minus |
team_stats.v1 |
Explicit side (away or home) |
Name, side and current-game statistics |
current_lineup.v1 |
Explicit side |
Team fields plus five current on-court players, ordered by the API's physical slot |
matchup.v1 |
None | Both names, scores, records and ranks; period, event and round labels |
period_summary.v1 |
None | The same cumulative match fields; no per-period split is inferred |
final_summary.v1 |
None | Match fields and winner, available only after the snapshot says the game is finished |
Statistics include points, total/offensive/defensive rebounds, assists, steals,
blocks, fouls, turnovers, field goals made/attempted, two- and three-point goals
made/attempted, and free throws made/attempted. current_lineup.v1 supplies each
player's key, name, points, rebounds and assists. It requires exactly five unique
on-court slots; it does not claim those players were the starting lineup.
An explicit player cue adds "selection": {"player_key": "<public player key>"}
to the existing identity-bound cue request. Team and lineup cues use
"selection": {"side": "away"}. A subject is checked against the exact copied
catalog; statistics then update from subsequent valid snapshots during the cue's
bounded lifetime. Hide requests omit selection. Identity changes, disconnects,
expiry and package reload discard selections.
The catalog binds run, match, native epoch, context hash, presentation hash and
source sequence. Missing fields remain typed unknown values. Required missing
content prevents publishing a partial graphic. No player is selected from ball
possession, a score change, or a high point total. The reserved native_content
selection currently remains unavailable until a verified native content adapter
supplies the subject; it is not a working automatic award or shooter selector.
Private BN adds presentation.framework.native_content.ContentReader, a separate
read-only Windows channel for resolved native text. It binds the owning process
and creation time, run nonce, native epoch and device generation. A record comes
from the exact native UI traversal that queued the observed main-backbuffer draw;
its storage remains pinned until those commands retire. Native addresses and
asset field IDs remain inside the adapter. The reader exposes portable names
such as notice.headline, notice.subject_text and notice.detail, preserving
empty text separately from an absent field.
This interface reports coherent_draw_text, an observed occurrence/instance and
content revision. It expressly does not establish individual glyph visibility,
the native logical variant, a public player key, or completion/cancellation.
Some native fields resolve before their animation reveals them. Stale, ended,
foreign-match, torn or unavailable observations withhold all fields. The channel
is not yet an automatic scene-binding capability. Its initial Windows evidence
includes two independent readers of the actual x86 writer; native acceptance is
recorded in live-bn-review.json: two independent readers agree19,738 times in
the actual college game. This remains a text-observation capability.
Private version5 adds native_notice.v1 with selection: native_content on a
native_draw scene belonging to scoreboard.main. It uses Content.2 submission
opacity and portable headline, subject-text and detail fields. These are exact
strings, not inferred public player keys. notice.active is present only when
at least one eligible notice field exists; optional absent fields are typed
inapplicable. The known-empty scene remains ready so it does not remove scores.
Content.2 adds an opacity record and a semantic binding revision. Only nonzero primary-text opacity from the actual native submission is eligible; measurement calls and hidden text are excluded. A positive-opacity fade or unrelated clock change does not change this revision. Eligible text changes, instance/occurrence, run, epoch and generation changes do. Unknown opacity withholds readiness. Opacity is not universal clipping/occlusion evidence; the diagnosed scorebug fields have paired native-image evidence in BO.
Version5 ownership declares dependencies from score, phase, period and
content. The adapter independently enforces its minimum. Draft3 pixel claims
bind native instance, observed occurrence and exact semantic revision to a fresh
frame. The host rechecks that claim at the actual native draw, alongside run,
epoch, device, producer and 100ms freshness guards. Static identity artwork can
omit unrelated score/phase/period dependencies; score-bearing graphics cannot.
No native start, completion, cancellation or command authority is added.
BR's137 Windows presentation tests include actual x86 writers, two read-only consumers and software pixels for visible/hidden/changed/expired notices. Draft3 D3D9 and production-game acceptance remain pending. Earlier Content.1 clients and draft2's strict context policy retain their separate ABI.
BL also preserves a manual selection through a fresh, same-identity local/public score mismatch while suspending its drawing. The original expiry still applies; stale data, pause/not-live state and identity changes still cancel the selection. This fixes premature permanent cancellation without authorizing stale pixels.
Each independently rendered component supports at most 64 referenced data fields and retains its eight-layer/128-node software bounds. Whole-package and native plane bounds still apply. Integer values stay within the exact JavaScript range; text is bounded to 255 UTF-8 bytes. Native replacement still requires that component's capability, matching fresh context and its actual native draw.
Validation in framework74ax: 119 Windows presentation tests, 52 actual x86
runtime checks and 22 legacy pixel checks, including changing subject glyphs,
unknown required fields, stale identities, duplicate player keys and expiry.
These are headless renderer checks. Production game verification and automatic
native subject binding remain separate acceptance gates.
Typed native scoreboard facts (candidate CQ/CR)
native_scoreboard.v2 retains the v1 notice/score/clock fields and adds each
side's timeouts.full, timeouts.short, timeouts.total, qualifying_fouls
and bonus, plus possession_arrow.side and possession_arrow.label.
Timeout counts and qualifying/late foul counters are copied from the established
native snapshot in the same game-thread sample as the clocks. Bonus labels use
the original native comparison or the actually applied college thresholds;
the beneficiary is the opposite team from the counted fouls. The college arrow
comes from the native alternating-possession team, never the physical holder.
Unknown arrow state stays missing; original-profile arrow is inapplicable.
The independent read-only ScoreFacts.1 mapping has a 64-byte identity header
and one 152-byte typed record. It carries no native pointers. It is deliberately
separate from Content.2 text and submission opacity. A monotonic exact-value
revision joins its facts into the scorebug's Content.2 binding revision. Readers
require the same run, epoch, device generation, instance, occurrence and binding
revision, with both draw and sample at most 100ms old. Missing/mismatched facts
withhold the v2 component; they cannot renew public metadata, relax producer
expiry or issue a game command. Existing v1 schemas and wire layouts remain.
CQ passes Windows builds, actual x86 record and rule-boundary checks, two read-only consumer/lifetime checks and real software-pixel isolation. CR adds the unknown-arrow wire regression. Production game acceptance for these facts is pending; the private capability does not update the shipped team package.