Typed .crn and tooling
The language, parser, semantic model, diagnostics, source generator, generated application paths, language server, Visual Studio integration, and preview infrastructure are integrated and tested.
Cerneala already combines ordinary application UI and complete 2D game rendering in one retained tree. The work ahead is about keeping SDL3 GPU verified as the sole desktop backend, evolving Cerberus without breaking retained ownership, and turning a source-first framework into something other developers can adopt without archaeology.
This records direction and maturity, not a release calendar. A type existing is not the same as a realistic scenario being conformant.
.crn and toolingThe language, parser, semantic model, diagnostics, source generator, generated application paths, language server, Visual Studio integration, and preview infrastructure are integrated and tested.
Typed state, logical and visual trees, Relay, invalidation, measure and arrange, retained drawing commands, input, focus, commands, resources, Aspect, Motion, Prism, diagnostics, and automation run under one root.
The game view is a retained ContentControl. It supports continuous or on-demand scheduling, retained drawing work, normal UI composition, and the complete implemented 2D drawing command surface.
Native desktop hosting, input, an SDL3 GPU drawing backend, Prism execution, cross-platform native smokes, and pixel-conformance coverage against frozen historical references exist in the repository.
Active samples select SDL3 explicitly; the framework registers no default backend. MonoGame and WindowsDX APIs have been removed without a compatibility facade. Migrated shared-contract tests, native conformance, and full-suite gates remain the evidence for completion.
Renderer changes must not steal ownership from the UI runtime. Unchanged elements keep their command reuse, batching preserves visible order, resources release deterministically, and backend disagreement is resolved against the semantic contract.
The planned work covers the compiler and encoder core with a state shadow, frame scheduling and upload arenas, retained compiled packets and GPU geometry, and multi-texture material pages. Its plan files were never checked in; only the private Cerberus batch executor ships in the SDL_GPU backend. Planned does not mean delivered.
Package boundaries, versioning, project templates, backend defaults, installation and upgrade instructions, a maintained minimal sample, and a preview compatibility policy still need explicit decisions and verified implementation.
This is not a foreign engine window embedded beside the interface. The surface is a retained control owned by the same application model as buttons, menus, inspectors, HUDs, dialogs, and ordinary desktop views.
Use one retained tree for game rendering and application UI instead of forcing a realtime loop through a desktop-framework workaround.
ContentControl.SDL3 owns the native direction. Cerberus owns SDL3 GPU batching and submission work without becoming a second UI runtime.
DrawingContext and DrawCommandList remain the drawing contract.IDrawingBackend remains the backend boundary.SDL3 + SDL_GPU is the sole maintained desktop composition. Core UI and source generation remain backend-neutral. Historical WindowsDX captures remain references, not an available runtime path.
Source removal is not an all-green claim. The repository's dated removal audit records migrated coverage, verification results, and unresolved native failures.
Cerneala has a lot of controls and systems. Their maturity is mixed. A familiar type name proves only that the type exists, not that every WPF-shaped scenario or every native platform path is complete.
Internal semantics and automation exist, but native accessibility adapters are not complete across supported platforms.
The full text editing stack still needs platform behavior, shaping, selection, clipboard, accessibility, and lifecycle evidence.
Platform-backed advanced input scenarios have uneven maturity and must not be presented as complete from metadata alone.
The repository is still source-first. Normal onboarding needs justified package boundaries, templates, a minimal sample, and maintained installation instructions.
Backend disagreement establishes a mismatch, not truth. The semantic contract, deterministic scenes, and platform-specific evidence decide which implementation is wrong.
The retired adapters have no compatibility facade. Completion requires preserving shared contracts and reporting every unresolved verification gate, not merely deleting their source.
The intended behavior and architectural owner are explicit. A convenient implementation does not get to invent product semantics.
Focused tests and the original runtime scenario prove the relevant layout, input, lifecycle, rendering, or language path.
Applicable native smokes, visual diffs, performance measurements, resource checks, and backend comparisons pass.
Affected and full suites pass, API changes are reviewed, canonical documentation is current, and remaining uncertainty is recorded.