internal CtfStructDescriptor(CtfPropertyBag props, ICtfFieldDescriptor[] fields)
            : base(CtfTypes.Struct)
        {
            Guard.NotNull(props, nameof(props));
            Guard.NotNull(fields, nameof(fields));

            int alignment = 1;

            if (props != null)
            {
                alignment = props.GetIntOrNull("align") ?? 1;
            }

            this.Fields = new List <ICtfFieldDescriptor>(fields);

            DetermineMinimumRequiredAlignment(alignment);
        }