// Given a map of what our host provides, determine if this element's requirements are satisfied.
        public bool MeetsRequirements(AdaptiveFeatureRegistration featureRegistration)
        {
            if (Requires != null)
            {
                foreach (var requirement in Requires)
                {
                    // special case for adaptive cards version
                    var    requirementName    = requirement.Key;
                    var    requirementVersion = requirement.Value;
                    string provides           = featureRegistration.Get(requirementName);
                    if (provides.Length == 0)
                    {
                        return(false);
                    }

                    if (requirementVersion == "*")
                    {
                        // any version is sufficient to satisfy the requirement
                        return(true);
                    }

                    // host provides this requirement, but does it provide an acceptible version?
                    var providesVersion = new AdaptiveSchemaVersion(provides);
                    if (providesVersion < requirementVersion)
                    {
                        // host's provided version is too low
                        return(false);
                    }
                }
            }
            return(true);
        }
 /// <summary>
 /// Creates an AdaptiveCard using a specific schema version
 /// </summary>
 /// <param name="schemaVersion">The schema version to use</param>
 public AdaptiveCard(AdaptiveSchemaVersion schemaVersion)
 {
     Version = schemaVersion;
 }
 public AdaptiveCard()
 {
     Type    = TYPE;
     Version = new AdaptiveSchemaVersion(1, 0);
 }