diff --git a/typo3/sysext/backend/Tests/Functional/Fixtures/Extensions/test_tca_select_items/ext_tables.sql b/typo3/sysext/backend/Tests/Functional/Fixtures/Extensions/test_tca_select_items/ext_tables.sql
index f523c17005cff13faf3b45cbd381f154c6d5d1e2..16b90eb3738fbd0e7ab6058361f9f240b4934717 100644
--- a/typo3/sysext/backend/Tests/Functional/Fixtures/Extensions/test_tca_select_items/ext_tables.sql
+++ b/typo3/sysext/backend/Tests/Functional/Fixtures/Extensions/test_tca_select_items/ext_tables.sql
@@ -1,11 +1,8 @@
-CREATE TABLE tca_select_items (
-	rowField VARCHAR(255) DEFAULT '' NOT NULL,
-	rowFieldTwo VARCHAR(255) DEFAULT '' NOT NULL,
-);
-
 CREATE TABLE foreign_table (
-	title VARCHAR(255) DEFAULT '' NOT NULL,
+	# No TCA column defined
 	groupingfield1 VARCHAR(255) DEFAULT '' NOT NULL,
+	# No TCA column defined
 	groupingfield2 VARCHAR(255) DEFAULT '' NOT NULL,
+	# No TCA column defined
 	itemgroup VARCHAR(255) DEFAULT '' NOT NULL,
 );
diff --git a/typo3/sysext/backend/Tests/Functional/Fixtures/Extensions/test_tca_select_tree_items/ext_tables.sql b/typo3/sysext/backend/Tests/Functional/Fixtures/Extensions/test_tca_select_tree_items/ext_tables.sql
deleted file mode 100644
index a7981a4185c67ac7a57260055a337d182ecbd8a9..0000000000000000000000000000000000000000
--- a/typo3/sysext/backend/Tests/Functional/Fixtures/Extensions/test_tca_select_tree_items/ext_tables.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-CREATE TABLE foreign_table
-(
-	title          VARCHAR(255) DEFAULT '' NOT NULL,
-	children_field VARCHAR(255) DEFAULT '' NOT NULL,
-);
diff --git a/typo3/sysext/backend/ext_tables.sql b/typo3/sysext/backend/ext_tables.sql
index 338e55263ffcd5cc018dbd3b3c6fecc3c21f24eb..26a7023a4187ec6ad6e8a0c67b5895784147c63c 100644
--- a/typo3/sysext/backend/ext_tables.sql
+++ b/typo3/sysext/backend/ext_tables.sql
@@ -1,6 +1,4 @@
-#
-# Table structure for table 'be_users'
-#
 CREATE TABLE be_users (
+	# No TCA column defined
 	password_reset_token varchar(100) DEFAULT '' NOT NULL
 );
diff --git a/typo3/sysext/core/Classes/Database/Schema/DefaultTcaSchema.php b/typo3/sysext/core/Classes/Database/Schema/DefaultTcaSchema.php
index bb2855cc2f11565a22374515b34c5e60fdc4620e..c99a7c90ebdf38bdf69498689ec066d2e9f06a25 100644
--- a/typo3/sysext/core/Classes/Database/Schema/DefaultTcaSchema.php
+++ b/typo3/sysext/core/Classes/Database/Schema/DefaultTcaSchema.php
@@ -898,6 +898,26 @@ class DefaultTcaSchema
                 );
             }
 
+            // Add fields for all tables, defining input columns (TCA type=input)
+            foreach ($tableDefinition['columns'] as $fieldName => $fieldConfig) {
+                if ((string)($fieldConfig['config']['type'] ?? '') !== 'input'
+                    || $this->isColumnDefinedForTable($tables, $tableName, $fieldName)
+                ) {
+                    continue;
+                }
+                $length = $fieldConfig['config']['max'] ?? null;
+                $nullable = $fieldConfig['config']['nullable'] ?? false;
+                $tables[$tableName]->addColumn(
+                    $this->quote($fieldName),
+                    Types::STRING,
+                    [
+                        'length' => $length ?? 255,
+                        'default' => '',
+                        'notnull' => !$nullable,
+                    ]
+                );
+            }
+
             // Add fields for all tables, defining inline columns (TCA type=inline)
             foreach ($tableDefinition['columns'] as $fieldName => $fieldConfig) {
                 if ((string)($fieldConfig['config']['type'] ?? '') !== 'inline'
diff --git a/typo3/sysext/core/Configuration/TCA/sys_file_reference.php b/typo3/sysext/core/Configuration/TCA/sys_file_reference.php
index ed2a7f412a97924d4d57b541d9bd379869f519c8..e935b55b9fe8df87bd53c40a8df09d5da1e4014a 100644
--- a/typo3/sysext/core/Configuration/TCA/sys_file_reference.php
+++ b/typo3/sysext/core/Configuration/TCA/sys_file_reference.php
@@ -77,15 +77,19 @@ return [
         'tablenames' => [
             'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.tablenames',
             'config' => [
+                // @todo: type=input is probably not a good choice here.
                 'type' => 'input',
                 'size' => 30,
+                'max' => 64,
                 'eval' => 'trim',
             ],
         ],
         'fieldname' => [
             'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.fieldname',
             'config' => [
+                // @todo: type=input is probably not a good choice here.
                 'type' => 'input',
+                'max' => 64,
                 'size' => 30,
             ],
         ],
diff --git a/typo3/sysext/core/Documentation/Changelog/13.0/Feature-101553-Auto-createDBFieldsFromTCAColumns.rst b/typo3/sysext/core/Documentation/Changelog/13.0/Feature-101553-Auto-createDBFieldsFromTCAColumns.rst
index a9822e2999caa2bf94db90329c3804b8fc006026..0c7382c17401d353ce0250f08a86e824dff5976d 100644
--- a/typo3/sysext/core/Documentation/Changelog/13.0/Feature-101553-Auto-createDBFieldsFromTCAColumns.rst
+++ b/typo3/sysext/core/Documentation/Changelog/13.0/Feature-101553-Auto-createDBFieldsFromTCAColumns.rst
@@ -94,6 +94,7 @@ Columns are auto-created for these TCA :php:`columns` types:
 * :php:`type = 'inline'` - new with Core v13
 * :php:`type = 'number'` - new with Core v13
 * :php:`type = 'select'` - new with Core v13
+* :php:`type = 'input'` - new with Core v13
 
 See :ref:`Breaking: DateTime column definitions <breaking-99937-1691166389>`
 for a change in the :sql:`datetime` column definition calculation.
diff --git a/typo3/sysext/core/Tests/Functional/Category/Collection/Fixtures/Extensions/test_tca/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Category/Collection/Fixtures/Extensions/test_tca/ext_tables.sql
index be9b57695278c1d81c14a0cef5351a4bac4087fd..4573673e0faf1e182df6e37d134c40b3f55fb976 100644
--- a/typo3/sysext/core/Tests/Functional/Category/Collection/Fixtures/Extensions/test_tca/ext_tables.sql
+++ b/typo3/sysext/core/Tests/Functional/Category/Collection/Fixtures/Extensions/test_tca/ext_tables.sql
@@ -1,6 +1,4 @@
-#
-# Table structure for table 'tx_test_test'
-#
 CREATE TABLE tx_test_test (
+	# @todo: title is not in TCA, add it.
 	title tinytext
 );
diff --git a/typo3/sysext/core/Tests/Functional/Database/Fixtures/Extensions/test_expressionbuilder/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Database/Fixtures/Extensions/test_expressionbuilder/ext_tables.sql
index 73b94ca38a1a03112ffe81459216e8665352bc60..1b5d9708bbb335853af6623572ccab4573e07b96 100644
--- a/typo3/sysext/core/Tests/Functional/Database/Fixtures/Extensions/test_expressionbuilder/ext_tables.sql
+++ b/typo3/sysext/core/Tests/Functional/Database/Fixtures/Extensions/test_expressionbuilder/ext_tables.sql
@@ -1,6 +1,4 @@
-#
-# Table structure for table 'tx_expressionbuildertest'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE tx_expressionbuildertest (
   uid int(11) NOT NULL auto_increment,
   pid int(11) DEFAULT '0' NOT NULL,
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler/Configuration/TCA/Overrides/tt_content.php b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler/Configuration/TCA/Overrides/tt_content.php
index a215df716bbfb951f9b12c0a2c61dd44cdf1cde6..760880668e7b2ef8a3dd19ec9f608605d90cdc49 100644
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler/Configuration/TCA/Overrides/tt_content.php
+++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler/Configuration/TCA/Overrides/tt_content.php
@@ -105,6 +105,7 @@ defined('TYPO3') or die();
             'label' => 'Normal input field with min value set to 10',
             'config' => [
                 'type' => 'input',
+                'nullable' => true,
                 'min' => 10,
             ],
         ],
@@ -113,6 +114,7 @@ defined('TYPO3') or die();
             'label' => 'Normal input field with min value set to 0',
             'config' => [
                 'type' => 'input',
+                'nullable' => true,
                 'min' => 0,
             ],
         ],
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler/ext_tables.sql
deleted file mode 100644
index b28097e4f24547c551a5050645f3f405efd3ce65..0000000000000000000000000000000000000000
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler/ext_tables.sql
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Table structure for table 'tt_content'
-#
-CREATE TABLE tt_content (
-		tx_testdatahandler_input_minvalue text,
-		tx_testdatahandler_input_minvalue_zero text,
-);
-
-#
-# Table structure for table 'tx_testdatahandler_element'
-#
-CREATE TABLE tx_testdatahandler_element (
-	title tinytext NOT NULL
-);
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler_slug/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler_slug/ext_tables.sql
deleted file mode 100644
index 48f51c0ddd1a690721d7f25446f0b2d668ef1ea6..0000000000000000000000000000000000000000
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler_slug/ext_tables.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# Table structure for table 'tx_testdatahandler_slug' for testing slug fields
-#
-CREATE TABLE tx_testdatahandler_slug (
-		title VARCHAR(100) DEFAULT '' NOT NULL
-);
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_csv/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_csv/ext_tables.sql
deleted file mode 100644
index 6410e8c6f0468fc8a2726cee91dc2699440ce3b8..0000000000000000000000000000000000000000
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_csv/ext_tables.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-####################################################
-# 1:n relations using comma separated values as list
-####################################################
-
-#
-# Table structure for table 'tx_testirrecsv_hotel'
-#
-CREATE TABLE tx_testirrecsv_hotel
-(
-    title  tinytext NOT NULL,
-);
-
-#
-# Table structure for table 'tx_testirrecsv_offer'
-#
-CREATE TABLE tx_testirrecsv_offer
-(
-    title  tinytext NOT NULL,
-);
-
-#
-# Table structure for table 'tx_testirrecsv_price'
-#
-CREATE TABLE tx_testirrecsv_price
-(
-    title tinytext                    NOT NULL,
-);
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield/ext_tables.sql
index f260e4c8a97c1d62ccb92ae4041f296d3d37b01c..955e1fa816e340acf355ba7efc58f4bb960a60af 100644
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield/ext_tables.sql
+++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield/ext_tables.sql
@@ -1,5 +1,3 @@
-# 1nff: 1:n relations using foreign_field as pointer on child table
-
 CREATE TABLE tx_testirreforeignfield_hotel
 (
   parentidentifier tinytext NOT NULL,
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield_non_ws/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield_non_ws/ext_tables.sql
index 6c489758c94c237390e6b5905d5fb29d6a5274be..d1e504358c555a6a13b49419fbb19cb2d63c0fa6 100644
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield_non_ws/ext_tables.sql
+++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_foreignfield_non_ws/ext_tables.sql
@@ -1,17 +1,17 @@
 CREATE TABLE tx_testirreforeignfieldnonws_hotel
 (
+  # passthrough fields need manual configuration
   parentidentifier tinytext NOT NULL,
-  title tinytext NOT NULL,
 );
 
 CREATE TABLE tx_testirreforeignfieldnonws_offer
 (
+  # passthrough fields need manual configuration
   parentidentifier tinytext NOT NULL,
-  title tinytext NOT NULL,
 );
 
 CREATE TABLE tx_testirreforeignfieldnonws_price
 (
+  # passthrough fields need manual configuration
   parentidentifier tinytext NOT NULL,
-  title tinytext NOT NULL,
 );
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mm/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mm/ext_tables.sql
deleted file mode 100644
index b15d42edf294a75ab7862453c3988ed6a64e7d63..0000000000000000000000000000000000000000
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mm/ext_tables.sql
+++ /dev/null
@@ -1,14 +0,0 @@
-CREATE TABLE tx_testirremm_hotel
-(
-	title tinytext NOT NULL,
-);
-
-CREATE TABLE tx_testirremm_offer
-(
-	title tinytext NOT NULL,
-);
-
-CREATE TABLE tx_testirremm_price
-(
-	title tinytext NOT NULL,
-);
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnattributeinline/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnattributeinline/ext_tables.sql
index 1d71af45bf10c73b212daf94f26239d85fe3c74f..0fe0b8b9ca210b777bab93ac93307de840b57015 100644
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnattributeinline/ext_tables.sql
+++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnattributeinline/ext_tables.sql
@@ -1,42 +1,6 @@
-#######################################################################################################################
-# mnasym: m:n bidirectional anti-symmetric relations using intermediate table
-#######################################################################################################################
-
-#
-# Table structure for table 'tx_testirremnattributeinline_hotel'
-#
-CREATE TABLE tx_testirremnattributeinline_hotel
-(
-	title tinytext NOT NULL,
-);
-
-
-
-#
-# Table structure for table 'tx_testirremnattributeinline_hotel_offer_rel'
-#
 CREATE TABLE tx_testirremnattributeinline_hotel_offer_rel
 (
+	# passthrough fields need manual configuration
 	hotelsort int(10) DEFAULT '0' NOT NULL,
 	offersort int(10) DEFAULT '0' NOT NULL,
 );
-
-
-
-#
-# Table structure for table 'tx_testirremnattributeinline_offer'
-#
-CREATE TABLE tx_testirremnattributeinline_offer
-(
-	title tinytext NOT NULL,
-);
-
-
-
-#
-# Table structure for table 'tx_testirremnattributeinline_price'
-#
-CREATE TABLE tx_testirremnattributeinline_price
-(
-	title tinytext NOT NULL,
-);
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnattributesimple/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnattributesimple/ext_tables.sql
index 720b39c2808c0a838cce789387f05cef028a06f0..9ef183528ec84d905ee205611e16da4d31006ceb 100644
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnattributesimple/ext_tables.sql
+++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnattributesimple/ext_tables.sql
@@ -1,15 +1,6 @@
-CREATE TABLE tx_testirremnattributesimple_hotel
-(
-	title tinytext NOT NULL,
-);
-
 CREATE TABLE tx_testirremnattributesimple_hotel_offer_rel
 (
+	# passthrough fields need manual configuration
 	hotelsort int(10) DEFAULT '0' NOT NULL,
 	offersort int(10) DEFAULT '0' NOT NULL,
 );
-
-CREATE TABLE tx_testirremnattributesimple_offer
-(
-	title tinytext NOT NULL,
-);
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnsymmetric/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnsymmetric/ext_tables.sql
index ccd87b0b130acd06fe633824f982060243f46b66..46529a51befa91145e8f35e106a84f9957997aa2 100644
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnsymmetric/ext_tables.sql
+++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_irre_mnsymmetric/ext_tables.sql
@@ -1,10 +1,6 @@
-CREATE TABLE tx_testirremnsymmetric_hotel
-(
-	title tinytext NOT NULL,
-);
-
 CREATE TABLE tx_testirremnsymmetric_hotel_rel
 (
+	# passthrough fields need manual configuration
 	hotelsort int(10) DEFAULT '0' NOT NULL,
 	branchsort int(10) DEFAULT '0' NOT NULL
 );
diff --git a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_select_flex_mm/ext_tables.sql b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_select_flex_mm/ext_tables.sql
index 5b20d63c063debc1d532c8400f29b476ae2801ee..ba49a13a3114945a9bc1fb40d1eec4a6e702ebf8 100644
--- a/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_select_flex_mm/ext_tables.sql
+++ b/typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_select_flex_mm/ext_tables.sql
@@ -1,6 +1,3 @@
-CREATE TABLE tx_testselectflexmm_local (
-);
-
 # MM tables for fields defined in flex form data structures
 # are NOT auto created by DefaultTcaSchema
 CREATE TABLE tx_testselectflexmm_flex_1_multiplesidebyside_1_mm (
@@ -12,7 +9,3 @@ CREATE TABLE tx_testselectflexmm_flex_1_multiplesidebyside_1_mm (
 	KEY uid_local (uid_local),
 	KEY uid_foreign (uid_foreign)
 );
-
-CREATE TABLE tx_testselectflexmm_foreign (
-	title text
-);
diff --git a/typo3/sysext/core/Tests/Unit/Database/Schema/DefaultTcaSchemaTest.php b/typo3/sysext/core/Tests/Unit/Database/Schema/DefaultTcaSchemaTest.php
index 8dd67826f7b7e7253aaa93ee594bfbfc9a0dd116..bc9b55c7d3deb843903d7bf0e1c3567ee75b641a 100644
--- a/typo3/sysext/core/Tests/Unit/Database/Schema/DefaultTcaSchemaTest.php
+++ b/typo3/sysext/core/Tests/Unit/Database/Schema/DefaultTcaSchemaTest.php
@@ -1653,6 +1653,7 @@ final class DefaultTcaSchemaTest extends UnitTestCase
         );
         self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('link')->toArray());
     }
