Repository: spacetelescope/rad (language: python)

Issue:
TVAC Schema
_Issue [RAD-143](https://jira.stsci.edu/browse/RAD-143) was created on JIRA by [Tyler Desjardins](https://jira.stsci.edu/secure/ViewProfile.jspa?name=desjard):_

Instructions for the TVAC schema are located here: <https://innerspace.stsci.edu/display/RI/TVAC+Schema+proposal>  These are Level 1-like files that will be stored in RITA.

 

Example files will be copied shortly to this directory: ██████████████████████████████████████████
FPS Schema
_Issue [RAD-144](https://jira.stsci.edu/browse/RAD-144) was created on JIRA by [Tyler Desjardins](https://jira.stsci.edu/secure/ViewProfile.jspa?name=desjard):_

Instructions for the FPS schema are located here: <https://innerspace.stsci.edu/pages/viewpage.action?spaceKey=RI&title=FPS+Schema+Proposal> These are Level 1-like files that will be stored in RITA.

 

Example files will be copied shortly to this directory: █████████████████████████████████████████


Discussion / hints:

Fix patch:
diff --git a/CHANGES.rst b/CHANGES.rst
index cc00df49..34aed14a 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -8,10 +8,13 @@
 
 - Add documentation on how to create a new schema. [#375]
 
+- Add ``FPS`` and ``TVAC`` schemas. [#364]
+
 - Update titles and descriptions to those provided by INS. [#361]
 
 - Updated product table names. [#382]
 
+
 0.19.0 (2024-02-09)
 -------------------
 
diff --git a/src/rad/resources/manifests/datamodels-1.0.yaml b/src/rad/resources/manifests/datamodels-1.0.yaml
index fd40518f..e2c0a5b7 100644
--- a/src/rad/resources/manifests/datamodels-1.0.yaml
+++ b/src/rad/resources/manifests/datamodels-1.0.yaml
@@ -145,6 +145,37 @@ tags:
   title: Mosaic WCS parameters
   description: |-
     Mosaic WCS parameters
+# Ground Modules
+- tag_uri: asdf://stsci.edu/datamodels/roman/tags/base_exposure-1.0.0
+  schema_uri: asdf://stsci.edu/datamodels/roman/schemas/base_exposure-1.0.0
+  title: Exposure information
+  description: |-
+    Ground test exposure information
+- tag_uri: asdf://stsci.edu/datamodels/roman/tags/base_guidestar-1.0.0
+  schema_uri: asdf://stsci.edu/datamodels/roman/schemas/base_guidestar-1.0.0
+  title: Guidestar information
+  description: |-
+    Guidestar information
+- tag_uri: asdf://stsci.edu/datamodels/roman/tags/groundtest-1.0.0
+  schema_uri: asdf://stsci.edu/datamodels/roman/schemas/groundtest-1.0.0
+  title: Ground Test Information
+  description: |-
+    Ground test description.
+- tag_uri: asdf://stsci.edu/datamodels/roman/tags/tvac_groundtest-1.0.0
+  schema_uri: asdf://stsci.edu/datamodels/roman/schemas/tvac_groundtest-1.0.0
+  title: TVAC Ground Test Information
+  description: |-
+    TVAC ground test description.
+- tag_uri: asdf://stsci.edu/datamodels/roman/tags/fps-1.0.0
+  schema_uri: asdf://stsci.edu/datamodels/roman/schemas/fps-1.0.0
+  title: FPS schema
+  description: |-
+    FPS test data
+- tag_uri: asdf://stsci.edu/datamodels/roman/tags/tvac-1.0.0
+  schema_uri: asdf://stsci.edu/datamodels/roman/schemas/tvac-1.0.0
+  title: TVAC schema
+  description: |-
+    TVAC test data
 # Reference Modules
 - tag_uri: asdf://stsci.edu/datamodels/roman/tags/reference_files/dark-1.0.0
   schema_uri: asdf://stsci.edu/datamodels/roman/schemas/reference_files/dark-1.0.0
diff --git a/src/rad/resources/schemas/base_exposure-1.0.0.yaml b/src/rad/resources/schemas/base_exposure-1.0.0.yaml
new file mode 100644
index 00000000..f9e2ab24
--- /dev/null
+++ b/src/rad/resources/schemas/base_exposure-1.0.0.yaml
@@ -0,0 +1,188 @@
+%YAML 1.1
+---
+$schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
+id: asdf://stsci.edu/datamodels/roman/schemas/base_exposure-1.0.0
+
+
+title: |
+  Base Exposure Information
+
+type: object
+properties:
+  type:
+    $ref: asdf://stsci.edu/datamodels/roman/schemas/exposure_type-1.0.0
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: nvarchar(25)
+      destination: [WFIExposure.exposure_type, GuideWindow.exposure_type, WFICommon.exposure_type]
+  start_time:
+    title: Exposure Start Time (UTC)
+    description: |
+      The UTC time at the beginning of the exposure.
+    tag: tag:stsci.edu:asdf/time/time-1.*
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: datetime2
+      destination: [WFIExposure.exposure_start_time, GuideWindow.exposure_start_time, WFICommon.exposure_start_time]
+  ngroups:
+    title: Number of Resultants
+    description: |
+      The number of resultant frames in this exposure that were transmitted to
+      the ground. The number of integrations of WFI data is always 1.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.exposure_ngroups, GuideWindow.exposure_ngroups, WFICommon.exposure_ngroups]
+  nframes:
+    title: Number of Reads
+    description: |
+      This is the number of science frames that are combined to produce a resultant frame.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.exposure_nframes, GuideWindow.exposure_nframes, WFICommon.exposure_nframes]
+  data_problem:
+    title: Data Problem
+    description: |
+      A flag indicating an issue with science telemetry.
+    type: boolean
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: nchar(1)
+      destination: [WFIExposure.exposure_data_problem, GuideWindow.exposure_data_problem, WFICommon.exposure_data_problem]
+  frame_divisor:
+    title: Frame Divisor
+    description: |
+      The number of reads averaged to calculate a resultant. Value depends on
+      the readout pattern used from the MultiAccum table.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.exposure_frame_divisor, GuideWindow.exposure_frame_divisor, WFICommon.exposure_frame_divisor]
+  groupgap:
+    title: Number of Frames Dropped Between Resultants
+    description:
+      The number of reads that are dropped, or not used to calculate a
+      resultant.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.exposure_groupgap, GuideWindow.exposure_groupgap, WFICommon.exposure_groupgap]
+  frame_time:
+    title: Time Between Reads (s)
+    description: |
+      The amount of time elapsed between the end of one read and the beginning
+      of the next.
+    type: number
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: float
+      destination: [WFIExposure.exposure_frame_time, GuideWindow.exposure_frame_time, WFICommon.exposure_frame_time]
+  group_time:
+    title: Time Between Resultants (s)
+    description: |
+      The time that is the sum of the reads that are used to construct a
+      resultant. This will depend on the MA table being used.
+    type: number
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: float
+      destination: [WFIExposure.exposure_group_time, GuideWindow.exposure_group_time, WFICommon.exposure_group_time]
+  exposure_time:
+    title: Exposure Time (s)
+    description: |
+      The time between the start of the first Reset/Read Science Frame of an
+      Exposure and the completion of the final Read Only Science Frame of that
+      Exposure.
+    type: number
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: float
+      destination: [WFIExposure.exposure_time, GuideWindow.exposure_time, WFICommon.exposure_time]
+  ma_table_name:
+    title: MA Table Name
+    description: |
+      The name of the MultiAccum table used for this exposure, as defined in the
+      Project Reference Database.
+    type: string
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: nvarchar(50)
+      destination: [WFIExposure.ma_table_name, GuideWindow.ma_table_name, WFICommon.ma_table_name]
+  ma_table_number:
+    title: MA Table Number
+    description: |
+      The number of the MultiAccum table used for this exposure. Used in
+      matching exposures to their corresponding calibration data.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: smallint
+      destination: [WFIExposure.ma_table_number, GuideWindow.ma_table_number, WFICommon.ma_table_number]
+  read_pattern:
+    title: Read Pattern
+    description: |
+      Enumeration of detector reads to resultants making up the L1 data
+      downlinked from the observatory.
+    type: array
+    items:
+      type: array
+      items:
+        type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: nvarchar(3500)
+      destination: [WFIExposure.read_pattern, GuideWindow.read_pattern, WFICommon.read_pattern]
+propertyOrder: [type, start_time,
+           ngroups, nframes, data_problem,
+           frame_divisor, groupgap, frame_time, group_time, exposure_time,
+           ma_table_name, ma_table_number, read_pattern]
+flowStyle: block
+required: [type, start_time,
+           ngroups, nframes, data_problem,
+           frame_divisor, groupgap, frame_time, group_time, exposure_time,
+           ma_table_name, ma_table_number, read_pattern]
+...
diff --git a/src/rad/resources/schemas/base_guidestar-1.0.0.yaml b/src/rad/resources/schemas/base_guidestar-1.0.0.yaml
new file mode 100644
index 00000000..05d07b84
--- /dev/null
+++ b/src/rad/resources/schemas/base_guidestar-1.0.0.yaml
@@ -0,0 +1,144 @@
+%YAML 1.1
+---
+$schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
+id: asdf://stsci.edu/datamodels/roman/schemas/base_guidestar-1.0.0
+
+title: Base Guide star window information
+type: object
+properties:
+  gw_id:
+    title: Guide Star Window Identifier
+    description: |
+      Identification of the Guide Star Window.
+    type: string
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: nvarchar(20)
+      destination: [WFIExposure.gw_id, GuideWindow.gw_id, WFICommon.gw_id]
+  gw_fgs_mode:
+    $ref: guidewindow_modes-1.0.0
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: nvarchar(18)
+      destination: [WFIExposure.gw_fgs_mode, GuideWindow.gw_fgs_mode, WFICommon.gw_fgs_mode]
+  data_start:
+    title: Guide Data Start Time (MJD)
+    description: |
+      Start time of the guide window data taken for this exposure as a Modified
+      Julian Date.
+    type: number
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: float
+      destination: [WFIExposure.data_start, GuideWindow.data_start, WFICommon.data_start]
+  data_end:
+    title: Guide Data End Time (MJD)
+    description: |
+      End time of the guide window data taken for this exposure as a Modified
+      Julian Date.
+    type: number
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: TBD
+    archive_catalog:
+      datatype: float
+      destination: [WFIExposure.data_end, GuideWindow.data_end, WFICommon.data_end]
+  gw_window_xstart:
+    title: Guide Window X Start Position (pixels)
+    description: |
+      Minimum X position in the science coordinate frame of all tracking guide
+      windows in this exposure measured in pixels.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: Science Data Formatting
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.gw_window_xstart, WFICommon.gw_window_xstart]
+  gw_window_ystart:
+    title: Guide Window Y Start Position (pixels)
+    description: |
+      Minimum Y position in the science coordinate frame of all tracking guide
+      windows in this exposure measured in pixels.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: Science Data Formatting
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.gw_window_ystart, WFICommon.gw_window_ystart]
+  gw_window_xstop:
+    title: Guide Window X Stop Position (pixels)
+    description: |
+      Maximum X position in the science coordinate frame of all tracking guide
+      windows in this exposure measured in pixels.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: Science Data Formatting
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.gw_window_xstop, WFICommon.gw_window_xstop]
+  gw_window_ystop:
+    title: Guide Window Y Stop Position (pixels)
+    description: |
+      Maximum Y position in the science coordinate frame of all tracking guide
+      windows in this exposure measured in pixels
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: Science Data Formatting
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.gw_window_ystop, WFICommon.gw_window_ystop]
+  gw_window_xsize:
+    title: Guide Window Size in the X Direction (pixels)
+    description: |
+      Size of a single tracking guide window in this exposure measured along the
+      X axis in units of pixels.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: Science Data Formatting
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.gw_window_xsize, WFICommon.gw_window_xsize]
+  gw_window_ysize:
+    title: Guide Window Size in the Y Direction (pixels)
+    description: |
+      Size of a single tracking guide window in this exposure measured along the
+      Y axis in units of pixels.
+    type: integer
+    sdf:
+      special_processing: VALUE_REQUIRED
+      source:
+        origin: Science Data Formatting
+    archive_catalog:
+      datatype: int
+      destination: [WFIExposure.gw_window_ysize, WFICommon.gw_window_ysize]
+
+propertyOrder: [gw_id, gw_fgs_mode,
+               data_start, data_end, gw_window_xstart,
+               gw_window_ystart, gw_window_xstop, gw_window_ystop, gw_window_xsize,
+               gw_window_ysize]
+flowStyle: block
+required: [gw_id, gw_fgs_mode,
+           data_start, data_end, gw_window_xstart,
+           gw_window_ystart, gw_window_xstop, gw_window_ystop, gw_window_xsize,
+           gw_window_ysize]
+...
diff --git a/src/rad/resources/schemas/cal_step-1.0.0.yaml b/src/rad/resources/schemas/cal_step-1.0.0.yaml
index 39f456c3..547ab76b 100644
--- a/src/rad/resources/schemas/cal_step-1.0.0.yaml
+++ b/src/rad/resources/schemas/cal_step-1.0.0.yaml
@@ -15,7 +15,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_assign_wcs, GuideWindow.s_assign_wcs]
+      destination: [ScienceRefData.s_assign_wcs, GuideWindow.s_assign_wcs, WFICommon.s_assign_wcs]
   flat_field:
     title: Flat Fielding Step
     descroption: |
