Option Strict On
Option Explicit On

Namespace Nexamas.UI.FloatRuntime

    ' ============================================================
    ' MASFloatRuntime Contract
    ' Class: MASFloatShieldReason
    '
    ' Purpose:
    '   Defines why a Float is shielded.
    '
    ' Responsibility:
    '   Provides semantic context for policy decisions and debug trace.
    '
    ' Owns:
    '   No runtime state.
    '
    ' Does Not Own:
    '   Shield authorization, close behavior, or UI messaging.
    '
    ' Allowed Dependencies:
    '   None.
    '
    ' Forbidden Dependencies:
    '   Legacy Overlay classes.
    '   PolicyEngine implementation.
    '
    ' Lifecycle Role:
    '   Used by MASFloatShieldOptions.
    '
    ' Threading:
    '   Thread-safe by definition.
    '
    ' Mutation Rules:
    '   Immutable enum values.
    '
    ' Invariants:
    '   Reason explains the shield.
    '   Mode determines the protection level.
    '
    ' Failure Rules:
    '   None reason is valid only when no specific explanation is required.
    ' ============================================================
    Friend Enum MASFloatShieldReason
        None
        RequiresUserDecision
        CriticalConfirmation
        InProgressOperation
        PreventDataLoss
        OwnedModalFlow
    End Enum

End Namespace