From 312a46bd431eaf2ad457b8d119757634a7fcc707 Mon Sep 17 00:00:00 2001
From: Chris Truter <crisptrutski@users.noreply.github.com>
Date: Fri, 30 Aug 2024 10:57:14 +0200
Subject: [PATCH] Add test against serialization YAML format changing (#47349)

---
 .gitignore                                    |   1 +
 .../serialization/v2/ingest.clj               |  13 +-
 .../serialization/v2/extract_test.clj         |   6 +
 .../serialization/v2/round_trip_test.clj      | 197 ++++++++++++++++
 .../hYWoE-l1BpOqmvYedqP2g_my_action.yaml      |  21 ++
 ...M-Q4pcV0qkiyJ0kiSWECl_some_collection.yaml |  18 ++
 ...uZ0wHe2O5Z_59-cLmn4_series_question_a.yaml |  31 +++
 ...xiHuzwlGIFNq245HdZC_series_question_b.yaml |  31 +++
 .../f1C68pznmrpN1F5xFDj6d_some_question.yaml  |  31 +++
 ..._jD-f-9clKLFZ2TfUG2h_shared_dashboard.yaml |  67 ++++++
 ...d4QwJgGKw-X1tRh3ir2_shared_collection.yaml |  18 ++
 ...aqpA3mIKUnfzYUlwjuGwT_source_question.yaml |  35 +++
 .../ze7O4-8qRFH1v2Ho2apT1_root_card.yaml      |  31 +++
 ...98z04nYGCF5n7cvOTfbj_grandparent_card.yaml |  31 +++
 ...lYOjakuobH4zPz_grandparent_collection.yaml |  18 ++
 .../IBZSKSt2-QOMviIaGcQE6_parent_card.yaml    |  31 +++
 .../JT3BKJwNCfhUHnd9oqQ_1_parent_dash.yaml    |  27 +++
 .../Ra0JVOCXKTxH5TPbwZm0x_child_card.yaml     |  31 +++
 ...JVsXIDzzipSZsaro9Pvu_child_collection.yaml |  18 ++
 ...ZhJMPNGkfd3sq8jWiZS_parent_collection.yaml |  18 ++
 ...Zq2ud7JlSoSBXdJWIaW_shared_collection.yaml |  18 ++
 .../PsHfXHhETFiTIRQODuYB8_empty_timeline.yaml |  14 ++
 ...QYdaqb_vXFlZnjvshP_populated_timeline.yaml |  27 +++
 .../databases/My Database/My Database.yaml    |  26 +++
 .../Schemaless Table/Schemaless Table.yaml    |  21 ++
 .../Schemaless Table/fields/Some Field.yaml   |  39 ++++
 .../fields/Some Field___fieldvalues.yaml      |  35 +++
 .../TNdMrOCMHrQc_UtvCbTC5_my_segment.yaml     |  33 +++
 .../PUBLIC/tables/CATEGORIES/CATEGORIES.yaml  |  23 ++
 .../PUBLIC/tables/CATEGORIES/fields/ID.yaml   |  41 ++++
 .../PUBLIC/tables/CATEGORIES/fields/NAME.yaml |  41 ++++
 .../CATEGORIES/fields/NAME___fieldvalues.yaml |  93 ++++++++
 .../PUBLIC/tables/CHECKINS/CHECKINS.yaml      |  23 ++
 .../PUBLIC/tables/CHECKINS/fields/DATE.yaml   |  41 ++++
 .../PUBLIC/tables/CHECKINS/fields/ID.yaml     |  41 ++++
 .../tables/CHECKINS/fields/USER_ID.yaml       |  45 ++++
 .../tables/CHECKINS/fields/VENUE_ID.yaml      |  45 ++++
 .../schemas/PUBLIC/tables/ORDERS/ORDERS.yaml  |  23 ++
 .../tables/ORDERS/fields/CREATED_AT.yaml      |  41 ++++
 .../PUBLIC/tables/ORDERS/fields/DISCOUNT.yaml |  41 ++++
 .../PUBLIC/tables/ORDERS/fields/ID.yaml       |  41 ++++
 .../tables/ORDERS/fields/PRODUCT_ID.yaml      |  45 ++++
 .../PUBLIC/tables/ORDERS/fields/QUANTITY.yaml |  41 ++++
 .../ORDERS/fields/QUANTITY___fieldvalues.yaml |  95 ++++++++
 .../PUBLIC/tables/ORDERS/fields/SUBTOTAL.yaml |  41 ++++
 .../PUBLIC/tables/ORDERS/fields/TAX.yaml      |  41 ++++
 .../PUBLIC/tables/ORDERS/fields/TOTAL.yaml    |  41 ++++
 .../PUBLIC/tables/ORDERS/fields/USER_ID.yaml  |  45 ++++
 .../schemas/PUBLIC/tables/PEOPLE/PEOPLE.yaml  |  23 ++
 .../PUBLIC/tables/PEOPLE/fields/ADDRESS.yaml  |  41 ++++
 .../tables/PEOPLE/fields/BIRTH_DATE.yaml      |  41 ++++
 .../PUBLIC/tables/PEOPLE/fields/CITY.yaml     |  41 ++++
 .../tables/PEOPLE/fields/CREATED_AT.yaml      |  41 ++++
 .../PUBLIC/tables/PEOPLE/fields/EMAIL.yaml    |  41 ++++
 .../PUBLIC/tables/PEOPLE/fields/ID.yaml       |  41 ++++
 .../PUBLIC/tables/PEOPLE/fields/LATITUDE.yaml |  41 ++++
 .../tables/PEOPLE/fields/LONGITUDE.yaml       |  41 ++++
 .../PUBLIC/tables/PEOPLE/fields/NAME.yaml     |  41 ++++
 .../PUBLIC/tables/PEOPLE/fields/PASSWORD.yaml |  41 ++++
 .../PUBLIC/tables/PEOPLE/fields/SOURCE.yaml   |  41 ++++
 .../PEOPLE/fields/SOURCE___fieldvalues.yaml   |  23 ++
 .../PUBLIC/tables/PEOPLE/fields/STATE.yaml    |  41 ++++
 .../PEOPLE/fields/STATE___fieldvalues.yaml    |  67 ++++++
 .../PUBLIC/tables/PEOPLE/fields/ZIP.yaml      |  41 ++++
 .../PUBLIC/tables/PRODUCTS/PRODUCTS.yaml      |  23 ++
 .../tables/PRODUCTS/fields/CATEGORY.yaml      |  41 ++++
 .../fields/CATEGORY___fieldvalues.yaml        |  22 ++
 .../tables/PRODUCTS/fields/CREATED_AT.yaml    |  41 ++++
 .../PUBLIC/tables/PRODUCTS/fields/EAN.yaml    |  41 ++++
 .../PRODUCTS/fields/EAN___fieldvalues.yaml    | 218 ++++++++++++++++++
 .../PUBLIC/tables/PRODUCTS/fields/ID.yaml     |  41 ++++
 .../PUBLIC/tables/PRODUCTS/fields/PRICE.yaml  |  41 ++++
 .../PUBLIC/tables/PRODUCTS/fields/RATING.yaml |  41 ++++
 .../PUBLIC/tables/PRODUCTS/fields/TITLE.yaml  |  41 ++++
 .../PRODUCTS/fields/TITLE___fieldvalues.yaml  | 217 +++++++++++++++++
 .../PUBLIC/tables/PRODUCTS/fields/VENDOR.yaml |  41 ++++
 .../PRODUCTS/fields/VENDOR___fieldvalues.yaml | 218 ++++++++++++++++++
 .../PUBLIC/tables/REVIEWS/REVIEWS.yaml        |  23 ++
 .../PUBLIC/tables/REVIEWS/fields/BODY.yaml    |  41 ++++
 .../tables/REVIEWS/fields/CREATED_AT.yaml     |  41 ++++
 .../PUBLIC/tables/REVIEWS/fields/ID.yaml      |  41 ++++
 .../tables/REVIEWS/fields/PRODUCT_ID.yaml     |  45 ++++
 .../PUBLIC/tables/REVIEWS/fields/RATING.yaml  |  41 ++++
 .../REVIEWS/fields/RATING___fieldvalues.yaml  |  23 ++
 .../tables/REVIEWS/fields/REVIEWER.yaml       |  41 ++++
 .../schemas/PUBLIC/tables/USERS/USERS.yaml    |  23 ++
 .../PUBLIC/tables/USERS/fields/ID.yaml        |  41 ++++
 .../tables/USERS/fields/LAST_LOGIN.yaml       |  41 ++++
 .../PUBLIC/tables/USERS/fields/NAME.yaml      |  41 ++++
 .../USERS/fields/NAME___fieldvalues.yaml      |  33 +++
 .../PUBLIC/tables/USERS/fields/PASSWORD.yaml  |  41 ++++
 .../USERS/fields/PASSWORD___fieldvalues.yaml  |  33 +++
 .../schemas/PUBLIC/tables/VENUES/VENUES.yaml  |  23 ++
 .../tables/VENUES/fields/CATEGORY_ID.yaml     |  45 ++++
 .../PUBLIC/tables/VENUES/fields/ID.yaml       |  41 ++++
 .../PUBLIC/tables/VENUES/fields/LATITUDE.yaml |  41 ++++
 .../tables/VENUES/fields/LONGITUDE.yaml       |  41 ++++
 .../PUBLIC/tables/VENUES/fields/NAME.yaml     |  41 ++++
 .../VENUES/fields/NAME___fieldvalues.yaml     | 118 ++++++++++
 .../PUBLIC/tables/VENUES/fields/PRICE.yaml    |  41 ++++
 .../VENUES/fields/PRICE___fieldvalues.yaml    |  22 ++
 .../test-data (h2)/test-data (h2).yaml        |  31 +++
 .../serialization_baseline/settings.yaml      |  53 +++++
 .../WyQWnT23PF-SfbYLROllJ_snippet_2.yaml      |  12 +
 .../hcSr4xgVEd8AyElRRLu9w_snippet_1.yaml      |  12 +
 105 files changed, 4512 insertions(+), 5 deletions(-)
 create mode 100644 enterprise/backend/test/metabase_enterprise/serialization/v2/round_trip_test.clj
 create mode 100644 test_resources/serialization_baseline/actions/hYWoE-l1BpOqmvYedqP2g_my_action.yaml
 create mode 100644 test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/M-Q4pcV0qkiyJ0kiSWECl_some_collection.yaml
 create mode 100644 test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/OMuZ0wHe2O5Z_59-cLmn4_series_question_a.yaml
 create mode 100644 test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/XsxiHuzwlGIFNq245HdZC_series_question_b.yaml
 create mode 100644 test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/f1C68pznmrpN1F5xFDj6d_some_question.yaml
 create mode 100644 test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/dashboards/Q_jD-f-9clKLFZ2TfUG2h_shared_dashboard.yaml
 create mode 100644 test_resources/serialization_baseline/collections/Y6d4QwJgGKw-X1tRh3ir2_shared_collection/Y6d4QwJgGKw-X1tRh3ir2_shared_collection.yaml
 create mode 100644 test_resources/serialization_baseline/collections/cards/aqpA3mIKUnfzYUlwjuGwT_source_question.yaml
 create mode 100644 test_resources/serialization_baseline/collections/cards/ze7O4-8qRFH1v2Ho2apT1_root_card.yaml
 create mode 100644 test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/cards/m98z04nYGCF5n7cvOTfbj_grandparent_card.yaml
 create mode 100644 test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/olgKH56lYOjakuobH4zPz_grandparent_collection.yaml
 create mode 100644 test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/cards/IBZSKSt2-QOMviIaGcQE6_parent_card.yaml
 create mode 100644 test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/dashboards/JT3BKJwNCfhUHnd9oqQ_1_parent_dash.yaml
 create mode 100644 test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/fJVsXIDzzipSZsaro9Pvu_child_collection/cards/Ra0JVOCXKTxH5TPbwZm0x_child_card.yaml
 create mode 100644 test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/fJVsXIDzzipSZsaro9Pvu_child_collection/fJVsXIDzzipSZsaro9Pvu_child_collection.yaml
 create mode 100644 test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection.yaml
 create mode 100644 test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/p8Zq2ud7JlSoSBXdJWIaW_shared_collection.yaml
 create mode 100644 test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/timelines/PsHfXHhETFiTIRQODuYB8_empty_timeline.yaml
 create mode 100644 test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/timelines/jqbQYdaqb_vXFlZnjvshP_populated_timeline.yaml
 create mode 100644 test_resources/serialization_baseline/databases/My Database/My Database.yaml
 create mode 100644 test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/Schemaless Table.yaml
 create mode 100644 test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/fields/Some Field.yaml
 create mode 100644 test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/fields/Some Field___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/segments/TNdMrOCMHrQc_UtvCbTC5_my_segment.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/CATEGORIES.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/NAME.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/NAME___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/CHECKINS.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/DATE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/USER_ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/VENUE_ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/ORDERS.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/CREATED_AT.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/DISCOUNT.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/PRODUCT_ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/QUANTITY.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/QUANTITY___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/SUBTOTAL.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/TAX.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/TOTAL.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/USER_ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/PEOPLE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ADDRESS.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/BIRTH_DATE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/CITY.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/CREATED_AT.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/EMAIL.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/LATITUDE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/LONGITUDE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/NAME.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/PASSWORD.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/SOURCE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/SOURCE___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/STATE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/STATE___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ZIP.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/PRODUCTS.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CATEGORY.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CATEGORY___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CREATED_AT.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/EAN.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/EAN___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/PRICE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/RATING.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/TITLE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/TITLE___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/VENDOR.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/VENDOR___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/REVIEWS.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/BODY.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/CREATED_AT.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/PRODUCT_ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/RATING.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/RATING___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/REVIEWER.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/USERS.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/LAST_LOGIN.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/NAME.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/NAME___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/PASSWORD.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/PASSWORD___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/VENUES.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/CATEGORY_ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/ID.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/LATITUDE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/LONGITUDE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/NAME.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/NAME___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/PRICE.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/PRICE___fieldvalues.yaml
 create mode 100644 test_resources/serialization_baseline/databases/test-data (h2)/test-data (h2).yaml
 create mode 100644 test_resources/serialization_baseline/settings.yaml
 create mode 100644 test_resources/serialization_baseline/snippets/WyQWnT23PF-SfbYLROllJ_snippet_2.yaml
 create mode 100644 test_resources/serialization_baseline/snippets/Y6d4QwJgGKw-X1tRh3ir2_shared_collection/hcSr4xgVEd8AyElRRLu9w_snippet_1.yaml

diff --git a/.gitignore b/.gitignore
index 1b9dc708f86..b0e081db48e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -77,6 +77,7 @@ target/checksum.txt
 xcshareddata
 xcuserdata
 dev/src/dev/nocommit/
+dev/serialization_deltas/
 *~
 **/cypress_sample_database.json
 **/cypress_sample_instance_data.json
diff --git a/enterprise/backend/src/metabase_enterprise/serialization/v2/ingest.clj b/enterprise/backend/src/metabase_enterprise/serialization/v2/ingest.clj
index 552eee02b3c..a53e2d1ca9c 100644
--- a/enterprise/backend/src/metabase_enterprise/serialization/v2/ingest.clj
+++ b/enterprise/backend/src/metabase_enterprise/serialization/v2/ingest.clj
@@ -91,11 +91,14 @@
           kw-id        (keyword id)]
       (if (= ["Setting"] (mapv :model abs-path))
         {:serdes/meta abs-path :key kw-id :value (get settings kw-id)}
-        (->> abs-path
-             strip-labels
-             (get @cache)
-             second
-             ingest-file)))))
+        (try
+          (->> abs-path
+               strip-labels
+               (get @cache)
+               second
+               ingest-file)
+          (catch Exception e
+            (throw (ex-info "Unable to ingest file" {:abs-path abs-path} e))))))))
 
 (defn ingest-yaml
   "Creates a new Ingestable on a directory of YAML files, as created by
diff --git a/enterprise/backend/test/metabase_enterprise/serialization/v2/extract_test.clj b/enterprise/backend/test/metabase_enterprise/serialization/v2/extract_test.clj
index cacf052d7b1..6c5d6dd1308 100644
--- a/enterprise/backend/test/metabase_enterprise/serialization/v2/extract_test.clj
+++ b/enterprise/backend/test/metabase_enterprise/serialization/v2/extract_test.clj
@@ -7,6 +7,7 @@
    [java-time.api :as t]
    [metabase-enterprise.serialization.test-util :as ts]
    [metabase-enterprise.serialization.v2.extract :as extract]
+   [metabase-enterprise.serialization.v2.round-trip-test :as round-trip-test]
    [metabase.audit :as audit]
    [metabase.core :as mbc]
    [metabase.models
@@ -32,6 +33,10 @@
    [metabase.util :as u]
    [toucan2.core :as t2]))
 