@@ -27,7 +27,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_flat_field, GuideWindow.s_flat_field]
+      destination: [ScienceRefData.s_flat_field, GuideWindow.s_flat_field, WFICommon.s_flat_field]
   dark:
     title: Dark Current Subtraction Step
     description: |
@@ -37,7 +37,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_dark, GuideWindow.s_dark]
+      destination: [ScienceRefData.s_dark, GuideWindow.s_dark, WFICommon.s_dark]
   dq_init:
     title: Initialization of the Data Quality Extension Step
     description: |
@@ -47,7 +47,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_dq_init, GuideWindow.s_dq_init]
+      destination: [ScienceRefData.s_dq_init, GuideWindow.s_dq_init, WFICommon.s_dq_init]
   jump:
     title: Cosmic Rays and Jump Detection Step
     description: |
@@ -57,7 +57,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_jump, GuideWindow.s_jump]
+      destination: [ScienceRefData.s_jump, GuideWindow.s_jump, WFICommon.s_jump]
   linearity:
     title: Linearity Correction Step
     description: |
@@ -67,7 +67,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_linearity, GuideWindow.s_linearity]
+      destination: [ScienceRefData.s_linearity, GuideWindow.s_linearity, WFICommon.s_linearity]
   photom:
     title: Photometric Calibration Step
     description: |
@@ -77,7 +77,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_photom, GuideWindow.s_photom]
+      destination: [ScienceRefData.s_photom, GuideWindow.s_photom, WFICommon.s_photom]
   source_detection:
     title: Source Detection Step
     description: |
@@ -86,7 +86,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_source_detection, GuideWindow.s_source_detection]
+      destination: [ScienceRefData.s_source_detection, GuideWindow.s_source_detection, WFICommon.s_source_detection]
   ramp_fit:
     title: Ramp Fit Step
     description: |
@@ -96,7 +96,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_ramp_fit, GuideWindow.s_ramp_fit]
+      destination: [ScienceRefData.s_ramp_fit, GuideWindow.s_ramp_fit, WFICommon.s_ramp_fit]
   refpix:
     title: Reference Pixel Correction Step
     description: |
@@ -106,7 +106,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_refpix, GuideWindow.s_refpix]
+      destination: [ScienceRefData.s_refpix, GuideWindow.s_refpix, WFICommon.s_refpix]
   saturation:
     title: Saturation Identification Step
     description: |
@@ -117,7 +117,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_saturation, GuideWindow.s_saturation]
+      destination: [ScienceRefData.s_saturation, GuideWindow.s_saturation, WFICommon.s_saturation]
   outlier_detection:
     title: Outlier Detection Step
     description: |
@@ -126,7 +126,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_outlier_detection, GuideWindow.s_outlier_detection]
+      destination: [ScienceRefData.s_outlier_detection, GuideWindow.s_outlier_detection, WFICommon.s_outlier_detection]
   tweakreg:
     title: Tweakreg step
     description: |
@@ -137,7 +137,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_tweakreg, GuideWindow.s_tweakreg]
+      destination: [ScienceRefData.s_tweakreg, GuideWindow.s_tweakreg, WFICommon.s_tweakreg]
   skymatch:
     title: Sky Matching for Combining Overlapping Images Step
     description: |
@@ -147,7 +147,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_skymatch, GuideWindow.s_skymatch]
+      destination: [ScienceRefData.s_skymatch, GuideWindow.s_skymatch, WFICommon.s_skymatch]
   resample:
     title: Resampling Input Data onto a Regular Grid Step
     description: |
@@ -158,7 +158,7 @@ properties:
     enum: ['N/A', 'COMPLETE', 'SKIPPED', 'INCOMPLETE']
     archive_catalog:
       datatype: nvarchar(15)
-      destination: [ScienceRefData.s_resample, GuideWindow.s_resample]
+      destination: [ScienceRefData.s_resample, GuideWindow.s_resample, WFICommon.s_resample]
 propertyOrder: [assign_wcs, flat_field, dark, dq_init, jump, linearity, photom, source_detection, outlier_detection, ramp_fit, refpix, saturation, skymatch, tweakreg, resample]
 flowStyle: block
 required: [assign_wcs, flat_field, dark, dq_init, jump, linearity, outlier_detection, photom, source_detection, ramp_fit, refpix, resample, saturation, skymatch, tweakreg]
diff --git a/src/rad/resources/schemas/exposure-1.0.0.yaml b/src/rad/resources/schemas/exposure-1.0.0.yaml
index 78aa176e..74692db9 100644
--- a/src/rad/resources/schemas/exposure-1.0.0.yaml
+++ b/src/rad/resources/schemas/exposure-1.0.0.yaml
@@ -4,413 +4,241 @@ $schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
 id: asdf://stsci.edu/datamodels/roman/schemas/exposure-1.0.0
 
 
-title: Exposure Information
+title: |
+  Exposure Information
 
