Option Strict On
Option Explicit On

Imports System

Namespace Nexamas.UI.FloatRuntime

    ' ============================================================
    ' MASFloatRuntime Contract
    ' Class: MASFloatCapabilities
    '
    ' Purpose:
    '   Defines capability flags requested or declared by a Float.
    '
    ' Responsibility:
    '   Expresses what a Float needs from the runtime.
    '
    ' Owns:
    '   No runtime state.
    '
    ' Does Not Own:
    '   Permission decisions, input routing, focus ownership, or modal blocking execution.
    '
    ' Allowed Dependencies:
    '   System.FlagsAttribute.
    '
    ' Forbidden Dependencies:
    '   Legacy Overlay classes.
    '   Input router implementation.
    '   Focus manager implementation.
    '
    ' Lifecycle Role:
    '   Static contract value used by descriptor, request resolution, and policy.
    '
    ' Threading:
    '   Thread-safe by definition.
    '
    ' Mutation Rules:
    '   Immutable flag values.
    '
    ' Invariants:
    '   Capabilities express need.
    '   PolicyEngine decides whether that need is allowed.
    '
    ' Failure Rules:
    '   Unsupported flag combinations must be rejected by policy.
    ' ============================================================
    <Flags>
    Friend Enum MASFloatCapabilities
        None = 0
        PointerInput = 1
        KeyboardInput = 2
        TextInput = 4
        ModalBlocking = 8
        OutsideDismiss = 16
        EscapeDismiss = 32
        Queueable = 64
        Replaceable = 128
        OwnsFocus = 256
    End Enum

End Namespace