+
     #[Test]
     public function enrichAddsLinkNullable(): void
     {
@@ -1677,6 +1678,77 @@ final class DefaultTcaSchemaTest extends UnitTestCase
         self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('link')->toArray());
     }
 
+    #[Test]
+    public function enrichAddsInput(): void
+    {
+        $this->mockDefaultConnectionPlatformInConnectionPool();
+        $GLOBALS['TCA']['aTable']['columns']['input'] = [
+            'label' => 'aLabel',
+            'config' => [
+                'type' => 'input',
+            ],
+        ];
+        $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
+        $expectedColumn = new Column(
+            '`input`',
+            Type::getType('string'),
+            [
+                'length' => 255,
+                'default' => '',
+                'notnull' => true,
+            ]
+        );
+        self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('input')->toArray());
+    }
+
+    #[Test]
+    public function enrichAddsInputAndConsidersMax(): void
+    {
+        $this->mockDefaultConnectionPlatformInConnectionPool();
+        $GLOBALS['TCA']['aTable']['columns']['input'] = [
+            'label' => 'aLabel',
+            'config' => [
+                'type' => 'input',
+                'max' => 512,
+            ],
+        ];
+        $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
+        $expectedColumn = new Column(
+            '`input`',
+            Type::getType('string'),
+            [
+                'length' => 512,
+                'default' => '',
+                'notnull' => true,
+            ]
+        );
+        self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('input')->toArray());
+    }
+
+    #[Test]
+    public function enrichAddsInputAndConsidersNullable(): void
+    {
+        $this->mockDefaultConnectionPlatformInConnectionPool();
+        $GLOBALS['TCA']['aTable']['columns']['input'] = [
+            'label' => 'aLabel',
+            'config' => [
+                'type' => 'input',
+                'nullable' => true,
+            ],
+        ];
+        $result = $this->subject->enrich(['aTable' => $this->defaultTable]);
+        $expectedColumn = new Column(
+            '`input`',
+            Type::getType('string'),
+            [
+                'length' => 255,
+                'default' => '',
+                'notnull' => false,
+            ]
+        );
+        self::assertSame($expectedColumn->toArray(), $result['aTable']->getColumn('input')->toArray());
+    }
+
     #[Test]
     public function enrichAddsInlineWithMMSet(): void
     {
diff --git a/typo3/sysext/core/ext_tables.sql b/typo3/sysext/core/ext_tables.sql
index acee180737415f322e7f38696f094ab23c5b4140..d6fced5253f28ca16590e0c11ef2f5acde819387 100644
--- a/typo3/sysext/core/ext_tables.sql
+++ b/typo3/sysext/core/ext_tables.sql
@@ -1,56 +1,38 @@
-#
-# Table structure for table 'be_groups'
-#
-CREATE TABLE be_groups (
-	title varchar(50) DEFAULT '' NOT NULL,
-);
-
-#
-# Table structure for table 'be_sessions'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE be_sessions (
 	ses_id varchar(190) DEFAULT '' NOT NULL,
 	ses_iplock varchar(39) DEFAULT '' NOT NULL,
 	ses_userid int(11) unsigned DEFAULT '0' NOT NULL,
 	ses_tstamp int(11) unsigned DEFAULT '0' NOT NULL,
 	ses_data longblob,
+
 	PRIMARY KEY (ses_id),
 	KEY ses_tstamp (ses_tstamp)
 );
 
-#
-# Table structure for table 'be_users'
-#
 CREATE TABLE be_users (
-	username varchar(50) DEFAULT '' NOT NULL,
 	# @todo: Analyzer does not handle default yet.
 	lang varchar(10) DEFAULT 'default' NOT NULL,
-	realName varchar(80) DEFAULT '' NOT NULL,
+	# No TCA column defined since it is a general storage blob
 	uc mediumblob,
+	# No TCA column defined
 	workspace_id int(11) DEFAULT '0' NOT NULL,
+	# @todo: Keep this field defined here or make it a different type (not 'none') in TCA and handle in schema analyzer
 	mfa mediumblob,
+
 	KEY username (username)
 );
 
-#
-# Table structure for table 'pages'
-#
 CREATE TABLE pages (
+	# No TCA column defined for perms_
 	perms_userid int(11) unsigned DEFAULT '0' NOT NULL,
 	perms_groupid int(11) unsigned DEFAULT '0' NOT NULL,
 	perms_user tinyint(4) unsigned DEFAULT '0' NOT NULL,
 	perms_group tinyint(4) unsigned DEFAULT '0' NOT NULL,
 	perms_everybody tinyint(4) unsigned DEFAULT '0' NOT NULL,
-	title varchar(255) DEFAULT '' NOT NULL,
-	url varchar(255) DEFAULT '' NOT NULL,
-	subtitle varchar(255) DEFAULT '' NOT NULL,
-	target varchar(80) DEFAULT '' NOT NULL,
-	cache_tags varchar(255) DEFAULT '' NOT NULL,
+	# No TCA column defined
 	SYS_LASTCHANGED int(10) unsigned DEFAULT '0' NOT NULL,
-	author varchar(255) DEFAULT '' NOT NULL,
-	nav_title varchar(255) DEFAULT '' NOT NULL,
-
-	# group fields, but rely on the integer format, so default format (text) gets overridden here
+	# @todo: type=group fields, but rely on integer.
 	shortcut int(10) unsigned DEFAULT '0' NOT NULL,
 	content_from_pid int(10) unsigned DEFAULT '0' NOT NULL,
 	mount_pid int(10) unsigned DEFAULT '0' NOT NULL,
@@ -60,21 +42,18 @@ CREATE TABLE pages (
 	KEY slug (slug(127))
 );
 
-#
-# Table structure for table 'sys_registry'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_registry (
 	uid int(11) unsigned NOT NULL auto_increment,
 	entry_namespace varchar(128) DEFAULT '' NOT NULL,
 	entry_key varchar(128) DEFAULT '' NOT NULL,
 	entry_value mediumblob,
+
 	PRIMARY KEY (uid),
 	UNIQUE KEY entry_identifier (entry_namespace,entry_key)
 );
 
-#
-# Table structure for table 'sys_be_shortcuts'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_be_shortcuts (
 	uid int(11) unsigned NOT NULL auto_increment,
 	userid int(11) unsigned DEFAULT '0' NOT NULL,
@@ -83,52 +62,36 @@ CREATE TABLE sys_be_shortcuts (
 	description varchar(255) DEFAULT '' NOT NULL,
 	sorting int(11) DEFAULT '0' NOT NULL,
 	sc_group tinyint(4) DEFAULT '0' NOT NULL,
+
 	PRIMARY KEY (uid),
 	KEY event (userid)
 );
 