-type: object
-properties:
-  id:
-    title: Visit Exposure ID
-    description: |
-      The matching exposure ID for a given visit ID.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.exposure_id, GuideWindow.exposure_id]
-
-  type:
-    $ref: exposure_type-1.0.0
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nvarchar(25)
-      destination: [WFIExposure.exposure_type, GuideWindow.exposure_type]
-
-  start_time:
-    title: Exposure Start Time (UTC)
-    description: |
-      The UTC time at the beginning of the exposure.
-    tag: tag:stsci.edu:asdf/time/time-1.*
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: datetime2
-      destination: [WFIExposure.exposure_start_time, GuideWindow.exposure_start_time]
-  mid_time:
-    title: Exposure Mid Time (UTC)
-    description: |
-      The UTC time at the midpoint of the exposure.
-    tag: tag:stsci.edu:asdf/time/time-1.*
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: datetime2
-      destination: [WFIExposure.exposure_mid_time, GuideWindow.exposure_mid_time]
-  end_time:
-    title: Exposure End Time (UTC)
-    description: |
-      The UTC time at the end of the exposure.
-    tag: tag:stsci.edu:asdf/time/time-1.*
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: datetime2
-      destination: [WFIExposure.exposure_end_time, GuideWindow.exposure_end_time]
-  start_time_mjd:
-    title: MJD Start Time (d)
-    description: |
-      The date, in MJD, at the beginning of this exposure. Used in the archive
-      catalog for multi-mission matching.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_start_time_mjd, GuideWindow.exposure_start_time_mjd]
-  mid_time_mjd:
-    title: MJD Mid Time (d)
-    description: |
-      The date, in MJD, at the midpoint of this exposure. Used in the archive
-      catalog for multi-mission matching.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_mid_time_mjd, GuideWindow.exposure_mid_time_mjd]
-  end_time_mjd:
-    title: MJD End Time (d)
-    description: |
-      The date, in MJD, at the end of this exposure. Used in the archive catalog
-      for multi-mission matching.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_end_time_mjd, GuideWindow.exposure_end_time_mjd]
-  start_time_tdb:
-    title: TDB Start Time (d)
-    description: |
-      The date, in TDB (Barycentric Dynamical Time), at the beginning of this
-      exposure.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_start_time_tdb, GuideWindow.exposure_start_time_tdb]
-  mid_time_tdb:
-    title: TDB Mid Time (d)
-    description: |
-      The date, in TDB (Barycentric Dynamical Time), at the midpoint of this
-      exposure.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_mid_time_tdb, GuideWindow.exposure_mid_time_tdb]
-  end_time_tdb:
-    title: TDB End Time (d)
-    description: |
-      The date, in TDB (Barycentric Dynamical Time), at the end of this
-      exposure.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_end_time_tdb, GuideWindow.exposure_end_time_tdb]
-  ngroups:
-    title: Number of Resultants
-    description: |
-      The number of resultant frames in this exposure that were transmitted to
-      the ground. The number of integrations of WFI data is always 1.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.exposure_ngroups, GuideWindow.exposure_ngroups]
-  nframes:
-    title: Number of Reads
-    description: |
-      This is the number of science frames that are combined to produce a resultant frame.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.exposure_nframes, GuideWindow.exposure_nframes]
-  data_problem:
-    title: Data Problem
-    description: |
-      A flag indicating an issue with science telemetry.
-    type: boolean
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nchar(1)
-      destination: [WFIExposure.exposure_data_problem, GuideWindow.exposure_data_problem]
-  sca_number:
-    title: SCA Number
-    description: |
-      The number of the detector on the Sensor Chip Assembly used for this
-      exposure.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.exposure_sca_number, GuideWindow.exposure_sca_number]
-  gain_factor:
-    title: Gain Factor
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_gain_factor, GuideWindow.exposure_gain_factor]
-  integration_time:
-    title: Effective Integration Time (s)
-    description:
-      The effective amount of time that the sensor was exposed to the sky.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_integration_time, GuideWindow.exposure_integration_time]
-  elapsed_exposure_time:
-    title: Elapsed Exposure Time (s)
-    description: |
-      The amount of time elapsed between an exposure's first and last science
-      reads.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.elapsed_exposure_time, GuideWindow.elapsed_exposure_time]
-  frame_divisor:
-    title: Frame Divisor
-    description: |
-      The number of reads averaged to calculate a resultant. Value depends on
-      the readout pattern used from the MultiAccum table.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.exposure_frame_divisor, GuideWindow.exposure_frame_divisor]
-  groupgap:
-    title: Number of Frames Dropped Between Resultants
-    description:
-      The number of reads that are dropped, or not used to calculate a
-      resultant.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.exposure_groupgap, GuideWindow.exposure_groupgap]
-  frame_time:
-    title: Time Between Reads (s)
-    description: |
-      The amount of time elapsed between the end of one read and the beginning
-      of the next.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_frame_time, GuideWindow.exposure_frame_time]
-  group_time:
-    title: Time Between Resultants (s)
-    description: |
-      The time that is the sum of the reads that are used to construct a
-      resultant. This will depend on the MA table being used.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_group_time, GuideWindow.exposure_group_time]
-  exposure_time:
-    title: Exposure Time (s)
-    description: |
-      The time between the start of the first Reset/Read Science Frame of an
-      Exposure and the completion of the final Read Only Science Frame of that
-      Exposure.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_time, GuideWindow.exposure_time]
-  effective_exposure_time:
-    title: Effective Exposure Time (s)
-    description: |
-      The amount of time during which the detector actually collected photons
-      during an exposure.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.effective_exposure_time, GuideWindow.effective_exposure_time]
-  duration:
-    title: Exposure Duration (s)
-    description: |
-      The amount of time dedicated to a exposure, including any overhead, time
-      spent on dropped frames, and so on.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.exposure_duration, GuideWindow.exposure_duration]
-  ma_table_name:
-    title: MA Table Name
-    description: |
-      The name of the MultiAccum table used for this exposure, as defined in the
-      Project Reference Database.
-    type: string
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nvarchar(50)
-      destination: [WFIExposure.ma_table_name, GuideWindow.ma_table_name]
-  ma_table_number:
-    title: MA Table Number
-    description: |
-      The number of the MultiAccum table used for this exposure. Used in
-      matching exposures to their corresponding calibration data.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: smallint
-      destination: [WFIExposure.ma_table_number, GuideWindow.ma_table_number]
-  level0_compressed:
-    title: Level 0 Compression
-    description: |
-      A flag indicating that the exposure has data that was decompressed by the
-      ground system.
-    type: boolean
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nchar(1)
-      destination: [WFIExposure.exposure_level0_compressed, GuideWindow.exposure_level0_compressed]
-  read_pattern:
-    title: Read Pattern
-    description: |
-      Enumeration of detector reads to resultants making up the L1 data
-      downlinked from the observatory.
-    type: array
-    items:
-      type: array
-      items:
+allOf:
+  - $ref: asdf://stsci.edu/datamodels/roman/schemas/base_exposure-1.0.0
+  - type: object
+    properties:
+      id:
+        title: Visit Exposure ID
+        description: |
+          The matching exposure ID for a given visit ID.
+        type: integer
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: int
+          destination: [WFIExposure.exposure_id, GuideWindow.exposure_id]
+      mid_time:
+        title: Exposure Mid Time (UTC)
+        description: |
+          The UTC time at the midpoint of the exposure.
+        tag: tag:stsci.edu:asdf/time/time-1.*
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: datetime2
+          destination: [WFIExposure.exposure_mid_time, GuideWindow.exposure_mid_time]
+      end_time:
+        title: Exposure End Time (UTC)
+        description: |
+          The UTC time at the end of the exposure.
+        tag: tag:stsci.edu:asdf/time/time-1.*
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: datetime2
+          destination: [WFIExposure.exposure_end_time, GuideWindow.exposure_end_time]
+      start_time_mjd:
+        title: MJD Start Time (d)
+        description: |
+          The date, in MJD, at the beginning of this exposure. Used in the archive
+          catalog for multi-mission matching.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_start_time_mjd, GuideWindow.exposure_start_time_mjd]
+      mid_time_mjd:
+        title: MJD Mid Time (d)
+        description: |
+          The date, in MJD, at the midpoint of this exposure. Used in the archive
+          catalog for multi-mission matching.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_mid_time_mjd, GuideWindow.exposure_mid_time_mjd]
+      end_time_mjd:
+        title: MJD End Time (d)
+        description: |
+          The date, in MJD, at the end of this exposure. Used in the archive catalog
+          for multi-mission matching.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_end_time_mjd, GuideWindow.exposure_end_time_mjd]
+      start_time_tdb:
+        title: TDB Start Time (d)
+        description: |
+          The date, in TDB (Barycentric Dynamical Time), at the beginning of this
+          exposure.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_start_time_tdb, GuideWindow.exposure_start_time_tdb]
+      mid_time_tdb:
+        title: TDB Mid Time (d)
+        description: |
+          The date, in TDB (Barycentric Dynamical Time), at the midpoint of this
+          exposure.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_mid_time_tdb, GuideWindow.exposure_mid_time_tdb]
+      end_time_tdb:
+        title: TDB End Time (d)
+        description: |
+          The date, in TDB (Barycentric Dynamical Time), at the end of this
+          exposure.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_end_time_tdb, GuideWindow.exposure_end_time_tdb]
+      sca_number:
+        title: SCA Number
+        description: |
+          The number of the detector on the Sensor Chip Assembly used for this
+          exposure.
         type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nvarchar(3500)