+(comment
+  ;; Use this spell in your test body to add the given fixtures to the round trip baseline.
+  (round-trip-test/add-to-baseline!))
+
 (defn- by-model [model-name extraction]
   (->> extraction
        (into [])
@@ -330,6 +335,7 @@
                        _
                        {:action_id action-id
                         :dashboard_id other-dash-id}]
+
       (testing "table and database are extracted as [db schema table] triples"
         (let [ser (serdes/extract-one "Card" {} (t2/select-one Card :id c1-id))]
           (is (=? {:serdes/meta                 [{:model "Card" :id c1-eid :label "some_question"}]
diff --git a/enterprise/backend/test/metabase_enterprise/serialization/v2/round_trip_test.clj b/enterprise/backend/test/metabase_enterprise/serialization/v2/round_trip_test.clj
new file mode 100644
index 00000000000..47cb046e95a
--- /dev/null
+++ b/enterprise/backend/test/metabase_enterprise/serialization/v2/round_trip_test.clj
@@ -0,0 +1,197 @@
+;; This main test here is like an inside-out e2e test.
+;;
+;; It starts with an export, which it loads and then exports again.
+;; By comparing the export both before and after, we can find unwanted divergences.
+;; If the tests fail, and the in-memory data diffs are unclear, the relevant YAML files are also written
+;; to dev/serialization_deltas, where you can diff them using the tool of your choice.
+;;
+;; There is also a coverage test, which checks if our fixture is missing any models, or have old cruft.
+;;
+;; If you've been sent here by the coverage test, here are some pointers:
+;;
+;; If there are models missing, go to theirs corresponding tests in [[v2.extract-test]], which you may still
+;; need to create, and add a call to `round-trip-test/add-to-baseline!` immediately inside the database
+;; initialization body; Run each test, then remove the calls again.
+;; This will dump additional files into the baseline fixture folder, which you'll need to commit.
+;; Its important that you first run [[baseline-completeness-test]] though to check that the dump is
+;; consistent with the existing contents.
+;; You may need to do some minor cleanup, things like the database sync status may have changed.
+;; You can do this cleanup by hand, or run `(update-baseline!)` to normalize the discrepancies.
+;;
+;; To remove old cruft simply run `(update-baseline!)` (see Rich comment at the bottom)
+(ns metabase-enterprise.serialization.v2.round-trip-test
+  (:require
+   [clojure.data :as data]
+   [clojure.java.io :as io]
+   [clojure.set :as set]
+   [clojure.string :as str]
+   [clojure.test :refer [deftest is testing]]
+   [clojure.walk :as walk]
+   [metabase-enterprise.serialization.v2.extract :as extract]
+   [metabase-enterprise.serialization.v2.ingest :as ingest]
+   [metabase-enterprise.serialization.v2.load :as load]
+   [metabase-enterprise.serialization.v2.models :as serdes.models]
+   [metabase-enterprise.serialization.v2.storage :as storage]
+   [metabase.models.serialization :as serdes]
+   [metabase.test :as mt]
+   [metabase.util.log :as log]
+   [metabase.util.yaml :as yaml])
+  (:import
+   (java.io File)
+   (java.nio.file Files Path StandardCopyOption)
+   (java.nio.file.attribute FileAttribute)))
+
+(set! *warn-on-reflection* true)
+
+(def ^File source-dir (io/as-file (io/resource "serialization_baseline")))
+
+(def ^File dev-inspect-dir (io/as-file (File. "dev/serialization_deltas")))
+
+(def ignored-fields
+  ;; Is worth considering when adding entries here, whether they shouldn't just be skipped in extraction.
+  #{:cache_field_values_schedule
+    :metadata_sync_schedule
+    :metabase_version})
+
+(defn- strip-base-path [base file]
+  (str/replace-first file (str base File/separator) ""))
+
+(defn fileset
+  "Return a set of all the nested filenames within a directory."
+  [dir]
+  (->> (file-seq dir)
+       (filter #(.isFile ^File %))
+       (map #(.getPath ^File %))
+       (map (partial strip-base-path dir))
+       (into (sorted-set))))
+
+(defn read-yaml
+  "Reads a YAML file and returns Clojure data, with ignored fields removed."
+  [file]
+  (walk/postwalk
+   (fn [x]
+     (if-not (map? x)
+       x
+       (reduce dissoc x ignored-fields)))
+   (yaml/parse-string (slurp file))))
+
+(defn non-empty-diff [diff]
+  (when (some identity diff)
+    diff))
+
+(defn compare-files
+  "Test for differences between two YAML files. Ignores some keys and some key ordering."
+  [file1 file2]
+  (->> (data/diff (read-yaml file1)
+                  (read-yaml file2))
+       (take 2)
+       non-empty-diff))
+
+(defn load-extract!
+  "Perform a round-trip of loading an existing serialization, then serializing it again."
+  [input-dir output-dir]
+  (serdes/with-cache
+    (load/load-metabase! (ingest/ingest-yaml input-dir)))
+  ;; Use a separate cache to make sure there is no cross-contamination.
+  (serdes/with-cache
+    (-> (extract/extract {:include-field-values true})
+        (storage/store! output-dir))))
+
+(defn- delete-dir-contents! [^File dir]
+  (when (and dir (.exists dir))
+    (->> (file-seq dir)
+         (remove #{dir})
+         reverse
+         (run! #(.delete ^File %)))))
+
+(defn- create-files-to-diff!
+  "Leave behind artifacts for closer inspection, e.g. via a CLI diff tool"
+  [ref-file out-file]
+  (let [base-filename (str dev-inspect-dir File/separator (strip-base-path source-dir ref-file))]
+    (let [file-path (File. base-filename)
+          parent    (.getParentFile file-path)]
+      (when parent
+        (Files/createDirectories (.toPath parent) (into-array FileAttribute []))))
+    (spit (str base-filename ".baseline") (slurp ref-file))
+    (spit (str base-filename ".actual") (slurp out-file))))
+
+(defn- temp-dir ^Path [base-path]
+  (Files/createTempDirectory base-path (make-array FileAttribute 0)))
+
+(def source-dir-path (strip-base-path (File. (System/getProperty "user.dir")) source-dir))
+
+(def ^:private internal-model?
+  #{"Schema"})
+
+(defn add-to-baseline!
+  "Use this within v2.extract-test where relevant to add their fixtures to the baseline."
+  []
+  (storage/store! (into [] (extract/extract {:include-field-values true})) source-dir))
+
+;; If this test is failing, read the docstring at the top of this namespace for what to do B-)
+(deftest baseline-completeness-test
+  (let [ingestable (ingest/ingest-yaml source-dir)
+        resources  (ingest/ingest-list ingestable)
+        baselined  (into #{} (map :model) (apply concat resources))
+        necessary? (set serdes.models/exported-models)]
+    (doseq [m serdes.models/exported-models]
+      (is (baselined m) (format "We need to add %s entries to %s" m source-dir-path)))
+    (doseq [b baselined :when (not (internal-model? b))]
+      (is (necessary? b) (format "We can remove %s files from %s" b source-dir-path)))))
+
+(deftest baseline-comparison-test
+  (let [wrote-files? (volatile! false)
+        temp-dir     (temp-dir "serialization_test")
+        output-dir   (.toFile (.resolve temp-dir "serialization_output"))]
+    (try
+      (mt/with-empty-h2-app-db
+        (delete-dir-contents! dev-inspect-dir)
+
+        (load-extract! source-dir output-dir)
+
+        (let [source-files  (fileset source-dir)
+              output-files  (fileset output-dir)
+              missing-files (set/difference source-files output-files)
+              added-files   (set/difference output-files source-files)]
+
+          (testing "No files are missing"
+            (is (empty? missing-files)))
+          (testing "No files have been added"
+            (is (empty? added-files)))
+
+          (testing "File contents\n"
+            (doseq [file source-files
+                    :let [ref-file (io/file source-dir file)
+                          out-file (io/file output-dir file)]
+                    :when (.exists out-file)
+                    :let [delta (compare-files ref-file out-file)]]
+
+              (is (nil? delta)
+                  (str "Content mismatch for file: " (strip-base-path source-dir file)))
+
+             ;; Leave behind files for developers to inspect
+              (when (and (.exists dev-inspect-dir) delta)
+                (vreset! wrote-files? true)
+                (create-files-to-diff! ref-file out-file))))
+
+          (when @wrote-files?
+            (log/warn "Mismatching files have been written to /dev/serialization_deltas"))))
+
+      (finally
+        (delete-dir-contents! output-dir)))))
+
+(defn- update-baseline!
+  "Run this if you've examined the output of [[directory-comparison-test]], and are happy to accept the changes."
+  []
+  (let [temp-dir   (temp-dir "serialization_test")
+        output-dir (.toFile (.resolve temp-dir "serialization_output"))]
+    (mt/with-empty-h2-app-db
+      (load-extract! source-dir output-dir))
+    (delete-dir-contents! source-dir)
+    (Files/move (.toPath output-dir)
+                (.toPath source-dir)
+                (into-array [StandardCopyOption/REPLACE_EXISTING]))))
+
+(comment
+  (delete-dir-contents! source-dir)
+  (update-baseline!))
diff --git a/test_resources/serialization_baseline/actions/hYWoE-l1BpOqmvYedqP2g_my_action.yaml b/test_resources/serialization_baseline/actions/hYWoE-l1BpOqmvYedqP2g_my_action.yaml
new file mode 100644
index 00000000000..ebe13f3d81e
--- /dev/null
+++ b/test_resources/serialization_baseline/actions/hYWoE-l1BpOqmvYedqP2g_my_action.yaml
@@ -0,0 +1,21 @@
+archived: false
+created_at: '2024-08-28T14:29:47.386823Z'
+creator_id: ann@heart.band
+description: null
+entity_id: hYWoE-l1BpOqmvYedqP2g
+http: []
+implicit:
+- kind: row/update
+made_public_by_id: crowberto@metabase.com
+model_id: aqpA3mIKUnfzYUlwjuGwT
+name: My Action
+parameter_mappings: []
+parameters: []
+public_uuid: 107f3af5-e51d-49aa-b332-97b1d61e52ad
+query: []
+type: implicit
+visualization_settings: null
+serdes/meta:
+- id: hYWoE-l1BpOqmvYedqP2g
+  label: my_action
+  model: Action
diff --git a/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/M-Q4pcV0qkiyJ0kiSWECl_some_collection.yaml b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/M-Q4pcV0qkiyJ0kiSWECl_some_collection.yaml
new file mode 100644
index 00000000000..85c6e6bbede
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/M-Q4pcV0qkiyJ0kiSWECl_some_collection.yaml
@@ -0,0 +1,18 @@
+name: Some Collection
+description: null
+entity_id: M-Q4pcV0qkiyJ0kiSWECl
+slug: some_collection
+created_at: '2024-08-28T09:46:18.671622Z'
+archived: false
+type: null
+parent_id: null
+personal_owner_id: null
+namespace: null
+authority_level: null
+serdes/meta:
+- id: M-Q4pcV0qkiyJ0kiSWECl
+  label: some_collection
+  model: Collection
+archive_operation_id: null
+archived_directly: null
+is_sample: false
diff --git a/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/OMuZ0wHe2O5Z_59-cLmn4_series_question_a.yaml b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/OMuZ0wHe2O5Z_59-cLmn4_series_question_a.yaml
new file mode 100644
index 00000000000..dafc89a5d18
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/OMuZ0wHe2O5Z_59-cLmn4_series_question_a.yaml
@@ -0,0 +1,31 @@
+name: Series Question A
+description: null
+entity_id: OMuZ0wHe2O5Z_59-cLmn4
+created_at: '2024-08-28T09:46:24.719281Z'
+creator_id: rasta@metabase.com
+display: table
+archived: false
+collection_id: M-Q4pcV0qkiyJ0kiSWECl
+collection_preview: true
+collection_position: null
+query_type: null
+database_id: test-data (h2)
+table_id: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+parameters: []
+parameter_mappings: []
+dataset_query: {}
+result_metadata: null
+visualization_settings:
+  column_settings: null
+serdes/meta:
+- id: OMuZ0wHe2O5Z_59-cLmn4
+  label: series_question_a
+  model: Card
+archived_directly: false
+metabase_version: v1.48.1-SNAPSHOT (53cf083)
+source_card_id: null
+type: question
diff --git a/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/XsxiHuzwlGIFNq245HdZC_series_question_b.yaml b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/XsxiHuzwlGIFNq245HdZC_series_question_b.yaml
new file mode 100644
index 00000000000..298bffb435d
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/XsxiHuzwlGIFNq245HdZC_series_question_b.yaml
@@ -0,0 +1,31 @@
+name: Series Question B
+description: null
+entity_id: XsxiHuzwlGIFNq245HdZC
+created_at: '2024-08-28T09:46:24.72343Z'
+creator_id: rasta@metabase.com
+display: table
+archived: false
+collection_id: M-Q4pcV0qkiyJ0kiSWECl
+collection_preview: true
+collection_position: null
+query_type: null
+database_id: test-data (h2)
+table_id: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+parameters: []
+parameter_mappings: []
+dataset_query: {}
+result_metadata: null
+visualization_settings:
+  column_settings: null
+serdes/meta:
+- id: XsxiHuzwlGIFNq245HdZC
+  label: series_question_b
+  model: Card
+archived_directly: false
+metabase_version: v1.48.1-SNAPSHOT (53cf083)
+source_card_id: null
+type: question
diff --git a/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/f1C68pznmrpN1F5xFDj6d_some_question.yaml b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/f1C68pznmrpN1F5xFDj6d_some_question.yaml
new file mode 100644
index 00000000000..917b308a4a2
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/cards/f1C68pznmrpN1F5xFDj6d_some_question.yaml
@@ -0,0 +1,31 @@
+name: Some Question
+description: null
+entity_id: f1C68pznmrpN1F5xFDj6d
+created_at: '2024-08-28T09:46:24.692002Z'
+creator_id: rasta@metabase.com
+display: table
+archived: false
+collection_id: M-Q4pcV0qkiyJ0kiSWECl
+collection_preview: true
+collection_position: null
+query_type: null
+database_id: test-data (h2)
+table_id: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+parameters: []
+parameter_mappings: []
+dataset_query: {}
+result_metadata: null
+visualization_settings:
+  column_settings: null
+serdes/meta:
+- id: f1C68pznmrpN1F5xFDj6d
+  label: some_question
+  model: Card
+archived_directly: false
+metabase_version: v1.48.1-SNAPSHOT (53cf083)
+source_card_id: null
+type: question
diff --git a/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/dashboards/Q_jD-f-9clKLFZ2TfUG2h_shared_dashboard.yaml b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/dashboards/Q_jD-f-9clKLFZ2TfUG2h_shared_dashboard.yaml
new file mode 100644
index 00000000000..44afc8f3f75
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/M-Q4pcV0qkiyJ0kiSWECl_some_collection/dashboards/Q_jD-f-9clKLFZ2TfUG2h_shared_dashboard.yaml
@@ -0,0 +1,67 @@
+name: Shared Dashboard
+description: null
+entity_id: Q_jD-f-9clKLFZ2TfUG2h
+created_at: '2024-08-28T09:46:24.726993Z'
+creator_id: rasta@metabase.com
+archived: false
+collection_id: M-Q4pcV0qkiyJ0kiSWECl
+auto_apply_filters: true
+collection_position: null
+position: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+show_in_getting_started: false
+caveats: null
+points_of_interest: null
+parameters: []
+serdes/meta:
+- id: Q_jD-f-9clKLFZ2TfUG2h
+  label: shared_dashboard
+  model: Dashboard
+archived_directly: false
+dashcards:
+- entity_id: UkpFcfUZMZt9ehChwnrAO
+  card_id: f1C68pznmrpN1F5xFDj6d
+  created_at: '2024-08-28T09:46:24.733016Z'
+  row: 0
+  col: 0
+  size_x: 4
+  size_y: 4
+  action_id: null
+  dashboard_tab_id: null
+  parameter_mappings: []
+  series:
+  - card_id: OMuZ0wHe2O5Z_59-cLmn4
+    position: 0
+  - card_id: XsxiHuzwlGIFNq245HdZC
+    position: 1
+  visualization_settings:
+    column_settings: null
+  serdes/meta:
+  - id: Q_jD-f-9clKLFZ2TfUG2h
+    model: Dashboard
+  - id: UkpFcfUZMZt9ehChwnrAO
+    model: DashboardCard
+- entity_id: AlYMOYAhCXhr1VIiH5umt
+  card_id: OMuZ0wHe2O5Z_59-cLmn4
+  created_at: '2024-08-28T09:46:24.737505Z'
+  row: 0
+  col: 0
+  size_x: 4
+  size_y: 4
+  action_id: null
+  dashboard_tab_id: null
+  parameter_mappings: []
+  series: []
+  visualization_settings:
+    column_settings: null
+  serdes/meta:
+  - id: Q_jD-f-9clKLFZ2TfUG2h
+    model: Dashboard
+  - id: AlYMOYAhCXhr1VIiH5umt
+    model: DashboardCard
+initially_published_at: null
+tabs: []
+width: fixed
diff --git a/test_resources/serialization_baseline/collections/Y6d4QwJgGKw-X1tRh3ir2_shared_collection/Y6d4QwJgGKw-X1tRh3ir2_shared_collection.yaml b/test_resources/serialization_baseline/collections/Y6d4QwJgGKw-X1tRh3ir2_shared_collection/Y6d4QwJgGKw-X1tRh3ir2_shared_collection.yaml
new file mode 100644
index 00000000000..07c0241c96f
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/Y6d4QwJgGKw-X1tRh3ir2_shared_collection/Y6d4QwJgGKw-X1tRh3ir2_shared_collection.yaml
@@ -0,0 +1,18 @@
+name: Shared Collection
+description: null
+entity_id: Y6d4QwJgGKw-X1tRh3ir2
+slug: shared_collection
+created_at: '2024-08-28T14:36:15.259947Z'
+archived: false
+type: null
+parent_id: null
+personal_owner_id: null
+namespace: snippets
+authority_level: null
+serdes/meta:
+- id: Y6d4QwJgGKw-X1tRh3ir2
+  label: shared_collection
+  model: Collection
+archive_operation_id: null
+archived_directly: null
+is_sample: false
diff --git a/test_resources/serialization_baseline/collections/cards/aqpA3mIKUnfzYUlwjuGwT_source_question.yaml b/test_resources/serialization_baseline/collections/cards/aqpA3mIKUnfzYUlwjuGwT_source_question.yaml
new file mode 100644
index 00000000000..cfc7584cc00
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/cards/aqpA3mIKUnfzYUlwjuGwT_source_question.yaml
@@ -0,0 +1,35 @@
+name: Source question
+description: null
+entity_id: aqpA3mIKUnfzYUlwjuGwT
+created_at: '2024-08-28T14:29:47.378643Z'
+creator_id: ann@heart.band
+display: table
+archived: false
+collection_id: null
+collection_preview: true
+collection_position: null
+query_type: native
+database_id: My Database
+table_id: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+parameters: []
+parameter_mappings: []
+dataset_query:
+  database: My Database
+  native:
+    native: select 1
+  type: native
+result_metadata: null
+visualization_settings:
+  column_settings: null
+serdes/meta:
+- id: aqpA3mIKUnfzYUlwjuGwT
+  label: source_question
+  model: Card
+archived_directly: false
+metabase_version: v1.48.1-SNAPSHOT (53cf083)
+source_card_id: null
+type: model
diff --git a/test_resources/serialization_baseline/collections/cards/ze7O4-8qRFH1v2Ho2apT1_root_card.yaml b/test_resources/serialization_baseline/collections/cards/ze7O4-8qRFH1v2Ho2apT1_root_card.yaml
new file mode 100644
index 00000000000..a632bd68946
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/cards/ze7O4-8qRFH1v2Ho2apT1_root_card.yaml
@@ -0,0 +1,31 @@
+name: root card
+description: null
+entity_id: ze7O4-8qRFH1v2Ho2apT1
+created_at: '2024-08-28T12:50:14.404226Z'
+creator_id: rasta@metabase.com
+display: table
+archived: false
+collection_id: null
+collection_preview: true
+collection_position: null
+query_type: null
+database_id: test-data (h2)
+table_id: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+parameters: []
+parameter_mappings: []
+dataset_query: {}
+result_metadata: null
+visualization_settings:
+  column_settings: null
+serdes/meta:
+- id: ze7O4-8qRFH1v2Ho2apT1
+  label: root_card
+  model: Card
+archived_directly: false
+metabase_version: v1.48.1-SNAPSHOT (53cf083)
+source_card_id: null
+type: question
diff --git a/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/cards/m98z04nYGCF5n7cvOTfbj_grandparent_card.yaml b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/cards/m98z04nYGCF5n7cvOTfbj_grandparent_card.yaml
new file mode 100644
index 00000000000..583eb87d143
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/cards/m98z04nYGCF5n7cvOTfbj_grandparent_card.yaml
@@ -0,0 +1,31 @@
+name: grandparent card
+description: null
+entity_id: m98z04nYGCF5n7cvOTfbj
+created_at: '2024-08-28T12:50:14.408123Z'
+creator_id: rasta@metabase.com
+display: table
+archived: false
+collection_id: olgKH56lYOjakuobH4zPz
+collection_preview: true
+collection_position: null
+query_type: null
+database_id: test-data (h2)
+table_id: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+parameters: []
+parameter_mappings: []
+dataset_query: {}
+result_metadata: null
+visualization_settings:
+  column_settings: null
+serdes/meta:
+- id: m98z04nYGCF5n7cvOTfbj
+  label: grandparent_card
+  model: Card
+archived_directly: false
+metabase_version: v1.48.1-SNAPSHOT (53cf083)
+source_card_id: null
+type: question
diff --git a/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/olgKH56lYOjakuobH4zPz_grandparent_collection.yaml b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/olgKH56lYOjakuobH4zPz_grandparent_collection.yaml
new file mode 100644
index 00000000000..de5492265c7
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/olgKH56lYOjakuobH4zPz_grandparent_collection.yaml
@@ -0,0 +1,18 @@
+name: Grandparent Collection
+description: null
+entity_id: olgKH56lYOjakuobH4zPz
+slug: grandparent_collection
+created_at: '2024-08-28T12:50:13.265991Z'
+archived: false
+type: null
+parent_id: null
+personal_owner_id: null
+namespace: null
+authority_level: null
+serdes/meta:
+- id: olgKH56lYOjakuobH4zPz
+  label: grandparent_collection
+  model: Collection
+archive_operation_id: null
+archived_directly: null
+is_sample: false
diff --git a/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/cards/IBZSKSt2-QOMviIaGcQE6_parent_card.yaml b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/cards/IBZSKSt2-QOMviIaGcQE6_parent_card.yaml
new file mode 100644
index 00000000000..f7e4a36b193
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/cards/IBZSKSt2-QOMviIaGcQE6_parent_card.yaml
@@ -0,0 +1,31 @@
+name: parent card
+description: null
+entity_id: IBZSKSt2-QOMviIaGcQE6
+created_at: '2024-08-28T12:50:14.411803Z'
+creator_id: rasta@metabase.com
+display: table
+archived: false
+collection_id: qPZhJMPNGkfd3sq8jWiZS
+collection_preview: true
+collection_position: null
+query_type: null
+database_id: test-data (h2)
+table_id: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+parameters: []
+parameter_mappings: []
+dataset_query: {}
+result_metadata: null
+visualization_settings:
+  column_settings: null
+serdes/meta:
+- id: IBZSKSt2-QOMviIaGcQE6
+  label: parent_card
+  model: Card
+archived_directly: false
+metabase_version: v1.48.1-SNAPSHOT (53cf083)
+source_card_id: null
+type: question
diff --git a/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/dashboards/JT3BKJwNCfhUHnd9oqQ_1_parent_dash.yaml b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/dashboards/JT3BKJwNCfhUHnd9oqQ_1_parent_dash.yaml
new file mode 100644
index 00000000000..0b421347112
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/dashboards/JT3BKJwNCfhUHnd9oqQ_1_parent_dash.yaml
@@ -0,0 +1,27 @@
+name: parent dash
+description: null
+entity_id: JT3BKJwNCfhUHnd9oqQ_1
+created_at: '2024-08-28T12:50:14.419489Z'
+creator_id: rasta@metabase.com
+archived: false
+collection_id: qPZhJMPNGkfd3sq8jWiZS
+auto_apply_filters: true
+collection_position: null
+position: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+show_in_getting_started: false
+caveats: null
+points_of_interest: null
+parameters: []
+serdes/meta:
+- id: JT3BKJwNCfhUHnd9oqQ_1
+  label: parent_dash
+  model: Dashboard
+archived_directly: false
+dashcards: []
+initially_published_at: null
+tabs: []
+width: fixed
diff --git a/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/fJVsXIDzzipSZsaro9Pvu_child_collection/cards/Ra0JVOCXKTxH5TPbwZm0x_child_card.yaml b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/fJVsXIDzzipSZsaro9Pvu_child_collection/cards/Ra0JVOCXKTxH5TPbwZm0x_child_card.yaml
new file mode 100644
index 00000000000..356aa77468f
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/fJVsXIDzzipSZsaro9Pvu_child_collection/cards/Ra0JVOCXKTxH5TPbwZm0x_child_card.yaml
@@ -0,0 +1,31 @@
+name: child card
+description: null
+entity_id: Ra0JVOCXKTxH5TPbwZm0x
+created_at: '2024-08-28T12:50:14.415343Z'
+creator_id: rasta@metabase.com
+display: table
+archived: false
+collection_id: fJVsXIDzzipSZsaro9Pvu
+collection_preview: true
+collection_position: null
+query_type: null
+database_id: test-data (h2)
+table_id: null
+enable_embedding: false
+embedding_params: null
+made_public_by_id: null
+public_uuid: null
+parameters: []
+parameter_mappings: []
+dataset_query: {}
+result_metadata: null
+visualization_settings:
+  column_settings: null
+serdes/meta:
+- id: Ra0JVOCXKTxH5TPbwZm0x
+  label: child_card
+  model: Card
+archived_directly: false
+metabase_version: v1.48.1-SNAPSHOT (53cf083)
+source_card_id: null
+type: question
diff --git a/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/fJVsXIDzzipSZsaro9Pvu_child_collection/fJVsXIDzzipSZsaro9Pvu_child_collection.yaml b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/fJVsXIDzzipSZsaro9Pvu_child_collection/fJVsXIDzzipSZsaro9Pvu_child_collection.yaml
new file mode 100644
index 00000000000..711fd2f7bdf
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/fJVsXIDzzipSZsaro9Pvu_child_collection/fJVsXIDzzipSZsaro9Pvu_child_collection.yaml
@@ -0,0 +1,18 @@
+name: Child Collection
+description: null
+entity_id: fJVsXIDzzipSZsaro9Pvu
+slug: child_collection
+created_at: '2024-08-28T12:50:13.31301Z'
+archived: false
+type: null
+parent_id: qPZhJMPNGkfd3sq8jWiZS
+personal_owner_id: null
+namespace: null
+authority_level: null
+serdes/meta:
+- id: fJVsXIDzzipSZsaro9Pvu
+  label: child_collection
+  model: Collection
+archive_operation_id: null
+archived_directly: null
+is_sample: false
diff --git a/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection.yaml b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection.yaml
new file mode 100644
index 00000000000..db7b6fdbe77
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/olgKH56lYOjakuobH4zPz_grandparent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection/qPZhJMPNGkfd3sq8jWiZS_parent_collection.yaml
@@ -0,0 +1,18 @@
+name: Parent Collection
+description: null
+entity_id: qPZhJMPNGkfd3sq8jWiZS
+slug: parent_collection
+created_at: '2024-08-28T12:50:13.270754Z'
+archived: false
+type: null
+parent_id: olgKH56lYOjakuobH4zPz
+personal_owner_id: null
+namespace: null
+authority_level: null
+serdes/meta:
+- id: qPZhJMPNGkfd3sq8jWiZS
+  label: parent_collection
+  model: Collection
+archive_operation_id: null
+archived_directly: null
+is_sample: false
diff --git a/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/p8Zq2ud7JlSoSBXdJWIaW_shared_collection.yaml b/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/p8Zq2ud7JlSoSBXdJWIaW_shared_collection.yaml
new file mode 100644
index 00000000000..8a38b306051
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/p8Zq2ud7JlSoSBXdJWIaW_shared_collection.yaml
@@ -0,0 +1,18 @@
+name: Shared Collection
+description: null
+entity_id: p8Zq2ud7JlSoSBXdJWIaW
+slug: shared_collection
+created_at: '2024-08-28T14:31:56.872211Z'
+archived: false
+type: null
+parent_id: null
+personal_owner_id: null
+namespace: null
+authority_level: null
+serdes/meta:
+- id: p8Zq2ud7JlSoSBXdJWIaW
+  label: shared_collection
+  model: Collection
+archive_operation_id: null
+archived_directly: null
+is_sample: false
diff --git a/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/timelines/PsHfXHhETFiTIRQODuYB8_empty_timeline.yaml b/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/timelines/PsHfXHhETFiTIRQODuYB8_empty_timeline.yaml
new file mode 100644
index 00000000000..e299c77474b
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/timelines/PsHfXHhETFiTIRQODuYB8_empty_timeline.yaml
@@ -0,0 +1,14 @@
+archived: false
+collection_id: p8Zq2ud7JlSoSBXdJWIaW
+created_at: '2024-08-28T14:31:56.93662Z'
+creator_id: ann@heart.band
+default: false
+description: null
+entity_id: PsHfXHhETFiTIRQODuYB8
+events: []
+icon: star
+name: Empty Timeline
+serdes/meta:
+- id: PsHfXHhETFiTIRQODuYB8
+  label: empty_timeline
+  model: Timeline
diff --git a/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/timelines/jqbQYdaqb_vXFlZnjvshP_populated_timeline.yaml b/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/timelines/jqbQYdaqb_vXFlZnjvshP_populated_timeline.yaml
new file mode 100644
index 00000000000..008799143be
--- /dev/null
+++ b/test_resources/serialization_baseline/collections/p8Zq2ud7JlSoSBXdJWIaW_shared_collection/timelines/jqbQYdaqb_vXFlZnjvshP_populated_timeline.yaml
@@ -0,0 +1,27 @@
+archived: false
+collection_id: p8Zq2ud7JlSoSBXdJWIaW
+created_at: '2024-08-28T14:31:56.940526Z'
+creator_id: ann@heart.band
+default: false
+description: null
+entity_id: jqbQYdaqb_vXFlZnjvshP
+events:
+- archived: false
+  created_at: '2024-08-28T14:31:56.942571Z'
+  creator_id: ann@heart.band
+  description: null
+  icon: star
+  name: First Event
+  time_matters: true
+  timestamp: '2020-04-11T00:00:00Z'
+  timezone: US/Pacific
+  serdes/meta:
+  - id: null
+    label: first_event
+    model: TimelineEvent
+icon: star
+name: Populated Timeline
+serdes/meta:
+- id: jqbQYdaqb_vXFlZnjvshP
+  label: populated_timeline
+  model: Timeline
diff --git a/test_resources/serialization_baseline/databases/My Database/My Database.yaml b/test_resources/serialization_baseline/databases/My Database/My Database.yaml
new file mode 100644
index 00000000000..19ecdd36d47
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/My Database/My Database.yaml	
@@ -0,0 +1,26 @@
+name: My Database
+description: null
+engine: h2
+dbms_version: null
+created_at: '2024-08-28T14:38:42.753121Z'
+creator_id: null
+timezone: null
+auto_run_queries: true
+refingerprint: null
+is_full_sync: true
+is_on_demand: false
+is_sample: false
+is_audit: false
+metadata_sync_schedule: 0 17 * * * ? *
+cache_field_values_schedule: 0 0 18 * * ? *
+settings:
+  database-source-dataset-name: test-data
+caveats: null
+points_of_interest: null
+initial_sync_status: complete
+serdes/meta:
+- id: My Database
+  model: Database
+uploads_enabled: false
+uploads_schema_name: null
+uploads_table_prefix: null
diff --git a/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/Schemaless Table.yaml b/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/Schemaless Table.yaml
new file mode 100644
index 00000000000..db3136cce55
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/Schemaless Table.yaml	
@@ -0,0 +1,21 @@
+name: Schemaless Table
+display_name: Schemaless Table
+description: null
+created_at: '2024-08-28T14:38:43.319867Z'
+db_id: My Database
+schema: null
+entity_type: null
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: My Database
+  model: Database
+- id: Schemaless Table
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/fields/Some Field.yaml b/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/fields/Some Field.yaml
new file mode 100644
index 00000000000..10feab82e6b
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/fields/Some Field.yaml	
@@ -0,0 +1,39 @@
+name: Some Field
+display_name: Some Field
+description: null
+created_at: '2024-08-28T14:38:43.323162Z'
+active: true
+visibility_type: normal
+table_id:
+- My Database
+- null
+- Schemaless Table
+database_type: VARCHAR
+base_type: type/Text
+effective_type: null
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: My Database
+  model: Database
+- id: Schemaless Table
+  model: Table
+- id: Some Field
+  model: Field
+database_indexed: null
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/fields/Some Field___fieldvalues.yaml b/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/fields/Some Field___fieldvalues.yaml
new file mode 100644
index 00000000000..1b3b7aa7550
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/fields/Some Field___fieldvalues.yaml	
@@ -0,0 +1,35 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- Artisan
+- Asian
+- BBQ
+- Bakery
+- Bar
+- Brewery
+- Burger
+- Coffee Shop
+- Diner
+- Indian
+- Italian
+- Japanese
+- Mexican
+- Middle Eastern
+- Pizza
+- Seafood
+- Steakhouse
+- Tea Room
+- Winery
+serdes/meta:
+- id: My Database
+  model: Database
+- id: Schemaless Table
+  model: Table
+- id: Some Field
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/segments/TNdMrOCMHrQc_UtvCbTC5_my_segment.yaml b/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/segments/TNdMrOCMHrQc_UtvCbTC5_my_segment.yaml
new file mode 100644
index 00000000000..a75eb6cc6f1
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/My Database/tables/Schemaless Table/segments/TNdMrOCMHrQc_UtvCbTC5_my_segment.yaml	
@@ -0,0 +1,33 @@
+archived: false
+caveats: null
+created_at: '2024-08-28T14:28:03.451106Z'
+creator_id: ann@heart.band
+definition:
+  aggregation:
+  - - count
+  filter:
+  - <
+  - - field
+    - - My Database
+      - null
+      - Schemaless Table
+      - Some Field
+    - null
+  - 18
+  source-table:
+  - My Database
+  - null
+  - Schemaless Table
+description: Lookin' for a blueberry
+entity_id: TNdMrOCMHrQc_UtvCbTC5
+name: My Segment
+points_of_interest: null
+show_in_getting_started: false
+table_id:
+- My Database
+- null
+- Schemaless Table
+serdes/meta:
+- id: TNdMrOCMHrQc_UtvCbTC5
+  label: my_segment
+  model: Segment
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/CATEGORIES.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/CATEGORIES.yaml
new file mode 100644
index 00000000000..a96ba52f904
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/CATEGORIES.yaml	
@@ -0,0 +1,23 @@
+name: CATEGORIES
+display_name: Categories
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+db_id: test-data (h2)
+schema: PUBLIC
+entity_type: entity/GenericTable
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CATEGORIES
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/ID.yaml
new file mode 100644
index 00000000000..2af6d1f1a34
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/ID.yaml	
@@ -0,0 +1,41 @@
+name: ID
+display_name: ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- CATEGORIES
+database_type: BIGINT
+base_type: type/BigInteger
+effective_type: type/BigInteger
+semantic_type: type/PK
+database_is_auto_increment: true
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 0
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CATEGORIES
+  model: Table
+- id: ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/NAME.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/NAME.yaml
new file mode 100644
index 00000000000..c03a288afca
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/NAME.yaml	
@@ -0,0 +1,41 @@
+name: NAME
+display_name: Name
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- CATEGORIES
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Name
+database_is_auto_increment: false
+database_required: true
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 1
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CATEGORIES
+  model: Table
+- id: NAME
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/NAME___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/NAME___fieldvalues.yaml
new file mode 100644
index 00000000000..0f9c7cab067
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CATEGORIES/fields/NAME___fieldvalues.yaml	
@@ -0,0 +1,93 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- African
+- American
+- Artisan
+- Asian
+- BBQ
+- Bakery
+- Bar
+- Beer Garden
+- Breakfast / Brunch
+- Brewery
+- Burger
+- Café
+- Café Sweets
+- Caribbean
+- Chinese
+- Coffee Shop
+- Comedy Club
+- Deli
+- Dim Sum
+- Diner
+- Donut Shop
+- English
+- Entertainment
+- Fashion
+- Fast Food
+- Food Truck
+- French
+- Gay Bar
+- German
+- Gluten-free
+- Greek
+- Grocery
+- Health & Beauty
+- Home
+- Hostel
+- Hot Dog
+- Hotel
+- Indian
+- Italian
+- Japanese
+- Jewish
+- Juice Bar
+- Karaoke
+- Korean
+- Landmark
+- Late Dining
+- Latin American
+- Lounge
+- Mediterannian
+- Mexican
+- Middle Eastern
+- Molecular Gastronomy
+- Moroccan
+- Museum
+- Nightclub
+- Nightlife
+- Outdoors
+- Pizza
+- Ramen
+- Restaurant General
+- Scandinavian
+- Seafood
+- South Pacific
+- Southern
+- Spanish
+- Stadium
+- Steakhouse
+- Strip Club
+- Tapas
+- Tea Room
+- Thai
+- Unknown
+- Vegetarian / Vegan
+- Wine Bar
+- Winery
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CATEGORIES
+  model: Table
+- id: NAME
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/CHECKINS.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/CHECKINS.yaml
new file mode 100644
index 00000000000..d9c9fb3b621
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/CHECKINS.yaml	
@@ -0,0 +1,23 @@
+name: CHECKINS
+display_name: Checkins
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+db_id: test-data (h2)
+schema: PUBLIC
+entity_type: entity/EventTable
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CHECKINS
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/DATE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/DATE.yaml
new file mode 100644
index 00000000000..4ce638a5536
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/DATE.yaml	
@@ -0,0 +1,41 @@
+name: DATE
+display_name: Date
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- CHECKINS
+database_type: DATE
+base_type: type/Date
+effective_type: type/Date
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 1
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CHECKINS
+  model: Table
+- id: DATE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/ID.yaml
new file mode 100644
index 00000000000..73c2932d88d
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/ID.yaml	
@@ -0,0 +1,41 @@
+name: ID
+display_name: ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- CHECKINS
+database_type: BIGINT
+base_type: type/BigInteger
+effective_type: type/BigInteger
+semantic_type: type/PK
+database_is_auto_increment: true
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 0
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CHECKINS
+  model: Table
+- id: ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/USER_ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/USER_ID.yaml
new file mode 100644
index 00000000000..997e86fe98c
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/USER_ID.yaml	
@@ -0,0 +1,45 @@
+name: USER_ID
+display_name: User ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- CHECKINS
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/FK
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id:
+- test-data (h2)
+- PUBLIC
+- USERS
+- ID
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 2
+custom_position: 0
+database_position: 2
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CHECKINS
+  model: Table
+- id: USER_ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/VENUE_ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/VENUE_ID.yaml
new file mode 100644
index 00000000000..e5bac3f98df
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/CHECKINS/fields/VENUE_ID.yaml	
@@ -0,0 +1,45 @@
+name: VENUE_ID
+display_name: Venue ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- CHECKINS
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/FK
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id:
+- test-data (h2)
+- PUBLIC
+- VENUES
+- ID
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 3
+custom_position: 0
+database_position: 3
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: CHECKINS
+  model: Table
+- id: VENUE_ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/ORDERS.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/ORDERS.yaml
new file mode 100644
index 00000000000..5608a60211c
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/ORDERS.yaml	
@@ -0,0 +1,23 @@
+name: ORDERS
+display_name: Orders
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+db_id: test-data (h2)
+schema: PUBLIC
+entity_type: entity/TransactionTable
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/CREATED_AT.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/CREATED_AT.yaml
new file mode 100644
index 00000000000..8e931f4a7d9
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/CREATED_AT.yaml	
@@ -0,0 +1,41 @@
+name: CREATED_AT
+display_name: Created At
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: TIMESTAMP WITH TIME ZONE
+base_type: type/DateTimeWithLocalTZ
+effective_type: type/DateTimeWithLocalTZ
+semantic_type: type/CreationTimestamp
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 7
+custom_position: 0
+database_position: 7
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: CREATED_AT
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/DISCOUNT.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/DISCOUNT.yaml
new file mode 100644
index 00000000000..a675db2ce15
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/DISCOUNT.yaml	
@@ -0,0 +1,41 @@
+name: DISCOUNT
+display_name: Discount
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: type/Discount
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 6
+custom_position: 0
+database_position: 6
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: DISCOUNT
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/ID.yaml
new file mode 100644
index 00000000000..e46b8640bfa
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/ID.yaml	
@@ -0,0 +1,41 @@
+name: ID
+display_name: ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: BIGINT
+base_type: type/BigInteger
+effective_type: type/BigInteger
+semantic_type: type/PK
+database_is_auto_increment: true
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 0
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/PRODUCT_ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/PRODUCT_ID.yaml
new file mode 100644
index 00000000000..a4aed186237
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/PRODUCT_ID.yaml	
@@ -0,0 +1,45 @@
+name: PRODUCT_ID
+display_name: Product ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/FK
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+- ID
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 2
+custom_position: 0
+database_position: 2
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: PRODUCT_ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/QUANTITY.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/QUANTITY.yaml
new file mode 100644
index 00000000000..a3389f1d882
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/QUANTITY.yaml	
@@ -0,0 +1,41 @@
+name: QUANTITY
+display_name: Quantity
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/Quantity
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 8
+custom_position: 0
+database_position: 8
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: QUANTITY
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/QUANTITY___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/QUANTITY___fieldvalues.yaml
new file mode 100644
index 00000000000..71a2f6eb507
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/QUANTITY___fieldvalues.yaml	
@@ -0,0 +1,95 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- 0
+- 1
+- 2
+- 3
+- 4
+- 5
+- 6
+- 7
+- 8
+- 9
+- 10
+- 11
+- 12
+- 13
+- 14
+- 15
+- 16
+- 17
+- 18
+- 19
+- 20
+- 21
+- 22
+- 23
+- 24
+- 25
+- 26
+- 27
+- 28
+- 29
+- 30
+- 31
+- 32
+- 33
+- 34
+- 35
+- 36
+- 37
+- 38
+- 39
+- 40
+- 41
+- 42
+- 43
+- 44
+- 45
+- 46
+- 47
+- 48
+- 49
+- 50
+- 51
+- 52
+- 53
+- 54
+- 55
+- 56
+- 57
+- 58
+- 59
+- 60
+- 61
+- 63
+- 65
+- 67
+- 68
+- 69
+- 70
+- 71
+- 72
+- 73
+- 75
+- 78
+- 82
+- 83
+- 88
+- 100
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: QUANTITY
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/SUBTOTAL.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/SUBTOTAL.yaml
new file mode 100644
index 00000000000..ca1b55e5b1a
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/SUBTOTAL.yaml	
@@ -0,0 +1,41 @@
+name: SUBTOTAL
+display_name: Subtotal
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 3
+custom_position: 0
+database_position: 3
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: SUBTOTAL
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/TAX.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/TAX.yaml
new file mode 100644
index 00000000000..be5240cc8b5
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/TAX.yaml	
@@ -0,0 +1,41 @@
+name: TAX
+display_name: Tax
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 4
+custom_position: 0
+database_position: 4
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: TAX
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/TOTAL.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/TOTAL.yaml
new file mode 100644
index 00000000000..e7c8392665e
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/TOTAL.yaml	
@@ -0,0 +1,41 @@
+name: TOTAL
+display_name: Total
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 5
+custom_position: 0
+database_position: 5
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: TOTAL
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/USER_ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/USER_ID.yaml
new file mode 100644
index 00000000000..73e40abaa04
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/ORDERS/fields/USER_ID.yaml	
@@ -0,0 +1,45 @@
+name: USER_ID
+display_name: User ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- ORDERS
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/FK
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+- ID
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 1
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: ORDERS
+  model: Table
+- id: USER_ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/PEOPLE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/PEOPLE.yaml
new file mode 100644
index 00000000000..390780b02cd
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/PEOPLE.yaml	
@@ -0,0 +1,23 @@
+name: PEOPLE
+display_name: People
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+db_id: test-data (h2)
+schema: PUBLIC
+entity_type: entity/UserTable
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ADDRESS.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ADDRESS.yaml
new file mode 100644
index 00000000000..16442677297
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ADDRESS.yaml	
@@ -0,0 +1,41 @@
+name: ADDRESS
+display_name: Address
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 1
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: ADDRESS
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/BIRTH_DATE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/BIRTH_DATE.yaml
new file mode 100644
index 00000000000..450ea29e406
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/BIRTH_DATE.yaml	
@@ -0,0 +1,41 @@
+name: BIRTH_DATE
+display_name: Birth Date
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: DATE
+base_type: type/Date
+effective_type: type/Date
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 9
+custom_position: 0
+database_position: 9
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: BIRTH_DATE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/CITY.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/CITY.yaml
new file mode 100644
index 00000000000..99ffea1f110
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/CITY.yaml	
@@ -0,0 +1,41 @@
+name: CITY
+display_name: City
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/City
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 5
+custom_position: 0
+database_position: 5
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: CITY
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/CREATED_AT.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/CREATED_AT.yaml
new file mode 100644
index 00000000000..b9773a41acb
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/CREATED_AT.yaml	
@@ -0,0 +1,41 @@
+name: CREATED_AT
+display_name: Created At
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: TIMESTAMP WITH TIME ZONE
+base_type: type/DateTimeWithLocalTZ
+effective_type: type/DateTimeWithLocalTZ
+semantic_type: type/CreationTimestamp
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 12
+custom_position: 0
+database_position: 12
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: CREATED_AT
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/EMAIL.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/EMAIL.yaml
new file mode 100644
index 00000000000..675c6b1d9f1
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/EMAIL.yaml	
@@ -0,0 +1,41 @@
+name: EMAIL
+display_name: Email
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Email
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 2
+custom_position: 0
+database_position: 2
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: EMAIL
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ID.yaml
new file mode 100644
index 00000000000..ec9dc917d68
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ID.yaml	
@@ -0,0 +1,41 @@
+name: ID
+display_name: ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: BIGINT
+base_type: type/BigInteger
+effective_type: type/BigInteger
+semantic_type: type/PK
+database_is_auto_increment: true
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 0
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/LATITUDE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/LATITUDE.yaml
new file mode 100644
index 00000000000..a8bec14b91c
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/LATITUDE.yaml	
@@ -0,0 +1,41 @@
+name: LATITUDE
+display_name: Latitude
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: type/Latitude
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 11
+custom_position: 0
+database_position: 11
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: LATITUDE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/LONGITUDE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/LONGITUDE.yaml
new file mode 100644
index 00000000000..52876f82c07
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/LONGITUDE.yaml	
@@ -0,0 +1,41 @@
+name: LONGITUDE
+display_name: Longitude
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: type/Longitude
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 6
+custom_position: 0
+database_position: 6
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: LONGITUDE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/NAME.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/NAME.yaml
new file mode 100644
index 00000000000..1958d2144f6
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/NAME.yaml	
@@ -0,0 +1,41 @@
+name: NAME
+display_name: Name
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Name
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 4
+custom_position: 0
+database_position: 4
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: NAME
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/PASSWORD.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/PASSWORD.yaml
new file mode 100644
index 00000000000..de7cbb9d4d1
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/PASSWORD.yaml	
@@ -0,0 +1,41 @@
+name: PASSWORD
+display_name: Password
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 3
+custom_position: 0
+database_position: 3
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: PASSWORD
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/SOURCE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/SOURCE.yaml
new file mode 100644
index 00000000000..e7a1babf777
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/SOURCE.yaml	
@@ -0,0 +1,41 @@
+name: SOURCE
+display_name: Source
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Source
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 8
+custom_position: 0
+database_position: 8
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: SOURCE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/SOURCE___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/SOURCE___fieldvalues.yaml
new file mode 100644
index 00000000000..80dcc980ac8
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/SOURCE___fieldvalues.yaml	
@@ -0,0 +1,23 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- Affiliate
+- Facebook
+- Google
+- Organic
+- Twitter
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: SOURCE
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/STATE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/STATE.yaml
new file mode 100644
index 00000000000..eb47750b8c0
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/STATE.yaml	
@@ -0,0 +1,41 @@
+name: STATE
+display_name: State
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/State
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 7
+custom_position: 0
+database_position: 7
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: STATE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/STATE___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/STATE___fieldvalues.yaml
new file mode 100644
index 00000000000..07316b84cba
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/STATE___fieldvalues.yaml	
@@ -0,0 +1,67 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- AK
+- AL
+- AR
+- AZ
+- CA
+- CO
+- CT
+- DE
+- FL
+- GA
+- IA
+- ID
+- IL
+- IN
+- KS
+- KY
+- LA
+- MA
+- MD
+- ME
+- MI
+- MN
+- MO
+- MS
+- MT
+- NC
+- ND
+- NE
+- NH
+- NJ
+- NM
+- NV
+- NY
+- OH
+- OK
+- OR
+- PA
+- RI
+- SC
+- SD
+- TN
+- TX
+- UT
+- VA
+- VT
+- WA
+- WI
+- WV
+- WY
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: STATE
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ZIP.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ZIP.yaml
new file mode 100644
index 00000000000..a519b9c243b
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PEOPLE/fields/ZIP.yaml	
@@ -0,0 +1,41 @@
+name: ZIP
+display_name: Zip
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PEOPLE
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 10
+custom_position: 0
+database_position: 10
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PEOPLE
+  model: Table
+- id: ZIP
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/PRODUCTS.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/PRODUCTS.yaml
new file mode 100644
index 00000000000..667388f2535
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/PRODUCTS.yaml	
@@ -0,0 +1,23 @@
+name: PRODUCTS
+display_name: Products
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+db_id: test-data (h2)
+schema: PUBLIC
+entity_type: entity/ProductTable
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CATEGORY.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CATEGORY.yaml
new file mode 100644
index 00000000000..7e8048a65e2
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CATEGORY.yaml	
@@ -0,0 +1,41 @@
+name: CATEGORY
+display_name: Category
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Category
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 3
+custom_position: 0
+database_position: 3
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: CATEGORY
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CATEGORY___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CATEGORY___fieldvalues.yaml
new file mode 100644
index 00000000000..582caa45db3
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CATEGORY___fieldvalues.yaml	
@@ -0,0 +1,22 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- Doohickey
+- Gadget
+- Gizmo
+- Widget
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: CATEGORY
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CREATED_AT.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CREATED_AT.yaml
new file mode 100644
index 00000000000..04e1a7b3795
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/CREATED_AT.yaml	
@@ -0,0 +1,41 @@
+name: CREATED_AT
+display_name: Created At
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+database_type: TIMESTAMP WITH TIME ZONE
+base_type: type/DateTimeWithLocalTZ
+effective_type: type/DateTimeWithLocalTZ
+semantic_type: type/CreationTimestamp
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 7
+custom_position: 0
+database_position: 7
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: CREATED_AT
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/EAN.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/EAN.yaml
new file mode 100644
index 00000000000..62b0b8afbee
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/EAN.yaml	
@@ -0,0 +1,41 @@
+name: EAN
+display_name: Ean
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 1
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: EAN
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/EAN___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/EAN___fieldvalues.yaml
new file mode 100644
index 00000000000..46fbee7bcaa
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/EAN___fieldvalues.yaml	
@@ -0,0 +1,218 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- '0001664425970'
+- '0006590063715'
+- '0010465925138'
+- '0038948983000'
+- '0095774502751'
+- '0096051986448'
+- '0157967025871'
+- '0212722801067'
+- '0225815844582'
+- '0236197465609'
+- '0255973714120'
+- '0272643267465'
+- '0335243754848'
+- '0399569209871'
+- '0498395047364'
+- '0698616313838'
+- '0743731223606'
+- '0832349515187'
+- '0848056924761'
+- '0899183128263'
+- '1018947080336'
+- '1078766578568'
+- '1087115303928'
+- '1144906750559'
+- '1157194463322'
+- '1272575087123'
+- '1404411876176'
+- '1408483808240'
+- '1464781960745'
+- '1468999794635'
+- '1484994799123'
+- '1538211018396'
+- '1559730016366'
+- '1576499102253'
+- '1613730311804'
+- '1613963249998'
+- '1726123595351'
+- '1770178011663'
+- '1790740189682'
+- '1807963902339'
+- '1838229841499'
+- '1878073010375'
+- '1909194306167'
+- '1943523619306'
+- '1960588072419'
+- '2084705637233'
+- '2091630691049'
+- '2117622168280'
+- '2125923238175'
+- '2293343551454'
+- '2315609605258'
+- '2339358820724'
+- '2434890445616'
+- '2448500145612'
+- '2484897511500'
+- '2516506541834'
+- '2529776156387'
+- '2543248750439'
+- '2562717359713'
+- '2646001599860'
+- '2703547723491'
+- '2820850288674'
+- '2890379323668'
+- '2952766751666'
+- '3084140869281'
+- '3301617687934'
+- '3307124431763'
+- '3576267834421'
+- '3621077291879'
+- '3642408008706'
+- '3661250556340'
+- '3685697688891'
+- '3691313722887'
+- '3769015137275'
+- '3772022926992'
+- '3806751355669'
+- '3828680930458'
+- '3987140172453'
+- '3988126680641'
+- '4009053735033'
+- '4093428378987'
+- '4134502155718'
+- '4168050315812'
+- '4198118078267'
+- '4201407654834'
+- '4284914664558'
+- '4307721071729'
+- '4312472827051'
+- '4347934129886'
+- '4406572671024'
+- '4504719641739'
+- '4516685534489'
+- '4561421124790'
+- '4665903801947'
+- '4686859196154'
+- '4709231420798'
+- '4733532233696'
+- '4734618834332'
+- '4760375596107'
+- '4785470010730'
+- '4819782507258'
+- '4863291591550'
+- '4886504321812'
+- '4893655420066'
+- '4945934419923'
+- '4963935336179'
+- '4966277046676'
+- '5010710584900'
+- '5050273180195'
+- '5065846711133'
+- '5099742600901'
+- '5176352942567'
+- '5272733645116'
+- '5291392809646'
+- '5408760500061'
+- '5433448189252'
+- '5499736705597'
+- '5522456328132'
+- '5528517133622'
+- '5592486096660'
+- '5626486088179'
+- '5738533322232'
+- '5778452195678'
+- '5856636800041'
+- '5881647583898'
+- '5935916054838'
+- '5955704607626'
+- '6009279470754'
+- '6154584840805'
+- '6190070243323'
+- '6201199361567'
+- '6248889948356'
+- '6316992933962'
+- '6372029072158'
+- '6403813628678'
+- '6409491343148'
+- '6424174443243'
+- '6575325360237'
+- '6588791601926'
+- '6704641545275'
+- '6858015278648'
+- '6875096496570'
+- '6906120611895'
+- '6966709160725'
+- '7059492880556'
+- '7067375149041'
+- '7080123588503'
+- '7153630876392'
+- '7167715379463'
+- '7177157744491'
+- '7217466997444'
+- '7317365230007'
+- '7345418848909'
+- '7384311074268'
+- '7485639601133'
+- '7494558044822'
+- '7532074237028'
+- '7570673549500'
+- '7595223735110'
+- '7663515285824'
+- '7667946672475'
+- '7668932199532'
+- '7760442733661'
+- '7813908779724'
+- '7854842811538'
+- '8002754191821'
+- '8163753213485'
+- '8207931408888'
+- '8222420544052'
+- '8245402607613'
+- '8271165200181'
+- '8296484749050'
+- '8368305700967'
+- '8469939413398'
+- '8590367775021'
+- '8687358946192'
+- '8703661046340'
+- '8725228831589'
+- '8769809778856'
+- '8825217022124'
+- '8833419218504'
+- '8844419430964'
+- '8909358907493'
+- '8933669659420'
+- '9031323475252'
+- '9095019841233'
+- '9131148018211'
+- '9182640035008'
+- '9216642429807'
+- '9347854191845'
+- '9458076657016'
+- '9482467478850'
+- '9522454376759'
+- '9633135585459'
+- '9644009305424'
+- '9687547218818'
+- '9753065345920'
+- '9786855487647'
+- '9802920493181'
+- '9978391194435'
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: EAN
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/ID.yaml
new file mode 100644
index 00000000000..f880ccb5af3
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/ID.yaml	
@@ -0,0 +1,41 @@
+name: ID
+display_name: ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+database_type: BIGINT
+base_type: type/BigInteger
+effective_type: type/BigInteger
+semantic_type: type/PK
+database_is_auto_increment: true
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 0
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/PRICE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/PRICE.yaml
new file mode 100644
index 00000000000..3254baac657
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/PRICE.yaml	
@@ -0,0 +1,41 @@
+name: PRICE
+display_name: Price
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 5
+custom_position: 0
+database_position: 5
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: PRICE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/RATING.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/RATING.yaml
new file mode 100644
index 00000000000..246ebbb5791
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/RATING.yaml	
@@ -0,0 +1,41 @@
+name: RATING
+display_name: Rating
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: type/Score
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 6
+custom_position: 0
+database_position: 6
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: RATING
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/TITLE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/TITLE.yaml
new file mode 100644
index 00000000000..ab322aad4f3
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/TITLE.yaml	
@@ -0,0 +1,41 @@
+name: TITLE
+display_name: Title
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Title
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 2
+custom_position: 0
+database_position: 2
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: TITLE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/TITLE___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/TITLE___fieldvalues.yaml
new file mode 100644
index 00000000000..f3c408be5dc
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/TITLE___fieldvalues.yaml	
@@ -0,0 +1,217 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- Aerodynamic Bronze Hat
+- Aerodynamic Concrete Bench
+- Aerodynamic Concrete Lamp
+- Aerodynamic Copper Knife
+- Aerodynamic Cotton Bottle
+- Aerodynamic Cotton Lamp
+- Aerodynamic Granite Bench
+- Aerodynamic Granite Bottle
+- Aerodynamic Leather Computer
+- Aerodynamic Leather Toucan
+- Aerodynamic Linen Coat
+- Aerodynamic Paper Coat
+- Aerodynamic Paper Computer
+- Aerodynamic Rubber Bench
+- Awesome Aluminum Keyboard
+- Awesome Aluminum Table
+- Awesome Bronze Plate
+- Awesome Concrete Shoes
+- Awesome Cotton Shoes
+- Awesome Granite Car
+- Awesome Iron Hat
+- Awesome Plastic Watch
+- Awesome Rubber Wallet
+- Awesome Silk Car
+- Awesome Steel Toucan
+- Awesome Wool Bench
+- Durable Aluminum Bag
+- Durable Copper Clock
+- Durable Cotton Bench
+- Durable Cotton Shirt
+- Durable Iron Knife
+- Durable Leather Wallet
+- Durable Marble Watch
+- Durable Rubber Computer
+- Durable Steel Toucan
+- Durable Wool Toucan
+- Enormous Aluminum Clock
+- Enormous Aluminum Shirt
+- Enormous Copper Shirt
+- Enormous Cotton Pants
+- Enormous Granite Bottle
+- Enormous Granite Wallet
+- Enormous Leather Wallet
+- Enormous Marble Gloves
+- Enormous Marble Shoes
+- Enormous Marble Wallet
+- Enormous Plastic Coat
+- Enormous Steel Watch
+- Enormous Wool Car
+- Ergonomic Aluminum Plate
+- Ergonomic Concrete Lamp
+- Ergonomic Cotton Bag
+- Ergonomic Granite Bottle
+- Ergonomic Iron Watch
+- Ergonomic Leather Pants
+- Ergonomic Linen Toucan
+- Ergonomic Marble Computer
+- Ergonomic Marble Hat
+- Ergonomic Paper Wallet
+- Ergonomic Plastic Bench
+- Ergonomic Rubber Bench
+- Ergonomic Silk Coat
+- Ergonomic Silk Keyboard
+- Ergonomic Silk Table
+- Ergonomic Wool Bag
+- Fantastic Aluminum Bottle
+- Fantastic Copper Hat
+- Fantastic Leather Watch
+- Fantastic Rubber Knife
+- Fantastic Silk Bottle
+- Fantastic Steel Knife
+- Fantastic Wool Shirt
+- Gorgeous Aluminum Plate
+- Gorgeous Bronze Hat
+- Gorgeous Concrete Chair
+- Gorgeous Concrete Shoes
+- Gorgeous Copper Knife
+- Gorgeous Linen Bottle
+- Gorgeous Linen Keyboard
+- Gorgeous Marble Computer
+- Gorgeous Marble Plate
+- Gorgeous Paper Bag
+- Gorgeous Wooden Car
+- Heavy-Duty Copper Gloves
+- Heavy-Duty Copper Toucan
+- Heavy-Duty Copper Watch
+- Heavy-Duty Cotton Bottle
+- Heavy-Duty Linen Gloves
+- Heavy-Duty Linen Toucan
+- Heavy-Duty Rubber Bottle
+- Heavy-Duty Rubber Gloves
+- Heavy-Duty Silk Car
+- Heavy-Duty Silk Chair
+- Heavy-Duty Steel Watch
+- Heavy-Duty Wooden Clock
+- Incredible Aluminum Knife
+- Incredible Bronze Pants
+- Incredible Bronze Wallet
+- Incredible Concrete Keyboard
+- Incredible Concrete Watch
+- Incredible Granite Toucan
+- Incredible Linen Knife
+- Incredible Plastic Chair
+- Incredible Plastic Watch
+- Incredible Silk Shoes
+- Intelligent Bronze Knife
+- Intelligent Granite Hat
+- Intelligent Iron Shirt
+- Intelligent Paper Car
+- Intelligent Paper Hat
+- Intelligent Steel Car
+- Intelligent Wooden Gloves
+- Lightweight Bronze Table
+- Lightweight Copper Wallet
+- Lightweight Granite Hat
+- Lightweight Leather Bench
+- Lightweight Leather Gloves
+- Lightweight Linen Bottle
+- Lightweight Linen Coat
+- Lightweight Linen Hat
+- Lightweight Marble Bag
+- Lightweight Paper Bottle
+- Lightweight Steel Knife
+- Lightweight Steel Watch
+- Lightweight Wool Bag
+- Lightweight Wool Computer
+- Lightweight Wool Plate
+- Mediocre Aluminum Lamp
+- Mediocre Aluminum Shirt
+- Mediocre Cotton Coat
+- Mediocre Cotton Toucan
+- Mediocre Leather Coat
+- Mediocre Leather Computer
+- Mediocre Marble Lamp
+- Mediocre Paper Car
+- Mediocre Plastic Clock
+- Mediocre Rubber Shoes
+- Mediocre Silk Bottle
+- Mediocre Wooden Bench
+- Mediocre Wooden Table
+- Mediocre Wool Toucan
+- Practical Aluminum Coat
+- Practical Aluminum Table
+- Practical Bronze Computer
+- Practical Bronze Watch
+- Practical Copper Car
+- Practical Granite Plate
+- Practical Paper Bag
+- Practical Plastic Keyboard
+- Practical Silk Bottle
+- Practical Silk Computer
+- Practical Steel Table
+- Practical Wool Hat
+- Rustic Concrete Bottle
+- Rustic Copper Hat
+- Rustic Copper Knife
+- Rustic Iron Bench
+- Rustic Iron Keyboard
+- Rustic Linen Keyboard
+- Rustic Marble Bottle
+- Rustic Paper Bench
+- Rustic Paper Car
+- Rustic Paper Wallet
+- Rustic Rubber Clock
+- Rustic Rubber Knife
+- Rustic Silk Knife
+- Rustic Silk Pants
+- Sleek Aluminum Clock
+- Sleek Aluminum Watch
+- Sleek Bronze Lamp
+- Sleek Copper Watch
+- Sleek Granite Pants
+- Sleek Leather Table
+- Sleek Leather Toucan
+- Sleek Marble Clock
+- Sleek Marble Table
+- Sleek Paper Toucan
+- Sleek Plastic Shoes
+- Sleek Steel Table
+- Sleek Wool Wallet
+- Sleek Wool Watch
+- Small Concrete Knife
+- Small Copper Clock
+- Small Copper Plate
+- Small Cotton Chair
+- Small Granite Gloves
+- Small Marble Hat
+- Small Marble Knife
+- Small Marble Shoes
+- Small Plastic Computer
+- Small Rubber Clock
+- Small Wool Wallet
+- Synergistic Copper Computer
+- Synergistic Granite Chair
+- Synergistic Leather Coat
+- Synergistic Marble Keyboard
+- Synergistic Rubber Shoes
+- Synergistic Steel Chair
+- Synergistic Wool Coat
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: TITLE
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/VENDOR.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/VENDOR.yaml
new file mode 100644
index 00000000000..51a4494df0e
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/VENDOR.yaml	
@@ -0,0 +1,41 @@
+name: VENDOR
+display_name: Vendor
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Company
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 4
+custom_position: 0
+database_position: 4
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: VENDOR
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/VENDOR___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/VENDOR___fieldvalues.yaml
new file mode 100644
index 00000000000..21436f99138
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/PRODUCTS/fields/VENDOR___fieldvalues.yaml	
@@ -0,0 +1,218 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- Alfreda Konopelski II Group
+- Alfredo Kuhlman Group
+- Americo Sipes and Sons
+- Annetta Wyman and Sons
+- Aufderhar-Boehm
+- Balistreri-Ankunding
+- Balistreri-Muller
+- Barrows-Johns
+- Batz-Schroeder
+- Baumbach-Hilpert
+- Bednar, Berge and Boyle
+- Berge, Mraz and Sawayn
+- Bernhard-Grady
+- Blake Greenfelder Group
+- Bosco-Breitenberg
+- Bradtke, Wilkinson and Reilly
+- Braeden Gislason and Sons
+- Brittany Mueller Inc
+- Cale Thompson V and Sons
+- Carmela Douglas Inc
+- Carol Marvin LLC
+- Casper-Schimmel
+- Cassin-Collins
+- Claude Thompson Group
+- Connelly-Mitchell
+- Connelly-Ritchie
+- Considine, Bogisich and Bauch
+- Considine, Lehner and Maggio
+- Considine, Schamberger and Schiller
+- Cremin-Williamson
+- Crona, Block and Homenick
+- Cruickshank-Abernathy
+- Daugherty-Dach
+- Delphia Bauch Inc
+- Demarcus Brakus Inc
+- Denesik-Ortiz
+- Devonte Gleichner Inc
+- Dominic Mann Group
+- Donnelly, Renner and Barton
+- Dooley-Cummings
+- Dora Fay and Sons
+- Dorothea Balistreri Inc
+- Emmerich-Nienow
+- Erika Volkman Group
+- Eugenia Kunze LLC
+- Fisher-Kemmer
+- Fisher-Purdy
+- Flatley-Kunde
+- Ford Runolfsson Group
+- Francis Wolff Group
+- Friesen-Anderson
+- Friesen-Langworth
+- Gail Bergstrom Inc
+- Gaylord-Lesch
+- Gibson, Turner and Douglas
+- Goyette-Smitham
+- Grady, Greenfelder and Welch
+- Gulgowski, Grimes and Mayer
+- Gutmann-Breitenberg
+- Hackett-Reynolds
+- Halle Kulas I LLC
+- Halvorson, Lockman and Ruecker
+- Hane, Hamill and Jerde
+- Hartmann, Mohr and Stiedemann
+- Hauck, Ernser and Barton
+- Heaney-Windler
+- Heathcote-Kirlin
+- Herman Flatley Group
+- Herman, Gleason and Renner
+- Hermiston, O'Hara and Wunsch
+- Herta Skiles and Sons
+- Hills, Fahey and Jones
+- Hilpert, Jacobs and Hauck
+- Hodkiewicz-Brekke
+- Howe, Kiehn and Price
+- Israel Spinka and Sons
+- Izabella Dach I and Sons
+- Jacobson-Daniel
+- Janick Harvey LLC
+- Jefferey Volkman LLC
+- Jerrell Gulgowski Inc
+- Jerrod McLaughlin LLC
+- Jones, Hayes and Kshlerin
+- Jordi Effertz LLC
+- Keely Stehr Group
+- Keshaun Mueller Group
+- Kiehn-Pacocha
+- Kiel Kassulke Group
+- Kirlin, Hermann and Stokes
+- Koch-Ruecker
+- Koepp, Ondricka and Larkin
+- Kuhlman-Kuphal
+- Kuhlman-McKenzie
+- Kuhn-O'Reilly
+- Kuphal, Brown and Koss
+- Kuphal, Friesen and Rowe
+- Kuphal, Schowalter and Bogan
+- Lakin-Stroman
+- Larson, Pfeffer and Klocko
+- Ledner-Satterfield
+- Ledner-Watsica
+- Legros, Lynch and Howell
+- Little-Pagac
+- Lon Wiegand DVM and Sons
+- Lorenza Mayer Inc
+- Maegan Casper Group
+- Marge Effertz Jr. Inc
+- Marquardt, Crooks and Abshire
+- Marvin, Turcotte and Wisozk
+- Mason Bashirian and Sons
+- Maxime Haley and Sons
+- Mayer, Kiehn and Turcotte
+- McClure-Lockman
+- McClure-Murphy
+- McDermott, Kiehn and Becker
+- McGlynn, Fay and Kertzmann
+- Medhurst-Reichert
+- Miles Ryan Group
+- Miss Annamae Kutch Group
+- Morar-Schamberger
+- Morissette, Bartoletti and Cummings
+- Morissette, Dare and Schimmel
+- Mr. Colton Mayer Group
+- Mr. Johanna Koepp and Sons
+- Mr. Tanya Stracke and Sons
+- Mrs. Eugenia Koelpin and Sons
+- Mueller, Mayert and Johnston
+- Mueller-Dare
+- Murray, Watsica and Wunsch
+- Myriam Macejkovic Inc
+- Nikolaus-Hudson
+- Noah Anderson and Sons
+- Nolan-Heller
+- Nolan-Wolff
+- Odessa Emmerich Inc
+- Okuneva, Kutch and Monahan
+- Ora Monahan and Sons
+- Oran D'Amore Inc
+- Orn, Hilpert and Pfannerstill
+- Pacocha-Volkman
+- Padberg, Senger and Williamson
+- Parker, O'Connell and Beahan
+- Pouros, Nitzsche and Mayer
+- Powlowski, Keebler and Quigley
+- Price Kuhic Inc
+- Price, Schultz and Daniel
+- Prohaska-Quigley
+- Quigley, Von and Will
+- Regan Bradtke and Sons
+- Reichert, Johnson and Roob
+- Reid Pfannerstill and Sons
+- Reynolds, Gleason and Brekke
+- Ritchie, Haley and Pacocha
+- Robyn Padberg Inc
+- Rodriguez-Kuhlman
+- Rosanna Murazik Inc
+- Roscoe Oberbrunner Group
+- Rowan Kautzer LLC
+- Ruecker, Carter and Ortiz
+- Ruecker-Jakubowski
+- Schamberger-Maggio
+- Schamberger-Wehner
+- Schiller, Bogisich and Lockman
+- Schinner, Schmitt and Crona
+- Schumm, Brown and Wehner
+- Schuster-Wyman
+- Senger, Mertz and Murray
+- Senger-Doyle
+- Senger-Stamm
+- Smitham, Dach and Bode
+- Spinka-Stokes
+- Stamm, Crist and Labadie
+- Stanton-Fritsch
+- Stark-Bayer
+- Stroman-Carroll
+- Swaniawski, Casper and Hilll
+- Theodora Terry and Sons
+- Theodore Hansen Inc
+- Thompson-Wolf
+- Tia Goyette Group
+- Toy, Deckow and Nitzsche
+- Trantow-Bartell
+- Turner, Kiehn and Schmitt
+- Una Fadel Group
+- Upton, Kovacek and Halvorson
+- Upton, Schoen and Streich
+- Ursula Collins LLC
+- Volkman, Greenfelder and Kiehn
+- Von-Gulgowski
+- Weimann-Cummings
+- West, Prohaska and Wunsch
+- Wilkinson, Donnelly and Gulgowski
+- Wilkinson-Gottlieb
+- Wisoky, Pagac and Heaney
+- Wiza, Abbott and Deckow
+- Wolf, Beahan and Thiel
+- Wolff, Ebert and Hansen
+- Wuckert, Murazik and Ernser
+- Zemlak, Botsford and Corkery
+- Zemlak-Wiegand
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: PRODUCTS
+  model: Table
+- id: VENDOR
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/REVIEWS.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/REVIEWS.yaml
new file mode 100644
index 00000000000..72726eecf89
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/REVIEWS.yaml	
@@ -0,0 +1,23 @@
+name: REVIEWS
+display_name: Reviews
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+db_id: test-data (h2)
+schema: PUBLIC
+entity_type: entity/GenericTable
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: REVIEWS
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/BODY.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/BODY.yaml
new file mode 100644
index 00000000000..c69ff60cfc7
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/BODY.yaml	
@@ -0,0 +1,41 @@
+name: BODY
+display_name: Body
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- REVIEWS
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: false
+position: 4
+custom_position: 0
+database_position: 4
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: REVIEWS
+  model: Table
+- id: BODY
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/CREATED_AT.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/CREATED_AT.yaml
new file mode 100644
index 00000000000..429ac9f1933
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/CREATED_AT.yaml	
@@ -0,0 +1,41 @@
+name: CREATED_AT
+display_name: Created At
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- REVIEWS
+database_type: TIMESTAMP WITH TIME ZONE
+base_type: type/DateTimeWithLocalTZ
+effective_type: type/DateTimeWithLocalTZ
+semantic_type: type/CreationTimestamp
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 5
+custom_position: 0
+database_position: 5
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: REVIEWS
+  model: Table
+- id: CREATED_AT
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/ID.yaml
new file mode 100644
index 00000000000..cb393180de1
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/ID.yaml	
@@ -0,0 +1,41 @@
+name: ID
+display_name: ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- REVIEWS
+database_type: BIGINT
+base_type: type/BigInteger
+effective_type: type/BigInteger
+semantic_type: type/PK
+database_is_auto_increment: true
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 0
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: REVIEWS
+  model: Table
+- id: ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/PRODUCT_ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/PRODUCT_ID.yaml
new file mode 100644
index 00000000000..37ceb6de7bb
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/PRODUCT_ID.yaml	
@@ -0,0 +1,45 @@
+name: PRODUCT_ID
+display_name: Product ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- REVIEWS
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/FK
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id:
+- test-data (h2)
+- PUBLIC
+- PRODUCTS
+- ID
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 1
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: REVIEWS
+  model: Table
+- id: PRODUCT_ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/RATING.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/RATING.yaml
new file mode 100644
index 00000000000..3417c5af37d
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/RATING.yaml	
@@ -0,0 +1,41 @@
+name: RATING
+display_name: Rating
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- REVIEWS
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/Score
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 3
+custom_position: 0
+database_position: 3
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: REVIEWS
+  model: Table
+- id: RATING
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/RATING___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/RATING___fieldvalues.yaml
new file mode 100644
index 00000000000..4e006392af0
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/RATING___fieldvalues.yaml	
@@ -0,0 +1,23 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- 1
+- 2
+- 3
+- 4
+- 5
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: REVIEWS
+  model: Table
+- id: RATING
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/REVIEWER.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/REVIEWER.yaml
new file mode 100644
index 00000000000..c3dbcc79da8
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/REVIEWS/fields/REVIEWER.yaml	
@@ -0,0 +1,41 @@
+name: REVIEWER
+display_name: Reviewer
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- REVIEWS
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 2
+custom_position: 0
+database_position: 2
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: REVIEWS
+  model: Table
+- id: REVIEWER
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/USERS.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/USERS.yaml
new file mode 100644
index 00000000000..dac2a228c5f
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/USERS.yaml	
@@ -0,0 +1,23 @@
+name: USERS
+display_name: Users
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+db_id: test-data (h2)
+schema: PUBLIC
+entity_type: entity/UserTable
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: USERS
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/ID.yaml
new file mode 100644
index 00000000000..09b2e1723b8
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/ID.yaml	
@@ -0,0 +1,41 @@
+name: ID
+display_name: ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- USERS
+database_type: BIGINT
+base_type: type/BigInteger
+effective_type: type/BigInteger
+semantic_type: type/PK
+database_is_auto_increment: true
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 0
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: USERS
+  model: Table
+- id: ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/LAST_LOGIN.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/LAST_LOGIN.yaml
new file mode 100644
index 00000000000..4e0136609de
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/LAST_LOGIN.yaml	
@@ -0,0 +1,41 @@
+name: LAST_LOGIN
+display_name: Last Login
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- USERS
+database_type: TIMESTAMP
+base_type: type/DateTime
+effective_type: type/DateTime
+semantic_type: null
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 2
+custom_position: 0
+database_position: 2
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: USERS
+  model: Table
+- id: LAST_LOGIN
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/NAME.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/NAME.yaml
new file mode 100644
index 00000000000..925379cbf21
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/NAME.yaml	
@@ -0,0 +1,41 @@
+name: NAME
+display_name: Name
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- USERS
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Name
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 1
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: USERS
+  model: Table
+- id: NAME
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/NAME___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/NAME___fieldvalues.yaml
new file mode 100644
index 00000000000..14dbad3f464
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/NAME___fieldvalues.yaml	
@@ -0,0 +1,33 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- Broen Olujimi
+- Conchúr Tihomir
+- Dwight Gresham
+- Felipinho Asklepios
+- Frans Hevel
+- Kaneonuskatew Eiran
+- Kfir Caj
+- Nils Gotam
+- Plato Yeshua
+- Quentin Sören
+- Rüstem Hebel
+- Shad Ferdynand
+- Simcha Yan
+- Spiros Teofil
+- Szymon Theutrich
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: USERS
+  model: Table
+- id: NAME
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/PASSWORD.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/PASSWORD.yaml
new file mode 100644
index 00000000000..b87da7f9750
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/PASSWORD.yaml	
@@ -0,0 +1,41 @@
+name: PASSWORD
+display_name: Password
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: sensitive
+table_id:
+- test-data (h2)
+- PUBLIC
+- USERS
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Category
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 3
+custom_position: 0
+database_position: 3
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: USERS
+  model: Table
+- id: PASSWORD
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/PASSWORD___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/PASSWORD___fieldvalues.yaml
new file mode 100644
index 00000000000..c2281e0c12e
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/USERS/fields/PASSWORD___fieldvalues.yaml	
@@ -0,0 +1,33 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- 02ad6b15-54b0-4491-bf0f-d781b0a2c4f5
+- 10a0fea8-9bb4-48fe-a336-4d9cbbd78aa0
+- 4be68cda-6fd5-4ba7-944e-2b475600bda5
+- 5bb19ad9-f3f8-421f-9750-7d398e38428d
+- 62b9602c-27b8-44ea-adbd-2748f26537af
+- 75a1ebf1-cae7-4a50-8743-32d97500f2cf
+- 900335ad-e03b-4259-abc7-76aac21cedca
+- a329ccfe-b99c-42eb-9c93-cb9adc3eb1ab
+- a61f97c6-4484-4a63-b37e-b5e58bfa2ecb
+- b085040c-7aa4-4e96-8c8f-420b2c99c920
+- b7a43e91-9fb9-4fe9-ab6f-ea51ab0f94e4
+- d35c9d78-f9cf-4f52-b1cc-cb9078eebdcb
+- d6c47a54-9d88-4c4a-8054-ace76764ed0d
+- dfe21df3-f364-479d-a5e7-04bc5d85ad2b
+- f9b65c74-9f91-4cfd-9248-94a53af82866
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: USERS
+  model: Table
+- id: PASSWORD
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/VENUES.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/VENUES.yaml
new file mode 100644
index 00000000000..e5bead5536c
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/VENUES.yaml	
@@ -0,0 +1,23 @@
+name: VENUES
+display_name: Venues
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+db_id: test-data (h2)
+schema: PUBLIC
+entity_type: entity/GenericTable
+active: true
+is_upload: false
+field_order: database
+visibility_type: null
+show_in_getting_started: false
+initial_sync_status: complete
+points_of_interest: null
+caveats: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+database_require_filter: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/CATEGORY_ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/CATEGORY_ID.yaml
new file mode 100644
index 00000000000..874329e8b6c
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/CATEGORY_ID.yaml	
@@ -0,0 +1,45 @@
+name: CATEGORY_ID
+display_name: Category ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- VENUES
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/FK
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id:
+- test-data (h2)
+- PUBLIC
+- CATEGORIES
+- ID
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 2
+custom_position: 0
+database_position: 2
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+- id: CATEGORY_ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/ID.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/ID.yaml
new file mode 100644
index 00000000000..f76af549cf4
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/ID.yaml	
@@ -0,0 +1,41 @@
+name: ID
+display_name: ID
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- VENUES
+database_type: BIGINT
+base_type: type/BigInteger
+effective_type: type/BigInteger
+semantic_type: type/PK
+database_is_auto_increment: true
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 0
+custom_position: 0
+database_position: 0
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+- id: ID
+  model: Field
+database_indexed: true
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/LATITUDE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/LATITUDE.yaml
new file mode 100644
index 00000000000..e2c199e1041
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/LATITUDE.yaml	
@@ -0,0 +1,41 @@
+name: LATITUDE
+display_name: Latitude
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- VENUES
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: type/Latitude
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 3
+custom_position: 0
+database_position: 3
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+- id: LATITUDE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/LONGITUDE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/LONGITUDE.yaml
new file mode 100644
index 00000000000..aa1a1e51e71
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/LONGITUDE.yaml	
@@ -0,0 +1,41 @@
+name: LONGITUDE
+display_name: Longitude
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- VENUES
+database_type: DOUBLE PRECISION
+base_type: type/Float
+effective_type: type/Float
+semantic_type: type/Longitude
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 4
+custom_position: 0
+database_position: 4
+has_field_values: null
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+- id: LONGITUDE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/NAME.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/NAME.yaml
new file mode 100644
index 00000000000..b5181bda8ca
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/NAME.yaml	
@@ -0,0 +1,41 @@
+name: NAME
+display_name: Name
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- VENUES
+database_type: CHARACTER VARYING
+base_type: type/Text
+effective_type: type/Text
+semantic_type: type/Name
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 1
+custom_position: 0
+database_position: 1
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+- id: NAME
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/NAME___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/NAME___fieldvalues.yaml
new file mode 100644
index 00000000000..6fd7154e368
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/NAME___fieldvalues.yaml	
@@ -0,0 +1,118 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- 20th Century Cafe
+- 25°
+- 33 Taps
+- 800 Degrees Neapolitan Pizzeria
+- BCD Tofu House
+- Baby Blues BBQ
+- Barney's Beanery
+- Beachwood BBQ & Brewing
+- Beyond Sushi
+- Bludso's BBQ
+- Blue Ribbon Sushi
+- Boneyard Bistro
+- Bozu
+- Brite Spot Family Restaurant
+- Busby's West
+- Cha Cha Chicken
+- Cheese Steak Shop
+- Chez Jay
+- Cole's
+- Dal Rae Restaurant
+- Dear Mom
+- Dimples
+- Don Day Korean Restaurant
+- Empress of China
+- Festa
+- Fred 62
+- Frolic Room
+- Garaje
+- Geido
+- Giordano Bros.
+- Golden Road Brewing
+- Gordo Taqueria
+- Greenblatt's Delicatessen & Fine Wine Shop
+- Handy Market
+- Hot Sauce and Panko
+- Hotel Biron
+- In-N-Out Burger
+- Jones Hollywood
+- Kinaree Thai Bistro
+- Krua Siri
+- La Tortilla
+- Lawry's The Prime Rib
+- Liguria Bakery
+- Little Star Pizza
+- Lucky Baldwin's Pub
+- Manuel's Original El Tepeyac Cafe
+- Marlowe
+- Marnee Thai
+- Mint Karaoke Lounge
+- Mohawk Bend
+- Musso & Frank Grill
+- My Brother's Bar-B-Q
+- Noe Valley Bakery
+- Pacific Dining Car
+- Pacific Dining Car - Santa Monica
+- Pellicola Pizzeria
+- Philippe the Original
+- Pineapple Hill Saloon & Grill
+- PizzaHacker
+- Playground
+- Polo Lounge
+- Red Medicine
+- Ruen Pair Thai Restaurant
+- Rush Street
+- Señor Fish
+- Shanghai Dumpling King
+- Slate
+- Smoke City Market
+- Soto
+- Spitz Eagle Rock
+- Stout Burgers & Beers
+- Sushi Nakazawa
+- Sushi Yasaka
+- Sushi Yasuda
+- Tacos Villa Corona
+- Tam O'Shanter
+- Tanoshi Sushi & Sake Bar
+- Taqueria Los Coyotes
+- Taqueria San Francisco
+- Taylor's Prime Steak House
+- The 101 Coffee Shop
+- The Apple Pan
+- The Daily Pint
+- The Drawing Room
+- The Gorbals
+- The Gumbo Pot
+- The Misfit Restaurant + Bar
+- The Original Pantry
+- The Residence
+- The Virgil
+- Tito's Tacos
+- Tout Sweet Patisserie
+- Tu Lan Restaurant
+- Two Sisters Bar & Books
+- Wurstküche
+- Yamashiro Hollywood
+- Ye Rustic Inn
+- Yuca's Taqueria
+- Zeke's Smokehouse
+- bigmista's barbecue
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+- id: NAME
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/PRICE.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/PRICE.yaml
new file mode 100644
index 00000000000..d4bb3906516
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/PRICE.yaml	
@@ -0,0 +1,41 @@
+name: PRICE
+display_name: Price
+description: null
+created_at: '2024-08-28T14:38:42.774331Z'
+active: true
+visibility_type: normal
+table_id:
+- test-data (h2)
+- PUBLIC
+- VENUES
+database_type: INTEGER
+base_type: type/Integer
+effective_type: type/Integer
+semantic_type: type/Category
+database_is_auto_increment: false
+database_required: false
+fk_target_field_id: null
+dimensions: []
+json_unfolding: false
+parent_id: null
+coercion_strategy: null
+preview_display: true
+position: 5
+custom_position: 0
+database_position: 5
+has_field_values: auto-list
+settings: null
+caveats: null
+points_of_interest: null
+nfc_path: null
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+- id: PRICE
+  model: Field
+database_indexed: false
+database_partitioned: null
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/PRICE___fieldvalues.yaml b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/PRICE___fieldvalues.yaml
new file mode 100644
index 00000000000..b95f140af54
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/schemas/PUBLIC/tables/VENUES/fields/PRICE___fieldvalues.yaml	
@@ -0,0 +1,22 @@
+created_at: '2024-08-28T14:38:42.774331Z'
+has_more_values: false
+hash_key: null
+human_readable_values: []
+last_used_at: '2024-08-28T14:38:42.774331Z'
+type: full
+values:
+- 1
+- 2
+- 3
+- 4
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+- id: PUBLIC
+  model: Schema
+- id: VENUES
+  model: Table
+- id: PRICE
+  model: Field
+- id: '0'
+  model: FieldValues
diff --git a/test_resources/serialization_baseline/databases/test-data (h2)/test-data (h2).yaml b/test_resources/serialization_baseline/databases/test-data (h2)/test-data (h2).yaml
new file mode 100644
index 00000000000..663cd2e1f6c
--- /dev/null
+++ b/test_resources/serialization_baseline/databases/test-data (h2)/test-data (h2).yaml	
@@ -0,0 +1,31 @@
+name: test-data (h2)
+description: null
+engine: h2
+dbms_version:
+  flavor: H2
+  version: 2.1.214 (2022-06-13)
+  semantic-version:
+  - 2
+  - 1
+created_at: '2024-08-28T14:38:42.764234Z'
+creator_id: null
+timezone: UTC
+auto_run_queries: true
+refingerprint: null
+is_full_sync: true
+is_on_demand: false
+is_sample: false
+is_audit: false
+metadata_sync_schedule: 0 8 * * * ? *
+cache_field_values_schedule: 0 0 19 * * ? *
+settings:
+  database-source-dataset-name: test-data
+caveats: null
+points_of_interest: null
+initial_sync_status: complete
+serdes/meta:
+- id: test-data (h2)
+  model: Database
+uploads_enabled: false
+uploads_schema_name: null
+uploads_table_prefix: null
diff --git a/test_resources/serialization_baseline/settings.yaml b/test_resources/serialization_baseline/settings.yaml
new file mode 100644
index 00000000000..4b9cc89cc65
--- /dev/null
+++ b/test_resources/serialization_baseline/settings.yaml
@@ -0,0 +1,53 @@
+aggregated-query-row-limit: null
+application-colors: null
+application-favicon-url: null
+application-font: null
+application-font-files: null
+application-logo-url: null
+application-name: null
+available-fonts: null
+available-locales: null
+available-timezones: null
+breakout-bins-num: null
+custom-formatting: null
+custom-geojson: null
+custom-geojson-enabled: null
+default-maps-enabled: null
+embedding-homepage: null
+enable-embedding: null
+enable-nested-queries: null
+enable-sandboxes?: null
+enable-whitelabeling?: null
+enable-xrays: null
+hide-embed-branding?: null
+humanization-strategy: null
+landing-page: null
+landing-page-illustration: null
+landing-page-illustration-custom: null
+loading-message: null
+login-page-illustration: null
+login-page-illustration-custom: null
+native-query-autocomplete-match-style: null
+no-data-illustration: null
+no-data-illustration-custom: null
+no-object-illustration: null
+no-object-illustration-custom: null
+persisted-models-enabled: null
+report-timezone: null
+report-timezone-long: null
+report-timezone-short: null
+search-typeahead-enabled: null
+setup-embedding-autoenabled: null
+setup-license-active-at-setup: null
+show-homepage-data: null
+show-homepage-pin-message: null
+show-homepage-xrays: null
+show-metabot: null
+show-static-embed-terms: null
+site-locale: null
+site-name: null
+source-address-header: null
+start-of-week: null
+subscription-allowed-domains: null
+synchronous-batch-updates: null
+unaggregated-query-row-limit: null
diff --git a/test_resources/serialization_baseline/snippets/WyQWnT23PF-SfbYLROllJ_snippet_2.yaml b/test_resources/serialization_baseline/snippets/WyQWnT23PF-SfbYLROllJ_snippet_2.yaml
new file mode 100644
index 00000000000..14604ef6b1c
--- /dev/null
+++ b/test_resources/serialization_baseline/snippets/WyQWnT23PF-SfbYLROllJ_snippet_2.yaml
@@ -0,0 +1,12 @@
+name: Snippet 2
+description: null
+entity_id: WyQWnT23PF-SfbYLROllJ
+created_at: '2024-08-28T14:36:15.328717Z'
+archived: false
+collection_id: null
+content: 1 = 1
+creator_id: ann@heart.band
+serdes/meta:
+- id: WyQWnT23PF-SfbYLROllJ
+  label: snippet_2
+  model: NativeQuerySnippet
diff --git a/test_resources/serialization_baseline/snippets/Y6d4QwJgGKw-X1tRh3ir2_shared_collection/hcSr4xgVEd8AyElRRLu9w_snippet_1.yaml b/test_resources/serialization_baseline/snippets/Y6d4QwJgGKw-X1tRh3ir2_shared_collection/hcSr4xgVEd8AyElRRLu9w_snippet_1.yaml
new file mode 100644
index 00000000000..5c86b90cd0d
--- /dev/null
+++ b/test_resources/serialization_baseline/snippets/Y6d4QwJgGKw-X1tRh3ir2_shared_collection/hcSr4xgVEd8AyElRRLu9w_snippet_1.yaml
@@ -0,0 +1,12 @@
+name: Snippet 1
+description: null
+entity_id: hcSr4xgVEd8AyElRRLu9w
+created_at: '2024-08-28T14:36:15.324887Z'
+archived: false
+collection_id: Y6d4QwJgGKw-X1tRh3ir2
+content: 1 = 1
+creator_id: ann@heart.band
+serdes/meta:
+- id: hcSr4xgVEd8AyElRRLu9w
+  label: snippet_1
+  model: NativeQuerySnippet
-- 
GitLab