Option Strict On
Option Explicit On

Namespace Nexamas.UI.Components

    ''' <summary>
    ''' Friend-only release evidence for the avatar visual control. Identity directories,
    ''' contact lookup, image transport, image loading, and presence services intentionally
    ''' remain outside the control surface.
    ''' </summary>
    Friend NotInheritable Class MASAvatarReadinessManifest
        Friend Sub New(status As MASAvatarReadinessStatus,
                       publicGatewayPresent As Boolean,
                       architectureRegistered As Boolean,
                       hasIdentityPolicy As Boolean,
                       hasUnicodeInitialsPolicy As Boolean,
                       hasDeterministicFallbackColor As Boolean,
                       hasPresenceTonePolicy As Boolean,
                       hasHighDpiClipPolicy As Boolean,
                       parallelIdentitySystemAbsent As Boolean)
            Me.Status = status
            Me.PublicGatewayPresent = publicGatewayPresent
            Me.ArchitectureRegistered = architectureRegistered
            Me.HasIdentityPolicy = hasIdentityPolicy
            Me.HasUnicodeInitialsPolicy = hasUnicodeInitialsPolicy
            Me.HasDeterministicFallbackColor = hasDeterministicFallbackColor
            Me.HasPresenceTonePolicy = hasPresenceTonePolicy
            Me.HasHighDpiClipPolicy = hasHighDpiClipPolicy
            Me.ParallelIdentitySystemAbsent = parallelIdentitySystemAbsent
        End Sub

        Friend ReadOnly Property Status As MASAvatarReadinessStatus
        Friend ReadOnly Property PublicGatewayPresent As Boolean
        Friend ReadOnly Property ArchitectureRegistered As Boolean
        Friend ReadOnly Property HasIdentityPolicy As Boolean
        Friend ReadOnly Property HasUnicodeInitialsPolicy As Boolean
        Friend ReadOnly Property HasDeterministicFallbackColor As Boolean
        Friend ReadOnly Property HasPresenceTonePolicy As Boolean
        Friend ReadOnly Property HasHighDpiClipPolicy As Boolean
        Friend ReadOnly Property ParallelIdentitySystemAbsent As Boolean

        Friend Shared Function Ready() As MASAvatarReadinessManifest
            Return New MASAvatarReadinessManifest(MASAvatarReadinessStatus.Ready, True, True, True, True, True, True, True, True)
        End Function
    End Class

End Namespace