-      destination: [WFIExposure.read_pattern, GuideWindow.read_pattern]
-  truncated:
-    title: Truncated MA Table
-    description: |
-      A flag indicating whether the MA table was truncated.
-    type: boolean
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nchar(1)
-      destination: [WFIExposure.exposure_truncated]
-propertyOrder: [id, type,
-           start_time, mid_time, end_time,
-           start_time_mjd, mid_time_mjd, end_time_mjd,
-           start_time_tdb, mid_time_tdb, end_time_tdb,
-           ngroups, nframes, data_problem, sca_number,
-           gain_factor, integration_time, elapsed_exposure_time,
-           frame_divisor, groupgap,
-           frame_time, group_time, exposure_time,
-           effective_exposure_time, duration,
-           ma_table_name, ma_table_number, level0_compressed,
-           read_pattern, truncated]
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: int
+          destination: [WFIExposure.exposure_sca_number, GuideWindow.exposure_sca_number]
+      gain_factor:
+        title: Gain Factor
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_gain_factor, GuideWindow.exposure_gain_factor]
+      integration_time:
+        title: Effective Integration Time (s)
+        description:
+          The effective amount of time that the sensor was exposed to the sky.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_integration_time, GuideWindow.exposure_integration_time]
+      elapsed_exposure_time:
+        title: Elapsed Exposure Time (s)
+        description: |
+          The amount of time elapsed between an exposure's first and last science
+          reads.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.elapsed_exposure_time, GuideWindow.elapsed_exposure_time]
+      effective_exposure_time:
+        title: Effective Exposure Time (s)
+        description: |
+          The amount of time during which the detector actually collected photons
+          during an exposure.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.effective_exposure_time, GuideWindow.effective_exposure_time]
+      duration:
+        title: Exposure Duration (s)
+        description: |
+          The amount of time dedicated to a exposure, including any overhead, time
+          spent on dropped frames, and so on.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.exposure_duration, GuideWindow.exposure_duration]
+      level0_compressed:
+        title: Level 0 Compression
+        description: |
+          A flag indicating that the exposure has data that was decompressed by the
+          ground system.
+        type: boolean
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: nchar(1)
+          destination: [WFIExposure.exposure_level0_compressed, GuideWindow.exposure_level0_compressed]
+      truncated:
+        title: Truncated MA Table
+        description: |
+          A flag indicating whether the MA table was truncated.
+        type: boolean
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: nchar(1)
+          destination: [WFIExposure.exposure_truncated]
+    required: [id,
+              mid_time, end_time,
+              start_time_mjd, mid_time_mjd, end_time_mjd,
+              start_time_tdb, mid_time_tdb, end_time_tdb,
+              sca_number,
+              gain_factor, integration_time, elapsed_exposure_time,
+              effective_exposure_time, duration,
+              level0_compressed]
+    propertyOrder: [id,
+              mid_time, end_time,
+              start_time_mjd, mid_time_mjd, end_time_mjd,
+              start_time_tdb, mid_time_tdb, end_time_tdb,
+              sca_number,
+              gain_factor, integration_time, elapsed_exposure_time,
+              effective_exposure_time, duration,
+              level0_compressed, truncated]
 flowStyle: block
-required: [id, type,
-           start_time, mid_time, end_time,
-           start_time_mjd, mid_time_mjd, end_time_mjd,
-           start_time_tdb, mid_time_tdb, end_time_tdb,
-           ngroups, nframes, data_problem, sca_number,
-           gain_factor, integration_time, elapsed_exposure_time,
-           frame_divisor, groupgap,
-           frame_time, group_time, exposure_time,
-           effective_exposure_time, duration,
-           ma_table_name, ma_table_number, level0_compressed,
-           read_pattern]
 ...
diff --git a/src/rad/resources/schemas/fps-1.0.0.yaml b/src/rad/resources/schemas/fps-1.0.0.yaml
new file mode 100644
index 00000000..04491765
--- /dev/null
+++ b/src/rad/resources/schemas/fps-1.0.0.yaml
@@ -0,0 +1,119 @@
+%YAML 1.1
+---
+$schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
+id: asdf://stsci.edu/datamodels/roman/schemas/fps-1.0.0
+
+title: |
+  Schema for the FPS Test Data
+
+datamodel_name: FpsModel
+
+archive_meta: None
+
+type: object
+properties:
+  meta:
+    allOf:
+      - $ref: asdf://stsci.edu/datamodels/roman/schemas/ground_common-1.0.0
+      - type: object
+        properties:
+          groundtest:
+            tag: asdf://stsci.edu/datamodels/roman/tags/groundtest-1.0.0
+        required: [groundtest]
+
+  data:
+    title: Science data, including the border reference pixels.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  amp33:
+    title: Amp 33 reference pixel data.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  amp33_reset_reads:
+    title: Amp 33 reset reads performed before integration data.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  amp33_reference_read:
+    title: Amp 33 reference reads that can be subtracted from the amp33 ramp data, if present.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  guidewindow:
+    title: Guide window data.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  reference_read:
+    title: Reference read that can be subtracted from ramp, if present.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  reset_reads:
+    title: Reset reads performed before the ramp integration, if present.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+propertyOrder: [meta, data, amp33, amp33_reset_reads, amp33_reference_read,
+                guidewindow, reference_read, reset_reads]
+flowStyle: block
+required: [meta, data, amp33, guidewindow]
+...
diff --git a/src/rad/resources/schemas/ground_common-1.0.0.yaml b/src/rad/resources/schemas/ground_common-1.0.0.yaml
new file mode 100644
index 00000000..86b6e17d
--- /dev/null
+++ b/src/rad/resources/schemas/ground_common-1.0.0.yaml
@@ -0,0 +1,35 @@
+%YAML 1.1
+---
+$schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
+id: asdf://stsci.edu/datamodels/roman/schemas/ground_common-1.0.0
+
+title: Common metadata properties
+
+allOf:
+# Meta Variables
+- $ref: asdf://stsci.edu/datamodels/roman/schemas/basic-1.0.0
+- type: object
+  properties:
+    # Meta Objects
+    cal_step:
+      tag: asdf://stsci.edu/datamodels/roman/tags/cal_step-1.0.0
+    exposure:
+      tag: asdf://stsci.edu/datamodels/roman/tags/base_exposure-1.0.0
+    guidestar:
+      tag: asdf://stsci.edu/datamodels/roman/tags/base_guidestar-1.0.0
+    instrument:
+      tag: asdf://stsci.edu/datamodels/roman/tags/wfi_mode-1.0.0
+    ref_file:
+      tag: asdf://stsci.edu/datamodels/roman/tags/ref_file-1.0.0
+    hdf5_meta:
+      title: Original Raw HDF5 metadata
+      type: object
+    hdf5_telemetry:
+      title: Original Raw HDF5 telemetry keywords
+      type: string
+    gw_meta:
+      title: Guide Window HDF5 metadata
+      type: object
+  required: [cal_step, exposure, guidestar, instrument, ref_file,
+             hdf5_meta, hdf5_telemetry, gw_meta]
+...
diff --git a/src/rad/resources/schemas/guidestar-1.0.0.yaml b/src/rad/resources/schemas/guidestar-1.0.0.yaml
index 59bacb5c..6606b77f 100644
--- a/src/rad/resources/schemas/guidestar-1.0.0.yaml
+++ b/src/rad/resources/schemas/guidestar-1.0.0.yaml
@@ -4,363 +4,238 @@ $schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
 id: asdf://stsci.edu/datamodels/roman/schemas/guidestar-1.0.0
 
 title: Guide Star Window Information
