Option Strict On
Option Explicit On

Imports Nexamas.UI.Theming
Imports SkiaSharp

Namespace Nexamas.UI.FloatRuntime

    ' ============================================================
    ' MASFloatRuntime Contract
    ' Class: IMASFloatRenderableContent
    '
    ' Purpose:
    '   Defines optional visual rendering support for Float content.
    '
    ' Responsibility:
    '   Allows MASFloatHostPresenter to render content inside resolved
    '   pixel-space bounds using the fresh Nexamas UI ThemeContext.
    '
    ' Owns:
    '   No runtime lifecycle state.
    '
    ' Does Not Own:
    '   Show, close, policy, queue, result delivery, host ordering, or
    '   ThemeContext ownership.
    '
    ' Allowed Dependencies:
    '   SkiaSharp.SKCanvas.
    '   SkiaSharp.SKRect.
    '   Nexamas.UI.Theming.MASThemeContext.
    '
    ' Forbidden Dependencies:
    '   Legacy Overlay classes.
    '   OverlayHost.
    '   OverlayManager.
    '   OverlayContent.
    '   OverlayLayer.
    '   OverlayService.
    '
    ' Lifecycle Role:
    '   Called by MASFloatHostPresenter only while the Float is hosted.
    '
    ' Threading:
    '   Called on the Nexamas UI render path.
    '
    ' Mutation Rules:
    '   Rendering must not mutate runtime lifecycle state.
    '
    ' Invariants:
    '   boundsPx is pixel-space.
    '   ThemeContext must be supplied fresh by Nexamas UI render pipeline.
    '
    ' Failure Rules:
    '   Render failures may be swallowed/logged by presenter policy later.
    ' ============================================================
    Friend Interface IMASFloatRenderableContent

        Sub RenderFloat(
            canvas As SKCanvas,
            ctx As MASThemeContext,
            boundsPx As SKRect
        )

    End Interface

End Namespace