# 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.