-type: object
-properties:
-  gw_id:
-    title: Guide Star Window Identifier
-    description: |
-      Identification of the Guide Star Window.
-    type: string
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nvarchar(20)
-      destination: [WFIExposure.gw_id, GuideWindow.gw_id]
-  gw_fgs_mode:
-    $ref: guidewindow_modes-1.0.0
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nvarchar(18)
-      destination: [WFIExposure.gw_fgs_mode, GuideWindow.gw_fgs_mode]
-  gs_id:
-    title: Guide Star Identifier from Guide Star Catalog
-    description: |
-      Identification of the guide star from the guide star catalog.
-    type: string
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nvarchar(20)
-      destination: [WFIExposure.gs_id, GuideWindow.gs_id]
-  gs_catalog_version:
-    title: Version of the Guide Star Catalog
-    description: |
-      Version identifier of the guide star catalog used for the observation.
-    type: string
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nvarchar(20)
-      destination: [WFIExposure.gs_catalog_version]
-  gs_ra:
-    title: Guide Star Right Ascension (deg)
-    description: |
-      Right ascension of the guide star from the guide star catalog in units of
-      degrees.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_ra, GuideWindow.gs_ra]
-  gs_dec:
-    title: Guide Star Declination (deg)
-    description: |
-      Declination of the guide star from the guide star catalog in units of
-      degrees.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_dec, GuideWindow.gs_dec]
-  gs_ura:
-    title: Guide Star Right Ascension Uncertainty (deg)
-    description: |
-      Uncertainty in the guide star right ascension from the guide star catalog
-      in units of degrees.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_ura, GuideWindow.gs_ura]
-  gs_udec:
-    title: Guide Star Declination Uncertainty (deg)
-    description: |
-      Uncertainty in the guide star declination from the guide star catalog in
-      units of degrees.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_udec, GuideWindow.gs_udec]
-  gs_mag:
-    title: Guide Star Instrumental Magnitude
-    description: |
-      Predicted instrumental magnitude of the guide star from the guide star
-      catalog.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_mag, GuideWindow.gs_mag]
-  gs_umag:
-    title: Guide Star Instrumental Magnitude Uncertainty
-    description: |
-      Uncertainty in the predicted instrumental magnitude of the guide star from
-      the guide star catalog.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_umag, GuideWindow.gs_umag]
-  data_start:
-    title: Guide Data Start Time (MJD)
-    description: |
-      Start time of the guide window data taken for this exposure as a Modified
-      Julian Date.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.data_start, GuideWindow.data_start]
-  data_end:
-    title: Guide Data End Time (MJD)
-    description: |
-      End time of the guide window data taken for this exposure as a Modified
-      Julian Date.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.data_end, GuideWindow.data_end]
-  gs_ctd_x:
-    title: Guide Star Centroid X Position (arcsec)
-    description: |
-      Centroid of the guide star position longa the X axis of the guider ideal
-      frame measured in units of arcseconds.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_ctd_x, GuideWindow.gs_ctd_x]
-  gs_ctd_y:
-    title: Guide Star Centroid Y Position (arcsec)
-    description: |
-      Centroid of the guide star position along the Y axis of the guider ideal
-      frame measured in units of arcseconds.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_ctd_y, GuideWindow.gs_ctd_y]
-  gs_ctd_ux:
-    title: Guide Star Centroid X Position Uncertainty (arcsec)
-    description: |
-      Uncertainty in the centroid of the guide star position along the X axis of
-      the guider ideal frame measured in units of arcseconds
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_ctd_ux, GuideWindow.gs_ctd_ux]
-  gs_ctd_uy:
-    title: Guide Star Centroid Y Position Uncertainty (arcsec)
-    description: |
-      Uncertainty in the centroid of the guide star position along the Y axis of
-      the guider ideal frame measured in units of arcseconds.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_ctd_uy, GuideWindow.gs_ctd_uy]
-  gs_epoch:
-    title: Guide Star Coordinates Epoch
-    description: |
-      Epoch of the celestial coordinates of the guide star.
-    type: string
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: nvarchar(10)
-      destination: [WFIExposure.gs_epoch, GuideWindow.gs_epoch]
-  gs_mura:
-    title: Proper Motion of the Guide Star Right Ascension (mas / yr)
-    description: |
-      Proper motion of the guide star in right ascension from the guide star
-      catalog measured in units of milli-arcseconds per year.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_mura, GuideWindow.gs_mura]
-  gs_mudec:
-    title: Proper Motion of the Guide Star Declination (mas / yr)
-    description: |
-      Proper motion of the guide star in declination from the guide star catalog
-      measured in units of milli-arcseconds per year.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_mudec, GuideWindow.gs_mudec]
-  gs_para:
-    title: Guide Star Annual Parallax
-    description: |
-      Annual parallax of the guide star from the guide star catalog.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_para, GuideWindow.gs_para]
-  gs_pattern_error:
-    title: Guide Star Centroid RMS
-    description: |
-      RMS of the guide star position in the tracking guide windows from the Fine
-      Attitude Correction Estimate (FACE) information. The FACE information
-      determines the error across the guiding pattern using all centroid
-      measurements.
-    type: number
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: TBD
-    archive_catalog:
-      datatype: float
-      destination: [WFIExposure.gs_pattern_error, GuideWindow.gs_pattern_error]
-  gw_window_xstart:
-    title: Guide Window X Start Position (pixels)
-    description: |
-      Minimum X position in the science coordinate frame of all tracking guide
-      windows in this exposure measured in pixels.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: Science Data Formatting
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.gw_window_xstart]
-  gw_window_ystart:
-    title: Guide Window Y Start Position (pixels)
-    description: |
-      Minimum Y position in the science coordinate frame of all tracking guide
-      windows in this exposure measured in pixels.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: Science Data Formatting
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.gw_window_ystart]
-  gw_window_xstop:
-    title: Guide Window X Stop Position (pixels)
-    description: |
-      Maximum X position in the science coordinate frame of all tracking guide
-      windows in this exposure measured in pixels.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: Science Data Formatting
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.gw_window_xstop]
-  gw_window_ystop:
-    title: Guide Window Y Stop Position (pixels)
-    description: |
-      Maximum Y position in the science coordinate frame of all tracking guide
-      windows in this exposure measured in pixels
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: Science Data Formatting
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.gw_window_ystop]
-  gw_window_xsize:
-    title: Guide Window Size in the X Direction (pixels)
-    description: |
-      Size of a single tracking guide window in this exposure measured along the
-      X axis in units of pixels.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: Science Data Formatting
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.gw_window_xsize]
-  gw_window_ysize:
-    title: Guide Window Size in the Y Direction (pixels)
-    description: |
-      Size of a single tracking guide window in this exposure measured along the
-      Y axis in units of pixels.
-    type: integer
-    sdf:
-      special_processing: VALUE_REQUIRED
-      source:
-        origin: Science Data Formatting
-    archive_catalog:
-      datatype: int
-      destination: [WFIExposure.gw_window_ysize]
-propertyOrder: [gw_id, gs_id, gs_catalog_version, gs_ra, gs_dec,
-               gs_ura, gs_udec, gs_mag, gs_umag, gw_fgs_mode,
-               data_start, data_end, gs_ctd_x, gs_ctd_y, gs_ctd_ux, gs_ctd_uy,
-               gs_epoch, gs_mura, gs_mudec, gs_para, gs_pattern_error, gw_window_xstart,
-               gw_window_ystart, gw_window_xstop, gw_window_ystop, gw_window_xsize,
-               gw_window_ysize]
+
+allOf:
+  - $ref: asdf://stsci.edu/datamodels/roman/schemas/base_guidestar-1.0.0
+  - type: object
+    properties:
+      gs_id:
+        title: Guide Star Identifier from Guide Star Catalog
+        description: |
+          Identification of the guide star from the guide star catalog.
+        type: string
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: nvarchar(20)
+          destination: [WFIExposure.gs_id, GuideWindow.gs_id]
+      gs_catalog_version:
+        title: Version of the Guide Star Catalog
+        description: |
+          Version identifier of the guide star catalog used for the observation.
+        type: string
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: nvarchar(20)
+          destination: [WFIExposure.gs_catalog_version]
+      gs_ra:
+        title: Guide Star Right Ascension (deg)
+        description: |
+          Right ascension of the guide star from the guide star catalog in units of
+          degrees.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_ra, GuideWindow.gs_ra]
+      gs_dec:
+        title: Guide Star Declination (deg)
+        description: |
+          Declination of the guide star from the guide star catalog in units of
+          degrees.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_dec, GuideWindow.gs_dec]
+      gs_ura:
+        title: Guide Star Right Ascension Uncertainty (deg)
+        description: |
+          Uncertainty in the guide star right ascension from the guide star catalog
+          in units of degrees.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_ura, GuideWindow.gs_ura]
+      gs_udec:
+        title: Guide Star Declination Uncertainty (deg)
+        description: |
+          Uncertainty in the guide star declination from the guide star catalog in
+          units of degrees.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_udec, GuideWindow.gs_udec]
+      gs_mag:
+        title: Guide Star Instrumental Magnitude
+        description: |
+          Predicted instrumental magnitude of the guide star from the guide star
+          catalog.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_mag, GuideWindow.gs_mag]
+      gs_umag:
+        title: Guide Star Instrumental Magnitude Uncertainty
+        description: |
+          Uncertainty in the predicted instrumental magnitude of the guide star from
+          the guide star catalog.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_umag, GuideWindow.gs_umag]
+      gs_ctd_x:
+        title: Guide Star Centroid X Position (arcsec)
+        description: |
+          Centroid of the guide star position longa the X axis of the guider ideal
+          frame measured in units of arcseconds.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_ctd_x, GuideWindow.gs_ctd_x]
+      gs_ctd_y:
+        title: Guide Star Centroid Y Position (arcsec)
+        description: |
+          Centroid of the guide star position along the Y axis of the guider ideal
+          frame measured in units of arcseconds.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_ctd_y, GuideWindow.gs_ctd_y]
+      gs_ctd_ux:
+        title: Guide Star Centroid X Position Uncertainty (arcsec)
+        description: |
+          Uncertainty in the centroid of the guide star position along the X axis of
+          the guider ideal frame measured in units of arcseconds
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_ctd_ux, GuideWindow.gs_ctd_ux]
+      gs_ctd_uy:
+        title: Guide Star Centroid Y Position Uncertainty (arcsec)
+        description: |
+          Uncertainty in the centroid of the guide star position along the Y axis of
+          the guider ideal frame measured in units of arcseconds.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_ctd_uy, GuideWindow.gs_ctd_uy]
+      gs_epoch:
+        title: Guide Star Coordinates Epoch
+        description: |
+          Epoch of the celestial coordinates of the guide star.
+        type: string
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: nvarchar(10)
+          destination: [WFIExposure.gs_epoch, GuideWindow.gs_epoch]
+      gs_mura:
+        title: Proper Motion of the Guide Star Right Ascension (mas / yr)
+        description: |
+          Proper motion of the guide star in right ascension from the guide star
+          catalog measured in units of milli-arcseconds per year.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_mura, GuideWindow.gs_mura]
+      gs_mudec:
+        title: Proper Motion of the Guide Star Declination (mas / yr)
+        description: |
+          Proper motion of the guide star in declination from the guide star catalog
+          measured in units of milli-arcseconds per year.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_mudec, GuideWindow.gs_mudec]
+      gs_para:
+        title: Guide Star Annual Parallax
+        description: |
+          Annual parallax of the guide star from the guide star catalog.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_para, GuideWindow.gs_para]
+      gs_pattern_error:
+        title: Guide Star Centroid RMS
+        description: |
+          RMS of the guide star position in the tracking guide windows from the Fine
+          Attitude Correction Estimate (FACE) information. The FACE information
+          determines the error across the guiding pattern using all centroid
+          measurements.
+        type: number
+        sdf:
+          special_processing: VALUE_REQUIRED
+          source:
+            origin: TBD
+        archive_catalog:
+          datatype: float
+          destination: [WFIExposure.gs_pattern_error, GuideWindow.gs_pattern_error]
+    propertyOrder: [gs_id, gs_catalog_version, gs_ra, gs_dec,
+                  gs_ura, gs_udec, gs_mag, gs_umag,
+                  gs_ctd_x, gs_ctd_y, gs_ctd_ux, gs_ctd_uy,
+                  gs_epoch, gs_mura, gs_mudec, gs_para, gs_pattern_error]
+    required: [gs_id, gs_catalog_version, gs_ra, gs_dec,
+              gs_ura, gs_udec, gs_mag, gs_umag,
+              gs_ctd_x, gs_ctd_y, gs_ctd_ux, gs_ctd_uy,
+              gs_epoch, gs_mura, gs_mudec, gs_para, gs_pattern_error]
+
 flowStyle: block
