OPENHOOPSTeam build 2026.10.20-team1 · Windows

Rules and native extension SDK

Most apps only choose original or college rules in the match request. No custom DLL is needed for the agreed college mechanics: halves, scaled OT, 30/20-second shot-clock policies, 10-second backcourt, 7/10 bonus and one-and-one, five-foul disqualification, carryover, possession arrow, made-basket clock behavior, timeout policy, fixed media marks and college geometry.

Trusted native modules

native/sdk/openhoops_rules.h is an experimental C ABI1 / transport2 contract, with public headers and independent C examples. Build modules as x86 self-contained DLLs, select their path/hash/configuration/requiredness in launch_configuration.extensions, and inspect /v1/rules for masks and provenance. Executable-specific addresses stay private to the adapter. The ABI is not frozen.

Read the SDK guide for registration, ownership, callback lifetime, fault behavior and exact numeric domains. A selected DLL is trusted native code, not a sandbox. It must not block, perform network/file/UI work or retain callback pointers during adjudication. No HTTP call participates in a synchronous rule decision.

Frozen configuration supports scoped clock/reset durations, regulation/OT, personal foul threshold 5/6 and a coherent college bonus bundle. Advertised synchronous decisions cover nineteen mapped permissions and scoped native FT-count/two-or-three classification transactions. Availability depends on the selected profile and owner masks; an enum in the header is not a promise of support. College owns its built-in mechanics and only exposes validated slots. Changing a profile records custom provenance rather than claiming unchanged college certification.

Optional module faults disable future callbacks and record degraded provenance; required failures suspend/stop the owned match according to the contract. Frozen values already applied do not change mid-match because their module later failed. Returning faults can be contained; hangs or arbitrary native memory corruption cannot be safely preempted.

Semantics and verification

Legal state separates physical holder, control, possession, live/alive, attempt continuation, restart and FT administration, with independent unknown/inapplicable status. HTTP main/rule mappings are sampled independently, so the merged snapshot is not one atomic adjudication transaction. Use synchronous copied context when that distinction matters.

Ten connected record names and scoped actor roles are published; unresolved kinds/roles remain raw or unknown. Captured original handlers establish their recorded boundaries, not independent certification of all upstream violation detection. Universal events, arbitrary callbacks, arbitrary scoring values and full NCAA rulebook certification are not delivered.

Original and college natural-match tests passed classification changes and independent immutable results on the shipped DLL. Changed FT counts retain original-instruction/headless evidence: the original game test queried a baseline 2→2 award and the college game test queried none. Do not advertise a live changed-count result. See Verification.