- BaseViewExtension: wrap the ViewRuntimeBridge provider collision with a message naming the real constraint (one view engine per FlashApp) instead of the generic "duplicate provider" error. - BaseViewExtension/JteExtension: carry registered globals across JteExtension's immutable settings builders (templateRoot/serveStatics/staticPrefix/withStaticCors/ staticCors). addGlobal() called before any of those used to be silently dropped, since each builder method returned a fresh instance with an empty globals list. - Correct flash-ext-view-jte docs (README, architecture.md, model-and-globals.md): globals merge flat with one typed @param per key, not under a global.* namespace like Thymeleaf — the docs previously claimed the same reserved namespace for both engines, which doesn't match JteRuntime's actual merge behavior. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
flash-ext-view-core
Minimal runtime primitives for Flash SSR view extensions.
This module is intentionally small and not engine-opinionated. It provides:
BaseViewHandlerBaseViewExtensionViewRuntimeBridgeViewModelRenderedViewGlobalValue
Engine semantics (@Template, @Fragment, layout/macros/tags, resolver conventions)
belong in engine-specific modules such as flash-ext-view-thymeleaf.