-required: [gw_id, gs_id, gs_catalog_version, gs_ra, gs_dec,
-           gs_ura, gs_udec, gs_mag, gs_umag, gw_fgs_mode,
-           data_start, data_end, gs_ctd_x, gs_ctd_y, gs_ctd_ux, gs_ctd_uy,
-           gs_epoch, gs_mura, gs_mudec, gs_para, gs_pattern_error, gw_window_xstart,
-           gw_window_ystart, gw_window_xstop, gw_window_ystop, gw_window_xsize,
-           gw_window_ysize]
 ...
diff --git a/src/rad/resources/schemas/ref_file-1.0.0.yaml b/src/rad/resources/schemas/ref_file-1.0.0.yaml
index 62ce3007..03d603ca 100644
--- a/src/rad/resources/schemas/ref_file-1.0.0.yaml
+++ b/src/rad/resources/schemas/ref_file-1.0.0.yaml
@@ -23,7 +23,8 @@ properties:
             origin: TBD
         archive_catalog:
           datatype: nvarchar(120)
-          destination: [WFIExposure.crds_software_version, WFIMosaic.crds_software_version, GuideWindow.crds_software_version]
+          destination: [WFIExposure.crds_software_version, WFIMosaic.crds_software_version,
+                        GuideWindow.crds_software_version, WFICommon.crds_software_version]
 
       context_used:
         title: CRDS Context
@@ -36,7 +37,8 @@ properties:
             origin: TBD
         archive_catalog:
           datatype: nvarchar(120)
-          destination: [WFIExposure.crds_context_used, WFIMosaic.crds_context_used, GuideWindow.crds_context_used]
+          destination: [WFIExposure.crds_context_used, WFIMosaic.crds_context_used,
+                        GuideWindow.crds_context_used, WFICommon.crds_context_used]
   dark:
     title: Dark Reference File Information
     description: |
@@ -45,7 +47,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_dark, GuideWindow.r_dark]
+      destination: [ScienceRefData.r_dark, GuideWindow.r_dark, WFICommon.r_dark]
   distortion:
     title: Distortion Reference File Information
     description: |
@@ -54,7 +56,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_distortion, GuideWindow.r_distortion]
+      destination: [ScienceRefData.r_distortion, GuideWindow.r_distortion, WFICommon.r_distortion]
   mask:
     title: Mask Reference File Information
     description: |
@@ -62,7 +64,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_mask, GuideWindow.r_mask]
+      destination: [ScienceRefData.r_mask, GuideWindow.r_mask, WFICommon.r_mask]
   flat:
     title: Flat Reference File Information
     description: |
@@ -70,7 +72,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_flat, GuideWindow.r_flat]
+      destination: [ScienceRefData.r_flat, GuideWindow.r_flat, WFICommon.r_flat]
   gain:
     title: Gain Reference Rile Information
     description: |
@@ -78,7 +80,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_gain, GuideWindow.r_gain]
+      destination: [ScienceRefData.r_gain, GuideWindow.r_gain, WFICommon.r_gain]
   readnoise:
     title: Read Noise Reference Rile Information
     description: |
@@ -87,7 +89,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_readnoise, GuideWindow.r_readnoise]
+      destination: [ScienceRefData.r_readnoise, GuideWindow.r_readnoise, WFICommon.r_readnoise]
   linearity:
     title: Linearity Reference File Information
     description: |
@@ -95,7 +97,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_linearity, GuideWindow.r_linearity]
+      destination: [ScienceRefData.r_linearity, GuideWindow.r_linearity, WFICommon.r_linearity]
   photom:
     title: Photometry Reference File Information
     description: |
@@ -104,7 +106,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_photom, GuideWindow.r_photom]
+      destination: [ScienceRefData.r_photom, GuideWindow.r_photom, WFICommon.r_photom]
   area:
     title: Area Reference File Information
     description: |
@@ -112,7 +114,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_area, GuideWindow.r_area]
+      destination: [ScienceRefData.r_area, GuideWindow.r_area, WFICommon.r_area]
   saturation:
     title: Saturation Reference File Information
     description: |
@@ -121,7 +123,7 @@ properties:
     type: string
     archive_catalog:
       datatype: nvarchar(120)
-      destination: [ScienceRefData.r_saturation, GuideWindow.r_saturation]
+      destination: [ScienceRefData.r_saturation, GuideWindow.r_saturation, WFICommon.r_saturation]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/reference_files/superbias-1.0.0.yaml b/src/rad/resources/schemas/reference_files/superbias-1.0.0.yaml
index e908b042..b4e73b20 100644
--- a/src/rad/resources/schemas/reference_files/superbias-1.0.0.yaml
+++ b/src/rad/resources/schemas/reference_files/superbias-1.0.0.yaml
@@ -30,6 +30,7 @@ properties:
     description: |
       Two Dimensional Quality Array for all Resultants.
     title: 2-D data quality array for all planes
+    tag: tag:stsci.edu:asdf/core/ndarray-1.*
     datatype: uint32
     exact_datatype: true
     ndim: 2
diff --git a/src/rad/resources/schemas/tagged_scalars/calibration_software_version-1.0.0.yaml b/src/rad/resources/schemas/tagged_scalars/calibration_software_version-1.0.0.yaml
index 57f15dc2..2ea4e4fc 100644
--- a/src/rad/resources/schemas/tagged_scalars/calibration_software_version-1.0.0.yaml
+++ b/src/rad/resources/schemas/tagged_scalars/calibration_software_version-1.0.0.yaml
@@ -11,7 +11,7 @@ sdf:
     origin: TBD
 archive_catalog:
   datatype: nvarchar(120)
-  destination: [WFIExposure.calibration_software_version, GuideWindow.calibration_software_version]
+  destination: [WFIExposure.calibration_software_version, GuideWindow.calibration_software_version, WFICommon.calibration_software_version]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/tagged_scalars/file_date-1.0.0.yaml b/src/rad/resources/schemas/tagged_scalars/file_date-1.0.0.yaml
index 06921c44..f843ca77 100644
--- a/src/rad/resources/schemas/tagged_scalars/file_date-1.0.0.yaml
+++ b/src/rad/resources/schemas/tagged_scalars/file_date-1.0.0.yaml
@@ -14,7 +14,7 @@ sdf:
     origin: TBD
 archive_catalog:
   datatype: datetime2
-  destination: [WFIExposure.filedate, GuideWindow.filedate]
+  destination: [WFIExposure.filedate, GuideWindow.filedate, WFICommon.filedate]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/tagged_scalars/filename-1.0.0.yaml b/src/rad/resources/schemas/tagged_scalars/filename-1.0.0.yaml
index 5482d9fa..420ab32b 100644
--- a/src/rad/resources/schemas/tagged_scalars/filename-1.0.0.yaml
+++ b/src/rad/resources/schemas/tagged_scalars/filename-1.0.0.yaml
@@ -11,7 +11,7 @@ sdf:
     origin: TBD
 archive_catalog:
   datatype: nvarchar(120)
-  destination: [WFIExposure.filename, WFIMosaic.filename, GuideWindow.filename]
+  destination: [WFIExposure.filename, WFIMosaic.filename, GuideWindow.filename, WFICommon.filename]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/tagged_scalars/model_type-1.0.0.yaml b/src/rad/resources/schemas/tagged_scalars/model_type-1.0.0.yaml
index 1db1e599..89c04d9a 100644
--- a/src/rad/resources/schemas/tagged_scalars/model_type-1.0.0.yaml
+++ b/src/rad/resources/schemas/tagged_scalars/model_type-1.0.0.yaml
@@ -11,7 +11,7 @@ sdf:
     origin: TBD
 archive_catalog:
   datatype: nvarchar(50)
-  destination: [WFIExposure.model_type, GuideWindow.model_type]
+  destination: [WFIExposure.model_type, GuideWindow.model_type, WFICommon.model_type]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/tagged_scalars/origin-1.0.0.yaml b/src/rad/resources/schemas/tagged_scalars/origin-1.0.0.yaml
index eb3d72bc..77efd16d 100644
--- a/src/rad/resources/schemas/tagged_scalars/origin-1.0.0.yaml
+++ b/src/rad/resources/schemas/tagged_scalars/origin-1.0.0.yaml
@@ -14,7 +14,7 @@ sdf:
     origin: TBD
 archive_catalog:
   datatype: nvarchar(15)