-
-#
-# Table structure for table 'sys_news'
-#
-CREATE TABLE sys_news (
-	title varchar(255) DEFAULT '' NOT NULL,
-	content mediumtext
-);
-
-
-#
-# Table structure for table 'sys_filemounts'
-#
-CREATE TABLE sys_filemounts (
-	title varchar(255) DEFAULT '' NOT NULL,
-);
-
-
-#
-# Table structure for table 'sys_file_storage'
-#
 CREATE TABLE sys_file_storage (
-	name varchar(255) DEFAULT '' NOT NULL,
+	# @todo: type=user currently needs manual configuration
 	is_public tinyint(4) DEFAULT '0' NOT NULL,
+	# @todo: This can be a varchar(255), but it needs clarification if it can be nullable.
 	processingfolder tinytext
 );
 
-#
-# Table structure for table 'sys_file'
-#
 CREATE TABLE sys_file (
+	# No TCA column
 	last_indexed int(11) DEFAULT '0' NOT NULL,
-
-	# file info data
+	# @todo: Incomplete or broken TCA
 	identifier text,
+	# No TCA column
 	identifier_hash char(40) DEFAULT '' NOT NULL,
+	# No TCA column
 	folder_hash char(40) DEFAULT '' NOT NULL,
+	# No TCA column
 	extension varchar(255) DEFAULT '' NOT NULL,
-	mime_type varchar(255) DEFAULT '' NOT NULL,
+	# @todo: Restrict to varchar(255)?
 	name tinytext,
+	# No TCA column
 	sha1 char(40) DEFAULT '' NOT NULL,
+	# No TCA column
 	creation_date int(11) DEFAULT '0' NOT NULL,
+	# No TCA column
 	modification_date int(11) DEFAULT '0' NOT NULL,
 
 	KEY sel01 (storage,identifier_hash),
@@ -138,29 +101,21 @@ CREATE TABLE sys_file (
 	KEY sha1 (sha1)
 );
 
-#
-# Table structure for table 'sys_file_metadata'
-#
 CREATE TABLE sys_file_metadata (
+	# @todo: Restrict to varchar(255)?
 	title tinytext,
+	# @todo: Restrict to varchar(255)?
 	alternative text,
 
 	KEY file (file),
 	KEY fal_filelist (l10n_parent,sys_language_uid)
 );
 
-
-#
-# Table structure for table 'sys_file_processedfile'.
-# which is a "temporary" file, like an image preview
-# This table does not have a TCA representation, as it is only written
-# to using direct SQL queries in the code
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_file_processedfile (
 	uid int(11) NOT NULL auto_increment,
 	tstamp int(11) DEFAULT '0' NOT NULL,
 	crdate int(11) DEFAULT '0' NOT NULL,
-
 	storage int(11) DEFAULT '0' NOT NULL,
 	original int(11) DEFAULT '0' NOT NULL,
 	identifier varchar(512) DEFAULT '' NOT NULL,
@@ -179,20 +134,12 @@ CREATE TABLE sys_file_processedfile (
 	KEY identifier (storage,identifier(180))
 );
 
-#
-# Table structure for table 'sys_file_reference'
-# which is one usage of a file with overloaded metadata
-#
 CREATE TABLE sys_file_reference (
-	# Reference fields (basically same as MM table)
-	tablenames varchar(64) DEFAULT '' NOT NULL,
-	fieldname varchar(64) DEFAULT '' NOT NULL,
-
-	# group fields, but rely on the integer format, so default format (text) gets overridden here
+	# @todo: type=group field, but rely on integer.
 	uid_local int(11) DEFAULT '0' NOT NULL,
-
-	# Local usage overlay fields
+	# @todo: Restrict to varchar(255)?
 	title tinytext,
+	# @todo: Restrict to varchar(255)?
 	alternative text,
 
 	KEY tablenames_fieldname (tablenames(32),fieldname(12)),
@@ -202,19 +149,14 @@ CREATE TABLE sys_file_reference (
 	KEY combined_1 (l10n_parent, t3ver_oid, t3ver_wsid, t3ver_state, deleted)
 );
 
-
-#
-# Table structure for table 'sys_file_collection'
-#
 CREATE TABLE sys_file_collection (
+	# @todo: Restrict to varchar(255)?
 	title tinytext,
 	# @todo: db analyzer would remove default. needs another look.
 	type varchar(30) DEFAULT 'static' NOT NULL,
 );
 
-#
-# Table structure for table 'sys_history'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_history (
 	uid int(11) unsigned NOT NULL auto_increment,
 	tstamp int(11) unsigned DEFAULT '0' NOT NULL,
@@ -233,9 +175,7 @@ CREATE TABLE sys_history (
 	KEY recordident_2 (tablename(100),tstamp)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'sys_lockedrecords'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_lockedrecords (
 	uid int(11) unsigned NOT NULL auto_increment,
 	userid int(11) unsigned DEFAULT '0' NOT NULL,
@@ -245,13 +185,12 @@ CREATE TABLE sys_lockedrecords (
 	record_pid int(11) DEFAULT '0' NOT NULL,
 	username varchar(50) DEFAULT '' NOT NULL,
 	feuserid int(11) unsigned DEFAULT '0' NOT NULL,
+
 	PRIMARY KEY (uid),
 	KEY event (userid,tstamp)
 );
 
-#
-# Table structure for table 'sys_refindex'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_refindex (
 	# @todo: Force a latin1 field to reduce primary key length, it only holds hex chars 0-9,a-f.
 	hash varchar(32) DEFAULT '' NOT NULL,
@@ -296,9 +235,7 @@ CREATE TABLE sys_refindex (
 	KEY lookup_string (ref_string(191))
 );
 
-#
-# Table structure for table 'sys_log'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_log (
 	uid int(11) unsigned NOT NULL auto_increment,
 	tstamp int(11) unsigned DEFAULT '0' NOT NULL,
@@ -335,39 +272,31 @@ CREATE TABLE sys_log (
 	KEY index_level (level)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'sys_category'
-#
 CREATE TABLE sys_category (
-	title tinytext NOT NULL,
-
-	# group fields, but rely on the integer format, so default format (text) gets overridden here
+	# @todo: type=group fields, but rely on integer.
 	items int(11) DEFAULT '0' NOT NULL,
 
 	KEY category_parent (parent),
 	KEY category_list (pid,deleted,sys_language_uid)
 );
 
-#
-# Table structure for table 'sys_messenger_messages'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE `sys_messenger_messages` (
-  id int(11) unsigned NOT NULL auto_increment,
-  body longtext NOT NULL,
-  headers longtext NOT NULL,
-  queue_name varchar(190) NOT NULL,
-  created_at datetime NOT NULL,
-  available_at datetime NOT NULL,
-  delivered_at datetime DEFAULT NULL,
-  PRIMARY KEY (id),
-  KEY queue_name (queue_name),
-  KEY available_at (available_at),
-  KEY delivered_at (delivered_at)
+	id int(11) unsigned NOT NULL auto_increment,
+	body longtext NOT NULL,
+	headers longtext NOT NULL,
+	queue_name varchar(190) NOT NULL,
+	created_at datetime NOT NULL,
+	available_at datetime NOT NULL,
+	delivered_at datetime DEFAULT NULL,
+
+	PRIMARY KEY (id),
+	KEY queue_name (queue_name),
+	KEY available_at (available_at),
+	KEY delivered_at (delivered_at)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'sys_http_report'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_http_report (
 	uuid varchar(36) NOT NULL,
 	status tinyint(1) unsigned DEFAULT '0' NOT NULL,
@@ -389,9 +318,7 @@ CREATE TABLE sys_http_report (
 	KEY all_conditions (type,status,scope,summary,request_time)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'sys_csp_resolution'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_csp_resolution (
 	summary varchar(40) NOT NULL,
 	created int(11) unsigned NOT NULL,
diff --git a/typo3/sysext/dashboard/ext_tables.sql b/typo3/sysext/dashboard/ext_tables.sql
index bdf2551c0099f347b9eeb50952ae319618dc3414..a27dd09dee3810954281929704d2bb9a6af54292 100644
--- a/typo3/sysext/dashboard/ext_tables.sql
+++ b/typo3/sysext/dashboard/ext_tables.sql
@@ -1,11 +1,7 @@
-#
-# Table structure for table 'be_dashboards'
-#
 CREATE TABLE be_dashboards (
-    identifier varchar(120) DEFAULT '' NOT NULL,
+    # type=passthrough needs manual configuration
     cruser_id int(11) unsigned DEFAULT 0 NOT NULL,
-    title varchar(120) DEFAULT '' NOT NULL,
+    # No TCA column
     widgets text,
     KEY identifier (identifier)
 );
-
diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php
index b6b145b443c566d3a83a67cf2bd57e263ae3b076..1c4288dd72b3345c44289d695d828f7969908176 100644
--- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php
+++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php
@@ -92,7 +92,6 @@ return [
                 'size' => 20,
                 'required' => true,
                 'eval' => 'trim',
-                'max' => 256,
             ],
         ],
         'subtitle' => [
@@ -101,7 +100,7 @@ return [
                 'type' => 'input',
                 'size' => 20,
                 'eval' => 'trim',
-                'max' => 256,
+                'nullable' => true,
             ],
         ],
         'description' => [
diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_comment.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_comment.php
index df3a472b36303d5cd7ec398cdedeedd3a27516bb..d098918a01e73ecdbf182e47f2c7be56925cbcb9 100644
--- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_comment.php
+++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_comment.php
@@ -42,7 +42,6 @@ return [
                 'size' => 20,
                 'required' => true,
                 'eval' => 'trim',
-                'max' => 256,
             ],
         ],
         'email' => [
diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_info.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_info.php
index 47e7685df275c9f4d17e1778a1c5a283c39bf194..20866601bb792bb75771c3b2380d601a3ea020cb 100644
--- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_info.php
+++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_info.php
@@ -69,7 +69,6 @@ return [
                 'size' => 20,
                 'required' => true,
                 'eval' => 'trim',
-                'max' => 256,
             ],
         ],
         'post' => [
diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_person.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_person.php
index 99adf8af5e86f8f727b539be6c24d9274cff761b..a1c77b980f5e95c6bf0740a3583a143c7f2c8f2a 100644
--- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_person.php
+++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_person.php
@@ -56,7 +56,6 @@ return [
                 'size' => 20,
                 'required' => true,
                 'eval' => 'trim',
-                'max' => 256,
             ],
         ],
         'lastname' => [
@@ -66,7 +65,6 @@ return [
                 'size' => 20,
                 'required' => true,
                 'eval' => 'trim',
-                'max' => 256,
             ],
         ],
         'email' => [
diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_post.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_post.php
index 5db0d7ae55b668976852d4ab61f3913e6c209a82..ba2718844da19e177ccbe9a876a766ec22495361 100644
--- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_post.php
+++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_post.php
@@ -85,7 +85,6 @@ return [
                 'size' => 20,
                 'required' => true,
                 'eval' => 'trim',
-                'max' => 256,
             ],
         ],
         'date' => [
diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php
index 642e6f0de858bf92b205076085311b453666cf2f..7427d323c667e277a3417f291bd6a5fa7195d43f 100644
--- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php
+++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_tag.php
@@ -60,7 +60,6 @@ return [
                 'size' => 20,
                 'required' => true,
                 'eval' => 'trim',
-                'max' => 256,
             ],
         ],
         'items' => [
diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/ext_tables.sql b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/ext_tables.sql
index 96a7faeca13bc36c11057f8449df29b30dfcb4df..9e580104878c6a4cf746c7f5352e941a2c904d5c 100644
--- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/ext_tables.sql
+++ b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/ext_tables.sql
@@ -1,67 +1,14 @@
-#
-# Table structure for table 'tx_blogexample_domain_model_blog'
-#
-CREATE TABLE tx_blogexample_domain_model_blog (
-	title varchar(255) DEFAULT '' NOT NULL,
-	subtitle varchar(255) DEFAULT '',
-);
-
-#
-# Table structure for table 'tx_blogexample_domain_model_post'
-#
-CREATE TABLE tx_blogexample_domain_model_post (
-	title varchar(255) DEFAULT '' NOT NULL,
-);
-
-#
-# Table structure for table 'tx_blogexample_domain_model_comment'
-#
-CREATE TABLE tx_blogexample_domain_model_comment (
-	author varchar(255) DEFAULT '' NOT NULL,
-);
-
-#
-# Table structure for table 'tx_blogexample_domain_model_person'
-#
 CREATE TABLE tx_blogexample_domain_model_person (
-	firstname varchar(255) DEFAULT '' NOT NULL,
-	lastname varchar(255) DEFAULT '' NOT NULL,
+	# type=passthrough needs manual configuration
 	salutation varchar(4) DEFAULT '' NOT NULL,
 );
 
-#
-# Table structure for table 'tx_blogexample_domain_model_registryentry'
-#
-CREATE TABLE tx_blogexample_domain_model_registryentry (
-  name varchar(255) DEFAULT '' NOT NULL
-);
-
-#
-# Table structure for table 'tx_blogexample_domain_model_tag'
-#
-CREATE TABLE tx_blogexample_domain_model_tag (
-	name varchar(255) DEFAULT '' NOT NULL,
-);
-
-#
-# Table structure for table 'tx_blogexample_domain_model_dateexample'
-# @deprectaed Can be removed as soon as int / native type is enforced
-#
+# @deprecated Can be removed as soon as int / native type is enforced
 CREATE TABLE tx_blogexample_domain_model_dateexample (
 	datetime_text varchar(255) DEFAULT '' NOT NULL,
 );
 
-#
-# Table structure for table 'tx_blogexample_domain_model_info'
-#
-CREATE TABLE tx_blogexample_domain_model_info (
-	name varchar(255) DEFAULT '' NOT NULL,
-);
-
-#
-# Table structure for table 'tx_blogexample_domain_model_datetimeimmutableexample'
-# @deprectaed Can be removed as soon as int / native type is enforced
-#
+# @deprecated Can be removed as soon as int / native type is enforced
 CREATE TABLE tx_blogexample_domain_model_datetimeimmutableexample (
 	datetime_immutable_text varchar(255) DEFAULT '' NOT NULL,
 );
diff --git a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/parent_child_translation/ext_tables.sql b/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/parent_child_translation/ext_tables.sql
deleted file mode 100644
index 7d7b4597ce7b4fe1992343456f210029da3914d2..0000000000000000000000000000000000000000
--- a/typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/parent_child_translation/ext_tables.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Table structure for table 'tx_parentchildtranslation_domain_model_main'
-#
-CREATE TABLE tx_parentchildtranslation_domain_model_main (
-	title varchar(255) NOT NULL DEFAULT '',
-);
-
-#
-# Table structure for table 'tx_parentchildtranslation_domain_model_squeeze'
-#
-CREATE TABLE tx_parentchildtranslation_domain_model_squeeze (
-	title varchar(255) NOT NULL DEFAULT '',
-);
-
-#
-# Table structure for table 'tx_parentchildtranslation_domain_model_child'
-#
-CREATE TABLE tx_parentchildtranslation_domain_model_child (
-	title varchar(255) NOT NULL DEFAULT ''
-);
diff --git a/typo3/sysext/extensionmanager/ext_tables.sql b/typo3/sysext/extensionmanager/ext_tables.sql
index 0d844b530a61d9bdc4deb40e689d808e41f18fb6..2c2cc679b00b1b291486c540df96bc10a2b397df 100644
--- a/typo3/sysext/extensionmanager/ext_tables.sql
+++ b/typo3/sysext/extensionmanager/ext_tables.sql
@@ -1,9 +1,7 @@
-#
-# Table structure for table 'tx_extensionmanager_domain_model_extension'
-#
+# Keeping most fields here since that table *should not* have TCA at all
 CREATE TABLE tx_extensionmanager_domain_model_extension (
   extension_key varchar(60) NOT NULL default '',
-  # Can be removed once TYPO3s testing framework fixture does not set <repository>
+  # @todo: Can be removed once TYPO3s testing framework fixture does not set <repository>
   repository int(1) NOT NULL default 1,
   remote varchar(100) NOT NULL default 'ter',
   version varchar(15) NOT NULL default '',
diff --git a/typo3/sysext/felogin/ext_tables.sql b/typo3/sysext/felogin/ext_tables.sql
index 048efa7e051fa53714dfb98d27da899760323f81..7aba368c51766cba5bea6c865ed9a9436a8eaace 100644
--- a/typo3/sysext/felogin/ext_tables.sql
+++ b/typo3/sysext/felogin/ext_tables.sql
@@ -1,9 +1,5 @@
-#
-# Table structure for table 'fe_users'
-#
 CREATE TABLE fe_users (
-	felogin_forgotHash  varchar(80) default '' ,
+	# type=passthrough needs manual configuration
+	felogin_forgotHash varchar(80) default '' ,
 	KEY felogin_forgotHash (felogin_forgotHash)
 );
-
-
diff --git a/typo3/sysext/filemetadata/Configuration/TCA/Overrides/sys_file_metadata.php b/typo3/sysext/filemetadata/Configuration/TCA/Overrides/sys_file_metadata.php
index 26edfda19620fbca4a6e8eb36801a25be345dd8f..42153f510841e623ac5d00d2761164efa7c19229 100644
--- a/typo3/sysext/filemetadata/Configuration/TCA/Overrides/sys_file_metadata.php
+++ b/typo3/sysext/filemetadata/Configuration/TCA/Overrides/sys_file_metadata.php
@@ -215,7 +215,6 @@ $tca = [
                 'type' => 'input',
                 'size' => 20,
                 'eval' => 'trim',
-                'max' => 255,
             ],
         ],
         'download_name' => [
@@ -227,7 +226,6 @@ $tca = [
                 'type' => 'input',
                 'size' => 30,
                 'eval' => 'trim',
-                'max' => 255,
             ],
         ],
         'creator' => [
@@ -239,7 +237,6 @@ $tca = [
                 'type' => 'input',
                 'size' => 30,
                 'eval' => 'trim',
-                'max' => 255,
             ],
         ],
         'publisher' => [
diff --git a/typo3/sysext/filemetadata/ext_tables.sql b/typo3/sysext/filemetadata/ext_tables.sql
index 8fc39c65af3f13df6a98890ec96f3e5690a72d9c..ef38ebf71a7b07cb37376eff265489a4656a8653 100644
--- a/typo3/sysext/filemetadata/ext_tables.sql
+++ b/typo3/sysext/filemetadata/ext_tables.sql
@@ -1,25 +1,10 @@
-#
-# Table structure for table 'sys_file_metadata'
-#
 CREATE TABLE sys_file_metadata (
 	# @todo: status is odd. It should be an int field, but can not since it is often created as empty string. default should be 1 "ok".
 	status varchar(24) DEFAULT '',
-	creator_tool varchar(255) DEFAULT '',
-	download_name varchar(255) DEFAULT '',
-	creator varchar(255) DEFAULT '',
-	publisher varchar(45) DEFAULT '',
-	source varchar(255) DEFAULT '',
-	location_country varchar(45) DEFAULT '',
-	location_region varchar(45) DEFAULT '',
-	location_city varchar(45) DEFAULT '',
 	latitude decimal(24,14) DEFAULT '0.00000000000000',
 	longitude decimal(24,14) DEFAULT '0.00000000000000',
 
 	# TEXT ASSET
 	# text document include x pages
 	pages int(4) unsigned DEFAULT '0',
-
-	# TEXT + AUDIO + VIDEO
-	# correspond to the language of the document
-	language varchar(45) DEFAULT '',
 );
diff --git a/typo3/sysext/frontend/Configuration/TCA/tt_content.php b/typo3/sysext/frontend/Configuration/TCA/tt_content.php
index c0adf9041c9a7126444b2ae3f1d5c404e640286e..661e4fad82482c364b76f2e9df80d4e727027167 100644
--- a/typo3/sysext/frontend/Configuration/TCA/tt_content.php
+++ b/typo3/sysext/frontend/Configuration/TCA/tt_content.php
@@ -972,6 +972,7 @@ return [
             'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:target',
             'config' => [
                 'type' => 'input',
+                'max' => 30,
                 'size' => 20,
                 'eval' => 'trim',
                 'valuePicker' => [
@@ -1043,6 +1044,7 @@ return [
             'config' => [
                 'type' => 'input',
                 'size' => 20,
+                'max' => 30,
                 'eval' => 'trim',
                 'default' => '',
             ],
@@ -1059,6 +1061,7 @@ return [
             'config' => [
                 'type' => 'input',
                 'size' => 20,
+                'max' => 30,
                 'eval' => 'trim',
                 'default' => '',
             ],
diff --git a/typo3/sysext/frontend/ext_tables.sql b/typo3/sysext/frontend/ext_tables.sql
index 54c9a88c70f7c4f29e10d8995baa9dc8f096efdd..814403c02a7ee1cb0d751d924931d3a5cc0bd0b5 100644
--- a/typo3/sysext/frontend/ext_tables.sql
+++ b/typo3/sysext/frontend/ext_tables.sql
@@ -1,14 +1,4 @@
-#
-# Table structure for table 'fe_groups'
-#
-CREATE TABLE fe_groups (
-	title varchar(50) DEFAULT '' NOT NULL,
-);
-
-
-#
-# Table structure for table 'fe_sessions'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE fe_sessions (
 	ses_id varchar(190) DEFAULT '' NOT NULL,
 	ses_iplock varchar(39) DEFAULT '' NOT NULL,
@@ -21,24 +11,9 @@ CREATE TABLE fe_sessions (
 	KEY ses_tstamp (ses_tstamp)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'fe_users'
-#
 CREATE TABLE fe_users (
-	username varchar(255) DEFAULT '' NOT NULL,
-	name varchar(160) DEFAULT '' NOT NULL,
-	first_name varchar(50) DEFAULT '' NOT NULL,
-	middle_name varchar(50) DEFAULT '' NOT NULL,
-	last_name varchar(50) DEFAULT '' NOT NULL,
-	telephone varchar(30) DEFAULT '' NOT NULL,
-	fax varchar(30) DEFAULT '' NOT NULL,
+	# These fields have no TCA column
 	uc blob,
-	title varchar(40) DEFAULT '' NOT NULL,
-	zip varchar(10) DEFAULT '' NOT NULL,
-	city varchar(50) DEFAULT '' NOT NULL,
-	country varchar(40) DEFAULT '' NOT NULL,
-	www varchar(80) DEFAULT '' NOT NULL,
-	company varchar(80) DEFAULT '' NOT NULL,
 	is_online int(10) unsigned DEFAULT '0' NOT NULL,
 	mfa mediumblob,
 
@@ -47,39 +22,19 @@ CREATE TABLE fe_users (
 	KEY is_online (is_online)
 );
 
-#
-# Table structure for table 'sys_template'
-#
 CREATE TABLE sys_template (
-	title varchar(255) DEFAULT '' NOT NULL,
-
 	KEY roottemplate (deleted,hidden,root)
 );
 
-#
-# Table structure for table 'tt_content'
-#
 CREATE TABLE tt_content (
-	header varchar(255) DEFAULT '' NOT NULL,
 	# @todo: Needs a look for the default value.
 	frame_class varchar(60) DEFAULT 'default' NOT NULL,
 	# @todo: relies on the int type, would be autogenerated to TEXT
 	colPos int(11) unsigned DEFAULT '0' NOT NULL,
-
-	subheader varchar(255) DEFAULT '' NOT NULL,
-	target varchar(30) DEFAULT '' NOT NULL,
-	accessibility_title varchar(30) DEFAULT '' NOT NULL,
-	accessibility_bypass_text varchar(30) DEFAULT '' NOT NULL,
+	# @todo: Needs a look for default null and nullable
 	table_caption varchar(255) DEFAULT NULL,
 
 	KEY parent (pid,sorting),
 	KEY t3ver_oid (t3ver_oid,t3ver_wsid),
 	KEY language (l18n_parent,sys_language_uid)
 );
-
-#
-# Table structure for table 'backend_layout'
-#
-CREATE TABLE backend_layout (
-	title varchar(255) DEFAULT '' NOT NULL,
-);
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/ArrayAssertions/RenderPreviewImportPageAndRecordsByUpdateWithDiff.php b/typo3/sysext/impexp/Tests/Functional/Fixtures/ArrayAssertions/RenderPreviewImportPageAndRecordsByUpdateWithDiff.php
index 6b11c34247432e39cc295a58f12dbd6d24cd7a98..070a2ccf675b9cb02d607fddc9057dcdd45f983f 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/ArrayAssertions/RenderPreviewImportPageAndRecordsByUpdateWithDiff.php
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/ArrayAssertions/RenderPreviewImportPageAndRecordsByUpdateWithDiff.php
@@ -174,8 +174,8 @@ return [
             'updateMode' => sprintf('<select class="form-select form-select-sm" name="tx_impexp[import_mode][tt_content:1]" style="width: 100px"><option value="0">Update</option><option value="%s">Import as new</option><option value="%s">Ignore PID</option><option value="%s">Exclude</option></select>', \TYPO3\CMS\Impexp\Import::IMPORT_MODE_AS_NEW, \TYPO3\CMS\Impexp\Import::IMPORT_MODE_IGNORE_PID, \TYPO3\CMS\Impexp\Import::IMPORT_MODE_EXCLUDE),
             'showDiffContent' => '<strong class="text-nowrap">[tt_content:1 =&gt; 2]:</strong>
 <table class="table table-striped table-hover">
-<tr><td>Header (header)</td><td><del>CE 1 first image</del><ins>Test content</ins></td></tr>
 <tr><td>Images (image)</td><td>N/A</td></tr>
+<tr><td>Header (header)</td><td><del>CE 1 first image</del><ins>Test content</ins></td></tr>
 <tr><td>Type (CType)</td><td><ins>Regular </ins>Text <del>&amp; Images</del><ins>Element</ins></td></tr>
 </table>',
             'controls' => '',
@@ -243,8 +243,8 @@ return [
             'updateMode' => sprintf('<select class="form-select form-select-sm" name="tx_impexp[import_mode][tt_content:2]" style="width: 100px"><option value="0">Update</option><option value="%s">Import as new</option><option value="%s">Ignore PID</option><option value="%s">Exclude</option></select>', \TYPO3\CMS\Impexp\Import::IMPORT_MODE_AS_NEW, \TYPO3\CMS\Impexp\Import::IMPORT_MODE_IGNORE_PID, \TYPO3\CMS\Impexp\Import::IMPORT_MODE_EXCLUDE),
             'showDiffContent' => '<strong class="text-nowrap">[tt_content:2 =&gt; 1]:</strong>' . "\n"
                 . '<table class="table table-striped table-hover">' . "\n"
-                . '<tr><td>Header (header)</td><td><del>CE 2 second image</del><ins>Test content 2</ins></td></tr>' . "\n"
                 . '<tr><td>Images (image)</td><td>N/A</td></tr>' . "\n"
+                . '<tr><td>Header (header)</td><td><del>CE 2 second image</del><ins>Test content 2</ins></td></tr>' . "\n"
                 . '<tr><td>Type (CType)</td><td><ins>Regular </ins>Text <del>&amp; Images</del><ins>Element</ins></td></tr>' . "\n"
                 . '</table>',
             'controls' => '',
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/ArrayAssertions/RenderPreviewImportPageAndRecordsWithDiff.php b/typo3/sysext/impexp/Tests/Functional/Fixtures/ArrayAssertions/RenderPreviewImportPageAndRecordsWithDiff.php
index 5d13c6712bef3368176e8077af6aab4f6e82d90e..ccb1b18bbdb75a8de7fc96e9a38a033efe12c396 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/ArrayAssertions/RenderPreviewImportPageAndRecordsWithDiff.php
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/ArrayAssertions/RenderPreviewImportPageAndRecordsWithDiff.php
@@ -137,8 +137,8 @@ return [
             'active' => 'active',
             'showDiffContent' => '<strong class="text-nowrap">[tt_content:1 =&gt; 2]:</strong>
 <table class="table table-striped table-hover">
-<tr><td>Header (header)</td><td><del>CE 1 first image</del><ins>Test content</ins></td></tr>
 <tr><td>Images (image)</td><td>N/A</td></tr>
+<tr><td>Header (header)</td><td><del>CE 1 first image</del><ins>Test content</ins></td></tr>
 <tr><td>Type (CType)</td><td><ins>Regular </ins>Text <del>&amp; Images</del><ins>Element</ins></td></tr>
 </table>',
             'controls' => '',
@@ -204,8 +204,8 @@ return [
             'active' => 'active',
             'showDiffContent' => '<strong class="text-nowrap">[tt_content:2 =&gt; 1]:</strong>
 <table class="table table-striped table-hover">
-<tr><td>Header (header)</td><td><del>CE 2 second image</del><ins>Test content 2</ins></td></tr>
 <tr><td>Images (image)</td><td>N/A</td></tr>
+<tr><td>Header (header)</td><td><del>CE 2 second image</del><ins>Test content 2</ins></td></tr>
 <tr><td>Type (CType)</td><td><ins>Regular </ins>Text <del>&amp; Images</del><ins>Element</ins></td></tr>
 </table>',
             'controls' => '',
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/irre-records.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/irre-records.xml
index f5cb2b56bdf8fa29d9596cfe0378ea30f763c174..31fb9b44dfdebfa44da8c535bfd3dab67b7dce76 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/irre-records.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/irre-records.xml
@@ -1490,8 +1490,8 @@
                 <field index="sorting" type="integer">1</field>
                 <field index="sys_language_uid" type="integer">0</field>
                 <field index="l18n_parent" type="integer">0</field>
-                <field index="title">Price 1 1:2 (m:n ASym)</field>
                 <field index="parentid" type="integer">1</field>
+                <field index="title">Price 1 1:2 (m:n ASym)</field>
                 <field index="price">678.00</field>
             </fieldlist>
             <related index="rels" type="array"></related>
@@ -1505,8 +1505,8 @@
                 <field index="sorting" type="integer">2</field>
                 <field index="sys_language_uid" type="integer">0</field>
                 <field index="l18n_parent" type="integer">0</field>
-                <field index="title">Price 2 1:1 (m:n ASym)</field>
                 <field index="parentid" type="integer">2</field>
+                <field index="title">Price 2 1:1 (m:n ASym)</field>
                 <field index="price">45.00</field>
             </fieldlist>
             <related index="rels" type="array"></related>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-complex.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-complex.xml
index d4afa0e01a3877890b2a218a232ce8da62354a1b..684bcfcda8a4d4d99394a3811bbdaa83580e8fd7 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-complex.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-complex.xml
@@ -123,8 +123,8 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content</field>
                 <field index="header_link">file:2</field>
+                <field index="header">Test content</field>
                 <field index="CType">text</field>
             </fieldlist>
             <related index="rels" type="array">
@@ -155,8 +155,8 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content 2</field>
                 <field index="header_link">file:4</field>
+                <field index="header">Test content 2</field>
                 <field index="CType">text</field>
             </fieldlist>
             <related index="rels" type="array">
@@ -186,11 +186,11 @@
                 <field index="identifier">/user_upload/typo3_image3.jpg</field>
                 <field index="identifier_hash">25777b72e5e1cbed2d1b33e4fe5b737304b5bd28</field>
                 <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                <field index="mime_type">image/jpeg</field>
                 <field index="name">typo3_image3.jpg</field>
                 <field index="sha1">e873c1e2ffd0f191e183a1057de3eef4d62e782d</field>
                 <field index="creation_date">1393346082</field>
                 <field index="modification_date">1392907534</field>
+                <field index="mime_type">image/jpeg</field>
                 <field index="metadata">0</field>
                 <field index="size">5565</field>
                 <field index="storage">1</field>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-corrupt-image.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-corrupt-image.xml
index e9481b60d156c3f5dab1b2cf7c9b29f426cec51d..af2513faafd0fe98952f07a93a6e906b09f09970 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-corrupt-image.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-corrupt-image.xml
@@ -204,13 +204,13 @@
             <fieldlist index="data" type="array">
                 <field index="uid" type="integer">1</field>
                 <field index="pid" type="integer">1</field>
-                <field index="tablenames">tt_content</field>
-                <field index="fieldname">image</field>
                 <field index="uid_local" type="integer">1</field>
                 <field index="title" type="NULL"></field>
                 <field index="alternative" type="NULL"></field>
                 <field index="description" type="NULL"></field>
-                <field index="link"></field>
+                <field index="link"/>
+                <field index="tablenames">tt_content</field>
+                <field index="fieldname">image</field>
                 <field index="uid_foreign" type="integer">1</field>
                 <field index="sorting_foreign" type="integer">0</field>
             </fieldlist>
@@ -233,9 +233,9 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content</field>
                 <field index="image" type="integer">1</field>
                 <field index="header_link">file:1</field>
+                <field index="header">Test content</field>
                 <field index="CType">textpic</field>
             </fieldlist>
             <related index="rels" type="array">
@@ -299,11 +299,11 @@
                 <field index="identifier">/user_upload/typo3_image2.jpg</field>
                 <field index="identifier_hash">f90bb9a35622f35b5279195e324eddbaec8164b2</field>
                 <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                <field index="mime_type">image/jpeg</field>
                 <field index="name">typo3_image2.jpg</field>
                 <field index="sha1">da9acdf1e105784a57bbffec9520969578287797</field>
                 <field index="creation_date">1389878273</field>
                 <field index="modification_date">1389878273</field>
+                <field index="mime_type">image/jpeg</field>
                 <field index="metadata">0</field>
                 <field index="size">1958</field>
                 <field index="storage">1</field>
@@ -339,7 +339,6 @@
                 <field index="uid">1</field>
                 <field index="pid">0</field>
                 <field index="description" type="NULL"></field>
-                <field index="name">fileadmin</field>
                 <field index="is_public">1</field>
                 <field index="is_browsable">1</field>
                 <field index="is_default">0</field>
@@ -363,6 +362,7 @@
 		&lt;/sheet&gt;
 	&lt;/data&gt;
 &lt;/T3FlexForms&gt;</field>
+                <field index="name">fileadmin</field>
                 <field index="driver">Local</field>
             </fieldlist>
             <related index="rels" type="array"/>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-flexform-relation.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-flexform-relation.xml
index b1695085ef0f5286a82811cdf1c94ee1e9f8ed56..211263bf1d2def2e9ad4adcf0f9a12586b32dc80 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-flexform-relation.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-flexform-relation.xml
@@ -97,9 +97,9 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content</field>
                 <field index="pi_flexform">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot; ?&gt;&lt;T3FlexForms&gt;&lt;data&gt;&lt;sheet index=&quot;sDEF&quot;&gt;&lt;language index=&quot;lDEF&quot;&gt;&lt;field index=&quot;flexFormRelation&quot;&gt;&lt;value index=&quot;vDEF&quot;&gt;1&lt;/value&gt;&lt;/field&gt;&lt;/language&gt;&lt;/sheet&gt;&lt;/data&gt;&lt;/T3FlexForms&gt;</field>
                 <field index="header_link"></field>
+                <field index="header">Test content</field>
                 <field index="CType">text</field>
                 <field index="list_type"></field>
             </fieldlist>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-flexform-softrefs.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-flexform-softrefs.xml
index 36ff3758a10c4bd55a5379243ace924b73af8178..438d07a89186f3ef0ed156f7d31aa4f12c0649eb 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-flexform-softrefs.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-flexform-softrefs.xml
@@ -129,9 +129,9 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content</field>
                 <field index="pi_flexform">&lt;?xml version="1.0" encoding="utf-8" standalone="yes" ?&gt;&lt;T3FlexForms&gt;&lt;data&gt;&lt;sheet index="sDEF"&gt;&lt;language index="lDEF"&gt;&lt;field index="settings.persistenceIdentifier"&gt;&lt;value index="vDEF"&gt;1:/form_definitions/flexFormWithSoftReference.form.yaml&lt;/value&gt;&lt;/field&gt;&lt;/language&gt;&lt;/sheet&gt;&lt;/data&gt;&lt;/T3FlexForms&gt;</field>
                 <field index="header_link"></field>
+                <field index="header">Test content</field>
                 <field index="CType">form_formframework</field>
                 <field index="list_type"></field>
             </fieldlist>
@@ -192,11 +192,11 @@
                 <field index="identifier">/form_definitions/flexFormWithSoftReference.form.yaml</field>
                 <field index="identifier_hash">c6e1accb577763016f7fc2ea06a5a0735ac24a70</field>
                 <field index="folder_hash">c62e3e70a526a59f0f0b7687864947eab72d7d3f</field>
-                <field index="mime_type">text/plain</field>
                 <field index="name">flexFormWithSoftReference.form.yaml</field>
                 <field index="sha1">4acd754cee5861bb543870fae76df5d35c0a0e5b</field>
                 <field index="creation_date">1628060459</field>
                 <field index="modification_date">1628060459</field>
+                <field index="mime_type">text/plain</field>
                 <field index="metadata">0</field>
                 <field index="size">501</field>
                 <field index="storage">1</field>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image-but-not-included.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image-but-not-included.xml
index 1c864e8b0b419bf749377763f61bc06e65d4ffeb..ef981ed2c84055991dbe685ae78d520db0bf60ce 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image-but-not-included.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image-but-not-included.xml
@@ -204,13 +204,13 @@
             <fieldlist index="data" type="array">
                 <field index="uid" type="integer">1</field>
                 <field index="pid" type="integer">1</field>
-                <field index="tablenames">tt_content</field>
-                <field index="fieldname">image</field>
                 <field index="uid_local" type="integer">1</field>
                 <field index="title" type="NULL"></field>
                 <field index="alternative" type="NULL"></field>
                 <field index="description" type="NULL"></field>
-                <field index="link"></field>
+                <field index="link"/>
+                <field index="tablenames">tt_content</field>
+                <field index="fieldname">image</field>
                 <field index="uid_foreign" type="integer">1</field>
                 <field index="sorting_foreign" type="integer">0</field>
             </fieldlist>
@@ -233,9 +233,9 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content</field>
                 <field index="image" type="integer">1</field>
                 <field index="header_link">file:1</field>
+                <field index="header">Test content</field>
                 <field index="CType">textpic</field>
             </fieldlist>
             <related index="rels" type="array">
@@ -299,11 +299,11 @@
                 <field index="identifier">/user_upload/typo3_image2.jpg</field>
                 <field index="identifier_hash">f90bb9a35622f35b5279195e324eddbaec8164b2</field>
                 <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                <field index="mime_type">image/jpeg</field>
                 <field index="name">typo3_image2.jpg</field>
                 <field index="sha1">da9acdf1e105784a57bbffec9520969578287797</field>
                 <field index="creation_date">1389878273</field>
                 <field index="modification_date">1389878273</field>
+                <field index="mime_type">image/jpeg</field>
                 <field index="metadata">0</field>
                 <field index="size">7958</field>
                 <field index="storage">1</field>
@@ -339,7 +339,6 @@
                 <field index="uid">1</field>
                 <field index="pid">0</field>
                 <field index="description" type="NULL"></field>
-                <field index="name">fileadmin</field>
                 <field index="is_public">1</field>
                 <field index="is_browsable">1</field>
                 <field index="is_default">0</field>
@@ -363,6 +362,7 @@
 		&lt;/sheet&gt;
 	&lt;/data&gt;
 &lt;/T3FlexForms&gt;</field>
+                <field index="name">fileadmin</field>
                 <field index="driver">Local</field>
             </fieldlist>
             <related index="rels" type="array"/>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image.xml
index 384a87eed0809beab59b20d204a77d5953e9ff1c..a81bd2c0db18fcef74acc7a91e1db99579f990ca 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image.xml
@@ -204,13 +204,13 @@
             <fieldlist index="data" type="array">
                 <field index="uid" type="integer">1</field>
                 <field index="pid" type="integer">1</field>
-                <field index="tablenames">tt_content</field>
-                <field index="fieldname">image</field>
                 <field index="uid_local" type="integer">1</field>
                 <field index="title" type="NULL"></field>
                 <field index="alternative" type="NULL"></field>
                 <field index="description" type="NULL"></field>
-                <field index="link"></field>
+                <field index="link"/>
+                <field index="tablenames">tt_content</field>
+                <field index="fieldname">image</field>
                 <field index="uid_foreign" type="integer">1</field>
                 <field index="sorting_foreign" type="integer">0</field>
             </fieldlist>
@@ -233,9 +233,9 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content</field>
                 <field index="image" type="integer">1</field>
                 <field index="header_link">file:1</field>
+                <field index="header">Test content</field>
                 <field index="CType">textpic</field>
             </fieldlist>
             <related index="rels" type="array">
@@ -299,11 +299,11 @@
                 <field index="identifier">/user_upload/typo3_image2.jpg</field>
                 <field index="identifier_hash">f90bb9a35622f35b5279195e324eddbaec8164b2</field>
                 <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                <field index="mime_type">image/jpeg</field>
                 <field index="name">typo3_image2.jpg</field>
                 <field index="sha1">da9acdf1e105784a57bbffec9520969578287797</field>
                 <field index="creation_date">1389878273</field>
                 <field index="modification_date">1389878273</field>
+                <field index="mime_type">image/jpeg</field>
                 <field index="metadata">0</field>
                 <field index="size">7958</field>
                 <field index="storage">1</field>
@@ -339,7 +339,6 @@
                 <field index="uid">1</field>
                 <field index="pid">0</field>
                 <field index="description" type="NULL"></field>
-                <field index="name">fileadmin</field>
                 <field index="is_public">1</field>
                 <field index="is_browsable">1</field>
                 <field index="is_default">0</field>
@@ -363,6 +362,7 @@
 		&lt;/sheet&gt;
 	&lt;/data&gt;
 &lt;/T3FlexForms&gt;</field>
+                <field index="name">fileadmin</field>
                 <field index="driver">Local</field>
             </fieldlist>
             <related index="rels" type="array"/>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-softrefs.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-softrefs.xml
index 242a7efdb2354d1256d92dd2733fb6183221cf5e..a3556f22bc236d6a50a93edb7f6eba65e980adfd 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-softrefs.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-softrefs.xml
@@ -140,9 +140,9 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content</field>
                 <field index="pi_flexform">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot; ?&gt;&lt;T3FlexForms&gt;&lt;data&gt;&lt;sheet index=&quot;sDEF&quot;&gt;&lt;language index=&quot;lDEF&quot;&gt;&lt;field index=&quot;softrefLink&quot;&gt;&lt;value index=&quot;vDEF&quot;&gt;t3://page?uid=2&lt;/value&gt;&lt;/field&gt;&lt;/language&gt;&lt;/sheet&gt;&lt;/data&gt;&lt;/T3FlexForms&gt;</field>
                 <field index="header_link">file:1</field>
+                <field index="header">Test content</field>
                 <field index="CType">text</field>
                 <field index="list_type"></field>
             </fieldlist>
@@ -221,11 +221,11 @@
                 <field index="identifier">/user_upload/typo3_image2.jpg</field>
                 <field index="identifier_hash">f90bb9a35622f35b5279195e324eddbaec8164b2</field>
                 <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                <field index="mime_type">image/jpeg</field>
                 <field index="name">typo3_image2.jpg</field>
                 <field index="sha1">da9acdf1e105784a57bbffec9520969578287797</field>
                 <field index="creation_date">1389878273</field>
                 <field index="modification_date">1389878273</field>
+                <field index="mime_type">image/jpeg</field>
                 <field index="metadata">0</field>
                 <field index="size">7958</field>
                 <field index="storage">1</field>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent.xml
index 031dd488eb6856664ec9da3d9d86fde418591919..26dfb9158e338a53352f96dd1a3ad4f9a10d4469 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent.xml
@@ -185,8 +185,8 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content</field>
                 <field index="header_link">file:2</field>
+                <field index="header">Test content</field>
                 <field index="CType">text</field>
             </fieldlist>
             <related index="rels" type="array">
@@ -217,8 +217,8 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">0</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content 2</field>
                 <field index="header_link">file:4</field>
+                <field index="header">Test content 2</field>
                 <field index="CType">text</field>
             </fieldlist>
             <related index="rels" type="array">
@@ -248,8 +248,8 @@
                 <field index="deleted" type="integer">0</field>
                 <field index="hidden" type="integer">1</field>
                 <field index="t3ver_oid" type="integer">0</field>
-                <field index="header">Test content 3</field>
                 <field index="header_link">file:3</field>
+                <field index="header">Test content 3</field>
                 <field index="CType">text</field>
             </fieldlist>
             <related index="rels" type="array">
@@ -304,11 +304,11 @@
                 <field index="identifier">/user_upload/typo3_image3.jpg</field>
                 <field index="identifier_hash">25777b72e5e1cbed2d1b33e4fe5b737304b5bd28</field>
                 <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                <field index="mime_type">image/jpeg</field>
                 <field index="name">typo3_image3.jpg</field>
                 <field index="sha1">e873c1e2ffd0f191e183a1057de3eef4d62e782d</field>
                 <field index="creation_date">1393346082</field>
                 <field index="modification_date">1392907534</field>
+                <field index="mime_type">image/jpeg</field>
                 <field index="metadata">0</field>
                 <field index="size">5565</field>
                 <field index="storage">1</field>
@@ -333,11 +333,11 @@
                 <field index="identifier">/user_upload/typo3_image5.jpg</field>
                 <field index="identifier_hash">8180e85d25c96697ec9d2004683216831b91ffc1</field>
                 <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                <field index="mime_type">image/jpeg</field>
                 <field index="name">typo3_image5.jpg</field>
                 <field index="sha1">c3511df85d21bc578faf71c6a19eeb3ff44af370</field>
                 <field index="creation_date">1393432184</field>
                 <field index="modification_date">1393432183</field>
+                <field index="mime_type">image/jpeg</field>
                 <field index="metadata">0</field>
                 <field index="size">7425</field>
                 <field index="storage">1</field>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/irre-records.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/irre-records.xml
index 62073028c6cef4b1c132d78274d6009ad0edbacb..59a32c9637565c266c9e768eaf56b75609b61c5e 100644
--- a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/irre-records.xml
+++ b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/irre-records.xml
@@ -1490,8 +1490,8 @@
                 <field index="sorting" type="integer">1</field>
                 <field index="sys_language_uid" type="integer">0</field>
                 <field index="l18n_parent" type="integer">0</field>
-                <field index="title">Price 1 1:2 (m:n ASym)</field>
                 <field index="parentid" type="integer">1</field>
+                <field index="title">Price 1 1:2 (m:n ASym)</field>
                 <field index="price">678.00</field>
             </fieldlist>
             <related index="rels" type="array"></related>
@@ -1505,8 +1505,8 @@
                 <field index="sorting" type="integer">1</field>
                 <field index="sys_language_uid" type="integer">0</field>
                 <field index="l18n_parent" type="integer">0</field>
-                <field index="title">Price 2 1:1 (m:n ASym)</field>
                 <field index="parentid" type="integer">2</field>
+                <field index="title">Price 2 1:1 (m:n ASym)</field>
                 <field index="price">45.00</field>
             </fieldlist>
             <related index="rels" type="array"></related>
diff --git a/typo3/sysext/impexp/ext_tables.sql b/typo3/sysext/impexp/ext_tables.sql
index 874dded5dbcdd37c9990adec5916819ca45ccc9a..6ff2341e1c9698fc4783f2d2df731174fddb9a3f 100644
--- a/typo3/sysext/impexp/ext_tables.sql
+++ b/typo3/sysext/impexp/ext_tables.sql
@@ -1,7 +1,5 @@
-#
-# Table structure for table 'tx_impexp_presets'
-#
 CREATE TABLE tx_impexp_presets (
+  # type=passthrough fields need manual configuration
   title varchar(255) DEFAULT '' NOT NULL,
   public tinyint(3) DEFAULT '0' NOT NULL,
   item_uid int(11) DEFAULT '0' NOT NULL,
@@ -10,23 +8,20 @@ CREATE TABLE tx_impexp_presets (
   KEY lookup (item_uid)
 );
 
-#
-# Table structure for table 'tt_content'
-#
+# Some fields need manual configuration
 CREATE TABLE tt_content (
+  # type=passthrough fields need manual configuration
   tx_impexp_origuid int(11) DEFAULT '0' NOT NULL
 );
 
-#
-# Table structure for table 'pages'
-#
+# Some fields need manual configuration
 CREATE TABLE pages (
+  # type=passthrough fields need manual configuration
   tx_impexp_origuid int(11) DEFAULT '0' NOT NULL
 );
 
-#
-# Table structure for table 'sys_template'
-#
+# Some fields need manual configuration
 CREATE TABLE sys_template (
+  # type=passthrough fields need manual configuration
   tx_impexp_origuid int(11) DEFAULT '0' NOT NULL
 );
diff --git a/typo3/sysext/indexed_search/ext_tables.sql b/typo3/sysext/indexed_search/ext_tables.sql
index a36940f822fe67fac26fc38b26b0498e751f768e..f81d8297e5332bdc019a56c2d24701e06799d26b 100644
--- a/typo3/sysext/indexed_search/ext_tables.sql
+++ b/typo3/sysext/indexed_search/ext_tables.sql
@@ -1,7 +1,4 @@
-
-#
-# Table structure for table 'index_phash'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE index_phash (
   phash varchar(32) NOT NULL,
   phash_grouping varchar(32) NOT NULL,
@@ -31,18 +28,14 @@ CREATE TABLE index_phash (
   KEY freeIndexUid (freeIndexUid)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'index_fulltext'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE index_fulltext (
   phash varchar(32) NOT NULL,
   fulltextdata mediumtext,
   PRIMARY KEY (phash)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'index_rel'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE index_rel (
   phash varchar(32) NOT NULL,
   wid varchar(32) NOT NULL,
@@ -54,9 +47,7 @@ CREATE TABLE index_rel (
   KEY wid (wid,phash)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'index_words'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE index_words (
   wid varchar(32) NOT NULL,
   baseword varchar(60) DEFAULT '' NOT NULL,
@@ -65,9 +56,7 @@ CREATE TABLE index_words (
   KEY baseword (baseword)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'index_section'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE index_section (
   uniqid int(11) NOT NULL auto_increment,
   phash varchar(32) NOT NULL,
@@ -83,9 +72,7 @@ CREATE TABLE index_section (
   KEY rl0_2 (rl0,phash)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'index_grlist'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE index_grlist (
   uniqid int(11) NOT NULL auto_increment,
   phash varchar(32) NOT NULL,
@@ -97,37 +84,23 @@ CREATE TABLE index_grlist (
   KEY phash_grouping (phash_x,hash_gr_list)
 ) ENGINE=InnoDB;
 
-#
-# Table structure for table 'index_debug'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE index_debug (
   phash varchar(32) NOT NULL,
   debuginfo mediumtext,
   PRIMARY KEY (phash)
 );
 
-#
-# Table structure for table 'index_config'
-#
 CREATE TABLE index_config (
+  # @todo: Change TCA type from input to something better
   set_id int(11) DEFAULT '0' NOT NULL,
+  # @todo: Completely unused?!
   session_data mediumtext,
-
-  title varchar(255) DEFAULT '' NOT NULL,
-  get_params varchar(255) DEFAULT '' NOT NULL,
-  fieldlist varchar(255) DEFAULT '' NOT NULL,
-  externalUrl varchar(255) DEFAULT '' NOT NULL,
-  filepath varchar(255) DEFAULT '' NOT NULL,
-  extensions varchar(255) DEFAULT '' NOT NULL,
-
-  # group fields, but rely on the integer format, so default format (text) gets overridden here
+  # @todo: type=group fields, but rely on integer.
   alternative_source_pid int(11) unsigned DEFAULT '0' NOT NULL,
 );
 
-
-#
-# Table structure for table 'index_stat_word'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE index_stat_word (
   uid int(11) NOT NULL auto_increment,
   word varchar(50) DEFAULT '' NOT NULL,
diff --git a/typo3/sysext/linkvalidator/ext_tables.sql b/typo3/sysext/linkvalidator/ext_tables.sql
index 91b4b19d6564c89d77e54bfbe8b305b664299569..8bec66da8708a07b6284f9196e121f870b80c428 100644
--- a/typo3/sysext/linkvalidator/ext_tables.sql
+++ b/typo3/sysext/linkvalidator/ext_tables.sql
@@ -1,3 +1,4 @@
+# Define table and fields since it has no TCA
 CREATE TABLE tx_linkvalidator_link (
 	uid int(11) NOT NULL auto_increment,
 	record_uid int(11) DEFAULT '0' NOT NULL,
diff --git a/typo3/sysext/reactions/Configuration/TCA/sys_reaction.php b/typo3/sysext/reactions/Configuration/TCA/sys_reaction.php
index 7a0b8951d091ce23506ccbe1ecc688295dbc0b40..5c6a2aeda7f6a3a06dbdca8baa1c2edb3126268d 100644
--- a/typo3/sysext/reactions/Configuration/TCA/sys_reaction.php
+++ b/typo3/sysext/reactions/Configuration/TCA/sys_reaction.php
@@ -66,6 +66,7 @@ return [
             'config' => [
                 'type' => 'input',
                 'required' => true,
+                'max' => 100,
                 'eval' => 'trim',
             ],
         ],
diff --git a/typo3/sysext/reactions/ext_tables.sql b/typo3/sysext/reactions/ext_tables.sql
index 8e26648fb971bc135c9162e0b02abe8565e883d3..da4e43d3e87459dac50e025a475091ae6f172aea 100644
--- a/typo3/sysext/reactions/ext_tables.sql
+++ b/typo3/sysext/reactions/ext_tables.sql
@@ -1,9 +1,4 @@
-#
-# Table structure for table 'sys_reaction'
-#
 CREATE TABLE sys_reaction (
-	name varchar(100) DEFAULT '' NOT NULL,
-
 	# group fields, but rely on the integer format, so default format (text) gets overridden here
 	impersonate_user int(11) unsigned DEFAULT '0' NOT NULL,
 	storage_pid int(11) unsigned DEFAULT '0' NOT NULL,
diff --git a/typo3/sysext/redirects/ext_tables.sql b/typo3/sysext/redirects/ext_tables.sql
index a818d9742e803046beac96ea08a22b9ad007b83a..5029c82f6952db464009a092e26fee4f4ef7a60b 100644
--- a/typo3/sysext/redirects/ext_tables.sql
+++ b/typo3/sysext/redirects/ext_tables.sql
@@ -1,9 +1,5 @@
-#
-# Table structure for table 'sys_redirect'
-#
 CREATE TABLE sys_redirect (
-	source_host varchar(255) DEFAULT '' NOT NULL,
-	source_path varchar(2048) DEFAULT '' NOT NULL,
+	# @todo: Declared type=input but should be something different
 	hitcount int(11) DEFAULT '0' NOT NULL,
 	KEY index_source (source_host(80),source_path(80))
 );
diff --git a/typo3/sysext/scheduler/ext_tables.sql b/typo3/sysext/scheduler/ext_tables.sql
index c34fd2bc8e6812fea25d0846ffba4095fb7e0d79..0c1cd4e63e8e2f1297a45ba65ed84f35de75728b 100644
--- a/typo3/sysext/scheduler/ext_tables.sql
+++ b/typo3/sysext/scheduler/ext_tables.sql
@@ -1,6 +1,4 @@
-#
-# Table structure for table 'tx_scheduler_task'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE tx_scheduler_task (
 	uid int(11) unsigned NOT NULL auto_increment,
 	crdate int(11) unsigned DEFAULT '0' NOT NULL,
@@ -14,13 +12,7 @@ CREATE TABLE tx_scheduler_task (
 	serialized_task_object mediumblob,
 	serialized_executions mediumblob,
 	task_group int(11) unsigned DEFAULT '0' NOT NULL,
+
 	PRIMARY KEY (uid),
 	KEY index_nextexecution (nextexecution)
 );
-
-#
-# Table structure for table 'tx_scheduler_task_group'
-#
-CREATE TABLE tx_scheduler_task_group (
-	groupName varchar(80) DEFAULT '' NOT NULL,
-);
diff --git a/typo3/sysext/seo/ext_tables.sql b/typo3/sysext/seo/ext_tables.sql
index b645624b97e9e3e187edc5264885eb86978e33c5..7343e7ee0dfa0b149b1b5d07df86d55c918845d8 100644
--- a/typo3/sysext/seo/ext_tables.sql
+++ b/typo3/sysext/seo/ext_tables.sql
@@ -1,10 +1,6 @@
-#
-# Table structure for table 'pages'
-#
 CREATE TABLE pages (
-	seo_title varchar(255) DEFAULT '' NOT NULL,
-	og_title varchar(255) DEFAULT '' NOT NULL,
-	twitter_title varchar(255) DEFAULT '' NOT NULL,
+	# @todo: this should be text with default '' when implemented, see todo in DefaultTceSchema
+	canonical_link varchar(2048) DEFAULT '' NOT NULL,
 	# @todo: db analyzer makes this varchar which would be ok, but the default is lost. needs review
 	sitemap_priority decimal(2,1) DEFAULT '0.5' NOT NULL,
 );
diff --git a/typo3/sysext/styleguide/ext_tables.sql b/typo3/sysext/styleguide/ext_tables.sql
index 7766949f8ae62c79014232aa54cc262af745d867..f30916b63a49b7785fd93abbe4942f32860d0cc0 100644
--- a/typo3/sysext/styleguide/ext_tables.sql
+++ b/typo3/sysext/styleguide/ext_tables.sql
@@ -1,358 +1,126 @@
 CREATE TABLE pages (
+    # type=passthrough needs manual configuration
     tx_styleguide_containsdemo varchar(255) DEFAULT '' NOT NULL
 );
 
 CREATE TABLE tt_content (
+    # type=passthrough needs manual configuration
     tx_styleguide_containsdemo varchar(255) DEFAULT '' NOT NULL
 );
 
 CREATE TABLE be_groups (
+    # type=passthrough needs manual configuration
     tx_styleguide_isdemorecord tinyint(1) unsigned DEFAULT '0' NOT NULL
 );
 
 CREATE TABLE be_users (
+    # type=passthrough needs manual configuration
     tx_styleguide_isdemorecord tinyint(1) unsigned DEFAULT '0' NOT NULL
 );
 
 CREATE TABLE fe_groups (
+    # type=passthrough needs manual configuration
     tx_styleguide_containsdemo varchar(255) DEFAULT '' NOT NULL
 );
 
 CREATE TABLE fe_users (
+    # type=passthrough needs manual configuration
     tx_styleguide_containsdemo varchar(255) DEFAULT '' NOT NULL
 );
 
-
-CREATE TABLE tx_styleguide_ctrl_common (
-    title text,
-);
-
-
-CREATE TABLE tx_styleguide_ctrl_minimal (
-    title text,
-);
-
-
-CREATE TABLE tx_styleguide_displaycond (
-    input_1 text,
-    input_2 text,
-    input_4 text,
-    input_5 text,
-    input_6 text,
-    input_7 text,
-    input_8 text,
-    input_9 text,
-    input_10 text,
-    input_11 text,
-    input_12 text,
-    input_13 text,
-    input_16 text,
-    input_17 text,
-    input_18 text,
-    input_19 text,
-    input_20 text,
-);
-
-
 CREATE TABLE tx_styleguide_elements_basic (
-    input_1 text,
-    input_2 text,
-    input_3 text,
-    input_4 text,
-    input_5 text,
-    input_10 text,
-    input_11 text,
-    input_12 text,
-    input_13 text,
-    input_14 text,
-    input_15 text,
-    input_19 text,
-    input_21 text,
-    input_22 text,
-    input_23 text,
-    input_24 text,
-    input_26 text,
-    input_27 text,
-    input_28 text,
-    input_33 text,
-    input_35 text,
-    input_36 text,
-    input_40 text,
-    input_41 text,
-    input_42 text,
-    input_43 text,
-
-    text_12 text,
-
+    # type=none needs manual configuration
     none_1 text,
     none_2 text,
     none_3 text,
 
+    # type=passthrough needs manual configuration
     passthrough_1 text,
     passthrough_2 text,
 
+    # type=user needs manual configuration
     user_1 text,
     user_2 text,
-
-    unknown_1 text,
 );
 
-
-CREATE TABLE tx_styleguide_elements_rte (
-    input_palette_1 text,
-    rte_palette_1 text
-);
-
-CREATE TABLE tx_styleguide_elements_slugs (
-    input_1 text,
-    input_2 text,
-    input_3 text,
-);
-
-
 CREATE TABLE tx_styleguide_elements_rte_flex_1_inline_1_child (
+    # type=passthrough needs manual configuration with inline flex parents
     parentid int(11) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration with inline flex parents
     parenttable text,
 );
 
-CREATE TABLE tx_styleguide_elements_select_single_21_foreign (
-    title varchar(255) DEFAULT '' NOT NULL,
-);
-
 # MM tables for fields defined in flex form data structures
 # are NOT auto created by DefaultTcaSchema
 CREATE TABLE tx_styleguide_elements_select_flex_1_multiplesidebyside_2_mm (
-	uid_local int(11) unsigned DEFAULT 0 NOT NULL,
-	uid_foreign int(11) unsigned DEFAULT 0 NOT NULL,
-	sorting int(11) unsigned DEFAULT 0 NOT NULL,
-	sorting_foreign int(11) unsigned DEFAULT 0 NOT NULL,
+    uid_local int(11) unsigned DEFAULT 0 NOT NULL,
+    uid_foreign int(11) unsigned DEFAULT 0 NOT NULL,
+    sorting int(11) unsigned DEFAULT 0 NOT NULL,
+    sorting_foreign int(11) unsigned DEFAULT 0 NOT NULL,
 
-	KEY uid_local (uid_local),
-	KEY uid_foreign (uid_foreign)
+    KEY uid_local (uid_local),
+    KEY uid_foreign (uid_foreign)
 );
 
 CREATE TABLE tx_styleguide_elements_t3editor_flex_1_inline_1_child (
+    # type=passthrough needs manual configuration with inline flex parents
     parentid int(11) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration with inline flex parents
     parenttable text,
 );
 
-CREATE TABLE tx_styleguide_flex (
-);
-
-
 CREATE TABLE tx_styleguide_flex_flex_3_inline_1_child (
+    # type=passthrough needs manual configuration with inline flex parents
     parentid int(11) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration with inline flex parents
     parenttable text,
-
-    input_1 text
-);
-
-CREATE TABLE tx_styleguide_inline_11_child (
-    input_1 text
-);
-
-CREATE TABLE tx_styleguide_inline_1n_inline_1_child (
-    input_1 text,
-    input_3 text,
-);
-
-CREATE TABLE tx_styleguide_inline_1n_inline_2_child (
-    input_1 text,
 );
 
 CREATE TABLE tx_styleguide_inline_1nreusabletable_child (
+    # type=passthrough needs manual configuration
     role text
 );
 
-CREATE TABLE tx_styleguide_inline_1nnol10n_child (
-    input_1 text
-);
-
-CREATE TABLE tx_styleguide_inline_1n1n_childchild (
-    input_1 text
-);
-
-CREATE TABLE tx_styleguide_inline_expand_inline_1_child (
-    dummy_1 text,
-);
-
-CREATE TABLE tx_styleguide_inline_expandsingle_child (
-    input_1 text
-);
-
-CREATE TABLE tx_styleguide_file (
-);
-
-CREATE TABLE tx_styleguide_inline_foreignrecorddefaults_child (
-    input_1 text
-);
-
-
-CREATE TABLE tx_styleguide_inline_mm (
-    title tinytext,
-);
-
-
-CREATE TABLE tx_styleguide_inline_mm_child (
-    title tinytext,
-);
-
-
-CREATE TABLE tx_styleguide_inline_mm_childchild (
-    title tinytext,
-);
-
-
-CREATE TABLE tx_styleguide_inline_mn (
-    input_1 tinytext,
-);
-
-
 CREATE TABLE tx_styleguide_inline_mn_mm (
+    # type=passthrough needs manual configuration
     parentsort int(10) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration
     childsort int(10) DEFAULT '0' NOT NULL,
 );
 
-
-CREATE TABLE tx_styleguide_inline_mn_child (
-    input_1 tinytext,
-);
-
-
-CREATE TABLE tx_styleguide_inline_mngroup (
-    input_1 tinytext,
-);
-
-
 CREATE TABLE tx_styleguide_inline_mngroup_mm (
+    # type=passthrough needs manual configuration
     parentsort int(10) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration
     childsort int(10) DEFAULT '0' NOT NULL,
 );
 
-
-CREATE TABLE tx_styleguide_inline_mngroup_child (
-    input_1 tinytext,
-);
-
-
-CREATE TABLE tx_styleguide_inline_mnsymmetric (
-    input_1 tinytext,
-);
-
-
 CREATE TABLE tx_styleguide_inline_mnsymmetric_mm (
+    # type=passthrough needs manual configuration
     hotelsort int(10) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration
     branchsort int(10) DEFAULT '0' NOT NULL
 );
 
-CREATE TABLE tx_styleguide_inline_mnsymmetricgroup (
-    input_1 tinytext,
-);
-
-
 CREATE TABLE tx_styleguide_inline_mnsymmetricgroup_mm (
     # int() kept for now, similar issue in core, needs further type=group works
     hotelid int(11) DEFAULT '0' NOT NULL,
     # int() kept for now, similar issue in core, needs further type=group works
     branchid int(11) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration
     hotelsort int(10) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration
     branchsort int(10) DEFAULT '0' NOT NULL
 );
 
-CREATE TABLE tx_styleguide_inline_usecombination_child (
-    input_1 varchar(255) DEFAULT '' NOT NULL
-);
-
-CREATE TABLE tx_styleguide_inline_usecombinationgroup_child (
-    input_1 varchar(255) DEFAULT '' NOT NULL
-);
-
-CREATE TABLE tx_styleguide_inline_usecombinationbox_child (
-    input_1 varchar(255) DEFAULT '' NOT NULL
-);
-
-
-CREATE TABLE tx_styleguide_palette (
-    palette_2_1 text,
-    palette_3_1 text,
-    palette_3_2 text,
-    palette_4_1 text,
-    palette_4_2 text,
-    palette_4_3 text,
-    palette_4_4 text,
-    palette_5_1 text,
-    palette_5_2 text,
-    palette_6_1 text,
-    palette_7_1 text
-);
-
-
-CREATE TABLE tx_styleguide_required (
-    notrequired_1 text,
-
-    input_1 text,
-
-    rte_1 text,
-
-    palette_input_1 text,
-    palette_input_2 text
-);
-
-
 CREATE TABLE tx_styleguide_required_flex_2_inline_1_child (
+    # type=passthrough needs manual configuration with inline flex parents
     parentid int(11) DEFAULT '0' NOT NULL,
+    # type=passthrough needs manual configuration with inline flex parents
     parenttable text,
-
-    input_1 text
-);
-
-
-CREATE TABLE tx_styleguide_required_inline_1_child (
-    input_1 text
-);
-
-
-CREATE TABLE tx_styleguide_required_inline_2_child (
-    input_1 text
-);
-
-
-CREATE TABLE tx_styleguide_required_inline_3_child (
-    input_1 text
-);
-
-CREATE TABLE tx_styleguide_staticdata (
-    value_1 tinytext
-);
-
-
-CREATE TABLE tx_styleguide_type (
-    input_1 text,
-);
-
-
-CREATE TABLE tx_styleguide_typeforeign (
-    input_1 text,
-);
-
-
-CREATE TABLE tx_styleguide_valuesdefault (
-    input_1 text,
 );
 
 CREATE TABLE tx_styleguide_l10nreadonly (
-    input text,
+    # type=none needs manual configuration
     none text,
-    language int(11) DEFAULT '0' NOT NULL,
-);
-
-CREATE TABLE tx_styleguide_l10nreadonly_inline_child (
-    input text,
-);
-
-#
-# Table structure for table 'tx_styleguide_inline_parentnosoftdelete'
-#
-CREATE TABLE tx_styleguide_inline_parentnosoftdelete (
-    text_1 text
 );
diff --git a/typo3/sysext/sys_note/ext_tables.sql b/typo3/sysext/sys_note/ext_tables.sql
index 6578d3b230db715050d57274266d704fee0239b3..23902e01702587b2e6061b85128f110aef1ecce4 100644
--- a/typo3/sysext/sys_note/ext_tables.sql
+++ b/typo3/sysext/sys_note/ext_tables.sql
@@ -1,7 +1,4 @@
-#
-# Table structure for table 'sys_note'
-#
 CREATE TABLE sys_note (
-  subject varchar(255) DEFAULT '' NOT NULL,
+  # type=passthrough needs manual configuration
   cruser int(11) unsigned DEFAULT 0 NOT NULL,
 );
diff --git a/typo3/sysext/webhooks/Configuration/TCA/sys_webhook.php b/typo3/sysext/webhooks/Configuration/TCA/sys_webhook.php
index f1415d32f33bfc80b627dc366a04a91711275871..0da2af52a9d48e6f9cf836cd8ed6651e03c442bb 100644
--- a/typo3/sysext/webhooks/Configuration/TCA/sys_webhook.php
+++ b/typo3/sysext/webhooks/Configuration/TCA/sys_webhook.php
@@ -77,6 +77,7 @@ return [
             'config' => [
                 'type' => 'input',
                 'required' => true,
+                'max' => 100,
                 'eval' => 'trim',
             ],
         ],
diff --git a/typo3/sysext/webhooks/ext_tables.sql b/typo3/sysext/webhooks/ext_tables.sql
index 0dd2c423c48587988164ead5fc4c1ce0c68f8020..09794dfef36ca956ab14a1f7a2e27ae714b961cf 100644
--- a/typo3/sysext/webhooks/ext_tables.sql
+++ b/typo3/sysext/webhooks/ext_tables.sql
@@ -1,9 +1,4 @@
-#
-# Table structure for table 'sys_webhook'
-#
 CREATE TABLE sys_webhook (
-	name varchar(100) DEFAULT '' NOT NULL,
-
 	UNIQUE identifier_key (identifier),
 	KEY index_source (webhook_type(5))
 );
diff --git a/typo3/sysext/workspaces/ext_tables.sql b/typo3/sysext/workspaces/ext_tables.sql
index f5f84dad2f2d1cc3cfb2f45b1c75d5e8cace6cb2..e10bd7dcef706068faa02ec9e3a6f329d15e4e08 100644
--- a/typo3/sysext/workspaces/ext_tables.sql
+++ b/typo3/sysext/workspaces/ext_tables.sql
@@ -1,13 +1,4 @@
-#
-# Table structure for table 'be_users'
-#
-CREATE TABLE be_users (
-  workspace_perms tinyint(3) DEFAULT '0' NOT NULL
-);
-
-#
-# Table structure for table 'sys_preview'
-#
+# Define table and fields since it has no TCA
 CREATE TABLE sys_preview (
   keyword varchar(32) DEFAULT '' NOT NULL,
   tstamp int(11) DEFAULT '0' NOT NULL,
@@ -15,18 +6,3 @@ CREATE TABLE sys_preview (
   config text,
   PRIMARY KEY (keyword)
 );
-
-#
-# Table structure for table 'sys_workspace'
-#
-CREATE TABLE sys_workspace (
-	title varchar(30) DEFAULT '' NOT NULL,
-);
-
-
-#
-# Table structure for table 'sys_workspace_stage'
-#
-CREATE TABLE sys_workspace_stage (
-	title varchar(30) DEFAULT '' NOT NULL,
-);