partial         void CopyExtraPropertiesToClone(Script clone, bool includeLocalProperties);
 public Script Clone(bool includeLocalProperties)
 {
     var c = new Script
             {
                 AssignedTo = AssignedTo,
                 AssignedToId = AssignedToId,
                 ChangeComment = ChangeComment,
                 CreatedAt = CreatedAt,
                 CreatedBy = CreatedBy,
                 CreatedById = CreatedById,
                 Description = Description,
                 EstimatedDuration = EstimatedDuration,
                 FieldValues = FieldValues,
                 HasAttachments = HasAttachments,
                 Id = Id,
                 LastUpdatedAt = LastUpdatedAt,
                 LastUpdatedBy = LastUpdatedBy,
                 LastUpdatedById = LastUpdatedById,
                 Name = Name,
                 Notes = Notes,
                 Number = Number,
                 Objective = Objective,
                 OrderNumber = OrderNumber,
                 Package = Package,
                 PackageId = PackageId,
                 PackageName = PackageName,
                 PostCondition = PostCondition,
                 PreCondition = PreCondition,
                 Priority = Priority,
                 PriorityId = PriorityId,
                 ProjectId = ProjectId,
                 ProjectName = ProjectName,
                 Status = Status,
                 StatusId = StatusId,
                 Type = Type,
                 TypeId = TypeId,
                 VersionNumber = VersionNumber,
                 Assignments = Assignments.Select(x=>x.Clone(includeLocalProperties)).ToList(),
                 Attachments = Attachments.Select(x=>x.Clone(includeLocalProperties)).ToList(),
                 Steps = Steps.Select(x=>x.Clone(includeLocalProperties)).ToList(),
                 Widgets = Widgets.Select(x=>x.Clone(includeLocalProperties)).ToList(),
             };
     CopyExtraPropertiesToClone(c, includeLocalProperties);
     return c;
 }