-  destination: [WFIExposure.origin, GuideWindow.origin]
+  destination: [WFIExposure.origin, GuideWindow.origin, WFICommon.origin]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/tagged_scalars/prd_software_version-1.0.0.yaml b/src/rad/resources/schemas/tagged_scalars/prd_software_version-1.0.0.yaml
index 09e34ea3..99871ba6 100644
--- a/src/rad/resources/schemas/tagged_scalars/prd_software_version-1.0.0.yaml
+++ b/src/rad/resources/schemas/tagged_scalars/prd_software_version-1.0.0.yaml
@@ -11,7 +11,7 @@ sdf:
     origin: TBD
 archive_catalog:
   datatype: nvarchar(120)
-  destination: [WFIExposure.prd_software_version, GuideWindow.prd_software_version]
+  destination: [WFIExposure.prd_software_version, GuideWindow.prd_software_version, WFICommon.prd_software_version]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/tagged_scalars/sdf_software_version-1.0.0.yaml b/src/rad/resources/schemas/tagged_scalars/sdf_software_version-1.0.0.yaml
index defa7eca..2f20dfce 100644
--- a/src/rad/resources/schemas/tagged_scalars/sdf_software_version-1.0.0.yaml
+++ b/src/rad/resources/schemas/tagged_scalars/sdf_software_version-1.0.0.yaml
@@ -11,7 +11,7 @@ sdf:
     origin: TBD
 archive_catalog:
   datatype: nvarchar(120)
-  destination: [WFIExposure.sdf_software_version, GuideWindow.sdf_software_version]
+  destination: [WFIExposure.sdf_software_version, GuideWindow.sdf_software_version, WFICommon.sdf_software_version]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/tagged_scalars/telescope-1.0.0.yaml b/src/rad/resources/schemas/tagged_scalars/telescope-1.0.0.yaml
index 5bbe1efd..83270a12 100644
--- a/src/rad/resources/schemas/tagged_scalars/telescope-1.0.0.yaml
+++ b/src/rad/resources/schemas/tagged_scalars/telescope-1.0.0.yaml
@@ -10,7 +10,7 @@ enum: [ROMAN]
 
 archive_catalog:
   datatype: nvarchar(5)
-  destination: [WFIExposure.telescope, WFIMosaic.telescope, GuideWindow.telescope]
+  destination: [WFIExposure.telescope, WFIMosaic.telescope, GuideWindow.telescope, WFICommon.telescope]
 
 flowStyle: block
 ...
diff --git a/src/rad/resources/schemas/tvac-1.0.0.yaml b/src/rad/resources/schemas/tvac-1.0.0.yaml
new file mode 100644
index 00000000..4a32dafa
--- /dev/null
+++ b/src/rad/resources/schemas/tvac-1.0.0.yaml
@@ -0,0 +1,119 @@
+%YAML 1.1
+---
+$schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
+id: asdf://stsci.edu/datamodels/roman/schemas/tvac-1.0.0
+
+title: |
+  Schema for the TVAC Test Data
+
+datamodel_name: TvacModel
+
+archive_meta: None
+
+type: object
+properties:
+  meta:
+    allOf:
+      - $ref: asdf://stsci.edu/datamodels/roman/schemas/ground_common-1.0.0
+      - type: object
+        properties:
+          groundtest:
+            tag: asdf://stsci.edu/datamodels/roman/tags/tvac_groundtest-1.0.0
+        required: [groundtest]
+
+  data:
+    title: Science data, including the border reference pixels.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  amp33:
+    title: Amp 33 reference pixel data.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  amp33_reset_reads:
+    title: Amp 33 reset reads performed before integration data.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  amp33_reference_read:
+    title: Amp 33 reference reads that can be subtracted from the amp33 ramp data, if present.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  guidewindow:
+    title: Guide window data.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  reference_read:
+    title: Reference read that can be subtracted from ramp, if present.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+  reset_reads:
+    title: Reset reads performed before the ramp integration, if present.
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: uint16
+        exact_datatype: true
+        ndim: 3
+      unit:
+        tag: tag:astropy.org:astropy/units/unit-1.*
+        enum: ["DN"]
+
+propertyOrder: [meta, data, amp33, amp33_reset_reads, amp33_reference_read,
+                guidewindow, reference_read, reset_reads]
+flowStyle: block
+required: [meta, data, amp33, guidewindow]
+...
diff --git a/src/rad/resources/schemas/wfi_image-1.0.0.yaml b/src/rad/resources/schemas/wfi_image-1.0.0.yaml
index 27073c76..30c657fa 100644
--- a/src/rad/resources/schemas/wfi_image-1.0.0.yaml
+++ b/src/rad/resources/schemas/wfi_image-1.0.0.yaml
@@ -198,6 +198,7 @@ properties:
     title: Data Quality Flag for Border Reference Pixels, on Top
     description: |
       Data quality flag for border reference pixels, on top.
+    tag: tag:stsci.edu:asdf/core/ndarray-1.*
     datatype: uint32
     exact_datatype: true
     ndim: 2
diff --git a/src/rad/resources/schemas/wfi_mode-1.0.0.yaml b/src/rad/resources/schemas/wfi_mode-1.0.0.yaml
index ff5ea3cd..2cc3b9c4 100644
--- a/src/rad/resources/schemas/wfi_mode-1.0.0.yaml
+++ b/src/rad/resources/schemas/wfi_mode-1.0.0.yaml
@@ -19,7 +19,7 @@ properties:
         origin: TBD
     archive_catalog:
       datatype: nvarchar(5)
-      destination: [WFIExposure.instrument_name, GuideWindow.instrument_name]
+      destination: [WFIExposure.instrument_name, GuideWindow.instrument_name, WFICommon.instrument_name]
   detector:
     title: WFI Detector
     description: |
@@ -31,7 +31,7 @@ properties:
         origin: TBD
     archive_catalog:
       datatype: nvarchar(10)
-      destination: [WFIExposure.detector, GuideWindow.detector]
+      destination: [WFIExposure.detector, GuideWindow.detector, WFICommon.detector]
   optical_element:
     title: WFI Optical Element
     description: |
@@ -43,7 +43,7 @@ properties:
         origin: TBD
     archive_catalog:
       datatype: nvarchar(20)
-      destination: [WFIExposure.optical_element, GuideWindow.optical_element]
+      destination: [WFIExposure.optical_element, GuideWindow.optical_element, WFICommon.optical_element]
 propertyOrder: [detector, optical_element, name]
 flowStyle: block
 required: [detector, optical_element, name]


