# frozen_string_literal: true
module Stupidedi
  module TransactionSets
    module FortyTen
      module Implementations
        b = Builder
        d = Schema
        r = SegmentReqs
        e = ElementReqs
        s = SegmentDefs

        SM204 = b.build("SM", "204", "Motor Carrier Load Tender",
          d::TableDef.header("Heading",
            b::Segment(10, s::ST, "Transaction Set Header", r::Required, d::RepeatCount.bounded(1),
              b::Element(e::Required,    "Transaction Set Identifier Code", b::Values("204")),
              b::Element(e::Required,    "Transaction Set Control Number")),
            b::Segment(20, s::B2, "Beginning Segment for Shipment Information Transaction", r::Required, d::RepeatCount.bounded(1),
              b::Element(e::NotUsed,     "Tariff Service Code"),
              b::Element(e::Required,    "Standard Carrier Alpha Code"),
              b::Element(e::NotUsed,     "Standard Point Location Code"),
              b::Element(e::Required,    "Shipment Identification Number"),
              b::Element(e::NotUsed,     "Weight Unit Qualifier"),
              b::Element(e::Required,    "Shipment Method of Payment"),
              b::Element(e::NotUsed,     "Shipment Qualifier"),
              b::Element(e::NotUsed,     "Total Equipment"),
              b::Element(e::NotUsed,     "Shipment Weight Code"),
              b::Element(e::NotUsed,     "Customs Document Handling Code"),
              b::Element(e::NotUsed,     "Transportation Terms Code"),
              b::Element(e::NotUsed,     "Payment Method Code")),
            b::Segment(30, s::B2A, "Set Purpose", r::Required, d::RepeatCount.bounded(1),
              b::Element(e::Required,    "Transaction Set Purpose Code"),
              b::Element(e::Situational, "Application Type")),
            b::Segment(80, s::L11, "Business Instructions and Reference Number", r::Situational, d::RepeatCount.bounded(200),
              b::Element(e::Situational, "Reference Identification"),
              b::Element(e::Situational, "Reference Identification Qualifier"),
              b::Element(e::Situational, "Description")),
            b::Segment(90, s::G62, "Date/Time", r::Situational, d::RepeatCount.bounded(1),
              b::Element(e::Situational, "Date Qualifier"),
              b::Element(e::Situational, "Date"),
              b::Element(e::Situational, "Time Qualifier"),
              b::Element(e::Situational, "Time"),
              b::Element(e::NotUsed,     "Time Code")),
            b::Segment(100, s::MS3, "Interline Information", r::Required, d::RepeatCount.bounded(1),
              b::Element(e::Required,    "Standard Carrier Alpha Code"),
              b::Element(e::Situational, "Routing Sequence Code"),
              b::Element(e::Situational, "City Name"),
              b::Element(e::Required,    "Transportation Method/Type Code"),
              b::Element(e::Situational, "State or Province Code")),
            b::Segment(120, s::PLD, "Pallet Information", r::Situational, d::RepeatCount.bounded(1),
              b::Element(e::Required,    "Quantity of Pallets Shipped"),
              b::Element(e::NotUsed,     "Pallet Exchange Code"),
              b::Element(e::NotUsed,     "Weight Unit Code"),
              b::Element(e::NotUsed,     "Weight")),
            b::Segment(130, s::NTE, "Note/Special Instruction", r::Situational, d::RepeatCount.bounded(10),
              b::Element(e::Situational, "Note Reference Code"),
              b::Element(e::Situational, "Description")),

            d::LoopDef.build("LOOP 0100", d::RepeatCount.bounded(5),
              b::Segment(140, s::N1, "Name", r::Situational, d::RepeatCount.bounded(1),
                b::Element(e::Required,    "Entity Identifier Code"),
                b::Element(e::Required,    "Name"),
                b::Element(e::Situational, "Identification Code Qualifier"),
                b::Element(e::Situational, "Identification Code"),
                b::Element(e::NotUsed,     "Entity Relationship Code"),
                b::Element(e::NotUsed,     "Entity Identifier Code")),
              b::Segment(160, s::N3, "Address Information", r::Situational, d::RepeatCount.bounded(2),
                b::Element(e::Situational, "Address Information"),
                b::Element(e::Situational, "Address Information")),
              b::Segment(170, s::N4, "Geographic Information", r::Situational, d::RepeatCount.bounded(1),
                b::Element(e::Situational, "City Name"),
                b::Element(e::Situational, "State or Province Code"),
                b::Element(e::Situational, "Postal Code"),
                b::Element(e::Situational, "Country Code"),
                b::Element(e::NotUsed,     "Location Qualifier"),
                b::Element(e::NotUsed,     "Location Identifier")),
              b::Segment(190, s::G61, "Contact", r::Situational, d::RepeatCount.bounded(3),
                b::Element(e::Situational, "Contact Function Code"),
                b::Element(e::Situational, "Name"),
                b::Element(e::Situational, "Communication Number Qualifier"),
                b::Element(e::Situational, "Communication Number"),
                b::Element(e::NotUsed,     "Contact Inquiry Reference"))),

            d::LoopDef.build("LOOP 0200", d::RepeatCount.bounded(10),
              b::Segment(200, s::N7, "Equipment Details", r::Required, d::RepeatCount.bounded(1),
                b::Element(e::NotUsed,     "Equipment Initial"),
                b::Element(e::Situational, "Equipment Number"),
                b::Element(e::NotUsed,     "Weight"),
                b::Element(e::NotUsed,     "Weight Qualifier"),
                b::Element(e::NotUsed,     "Tare Weight"),
                b::Element(e::NotUsed,     "Weight Allowance"),
                b::Element(e::NotUsed,     "Dunnage"),
                b::Element(e::NotUsed,     "Volume"),
                b::Element(e::NotUsed,     "Volume Unit Qualifier"),
                b::Element(e::NotUsed,     "Ownership Code"),
                b::Element(e::Situational, "Equipment Description Code"),
                b::Element(e::NotUsed,     "Standard Carrier Alpha Code"),
                b::Element(e::NotUsed,     "Temperature Control"),
                b::Element(e::NotUsed,     "Position"),
                b::Element(e::Situational, "Equipment Length"),
                b::Element(e::NotUsed,     "Tare Qualifier Code"),
                b::Element(e::NotUsed,     "Weight Unit Code"),
                b::Element(e::NotUsed,     "Equipment Number Check Digit"),
                b::Element(e::NotUsed,     "Type of Service Code"),
                b::Element(e::NotUsed,     "Height"),
                b::Element(e::NotUsed,     "Width"),
                b::Element(e::NotUsed,     "Equipment Type"),
                b::Element(e::NotUsed,     "Standard Carrier Alpha Code"),
                b::Element(e::NotUsed,     "Car Type Code")),
              b::Segment(208, s::MEA, "Measurements", r::Situational, d::RepeatCount.bounded(1),
                b::Element(e::Situational, "Measurement Reference ID Code"),
                b::Element(e::Situational, "Measurement Qualifier"),
                b::Element(e::Situational, "Measurement Value"),
                b::Element(e::Situational, "Composite Unit of Measure"),
                b::Element(e::Situational, "Range Minimum"),
                b::Element(e::Situational, "Range Maximum"),
                b::Element(e::NotUsed,     "Measurement Significance Code"),
                b::Element(e::NotUsed,     "Measurement Attribute Code"),
                b::Element(e::NotUsed,     "Surface/Layer/Position Code"),
                b::Element(e::NotUsed,     "Measurement Method or Device Code"),
                b::Element(e::NotUsed,     "Code List Qualifier Code"),
                b::Element(e::NotUsed,     "Industry Code")),
              b::Segment(210, s::M7, "Seal Numbers", r::Situational, d::RepeatCount.bounded(2),
                b::Element(e::Situational, "Seal Number"),
                b::Element(e::NotUsed,     "Seal Number"),
                b::Element(e::NotUsed,     "Seal Number"),
                b::Element(e::NotUsed,     "Seal Number"),
                b::Element(e::NotUsed,     "Entity Identifier Code")))),

          d::TableDef.detail("Detail",
            d::LoopDef.build("LOOP 0300", d::RepeatCount.bounded(999),
              b::Segment(10, s::S5, "Stop Off Details", r::Required, d::RepeatCount.bounded(1),
                b::Element(e::Situational, "Stop Sequence Number"),
                b::Element(e::Situational, "Stop Reason Code"),
                b::Element(e::Situational, "Weight"),
                b::Element(e::Situational, "Weight Unit Code"),
                b::Element(e::Situational, "Number of Units Shipped"),
                b::Element(e::Situational, "Unit of Measure Code"),
                b::Element(e::Situational, "Volume"),
                b::Element(e::Situational, "Volume Unit Qualifier"),
                b::Element(e::NotUsed,     "Description"),
                b::Element(e::NotUsed,     "Standard Point Location Code"),
                b::Element(e::NotUsed,     "Accomplish Code")),
              b::Segment(20, s::L11, "Business Instructions and Reference Number", r::Situational, d::RepeatCount.bounded(200),
                b::Element(e::Situational, "Reference Identification"),
                b::Element(e::Situational, "Reference Identification Qualifier"),
                b::Element(e::Situational, "Description")),
              b::Segment(30, s::G62, "Date/Time", r::Situational, d::RepeatCount.bounded(2),
                b::Element(e::Situational, "Date Qualifier"),
                b::Element(e::Situational, "Date"),
                b::Element(e::Situational, "Time Qualifier"),
                b::Element(e::Situational, "Time"),
                b::Element(e::Situational, "Time Code")),
              b::Segment(40, s::AT8, "Shipment Weight, Packaging and Quantity Data", r::Situational, d::RepeatCount.bounded(1),
                b::Element(e::Required,    "Weight Qualifier"),
                b::Element(e::Required,    "Weight Unit Code"),
                b::Element(e::Required,    "Weight"),
                b::Element(e::Required,    "Lading Quantity"),
                b::Element(e::Situational, "Lading Quantity"),
                b::Element(e::Situational, "Volume Unit Qualifier"),
                b::Element(e::Situational, "Volume")),
              b::Segment(50, s::LAD, "Lading Detail", r::Situational, d::RepeatCount.bounded(999),
                b::Element(e::Situational, "Packaging Form Code"),
                b::Element(e::Situational, "Lading Quantity"),
                b::Element(e::Situational, "Weight Unit Code"),
                b::Element(e::Situational, "Unit Weight"),
                b::Element(e::Situational, "Weight Unit Code"),
                b::Element(e::Situational, "Weight"),
                b::Element(e::Situational, "Product/Service ID Qualifier"),
                b::Element(e::Situational, "Product/Service ID"),
                b::Element(e::Situational, "Product/Service ID Qualifier"),
                b::Element(e::Situational, "Product/Service ID"),
                b::Element(e::Situational, "Product/Service ID Qualifier"),
                b::Element(e::Situational, "Product/Service ID"),
                b::Element(e::Situational, "Lading Description")),
              b::Segment(65, s::NTE, "Note/Special Instruction", r::Situational, d::RepeatCount.bounded(20),
                b::Element(e::Situational, "Note Reference Code"),
                b::Element(e::Situational, "Description")),

              d::LoopDef.build("LOOP 0310", d::RepeatCount.bounded(1),
                b::Segment(70, s::N1, "Name", r::Required, d::RepeatCount.bounded(1),
                  b::Element(e::Required,    "Entity Identifier Code"),
                  b::Element(e::Required,    "Name"),
                  b::Element(e::Situational, "Identification Code Qualifier"),
                  b::Element(e::Situational, "Identification Code"),
                  b::Element(e::NotUsed,     "Entity Relationship Code"),
                  b::Element(e::NotUsed,     "Entity Identifier Code")),
                b::Segment(90, s::N3, "Address Information", r::Situational, d::RepeatCount.bounded(2),
                  b::Element(e::Situational, "Address Information"),
                  b::Element(e::Situational, "Address Information")),
                b::Segment(100, s::N4, "Geographic Location", r::Situational, d::RepeatCount.bounded(1),
                  b::Element(e::Situational, "City Name"),
                  b::Element(e::Situational, "State or Province Code"),
                  b::Element(e::Situational, "Postal Code"),
                  b::Element(e::Situational, "Country Code"),
                  b::Element(e::NotUsed,     "Location Qualifier"),
                  b::Element(e::NotUsed,     "Location Identifier")),
                b::Segment(120, s::G61, "Contact", r::Situational, d::RepeatCount.bounded(3),
                  b::Element(e::Situational, "Contact Function Code"),
                  b::Element(e::Situational, "Name"),
                  b::Element(e::Situational, "Communication Number Qualifier"),
                  b::Element(e::Situational, "Communication Number"),
                  b::Element(e::NotUsed,     "Contact Inquiry Reference"))),

              d::LoopDef.build("LOOP 0320", d::RepeatCount.bounded(99),
                b::Segment(130, s::L5, "Description, Marks and Numbers", r::Situational, d::RepeatCount.bounded(1),
                  b::Element(e::Situational, "Lading Line Item Number"),
                  b::Element(e::Required,    "Lading Description"),
                  b::Element(e::Situational, "Commodity Code"),
                  b::Element(e::Situational, "Commodity Code Qualifier"),
                  b::Element(e::Situational, "Packaging Code"),
                  b::Element(e::Situational, "Marks and Numbers"),
                  b::Element(e::Situational, "Marks and Numbers Qualifier"),
                  b::Element(e::Situational, "SKU"),
                  b::Element(e::Situational, "SKU Qualifier Code"),
                  b::Element(e::NotUsed,     "Compartment ID Code")),
                b::Segment(135, s::AT8, "Shipment Weight, Packaging and Quantity Data", r::Situational, d::RepeatCount.bounded(1),
                  b::Element(e::Required,    "Weight Qualifier"),
                  b::Element(e::Required,    "Weight Unit Code"),
                  b::Element(e::Required,    "Weight"),
                  b::Element(e::Required,    "Lading Quantity"),
                  b::Element(e::Situational, "Lading Quantity"),
                  b::Element(e::Situational, "Volume Unit Qualifier"),
                  b::Element(e::Situational, "Volume")),

                d::LoopDef.build("LOOP 0325", d::RepeatCount.bounded(99),
                  b::Segment(140, s::G61, "Contact", r::Situational, d::RepeatCount.bounded(1),
                    b::Element(e::Situational, "Contact Function Code", b::Values("HM")),
                    b::Element(e::Situational, "Name"),
                    b::Element(e::Situational, "Communication Number Qualifier", b::Values("TE")),
                    b::Element(e::Situational, "Communication Number"),
                    b::Element(e::NotUsed,     "Contact Inquiry Reference")),
                  b::Segment(141, s::L11, "Business Instructions and Reference Number", r::Situational, d::RepeatCount.bounded(30),
                    b::Element(e::Situational, "Reference Identification"),
                    b::Element(e::Situational, "Reference Identification Qualifier"),
                    b::Element(e::Situational, "Description")),

                  d::LoopDef.build("LOOP 0330", d::RepeatCount.bounded(25),
                    b::Segment(143, s::LH1, "Hazardous Identification Information", r::Situational, d::RepeatCount.bounded(1),
                      b::Element(e::Required,    "Unit or Basis for Measurement Code"),
                      b::Element(e::Required,    "Lading Quantity"),
                      b::Element(e::Situational, "UN/NA Identification Code"),
                      b::Element(e::Situational, "Hazardous Materials Page"),
                      b::Element(e::Situational, "Commodity Code"),
                      b::Element(e::Situational, "Unit or Basis for Measurement Code"),
                      b::Element(e::Situational, "Quantity"),
                      b::Element(e::NotUsed,     "Compartment ID Code"),
                      b::Element(e::NotUsed,     "Residue Indicator Code"),
                      b::Element(e::Situational, "Packing Group Code"),
                      b::Element(e::NotUsed,     "Interim Hazardous Material Regulatory Number"),
                      b::Element(e::NotUsed,     "Industry Code")),
                    b::Segment(144, s::LH2, "Hazardous Classification Information", r::Situational, d::RepeatCount.bounded(4),
                      b::Element(e::Required,    "Hazardous Classification"),
                      b::Element(e::Required,    "Hazardous Class Qualifier"),
                      b::Element(e::NotUsed,     "Hazardous Placard Notation"),
                      b::Element(e::NotUsed,     "Hazardous Endorsement"),
                      b::Element(e::NotUsed,     "Reportable Quantity Code"),
                      b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
                      b::Element(e::NotUsed,     "Temperature"),
                      b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
                      b::Element(e::NotUsed,     "Temperature"),
                      b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
                      b::Element(e::NotUsed,     "Temperature"),
                      b::Element(e::NotUsed,     "Weight Unit Code"),
                      b::Element(e::NotUsed,     "Net Explosive Quantity")),
                    b::Segment(145, s::LH3, "Hazardous Material Shipping Name", r::Situational, d::RepeatCount.bounded(10),
                      b::Element(e::Required,    "Hazardous Material Shipping Name"),
                      b::Element(e::Required,    "Hazardous Material Shipping Name Qualifier"),
                      b::Element(e::NotUsed,     "N.O.S. Indicator Code"),
                      b::Element(e::NotUsed,     "Yes/No Condition or Response Code")),
                    b::Segment(146, s::LFH, "Freeform Hazardous Material Information", r::Situational, d::RepeatCount.bounded(20),
                      b::Element(e::Required,    "Hazardous Material Shipment Information Qualifier"),
                      b::Element(e::Required,    "Hazardous Material Shipment Information"),
                      b::Element(e::NotUsed,     "Hazardous Material Shipment Information"),
                      b::Element(e::NotUsed,     "Hazard Zone Code"),
                      b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
                      b::Element(e::NotUsed,     "Quantity"),
                      b::Element(e::NotUsed,     "Quantity"),
                      b::Element(e::NotUsed,     "Date"))))),

                  d::LoopDef.build("LOOP 0350", d::RepeatCount.bounded(999),
                    b::Segment(150, s::OID, "Order Identification Detail", r::Situational, d::RepeatCount.bounded(1),
                      b::Element(e::Optional,    "Reference Identification"),
                      b::Element(e::Required,    "Purchase Order Number"),
                      b::Element(e::Required,    "Unit or Basis for Measurement Code"),
                      b::Element(e::Required,    "Quantity"),
                      b::Element(e::Situational, "Weight Unit Code"),
                      b::Element(e::Situational, "Weight"),
                      b::Element(e::Situational, "Volume Unit Qualifier"),
                      b::Element(e::Situational, "Volume")),

                    d::LoopDef.build("LOOP 0360", d::RepeatCount.bounded(99),
                      b::Segment(190, s::L5, "Description, Marks and Numbers", r::Situational, d::RepeatCount.bounded(1),
                        b::Element(e::Situational, "Lading Line Item Number"),
                        b::Element(e::Situational, "Lading Description"),
                        b::Element(e::Situational, "Commodity Code"),
                        b::Element(e::Situational, "Commodity Code Qualifier"),
                        b::Element(e::NotUsed,     "Packaging Code"),
                        b::Element(e::NotUsed,     "Marks and Numbers"),
                        b::Element(e::NotUsed,     "Marks and Numbers Qualifier"),
                        b::Element(e::NotUsed,     "Commodity Code"),
                        b::Element(e::NotUsed,     "Commodity Code Qualifier"),
                        b::Element(e::NotUsed,     "Compartment ID Code")),
                      b::Segment(195, s::AT8, "Shipment Weight, Packaging and Quantity Data", r::Situational, d::RepeatCount.bounded(1),
                        b::Element(e::Required,    "Weight Qualifier"),
                        b::Element(e::Required,    "Weight Unit Code"),
                        b::Element(e::Required,    "Weight"),
                        b::Element(e::Required,    "Lading Quantity"),
                        b::Element(e::Situational, "Lading Quantity"),
                        b::Element(e::Situational, "Volume Unit Qualifier"),
                        b::Element(e::Situational, "Volume")),

                      d::LoopDef.build("LOOP 0365", d::RepeatCount.bounded(99),
                        b::Segment(200, s::G61, "Contact", r::Situational, d::RepeatCount.bounded(1),
                          b::Element(e::Situational, "Contact Function Code"),
                          b::Element(e::Situational, "Name"),
                          b::Element(e::Situational, "Communication Number Qualifier"),
                          b::Element(e::Situational, "Communication Number"),
                          b::Element(e::NotUsed,     "Contact Inquiry Reference")),
                        b::Segment(201, s::L11, "Business Instructions and Reference Number", r::Situational, d::RepeatCount.bounded(5),
                          b::Element(e::Situational, "Reference Identification"),
                          b::Element(e::Situational, "Reference Identification Qualifier"),
                          b::Element(e::Situational, "Description")),

                        d::LoopDef.build("LOOP 0370", d::RepeatCount.bounded(25),
                          b::Segment(203, s::LH1, "Hazardous Identification Information", r::Situational, d::RepeatCount.bounded(1),
                            b::Element(e::Required,    "Unit or Basis for Measurement Code"),
                            b::Element(e::Required,    "Lading Quantity"),
                            b::Element(e::Situational, "UN/NA Identification Code"),
                            b::Element(e::Situational, "Hazardous Materials Page"),
                            b::Element(e::Situational, "Commodity Code"),
                            b::Element(e::Situational, "Unit or Basis for Measurement Code"),
                            b::Element(e::Situational, "Quantity"),
                            b::Element(e::NotUsed,     "Compartment ID Code"),
                            b::Element(e::NotUsed,     "Residue Indicator Code"),
                            b::Element(e::Situational, "Packing Group Code"),
                            b::Element(e::NotUsed,     "Interim Hazardous Material Regulatory Number"),
                            b::Element(e::NotUsed,     "Industry Code")),
                          b::Segment(204, s::LH2, "Hazardous Classification Information ", r::Situational, d::RepeatCount.bounded(4),
                            b::Element(e::Required,    "Hazardous Classification"),
                            b::Element(e::Required,    "Hazardous Class Qualifier"),
                            b::Element(e::NotUsed,     "Hazardous Placard Notation"),
                            b::Element(e::NotUsed,     "Hazardous Endorsement"),
                            b::Element(e::NotUsed,     "Reportable Quantity Code"),
                            b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
                            b::Element(e::NotUsed,     "Temperature"),
                            b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
                            b::Element(e::NotUsed,     "Temperature"),
                            b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
                            b::Element(e::NotUsed,     "Temperature"),
                            b::Element(e::NotUsed,     "Weight Unit Code"),
                            b::Element(e::NotUsed,     "Net Explosive Quantity")),
                          b::Segment(205, s::LH3, "Hazardous Material Shipping Name", r::Situational, d::RepeatCount.bounded(10),
                            b::Element(e::Required,    "Hazardous Material Shipping Name"),
                            b::Element(e::Required,    "Hazardous Material Shipping Name Qualifier"),
                            b::Element(e::NotUsed,     "N.O.S. Indicator Code"),
                            b::Element(e::NotUsed,     "Yes/No Condition or Response Code")),
                          b::Segment(206, s::LFH, "Freeform Hazardous Material Information", r::Situational, d::RepeatCount.bounded(20),
                            b::Element(e::Required,    "Hazardous Material Shipment Information Qualifier"),
                            b::Element(e::Required,    "Hazardous Material Shipment Information"),
                            b::Element(e::NotUsed,     "Hazardous Material Shipment Information"),
                            b::Element(e::NotUsed,     "Hazard Zone Code"),
                            b::Element(e::NotUsed,     "Unit or Basis for Measurement Code"),
                            b::Element(e::NotUsed,     "Quantity"),
                            b::Element(e::NotUsed,     "Quantity"),
                            b::Element(e::NotUsed,     "Date")))))))),

          d::TableDef.summary("Summary",
            b::Segment(10, s::L3, "Total Weight and Charges", r::Situational, d::RepeatCount.bounded(1),
              b::Element(e::Required,    "Weight"),
              b::Element(e::Required,    "Weight Qualifier"),
              b::Element(e::Situational, "Freight Rate"),
              b::Element(e::Situational, "Rate/Value Qualifier"),
              b::Element(e::Situational, "Charge"),
              b::Element(e::NotUsed,     "Advances"),
              b::Element(e::NotUsed,     "Prepaid Amount"),
              b::Element(e::NotUsed,     "Special Charge or Allowance Code"),
              b::Element(e::Situational, "Volume"),
              b::Element(e::Situational, "Volume Unit Qualifier"),
              b::Element(e::Situational, "Lading Quantity"),
              b::Element(e::Situational, "Weight Unit Code"),
              b::Element(e::NotUsed,     "Tariff Number"),
              b::Element(e::Situational, "Declared Value"),
              b::Element(e::Situational, "Rate/Value Qualifier")),
            b::Segment(20, s::SE, "Transaction Set Trailer", r::Required, d::RepeatCount.bounded(1),
              b::Element(e::Situational, "Number of Included Segments"),
              b::Element(e::Situational, "Transaction Set Control Number"))))

      end
    end
  end
end
