OPENHOOPS / 2K14Final team archive · November 9, 2026Reference libraryChecksums

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.