public RegionAttribute(string id, string name, Adjective[] adjectives, string[] variants, string[] constraints, string[] associationStrs, bool secondary = false)
    {
        Id   = id;
        Name = name;

        if (adjectives == null)
        {
            Adjectives = new Adjective[] { };
        }
        else
        {
            Adjectives = adjectives;
        }

        Variations = NameTools.GenerateNounVariations(variants);

        if (constraints != null)
        {
            Constraints = new RegionConstraint[constraints.Length];

            int index = 0;
            foreach (string constraint in constraints)
            {
                Constraints[index] = RegionConstraint.BuildConstraint(constraint);
                index++;
            }
        }
        else
        {
            Constraints = new RegionConstraint[] { };
        }

        List <Association> associations = new List <Association>();

        foreach (string assocStr in associationStrs)
        {
            associations.AddRange(Association.Parse(assocStr));
        }

        Associations = associations.ToArray();

        Secondary = secondary;
    }
 public static void GenerateTribeNounVariations()
 {
     TribeNounVariations = NameTools.GenerateNounVariations(TribeNounVariants);
 }