private ProcessTemplateMap()
        {
            _systemFieldReferenceNames = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
                                         {
                                             "System.Id", "System.Watermark", "System.TeamProject", "System.IterationId",
                                             "System.ExternalLinkCount", "System.HyperLinkCount", "System.AttachedFileCount",
                                             "System.NodeName", "System.RevisedDate", "System.AreaId", "System.AuthorizedAs",
                                             "System.AuthorizedDate", "System.Rev", "System.WorkItemType", "System.Description",
                                             "System.RelatedLinkCount", "System.ChangedDate", "System.ChangedBy",
                                             "System.CreatedDate", "System.CreatedBy", "System.History",
                                             "System.Tags" // tags?
                                         };

            _workItemTypeMap = new CurrentToGoalMap<string>(StringComparer.OrdinalIgnoreCase);
            _workItemStateMaps = new Dictionary<string, CurrentToGoalMap<string>>(StringComparer.OrdinalIgnoreCase);
            _workItemFieldMap = new CurrentToGoalMap<string>(StringComparer.OrdinalIgnoreCase);
        }
        public static ProcessTemplateMap ConvertScrum2ToAgile6()
        {
            var map = new ProcessTemplateMap();

            CurrentToGoalMap<string> stateMap;

            // Scrum type => Agile type
            map._workItemTypeMap.Add("Product Backlog Item", "User Story");

            // Scrum Task => Agile Task
            stateMap = new CurrentToGoalMap<string>(StringComparer.OrdinalIgnoreCase);
            stateMap.Add("To Do", "New");
            stateMap.Add("In Progress", "Active");
            stateMap.Add("Done", "Closed");
            map._workItemStateMaps.Add("Task", stateMap);

            // Scrum Bug => Agile Bug
            stateMap = new CurrentToGoalMap<string>(StringComparer.OrdinalIgnoreCase);
            stateMap.Add("New", "Active");
            stateMap.Add("Approved", "Active");
            stateMap.Add("Committed", "Active");
            stateMap.Add("Done", "Resolved");
            stateMap.Add("Removed", "Closed");
            map._workItemStateMaps.Add("Bug", stateMap);

            // Scrum Product Backlog Item => Agile User Story
            stateMap = new CurrentToGoalMap<string>(StringComparer.OrdinalIgnoreCase);
            stateMap.Add("Approved", "Active");
            stateMap.Add("Committed", "Active");
            stateMap.Add("Done", "Resolved");
            map._workItemStateMaps.Add("Product Backlog Item", stateMap);

            // Scrum field => Agile field
            map._workItemFieldMap.Add("Microsoft.VSTS.Common.BacklogPriority", "Microsoft.VSTS.Common.StackRank");
            map._workItemFieldMap.Add("Microsoft.VSTS.Scheduling.Effort", "Microsoft.VSTS.Scheduling.StoryPoints");
            //TODO consider appending Microsoft.VSTS.Common.AcceptanceCriteria content to System.Description

            return map;
        }