summaryrefslogtreecommitdiff
path: root/docs/api-policy.md
blob: f2f4d92fabf9ebd10d5e7e4e5f09440d9944019c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Public API policy

YASL is pre-release 0.1. Source and ABI compatibility are not guaranteed. Rebuild
consumers against matching installed headers/library; do not serialize public events
or assume their layout is a stable file/network format.

Only installed include/yasl headers are public. The surface library exposes an
opaque surface and one tagged event record, with direct C arguments and ordinary
pointer/integer results. Native backend headers, geometry records, callbacks, loops,
and drawing targets under src are private even when a static archive contains them.
The shared library exports exactly the installed public declarations.

Do not restore removed runner/frame/display APIs or compatibility aliases. Keep
rendering bridges separate from the portable surface/input core and preserve the
application's ownership of GPU resources and its loop. Public additions need clear
units, ownership, thread/callback timing, errors and unsupported behavior, useful
examples, and behavior coverage. Update the guide and test installed shared/static
consumers and exports. Changes affecting Cocoa need a native macOS build/test.