diff --git a/.idea/.idea.Aaru/.idea/contentModel.xml b/.idea/.idea.Aaru/.idea/contentModel.xml
index 4acd533eb..e5b108013 100644
--- a/.idea/.idea.Aaru/.idea/contentModel.xml
+++ b/.idea/.idea.Aaru/.idea/contentModel.xml
@@ -414,6 +414,8 @@
+
+
diff --git a/Aaru.CommonTypes b/Aaru.CommonTypes
index f3329ce21..1fe35b7d3 160000
--- a/Aaru.CommonTypes
+++ b/Aaru.CommonTypes
@@ -1 +1 @@
-Subproject commit f3329ce214b55b96e2b7065a9d4c15414ab72a21
+Subproject commit 1fe35b7d392c3c746df2d356a5bbbef12a4f500b
diff --git a/Aaru.Database/Aaru.Database.csproj b/Aaru.Database/Aaru.Database.csproj
index 191b40614..f76afc779 100644
--- a/Aaru.Database/Aaru.Database.csproj
+++ b/Aaru.Database/Aaru.Database.csproj
@@ -112,6 +112,8 @@
+
+
diff --git a/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs b/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs
new file mode 100644
index 000000000..fc7dcc535
--- /dev/null
+++ b/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs
@@ -0,0 +1,2457 @@
+//
+using System;
+using Aaru.Database;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+namespace Aaru.Database.Migrations
+{
+ [DbContext(typeof(AaruContext))]
+ [Migration("20200710170129_AddGdRomSwapDiscCapabilities")]
+ partial class AddGdRomSwapDiscCapabilities
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "3.1.5");
+
+ modelBuilder.Entity("Aaru.CommonTypes.Metadata.Ata", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Identify")
+ .HasColumnType("BLOB");
+
+ b.Property("ReadCapabilitiesId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ReadCapabilitiesId");
+
+ b.ToTable("Ata");
+ });
+
+ modelBuilder.Entity("Aaru.CommonTypes.Metadata.BlockDescriptor", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("BlockLength")
+ .HasColumnType("INTEGER");
+
+ b.Property("Blocks")
+ .HasColumnType("INTEGER");
+
+ b.Property("Density")
+ .HasColumnType("INTEGER");
+
+ b.Property("ScsiModeId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ScsiModeId");
+
+ b.ToTable("BlockDescriptor");
+ });
+
+ modelBuilder.Entity("Aaru.CommonTypes.Metadata.Chs", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Cylinders")
+ .HasColumnType("INTEGER");
+
+ b.Property("Heads")
+ .HasColumnType("INTEGER");
+
+ b.Property("Sectors")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.ToTable("Chs");
+ });
+
+ modelBuilder.Entity("Aaru.CommonTypes.Metadata.DensityCode", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Code")
+ .HasColumnType("INTEGER");
+
+ b.Property("SscSupportedMediaId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SscSupportedMediaId");
+
+ b.ToTable("DensityCode");
+ });
+
+ modelBuilder.Entity("Aaru.CommonTypes.Metadata.FireWire", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Manufacturer")
+ .HasColumnType("TEXT");
+
+ b.Property("Product")
+ .HasColumnType("TEXT");
+
+ b.Property("ProductID")
+ .HasColumnType("INTEGER");
+
+ b.Property("RemovableMedia")
+ .HasColumnType("INTEGER");
+
+ b.Property("VendorID")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.ToTable("FireWire");
+ });
+
+ modelBuilder.Entity("Aaru.CommonTypes.Metadata.GdRomSwapDiscCapabilities", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba0Data")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba0DecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba0Readable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba0ScrambledData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba0ScrambledDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba0ScrambledReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba0ScrambledSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba0Sense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba100000Data")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba100000DecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba100000PqData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba100000PqDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba100000PqReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba100000PqReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba100000PqSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba100000Readable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba100000ReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba100000RwData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba100000RwDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba100000RwReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba100000RwReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba100000RwSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba100000Sense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba400000Data")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba400000DecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba400000PqData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba400000PqDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba400000PqReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba400000PqReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba400000PqSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba400000Readable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba400000ReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba400000RwData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba400000RwDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba400000RwReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba400000RwReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba400000RwSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba400000Sense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba44990Data")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba44990DecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba44990PqData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba44990PqDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba44990PqReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba44990PqReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba44990PqSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba44990Readable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba44990ReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba44990RwData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba44990RwDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba44990RwReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba44990RwReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba44990RwSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba44990Sense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba450000Data")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba450000DecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba450000PqData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba450000PqDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba450000PqReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba450000PqReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba450000PqSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba450000Readable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba450000ReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba450000RwData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba450000RwDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba450000RwReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba450000RwReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba450000RwSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba450000Sense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba45000Data")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba45000DecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba45000PqData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba45000PqDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba45000PqReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba45000PqReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba45000PqSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba45000Readable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba45000ReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba45000RwData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba45000RwDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba45000RwReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba45000RwReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba45000RwSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba45000Sense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba50000Data")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba50000DecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba50000PqData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba50000PqDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba50000PqReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba50000PqReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba50000PqSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba50000Readable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba50000ReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba50000RwData")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba50000RwDecodedSense")
+ .HasColumnType("TEXT");
+
+ b.Property("Lba50000RwReadable")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba50000RwReadableCluster")
+ .HasColumnType("INTEGER");
+
+ b.Property("Lba50000RwSense")
+ .HasColumnType("BLOB");
+
+ b.Property("Lba50000Sense")
+ .HasColumnType("BLOB");
+
+ b.Property("MaximumReadablePqInHdArea")
+ .HasColumnType("BLOB");
+
+ b.Property("MaximumReadableRwInHdArea")
+ .HasColumnType("BLOB");
+
+ b.Property("MaximumReadableSectorInHdArea")
+ .HasColumnType("INTEGER");
+
+ b.Property("MinimumReadableSectorInHdArea")
+ .HasColumnType("INTEGER");
+
+ b.Property("RecognizedSwapDisc")
+ .HasColumnType("INTEGER");
+
+ b.Property("SwapDiscLeadOutPFRAM")
+ .HasColumnType("INTEGER");
+
+ b.Property("SwapDiscLeadOutPMIN")
+ .HasColumnType("INTEGER");
+
+ b.Property("SwapDiscLeadOutPSEC")
+ .HasColumnType("INTEGER");
+
+ b.Property("SwapDiscLeadOutStart")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.ToTable("GdRomSwapDiscCapabilities");
+ });
+
+ modelBuilder.Entity("Aaru.CommonTypes.Metadata.Mmc", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("FeaturesId")
+ .HasColumnType("INTEGER");
+
+ b.Property("ModeSense2AData")
+ .HasColumnType("BLOB");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FeaturesId");
+
+ b.ToTable("Mmc");
+ });
+
+ modelBuilder.Entity("Aaru.CommonTypes.Metadata.MmcFeatures", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("AACSVersion")
+ .HasColumnType("INTEGER");
+
+ b.Property("AGIDs")
+ .HasColumnType("INTEGER");
+
+ b.Property("BinaryData")
+ .HasColumnType("BLOB");
+
+ b.Property("BindingNonceBlocks")
+ .HasColumnType("INTEGER");
+
+ b.Property("BlocksPerReadableUnit")
+ .HasColumnType("INTEGER");
+
+ b.Property("BufferUnderrunFreeInDVD")
+ .HasColumnType("INTEGER");
+
+ b.Property("BufferUnderrunFreeInSAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("BufferUnderrunFreeInTAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("CPRMVersion")
+ .HasColumnType("INTEGER");
+
+ b.Property("CSSVersion")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanAudioScan")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanEject")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanEraseSector")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanExpandBDRESpareArea")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanFormat")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanFormatBDREWithoutSpare")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanFormatCert")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanFormatFRF")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanFormatQCert")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanFormatRRM")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanGenerateBindingNonce")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanLoad")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanMuteSeparateChannels")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanOverwriteSAOTrack")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanOverwriteTAOTrack")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanPlayCDAudio")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanPseudoOverwriteBDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadAllDualR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadAllDualRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadBD")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadBDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadBDRE1")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadBDRE2")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadBDROM")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadBluBCA")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadCD")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadCDMRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadCPRM_MKB")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadDDCD")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadDVD")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadDVDPlusMRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadDVDPlusR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadDVDPlusRDL")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadDVDPlusRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadDVDPlusRWDL")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadDriveAACSCertificate")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadHDDVD")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadHDDVDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadHDDVDRAM")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadLeadInCDText")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadOldBDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadOldBDRE")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadOldBDROM")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReadSpareAreaInformation")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReportDriveSerial")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanReportMediaSerial")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanTestWriteDDCDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanTestWriteDVD")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanTestWriteInSAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanTestWriteInTAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanUpgradeFirmware")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteBD")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteBDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteBDRE1")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteBDRE2")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteBusEncryptedBlocks")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteCDMRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteCDRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteCDRWCAV")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteCDSAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteCDTAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteCSSManagedDVD")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDDCDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDDCDRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDVDPlusMRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDVDPlusR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDVDPlusRDL")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDVDPlusRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDVDPlusRWDL")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDVDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDVDRDL")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteDVDRW")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteHDDVDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteHDDVDRAM")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteOldBDR")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteOldBDRE")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWritePackedSubchannelInTAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteRWSubchannelInSAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteRWSubchannelInTAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteRaw")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteRawMultiSession")
+ .HasColumnType("INTEGER");
+
+ b.Property("CanWriteRawSubchannelInTAO")
+ .HasColumnType("INTEGER");
+
+ b.Property("ChangerIsSideChangeCapable")
+ .HasColumnType("INTEGER");
+
+ b.Property("ChangerSlots")
+ .HasColumnType("INTEGER");
+
+ b.Property("ChangerSupportsDiscPresent")
+ .HasColumnType("INTEGER");
+
+ b.Property("DBML")
+ .HasColumnType("INTEGER");
+
+ b.Property("DVDMultiRead")
+ .HasColumnType("INTEGER");
+
+ b.Property("EmbeddedChanger")
+ .HasColumnType("INTEGER");
+
+ b.Property("ErrorRecoveryPage")
+ .HasColumnType("INTEGER");
+
+ b.Property("FirmwareDate")
+ .HasColumnType("TEXT");
+
+ b.Property("LoadingMechanismType")
+ .HasColumnType("INTEGER");
+
+ b.Property("Locked")
+ .HasColumnType("INTEGER");
+
+ b.Property("LogicalBlockSize")
+ .HasColumnType("INTEGER");
+
+ b.Property("MultiRead")
+ .HasColumnType("INTEGER");
+
+ b.Property("PhysicalInterfaceStandardNumber")
+ .HasColumnType("INTEGER");
+
+ b.Property("PreventJumper")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsAACS")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsBusEncryption")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsC2")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsCPRM")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsCSS")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsDAP")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsDeviceBusyEvent")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsHybridDiscs")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsModePage1Ch")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsOSSC")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsPWP")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsSWPP")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsSecurDisc")
+ .HasColumnType("INTEGER");
+
+ b.Property("SupportsSeparateVolume")
+ .HasColumnType("INTEGER");
+
+ b.Property