{
  "comment": [
    "This file maps contract (API) versions to the .NET generations in which they were first introduced",

    "Contracts may be moved down in generations as a compatible change if every framework assigned",
    "to that generation either supports the contract at that API version or doesn't support the",
    "contract at all.  Support may mean an out of band implementation is provided in the package.",

    "Contracts may be added to a generation as a compatible change, but higher versions of that contract",
    "need to be supported by all frameworks assigned to that generation or the higher version needs to be",
    "assigned to a new generation.",

    "Contracts should not be thought of as part of the generation, rather, the generation determines",
    "what surface area will be exposed by the contract."
  ],

  "generations": {
    "1.0": {
      "comment": [
        "Windows Phone Silverlight"
      ],

      "assemblies": {
        "Microsoft.CSharp": "4.0.0.0",
        "System.Collections": "4.0.0.0",
        "System.ComponentModel": "4.0.0.0",
        "System.ComponentModel.EventBasedAsync": "4.0.0.0",
        "System.Diagnostics.Contracts": "4.0.0.0",
        "System.Diagnostics.Debug": "4.0.0.0",
        "System.Diagnostics.Tools": "4.0.0.0",
        "System.Dynamic.Runtime": "4.0.0.0",
        "System.Globalization": "4.0.0.0",
        "System.IO": "4.0.0.0",
        "System.Linq": "4.0.0.0",
        "System.Linq.Expressions": "4.0.0.0",
        "System.Linq.Queryable": "4.0.0.0",
        "System.Net.NetworkInformation": "4.0.0.0",
        "System.Net.Primitives": "3.9.0.0",
        "System.Net.Requests": "3.9.0.0",
        "System.ObjectModel": "4.0.0.0",
        "System.Reflection": "4.0.0.0",
        "System.Reflection.Emit.ILGeneration": "4.0.0.0",
        "System.Reflection.Emit.Lightweight": "4.0.0.0",
        "System.Reflection.Extensions": "4.0.0.0",
        "System.Reflection.Primitives": "4.0.0.0",
        "System.Resources.ResourceManager": "4.0.0.0",
        "System.Runtime": "4.0.0.0",
        "System.Runtime.Extensions": "4.0.0.0",
        "System.Runtime.InteropServices.WindowsRuntime": "4.0.0.0",
        "System.Runtime.Serialization.Json": "4.0.0.0",
        "System.Runtime.Serialization.Primitives": "4.0.0.0",
        "System.Runtime.Serialization.Xml": "4.0.0.0",
        "System.Runtime.WindowsRuntime": "4.0.0.0",
        "System.Security.Principal": "4.0.0.0",
        "System.ServiceModel.Http": "3.9.0.0",
        "System.ServiceModel.Primitives": "3.9.0.0",
        "System.ServiceModel.Security": "3.9.0.0",
        "System.Text.Encoding": "4.0.0.0",
        "System.Text.Encoding.Extensions": "4.0.0.0",
        "System.Text.RegularExpressions": "4.0.0.0",
        "System.Threading": "4.0.0.0",
        "System.Threading.Tasks": "4.0.0.0",
        "System.Xml.ReaderWriter": "4.0.0.0",
        "System.Xml.XDocument": "4.0.0.0",
        "System.Xml.XmlSerializer": "4.0.0.0"
      }
    },
    "1.1": {
      "comment": [
        ".NET 4.5 / Dev11 release"
      ],

      "assemblies": {
        "Microsoft.VisualBasic": "10.0.0.0",
        "System.Collections.Concurrent": "4.0.0.0",
        "System.ComponentModel.Annotations": "4.0.0.0",
        "System.Diagnostics.Tracing": "4.0.0.0",
        "System.IO.Compression": "4.0.0.0",
        "System.Linq.Parallel": "4.0.0.0",
        "System.Net.Http": "4.0.0.0",
        "System.Net.Http.Rtc": "4.0.0.0",
        "System.Net.Primitives": "4.0.0.0",
        "System.Net.Requests": "4.0.0.0",
        "System.Reflection.Context": "4.0.0.0",
        "System.Reflection.Emit": "4.0.0.0",
        "System.Runtime.InteropServices": "4.0.0.0",
        "System.Runtime.Numerics": "4.0.0.0",
        "System.Runtime.WindowsRuntime.UI.Xaml": "4.0.0.0",
        "System.ServiceModel.Duplex": "4.0.0.0",
        "System.ServiceModel.Http": "4.0.0.0",
        "System.ServiceModel.NetTcp": "4.0.0.0",
        "System.ServiceModel.Primitives": "4.0.0.0",
        "System.ServiceModel.Security": "4.0.0.0",
        "System.Threading.Tasks.Parallel": "4.0.0.0"
      }
    },
    "1.2": {
      "comment": [
        ".NET 4.5.1 / Dev12 release"
      ],

      "assemblies": {
        "System.Diagnostics.Tracing": "4.0.10.0",
        "System.Runtime": "4.0.10.0",
        "System.Runtime.InteropServices": "4.0.10.0",
        "System.Runtime.WindowsRuntime": "4.0.10.0",
        "System.Threading.Timer": "4.0.0.0"
      }
    },
    "1.3": {
      "comment": [
        ".NET 4.6 / UWP / Dev14 release",

        "S.IO.Compression, S.R.Serialization.Primitives, S.R.Serialization.Xml, and S.ServiceModel.Primitives can",
        "only be OOB'ed in 1.3 since Windows Store and Windows Phone do not permit OOBing",

        "System.ComponentModel.Annotations 4.1 needs to be in 1.4 but we cannot move it until NuGet/DNX are updated",
        "to make UAP support 1.4"
      ],

      "assemblies": {
        "System.Collections": "4.0.10.0",
        "System.Collections.Concurrent": "4.0.10.0",
        "System.ComponentModel.Annotations": "4.1.0.0",
        "System.ComponentModel.EventBasedAsync": "4.0.10.0",
        "System.Diagnostics.Debug": "4.0.10.0",
        "System.Diagnostics.Process": "4.0.0.0",
        "System.Diagnostics.Tracing": "4.0.20.0",
        "System.Dynamic.Runtime": "4.0.10.0",
        "System.Globalization": "4.0.10.0",
        "System.IO": "4.0.10.0",
        "System.IO.Compression": "4.1.0.0",
        "System.Linq.Expressions": "4.0.10.0",
        "System.Net.NetworkInformation": "4.1.0.0",
        "System.Net.Primitives": "4.0.10.0",
        "System.Net.Requests": "4.0.10.0",
        "System.Net.Sockets": "4.1.0.0",
        "System.Net.WebHeaderCollection": "4.0.0.0",
        "System.Numerics.Vectors": "4.0.0.0",
        "System.ObjectModel": "4.0.10.0",
        "System.Reflection": "4.0.10.0",
        "System.Runtime": "4.0.20.0",
        "System.Runtime.Extensions": "4.0.10.0",
        "System.Runtime.Handles": "4.0.0.0",
        "System.Runtime.InteropServices": "4.0.20.0",
        "System.Runtime.Serialization.Primitives": "4.1.0.0",
        "System.Runtime.Serialization.Xml": "4.1.0.0",
        "System.ServiceModel.Primitives": "4.1.0.0",
        "System.ServiceModel.Http": "4.1.0.0",
        "System.Text.Encoding": "4.0.10.0",
        "System.Text.Encoding.Extensions": "4.0.10.0",
        "System.Text.RegularExpressions": "4.0.10.0",
        "System.Threading": "4.0.10.0",
        "System.Threading.Tasks": "4.0.10.0",
        "System.Xml.ReaderWriter": "4.0.10.0",
        "System.Xml.XDocument": "4.0.10.0",
        "System.Xml.XmlSerializer": "4.0.10.0"
      }
    },
    "1.4": {
      "comment": [
        ".NET 4.6.1",

        "System.Diagnostics.Process is added here because it required changes to desktop in 4.6.1 that could not be OOBed"
      ],
      "assemblies": {
        "System.Diagnostics.Process": "4.1.0.0"
      }
    },
    "1.5": {
      "comment": [
        ".NET 4.6.2 (or 4.7) / Project K release"
      ],
      "assemblies": {
      }
    }
  }
}