Test patch:
diff --git a/src/rad/resources/schemas/groundtest-1.0.0.yaml b/src/rad/resources/schemas/groundtest-1.0.0.yaml
new file mode 100644
index 00000000..793d99ca
--- /dev/null
+++ b/src/rad/resources/schemas/groundtest-1.0.0.yaml
@@ -0,0 +1,141 @@
+%YAML 1.1
+---
+$schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
+id: asdf://stsci.edu/datamodels/roman/schemas/groundtest-1.0.0
+
+title: Ground Test Information
+type: object
+properties:
+  test_name:
+    title: I&T Test Name
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.test_name]
+  test_phase:
+    title: I&T Testing Phase
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.test_phase]
+  test_environment:
+    title: I&T Testing Environment
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.test_environment]
+  test_script:
+    title: Name of Testing Script Run
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.test_script]
+  product_date:
+    title: Source File Creation Time
+    tag: tag:stsci.edu:asdf/time/time-1.*
+    archive_catalog:
+      datatype: datetime2
+      destination: [WFICommon.product_date]
+  product_version:
+    title: I&T Software Used to Generate Source File
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.product_version]
+  conversion_date:
+    title: HDF5 to ASDF Conversion Date
+    tag: tag:stsci.edu:asdf/time/time-1.*
+    archive_catalog:
+      datatype: datetime2
+      destination: [WFICommon.conversion_date]
+  conversion_version:
+    title: HDF5 to ASDF Converter Version
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.conversion_version]
+  filename_pnt5:
+    title: L0.5 File Name
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.filename_pnt5]
+  filepath_level_pnt5:
+    title: L0.5 File Path
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.filepath_level_pnt5]
+  filename_l1a:
+    title: L1A File Name
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.filename_l1a]
+  detector_id:
+    title: SCA Identifier
+    type: string
+    archive_catalog:
+      datatype: nvarchar(80)
+      destination: [WFICommon.detector_id]
+  detector_temp:
+    title: Mean Detector Temperature (Kelvin)
+    type: number
+    archive_catalog:
+      datatype: float
+      destination: [WFICommon.detector_temp]
+  frames_temp:
+    title: Interpolated Temperature of Frames (Kelvin)
+    tag: tag:stsci.edu:asdf/core/ndarray-1.*
+    datatype: float64
+    exact_datatype: true
+    # needs a ndim
+  ota_temp:
+    title: Mean OTA Temperature (Kelvin)
+    type: number
+    archive_catalog:
+      datatype: float
+      destination: [WFICommon.ota_temp]
+  rcs_on:
+    title: RCS On/Off
+    type: boolean
+    archive_catalog:
+      datatype: nchar(1)
+      destination: [WFICommon.rcs_on]
+  readout_col_num:
+    title: Number of Readout Columns
+    type: integer
+    archive_catalog:
+      datatype: int
+      destination: [WFICommon.readout_col_num]
+  detector_pixel_size:
+    title: Pixel Size (cm)
+    tag: tag:stsci.edu:asdf/unit/quantity-1.*
+    properties:
+      value:
+        tag: tag:stsci.edu:asdf/core/ndarray-1.*
+        datatype: float64
+        exact_datatype: true
+        # needs ndim
+      unit:
+        tag: tag:stsci.edu:asdf/unit/unit-1.*
+        enum: ["cm"]
+  sensor_error:
+    title: Sensor Error
+    tag: tag:stsci.edu:asdf/core/ndarray-1.*
+    datatype: float64
+    exact_datatype: true
+    # needs ndim
+
+propertyOrder: [test_name, test_phase, test_environment, test_script,
+                product_date, product_version, conversion_date, conversion_version,
+                filename_pnt5, filepath_level_pnt5, filename_l1a, detector_id,
+                detector_temp, frames_temp, ota_temp, rcs_on, readout_col_num,
+                detector_pixel_size, sensor_error]
+flowStyle: block
+required: [test_name, test_phase, test_environment, test_script,
+           product_date, product_version, conversion_date, conversion_version,
+           filename_pnt5, filepath_level_pnt5, filename_l1a, detector_id,
+           detector_temp, frames_temp, ota_temp, rcs_on, readout_col_num,
+           detector_pixel_size, sensor_error]
+...
diff --git a/src/rad/resources/schemas/tvac_groundtest-1.0.0.yaml b/src/rad/resources/schemas/tvac_groundtest-1.0.0.yaml
new file mode 100644
index 00000000..b9545cd5
--- /dev/null
+++ b/src/rad/resources/schemas/tvac_groundtest-1.0.0.yaml
@@ -0,0 +1,345 @@
+%YAML 1.1
+---
+$schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
+id: asdf://stsci.edu/datamodels/roman/schemas/tvac_groundtest-1.0.0
+
+title: TVAC Ground Test Information
+allOf:
+  - $ref: asdf://stsci.edu/datamodels/roman/schemas/groundtest-1.0.0
+  - type: object
+    properties:
+      activity_number:
+        title: TVAC Activity Number
+        type: integer
+        archive_catalog:
+          datatype: int
+          destination: [WFITvac.activity_number]
+      led_bank1_band_number_on:
+        title: Band number of LED illuminating in the sRCS in bank 1
+        type: array
+        items:
+          type: integer
+      led_bank2_bank1_number_on:
+        title: Band number of LED illuminating in the sRCS in bank 2
+        type: array
+        items:
+          type: integer
+      led_bank1_approx_wlen:
+        title: Approximate wavelength of LED illuminating in the sRCS in bank 1
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          value:
+            tag: tag:stsci.edu:asdf/core/ndarray-1.*
+            datatype: float64
+            exact_datatype: true
+            # needs ndim
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: ["nm"]
+      led_bank2_approx_wlen:
+        title: Approximate wavelength of LED illuminating in the sRCS in bank 2
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          value:
+            tag: tag:stsci.edu:asdf/core/ndarray-1.*
+            datatype: float64
+            exact_datatype: true
+            # needs ndim
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: ["nm"]
+      srcs_pd_voltage:
+        title: sRCS Photodiode Voltage
+        type: number
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.srcs_pd_voltage]
+      srcs_led_flux:
+        title: Target flux for the sRCS LEDs
+        type: number
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.srcs_led_flux]
+      wfi_mce_srcs_bank1_led_i:
+        title: |
+          Commanded current for the SRCS -> GSFC will send us the flux
+          in target e-/s/px in the center of the sca
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: ["A"]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.wfi_mce_srcs_bank1_led_i]
+      wfi_mce_srcs_bank1_led_range:
+        title: |
+          Commanded range for the SRCS -> GSFC will send us the flux in
+          target e-/s/px in the center of the sca
+        type: string
+        # enum: [] add enum values
+        archive_catalog:
+          datatype: nvarchar(80)
+          destination: [WFITvac.wfi_mce_srcs_bank1_led_range]
+      wfi_mce_srcs_bank2_led_i:
+        title: |
+          Commanded current for the SRCS -> GSFC will send us the flux
+          in target e-/s/px in the center of the sca
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: ["A"]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.wfi_mce_srcs_bank2_led_i]
+      wfi_mce_srcs_bank2_led_range:
+        title: |
+          Commanded range for the SRCS -> GSFC will send us the flux in
+          target e-/s/px in the center of the sca
+        type: string
+        # enum: [] add enum values
+        archive_catalog:
+          datatype: nvarchar(80)
+          destination: [WFITvac.wfi_mce_srcs_bank2_led_range]
+      srcs_led_current:
+        title: Input LED current set point
+        type: number
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.srcs_led_current]
+      wfi_opt_targettype:
+        title: WFI-team defined target types
+        type: string
+        enum: [NONE, FLAT-sRCS, FLAT-SORC, POINT SOURCE, SPECTRUM, DARK,
+                DARK-DARKEL, DARK-W146, PHARET-GW, PHARET-FF, PHARET-FF-F158,
+                PHARET-FF-M3MM, PHARET-FF-M6MM, PHARET-FF-P3MM, PHARET-FF-P6MM,
+                PHARET-FF-PRISM, PHARET-FF-W146, POINT-SOURCE-GW, STRAY LIGHT]
+        archive_catalog:
+          datatype: nvarchar(20)
+          destination: [WFITvac.wfi_opt_targettype]
+      analysis_tag:
+        title: WFI-team defined tags for data aggregation/analysis
+        type: string
+        archive_catalog:
+          datatype: nvarchar(32)
+          destination: [WFITvac.analysis_tag]
+      gsorc_pose_mode:
+        title: SORC pose mode
+        type: string
+        # enum: [] add enum values
+        archive_catalog:
+          datatype: nvarchar(20)
+          destination: [WFITvac.gsorc_pose_mode]
+      gsorc_pose_target:
+        title: SORC pose target
+        type: string
+        # enum: [] add enum values
+        archive_catalog:
+          datatype: nvarchar(20)
+          destination: [WFITvac.gsorc_pose_target]
+      gsorc_sds_active_atten:
+        title: Attenuation from SDS
+        type: number
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.gsorc_sds_active_atten]
+      gsorc_sds_lltfir_wave:
+        title: Commanded wavelength for the LLTF
+        type: number
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.gsorc_sds_lltfir_wave]
+      gsorc_sds_sorc_on:
+        title: SORC on/off
+        type: boolean
+        archive_catalog:
+          datatype: nchar(1)
+          destination: [WFITvac.gsorc_sds_sorc_on]
+      gsorc_sds_sorc_wlen:
+        title: SORC wavelength
+        type: number
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.gsorc_sds_sorc_wlen]
+      gsorc_sds_active_source:
+        title: Laser name
+        type: string
+        archive_catalog:
+          datatype: nvarchar(20)
+          destination: [WFITvac.gsorc_sds_active_source]
+      gsorc_sds_dq_pulse:
+        title: whether the source is pulsing or not
+        type: string
+        enum: [pulse, cw]
+        archive_catalog:
+          datatype: nvarchar(10)
+          destination: [WFITvac.gsorc_sds_dq_pulse]
+      gsorc_sds_daq_pw:
+        title: pulse width – originally in HDF5 file is in units of 0.1 ms
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [ms]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.gsorc_sds_daq_pw]
+      gsorc_heater1_setpt:
+        title: SORC temperature set point
+        type: number
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.gsorc_heater1_setpt]
+      wfi_otp_wfi_ewa:
+        title: Element Wheel position
+        type: string
+        # enum: [] add enum values
+        archive_catalog:
+          datatype: nvarchar(15)
+          destination: [WFITvac.wfi_otp_wfi_ewa]
+      sca_temp:
+        title: SCE temperature
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [K]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.sca_temp]
+      mpa_temp:
+        title: MPA temperature
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [K]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.mpa_temp]
+      ewa_temp:
+        title: ewa temp ish (there's no actual temperature sensor inside)
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [K]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.ewa_temp]
+      ewta_outer_heater_temp:
+        title: ewa_outer temperature sensor
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [K]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.ewta_outer_heater_temp]
+      ewta_inner_heater_temp:
+        title: ewa_inner temperature sensor
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [K]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.ewta_inner_heater_temp]
+      coba_temp_near_ewta:
+        title: COBA temperature near element wheel
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [K]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.coba_temp_near_ewta]
+      scea_temp:
+        title: SCEA temperature
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [K]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.scea_temp]
+      wfi_sce_1_vbiasgate_v:
+        title: SCE gate voltage bias.
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [V]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.wfi_sce_1_vbiasgate_v]
+      wfi_sce_1_vbiaspwr_i:
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [A]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.wfi_sce_1_vbiaspwr_i]
+      wfi_sce_1_vbiaspwr_v:
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [V]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.wfi_sce_1_vbiaspwr_v]
+      wfi_sce_1_vreset_v:
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [V]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.wfi_sce_1_vreset_v]
+      wfi_sce_1_vreset_i:
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [A]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.wfi_sce_1_vreset_i]
+      wfi_mcu_a_offs_csense_fpssen:
+        title: temperature in eng units -> will change for TVAC2.
+        tag: tag:stsci.edu:asdf/unit/quantity-1.*
+        properties:
+          # needs a datatype
+          unit:
+            tag: tag:stsci.edu:asdf/unit/unit-1.*
+            enum: [K]
+        archive_catalog:
+          datatype: float
+          destination: [WFITvac.wfi_mcu_a_offs_csense_fpssen]
+
+flowStyle: block
+...