from dataclasses import dataclass
from enum import Enum


class State(str, Enum):
    Does_Not_Exist = "Does_Not_Exist"
    Free = "Free"
    Quasi_Free = "Quasi_Free"
    Dependent = "Dependent"
    Private = "Private"
    Overlay_Slave = "Overlay_Slave"
    Field_Master_Dependent = "Field_Master_Dependent"
    Super_Lord_Align = "Super_Lord_Align"
    Unknown = "Unknown"


class Kind(Enum):
    Real = "Real"
    Integer = "Integer"
    Logical = "Logical"
    Switch = "Switch"
    String = "String"
    Struct = "Struct"
    Unknown = "Unknown"


@dataclass
class Attr:
    name: str
    state: State
    kind: Kind
    units: str


by_element: dict[str, dict[str, Attr]] = {}

by_element["DRIFT"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Private, Kind.Unknown, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Private, Kind.Unknown, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Private, Kind.Unknown, units=""),
    "SPLIT_ID": Attr("SPLIT_ID", State.Private, Kind.Unknown, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["SBEND"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "ROLL": Attr("ROLL", State.Free, Kind.Real, units="rad"),
    "REF_TILT": Attr("REF_TILT", State.Free, Kind.Real, units="rad"),
    "K1": Attr("K1", State.Quasi_Free, Kind.Real, units="1/m^2"),
    "K2": Attr("K2", State.Quasi_Free, Kind.Real, units="1/m^3"),
    "G": Attr("G", State.Quasi_Free, Kind.Real, units="1/m"),
    "DG": Attr("DG", State.Quasi_Free, Kind.Real, units="1/m"),
    "G_TOT": Attr("G_TOT", State.Dependent, Kind.Real, units="1/m"),
    "RHO": Attr("RHO", State.Quasi_Free, Kind.Real, units="m"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "EXACT_MULTIPOLES": Attr("EXACT_MULTIPOLES", State.Free, Kind.Switch, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "E1": Attr("E1", State.Free, Kind.Real, units="rad"),
    "E2": Attr("E2", State.Free, Kind.Real, units="rad"),
    "FINT": Attr("FINT", State.Free, Kind.Real, units=""),
    "FINTX": Attr("FINTX", State.Free, Kind.Real, units=""),
    "HGAP": Attr("HGAP", State.Free, Kind.Real, units="m"),
    "HGAPX": Attr("HGAPX", State.Free, Kind.Real, units="m"),
    "H1": Attr("H1", State.Free, Kind.Real, units="1/m"),
    "H2": Attr("H2", State.Free, Kind.Real, units="1/m"),
    "L_RECTANGLE": Attr("L_RECTANGLE", State.Quasi_Free, Kind.Real, units="m"),
    "B_FIELD_TOT": Attr("B_FIELD_TOT", State.Dependent, Kind.Real, units="T"),
    "L_SAGITTA": Attr("L_SAGITTA", State.Dependent, Kind.Real, units="m"),
    "L_CHORD": Attr("L_CHORD", State.Quasi_Free, Kind.Real, units="m"),
    "FIDUCIAL_PT": Attr("FIDUCIAL_PT", State.Free, Kind.Switch, units=""),
    "INIT_NEEDED": Attr("INIT_NEEDED", State.Private, Kind.Unknown, units=""),
    "ANGLE": Attr("ANGLE", State.Quasi_Free, Kind.Real, units="rad"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "B_FIELD": Attr("B_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "DB_FIELD": Attr("DB_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "B1_GRADIENT": Attr("B1_GRADIENT", State.Quasi_Free, Kind.Real, units="T/m"),
    "B2_GRADIENT": Attr("B2_GRADIENT", State.Quasi_Free, Kind.Real, units="T/m^2"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "PTC_FRINGE_GEOMETRY": Attr("PTC_FRINGE_GEOMETRY", State.Free, Kind.Switch, units=""),
    "PTC_FIELD_GEOMETRY": Attr("PTC_FIELD_GEOMETRY", State.Free, Kind.Switch, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "ROLL_TOT": Attr("ROLL_TOT", State.Dependent, Kind.Real, units="rad"),
    "REF_TILT_TOT": Attr("REF_TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["QUADRUPOLE"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "K1": Attr("K1", State.Quasi_Free, Kind.Real, units="1/m^2"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "FQ1": Attr("FQ1", State.Free, Kind.Real, units="m"),
    "FQ2": Attr("FQ2", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "B1_GRADIENT": Attr("B1_GRADIENT", State.Quasi_Free, Kind.Real, units="T/m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["GROUP"] = {
    "INTERPOLATION": Attr("INTERPOLATION", State.Free, Kind.Switch, units=""),
    "GANG": Attr("GANG", State.Free, Kind.Logical, units=""),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "X_KNOT": Attr("X_KNOT", State.Free, Kind.Struct, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "Y_KNOT": Attr("Y_KNOT", State.Free, Kind.Real, units=""),
    "SLAVE": Attr("SLAVE", State.Free, Kind.Real, units=""),
    "VAR": Attr("VAR", State.Free, Kind.Struct, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Free, Kind.Real, units="m"),
    "START_EDGE": Attr("START_EDGE", State.Free, Kind.String, units=""),
    "END_EDGE": Attr("END_EDGE", State.Free, Kind.Real, units="m"),
    "S_POSITION": Attr("S_POSITION", State.Free, Kind.Real, units="m"),
}

by_element["SEXTUPOLE"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "K2": Attr("K2", State.Quasi_Free, Kind.Real, units="1/m^3"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "B2_GRADIENT": Attr("B2_GRADIENT", State.Quasi_Free, Kind.Real, units="T/m^2"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["OVERLAY"] = {
    "INTERPOLATION": Attr("INTERPOLATION", State.Free, Kind.Switch, units=""),
    "GANG": Attr("GANG", State.Free, Kind.Logical, units=""),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "X_KNOT": Attr("X_KNOT", State.Free, Kind.Struct, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "Y_KNOT": Attr("Y_KNOT", State.Free, Kind.Real, units=""),
    "SLAVE": Attr("SLAVE", State.Free, Kind.Real, units=""),
    "VAR": Attr("VAR", State.Free, Kind.Struct, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
}

by_element["CUSTOM"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "DELTA_E_REF": Attr("DELTA_E_REF", State.Free, Kind.Real, units="eV"),
    "VAL1": Attr("VAL1", State.Free, Kind.Real, units=""),
    "VAL2": Attr("VAL2", State.Free, Kind.Real, units=""),
    "VAL3": Attr("VAL3", State.Free, Kind.Real, units=""),
    "VAL4": Attr("VAL4", State.Free, Kind.Real, units=""),
    "VAL5": Attr("VAL5", State.Free, Kind.Real, units=""),
    "VAL6": Attr("VAL6", State.Free, Kind.Real, units=""),
    "VAL7": Attr("VAL7", State.Free, Kind.Real, units=""),
    "VAL8": Attr("VAL8", State.Free, Kind.Real, units=""),
    "VAL9": Attr("VAL9", State.Free, Kind.Real, units=""),
    "VAL10": Attr("VAL10", State.Free, Kind.Real, units=""),
    "VAL11": Attr("VAL11", State.Free, Kind.Real, units=""),
    "VAL12": Attr("VAL12", State.Free, Kind.Real, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT_START": Attr("E_TOT_START", State.Quasi_Free, Kind.Real, units="eV"),
    "P0C": Attr("P0C", State.Dependent, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Dependent, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["TAYLOR"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "DELTA_E_REF": Attr("DELTA_E_REF", State.Free, Kind.Real, units="eV"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Free, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "TT<OUT><N1><N2>...": Attr("TT<OUT><N1><N2>...", State.Free, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "X_REF": Attr("X_REF", State.Free, Kind.Real, units="m"),
    "PX_REF": Attr("PX_REF", State.Free, Kind.Real, units=""),
    "Y_REF": Attr("Y_REF", State.Free, Kind.Real, units="m"),
    "PY_REF": Attr("PY_REF", State.Free, Kind.Real, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "Z_REF": Attr("Z_REF", State.Free, Kind.Real, units="m"),
    "PZ_REF": Attr("PZ_REF", State.Free, Kind.Real, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "REF_ORBIT": Attr("REF_ORBIT", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["RFCAVITY"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "HARMON": Attr("HARMON", State.Quasi_Free, Kind.Real, units=""),
    "HARMON_MASTER": Attr("HARMON_MASTER", State.Free, Kind.Logical, units=""),
    "GRADIENT": Attr("GRADIENT", State.Dependent, Kind.Real, units="eV/m"),
    "GRADIENT_ERR": Attr("GRADIENT_ERR", State.Private, Kind.Unknown, units=""),
    "VOLTAGE": Attr("VOLTAGE", State.Free, Kind.Real, units="Volt"),
    "VOLTAGE_ERR": Attr("VOLTAGE_ERR", State.Private, Kind.Unknown, units=""),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "RF_FREQUENCY": Attr("RF_FREQUENCY", State.Quasi_Free, Kind.Real, units="Hz"),
    "RF_WAVELENGTH": Attr("RF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "KS": Attr("KS", State.Private, Kind.Unknown, units="1/m"),
    "AUTOSCALE_AMPLITUDE": Attr("AUTOSCALE_AMPLITUDE", State.Free, Kind.Logical, units=""),
    "AUTOSCALE_PHASE": Attr("AUTOSCALE_PHASE", State.Free, Kind.Logical, units=""),
    "CAVITY_TYPE": Attr("CAVITY_TYPE", State.Free, Kind.Switch, units=""),
    "PHI0_MAX": Attr("PHI0_MAX", State.Private, Kind.Unknown, units=""),
    "PHI0": Attr("PHI0", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_ERR": Attr("PHI0_ERR", State.Private, Kind.Unknown, units=""),
    "PHI0_MULTIPASS": Attr("PHI0_MULTIPASS", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_AUTOSCALE": Attr("PHI0_AUTOSCALE", State.Quasi_Free, Kind.Real, units="rad/2pi"),
    "FIELD_AUTOSCALE": Attr("FIELD_AUTOSCALE", State.Quasi_Free, Kind.Real, units=""),
    "L_ACTIVE": Attr("L_ACTIVE", State.Dependent, Kind.Real, units="m"),
    "LONGITUDINAL_MODE": Attr("LONGITUDINAL_MODE", State.Free, Kind.Integer, units=""),
    "N_CELL": Attr("N_CELL", State.Free, Kind.Integer, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "N_RF_STEPS": Attr("N_RF_STEPS", State.Free, Kind.Integer, units=""),
    "COUPLER_PHASE": Attr("COUPLER_PHASE", State.Free, Kind.Real, units="rad/2pi"),
    "COUPLER_ANGLE": Attr("COUPLER_ANGLE", State.Free, Kind.Real, units="rad"),
    "COUPLER_STRENGTH": Attr("COUPLER_STRENGTH", State.Free, Kind.Real, units=""),
    "COUPLER_AT": Attr("COUPLER_AT", State.Free, Kind.Switch, units=""),
    "BS_FIELD": Attr("BS_FIELD", State.Private, Kind.Unknown, units="T"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["ELSEPARATOR"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "VOLTAGE": Attr("VOLTAGE", State.Quasi_Free, Kind.Real, units="Volt"),
    "VOLTAGE_ERR": Attr("VOLTAGE_ERR", State.Private, Kind.Unknown, units=""),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "GAP": Attr("GAP", State.Free, Kind.Real, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "E_FIELD": Attr("E_FIELD", State.Quasi_Free, Kind.Real, units="V/m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["BEAMBEAM"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "REPETITION_FREQUENCY": Attr("REPETITION_FREQUENCY", State.Free, Kind.Real, units="Hz"),
    "S_TWISS_REF": Attr("S_TWISS_REF", State.Free, Kind.Real, units="m"),
    "BBI_CONSTANT": Attr("BBI_CONSTANT", State.Dependent, Kind.Real, units=""),
    "CHARGE": Attr("CHARGE", State.Free, Kind.Real, units=""),
    "N_PARTICLE": Attr("N_PARTICLE", State.Free, Kind.Real, units=""),
    "SIG_X": Attr("SIG_X", State.Free, Kind.Real, units="m"),
    "SIG_Y": Attr("SIG_Y", State.Free, Kind.Real, units="m"),
    "SIG_Z": Attr("SIG_Z", State.Free, Kind.Real, units="m"),
    "KS": Attr("KS", State.Quasi_Free, Kind.Real, units="1/m"),
    "N_SLICE": Attr("N_SLICE", State.Free, Kind.Integer, units=""),
    "BETA_A_STRONG": Attr("BETA_A_STRONG", State.Free, Kind.Real, units="m"),
    "BETA_B_STRONG": Attr("BETA_B_STRONG", State.Free, Kind.Real, units="m"),
    "ALPHA_A_STRONG": Attr("ALPHA_A_STRONG", State.Free, Kind.Real, units=""),
    "ALPHA_B_STRONG": Attr("ALPHA_B_STRONG", State.Free, Kind.Real, units=""),
    "SPECIES_STRONG": Attr("SPECIES_STRONG", State.Free, Kind.Switch, units=""),
    "E_TOT_STRONG": Attr("E_TOT_STRONG", State.Free, Kind.Real, units="eV"),
    "PC_STRONG": Attr("PC_STRONG", State.Free, Kind.Real, units="eV"),
    "CMAT_11": Attr("CMAT_11", State.Free, Kind.Real, units=""),
    "CMAT_12": Attr("CMAT_12", State.Free, Kind.Real, units="m"),
    "CMAT_21": Attr("CMAT_21", State.Free, Kind.Real, units="1/m"),
    "CMAT_22": Attr("CMAT_22", State.Free, Kind.Real, units=""),
    "CROSSING_TIME": Attr("CROSSING_TIME", State.Free, Kind.Real, units="sec"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "CRAB_X1": Attr("CRAB_X1", State.Free, Kind.Real, units=""),
    "CRAB_X2": Attr("CRAB_X2", State.Free, Kind.Real, units="1/m"),
    "CRAB_X3": Attr("CRAB_X3", State.Free, Kind.Real, units="1/m^2"),
    "CRAB_TILT": Attr("CRAB_TILT", State.Free, Kind.Real, units="rad"),
    "CRAB_X4": Attr("CRAB_X4", State.Free, Kind.Real, units="1/m^3"),
    "CRAB_X5": Attr("CRAB_X5", State.Free, Kind.Real, units="1/m^4"),
    "BS_FIELD": Attr("BS_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["WIGGLER"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "KX": Attr("KX", State.Free, Kind.Real, units="1/m"),
    "B_MAX": Attr("B_MAX", State.Free, Kind.Real, units="T"),
    "G_MAX": Attr("G_MAX", State.Dependent, Kind.Real, units="1/m"),
    "OSC_AMPLITUDE": Attr("OSC_AMPLITUDE", State.Dependent, Kind.Real, units="m"),
    "K1X": Attr("K1X", State.Dependent, Kind.Real, units="1/m^2"),
    "K1Y": Attr("K1Y", State.Dependent, Kind.Real, units="1/m^2"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "POLARITY": Attr("POLARITY", State.Free, Kind.Real, units=""),
    "N_PERIOD": Attr("N_PERIOD", State.Free, Kind.Real, units=""),
    "L_PERIOD": Attr("L_PERIOD", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME_USER_SET": Attr("DELTA_REF_TIME_USER_SET", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Free, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "TERM": Attr("TERM", State.Free, Kind.Struct, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["SOL_QUAD"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "K1": Attr("K1", State.Quasi_Free, Kind.Real, units="1/m^2"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "KS": Attr("KS", State.Quasi_Free, Kind.Real, units="1/m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "B1_GRADIENT": Attr("B1_GRADIENT", State.Quasi_Free, Kind.Real, units="T/m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "BS_FIELD": Attr("BS_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["MARKER"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "X_GAIN_ERR": Attr("X_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "Y_GAIN_ERR": Attr("Y_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "CRUNCH": Attr("CRUNCH", State.Free, Kind.Real, units="rad"),
    "NOISE": Attr("NOISE", State.Free, Kind.Real, units=""),
    "OSC_AMPLITUDE": Attr("OSC_AMPLITUDE", State.Free, Kind.Real, units="m"),
    "X_GAIN_CALIB": Attr("X_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "Y_GAIN_CALIB": Attr("Y_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "CRUNCH_CALIB": Attr("CRUNCH_CALIB", State.Free, Kind.Real, units="rad"),
    "X_OFFSET_CALIB": Attr("X_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "Y_OFFSET_CALIB": Attr("Y_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "TILT_CALIB": Attr("TILT_CALIB", State.Free, Kind.Real, units="rad"),
    "DE_ETA_MEAS": Attr("DE_ETA_MEAS", State.Free, Kind.Real, units=""),
    "N_SAMPLE": Attr("N_SAMPLE", State.Free, Kind.Real, units=""),
    "X_DISPERSION_ERR": Attr("X_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_ERR": Attr("Y_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "X_DISPERSION_CALIB": Attr("X_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_CALIB": Attr("Y_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "SPLIT_ID": Attr("SPLIT_ID", State.Private, Kind.Unknown, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "P0C_REF_INIT": Attr("P0C_REF_INIT", State.Private, Kind.Unknown, units=""),
    "E_TOT_REF_INIT": Attr("E_TOT_REF_INIT", State.Private, Kind.Unknown, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "REF_SPECIES": Attr("REF_SPECIES", State.Dependent, Kind.Switch, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["KICKER"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "H_DISPLACE": Attr("H_DISPLACE", State.Free, Kind.Real, units="m"),
    "V_DISPLACE": Attr("V_DISPLACE", State.Free, Kind.Real, units="m^3"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["HYBRID"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "DELTA_E_REF": Attr("DELTA_E_REF", State.Free, Kind.Real, units="eV"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Free, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["OCTUPOLE"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "K3": Attr("K3", State.Quasi_Free, Kind.Real, units="1/m^4"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "B3_GRADIENT": Attr("B3_GRADIENT", State.Quasi_Free, Kind.Real, units="T/m^3"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["RBEND"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "ROLL": Attr("ROLL", State.Free, Kind.Real, units="rad"),
    "REF_TILT": Attr("REF_TILT", State.Free, Kind.Real, units="rad"),
    "K1": Attr("K1", State.Quasi_Free, Kind.Real, units="1/m^2"),
    "K2": Attr("K2", State.Quasi_Free, Kind.Real, units="1/m^3"),
    "G": Attr("G", State.Quasi_Free, Kind.Real, units="1/m"),
    "DG": Attr("DG", State.Quasi_Free, Kind.Real, units="1/m"),
    "G_TOT": Attr("G_TOT", State.Dependent, Kind.Real, units="1/m"),
    "RHO": Attr("RHO", State.Quasi_Free, Kind.Real, units="m"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "EXACT_MULTIPOLES": Attr("EXACT_MULTIPOLES", State.Free, Kind.Switch, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "E1": Attr("E1", State.Free, Kind.Real, units="rad"),
    "E2": Attr("E2", State.Free, Kind.Real, units="rad"),
    "FINT": Attr("FINT", State.Free, Kind.Real, units=""),
    "FINTX": Attr("FINTX", State.Free, Kind.Real, units=""),
    "HGAP": Attr("HGAP", State.Free, Kind.Real, units="m"),
    "HGAPX": Attr("HGAPX", State.Free, Kind.Real, units="m"),
    "H1": Attr("H1", State.Free, Kind.Real, units="1/m"),
    "H2": Attr("H2", State.Free, Kind.Real, units="1/m"),
    "L_RECTANGLE": Attr("L_RECTANGLE", State.Quasi_Free, Kind.Real, units="m"),
    "B_FIELD_TOT": Attr("B_FIELD_TOT", State.Dependent, Kind.Real, units="T"),
    "L_SAGITTA": Attr("L_SAGITTA", State.Dependent, Kind.Real, units="m"),
    "L_CHORD": Attr("L_CHORD", State.Quasi_Free, Kind.Real, units="m"),
    "FIDUCIAL_PT": Attr("FIDUCIAL_PT", State.Free, Kind.Switch, units=""),
    "INIT_NEEDED": Attr("INIT_NEEDED", State.Private, Kind.Unknown, units=""),
    "ANGLE": Attr("ANGLE", State.Quasi_Free, Kind.Real, units="rad"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "B_FIELD": Attr("B_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "DB_FIELD": Attr("DB_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "B1_GRADIENT": Attr("B1_GRADIENT", State.Quasi_Free, Kind.Real, units="T/m"),
    "B2_GRADIENT": Attr("B2_GRADIENT", State.Quasi_Free, Kind.Real, units="T/m^2"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "PTC_FRINGE_GEOMETRY": Attr("PTC_FRINGE_GEOMETRY", State.Free, Kind.Switch, units=""),
    "PTC_FIELD_GEOMETRY": Attr("PTC_FIELD_GEOMETRY", State.Free, Kind.Switch, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "ROLL_TOT": Attr("ROLL_TOT", State.Dependent, Kind.Real, units="rad"),
    "REF_TILT_TOT": Attr("REF_TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["MULTIPOLE"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "K0L": Attr("K0L", State.Free, Kind.Real, units=""),
    "K1L": Attr("K1L", State.Free, Kind.Real, units="1/m"),
    "K2L": Attr("K2L", State.Free, Kind.Real, units="1/m^2"),
    "K3L": Attr("K3L", State.Free, Kind.Real, units="1/m^3"),
    "K4L": Attr("K4L", State.Free, Kind.Real, units="1/m^4"),
    "K5L": Attr("K5L", State.Free, Kind.Real, units="1/m^5"),
    "K6L": Attr("K6L", State.Free, Kind.Real, units="1/m^6"),
    "K7L": Attr("K7L", State.Free, Kind.Real, units="1/m^7"),
    "K8L": Attr("K8L", State.Free, Kind.Real, units="1/m^8"),
    "K9L": Attr("K9L", State.Free, Kind.Real, units="1/m^9"),
    "K10L": Attr("K10L", State.Free, Kind.Real, units="1/m^10"),
    "K11L": Attr("K11L", State.Free, Kind.Real, units="1/m^11"),
    "K12L": Attr("K12L", State.Free, Kind.Real, units="1/m^12"),
    "K13L": Attr("K13L", State.Free, Kind.Real, units="1/m^13"),
    "K14L": Attr("K14L", State.Free, Kind.Real, units="1/m^14"),
    "K15L": Attr("K15L", State.Free, Kind.Real, units="1/m^15"),
    "K16L": Attr("K16L", State.Free, Kind.Real, units="1/m^16"),
    "K17L": Attr("K17L", State.Free, Kind.Real, units="1/m^17"),
    "K18L": Attr("K18L", State.Free, Kind.Real, units="1/m^18"),
    "K19L": Attr("K19L", State.Free, Kind.Real, units="1/m^19"),
    "K20L": Attr("K20L", State.Free, Kind.Real, units="1/m^20"),
    "K21L": Attr("K21L", State.Free, Kind.Real, units="1/m^21"),
    "T0": Attr("T0", State.Free, Kind.Real, units="rad"),
    "T1": Attr("T1", State.Free, Kind.Real, units="rad"),
    "T2": Attr("T2", State.Free, Kind.Real, units="rad"),
    "T3": Attr("T3", State.Free, Kind.Real, units="rad"),
    "T4": Attr("T4", State.Free, Kind.Real, units="rad"),
    "T5": Attr("T5", State.Free, Kind.Real, units="rad"),
    "T6": Attr("T6", State.Free, Kind.Real, units="rad"),
    "T7": Attr("T7", State.Free, Kind.Real, units="rad"),
    "T8": Attr("T8", State.Free, Kind.Real, units="rad"),
    "T9": Attr("T9", State.Free, Kind.Real, units="rad"),
    "T10": Attr("T10", State.Free, Kind.Real, units="rad"),
    "T11": Attr("T11", State.Free, Kind.Real, units="rad"),
    "T12": Attr("T12", State.Free, Kind.Real, units="rad"),
    "T13": Attr("T13", State.Free, Kind.Real, units="rad"),
    "T14": Attr("T14", State.Free, Kind.Real, units="rad"),
    "T15": Attr("T15", State.Free, Kind.Real, units="rad"),
    "T16": Attr("T16", State.Free, Kind.Real, units="rad"),
    "T17": Attr("T17", State.Free, Kind.Real, units="rad"),
    "T18": Attr("T18", State.Free, Kind.Real, units="rad"),
    "T19": Attr("T19", State.Free, Kind.Real, units="rad"),
    "T20": Attr("T20", State.Free, Kind.Real, units="rad"),
    "T21": Attr("T21", State.Free, Kind.Real, units="rad"),
}

by_element["!MAD_BEAM"] = {
    "N_PART": Attr("N_PART", State.Free, Kind.Real, units=""),
    "PC": Attr("PC", State.Free, Kind.Real, units="eV"),
    "ENERGY": Attr("ENERGY", State.Free, Kind.Real, units="eV"),
    "PARTICLE": Attr("PARTICLE", State.Free, Kind.Switch, units=""),
}

by_element["AB_MULTIPOLE"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["SOLENOID"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "R_SOLENOID": Attr("R_SOLENOID", State.Free, Kind.Real, units="m"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "KS": Attr("KS", State.Quasi_Free, Kind.Real, units="1/m"),
    "L_SOFT_EDGE": Attr("L_SOFT_EDGE", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "BS_FIELD": Attr("BS_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["PATCH"] = {
    "L": Attr("L", State.Quasi_Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "REF_COORDS": Attr("REF_COORDS", State.Free, Kind.Switch, units=""),
    "FLEXIBLE": Attr("FLEXIBLE", State.Free, Kind.Logical, units=""),
    "USER_SETS_LENGTH": Attr("USER_SETS_LENGTH", State.Free, Kind.Logical, units=""),
    "UPSTREAM_ELE_DIR": Attr("UPSTREAM_ELE_DIR", State.Dependent, Kind.Integer, units=""),
    "DOWNSTREAM_ELE_DIR": Attr("DOWNSTREAM_ELE_DIR", State.Dependent, Kind.Integer, units=""),
    "T_OFFSET": Attr("T_OFFSET", State.Free, Kind.Real, units="sec"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "E_TOT_OFFSET": Attr("E_TOT_OFFSET", State.Free, Kind.Real, units="eV"),
    "E_TOT_SET": Attr("E_TOT_SET", State.Free, Kind.Real, units="eV"),
    "P0C_SET": Attr("P0C_SET", State.Free, Kind.Real, units="eV"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Dependent, Kind.Real, units="eV"),
    "E_TOT_START": Attr("E_TOT_START", State.Dependent, Kind.Real, units="eV"),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["LCAVITY"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "GRADIENT_TOT": Attr("GRADIENT_TOT", State.Dependent, Kind.Real, units="eV/m"),
    "GRADIENT": Attr("GRADIENT", State.Free, Kind.Real, units="eV/m"),
    "GRADIENT_ERR": Attr("GRADIENT_ERR", State.Free, Kind.Real, units="eV/m"),
    "VOLTAGE": Attr("VOLTAGE", State.Quasi_Free, Kind.Real, units="Volt"),
    "VOLTAGE_ERR": Attr("VOLTAGE_ERR", State.Quasi_Free, Kind.Real, units="Volt"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "RF_FREQUENCY": Attr("RF_FREQUENCY", State.Free, Kind.Real, units="Hz"),
    "RF_WAVELENGTH": Attr("RF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "KS": Attr("KS", State.Quasi_Free, Kind.Real, units="1/m"),
    "AUTOSCALE_AMPLITUDE": Attr("AUTOSCALE_AMPLITUDE", State.Free, Kind.Logical, units=""),
    "AUTOSCALE_PHASE": Attr("AUTOSCALE_PHASE", State.Free, Kind.Logical, units=""),
    "E_LOSS": Attr("E_LOSS", State.Free, Kind.Real, units="eV"),
    "CAVITY_TYPE": Attr("CAVITY_TYPE", State.Free, Kind.Switch, units=""),
    "PHI0": Attr("PHI0", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_ERR": Attr("PHI0_ERR", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_MULTIPASS": Attr("PHI0_MULTIPASS", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_AUTOSCALE": Attr("PHI0_AUTOSCALE", State.Quasi_Free, Kind.Real, units="rad/2pi"),
    "FIELD_AUTOSCALE": Attr("FIELD_AUTOSCALE", State.Quasi_Free, Kind.Real, units=""),
    "VOLTAGE_TOT": Attr("VOLTAGE_TOT", State.Dependent, Kind.Real, units="Volt"),
    "L_ACTIVE": Attr("L_ACTIVE", State.Dependent, Kind.Real, units="m"),
    "LONGITUDINAL_MODE": Attr("LONGITUDINAL_MODE", State.Free, Kind.Integer, units=""),
    "N_CELL": Attr("N_CELL", State.Free, Kind.Integer, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "N_RF_STEPS": Attr("N_RF_STEPS", State.Free, Kind.Integer, units=""),
    "COUPLER_PHASE": Attr("COUPLER_PHASE", State.Free, Kind.Real, units="rad/2pi"),
    "COUPLER_ANGLE": Attr("COUPLER_ANGLE", State.Free, Kind.Real, units="rad"),
    "COUPLER_STRENGTH": Attr("COUPLER_STRENGTH", State.Free, Kind.Real, units=""),
    "COUPLER_AT": Attr("COUPLER_AT", State.Free, Kind.Switch, units=""),
    "BS_FIELD": Attr("BS_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT_START": Attr("E_TOT_START", State.Quasi_Free, Kind.Real, units="eV"),
    "P0C": Attr("P0C", State.Dependent, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Dependent, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["!PARAMETER"] = {
    "N_PART": Attr("N_PART", State.Free, Kind.Real, units=""),
    "TAYLOR_ORDER": Attr("TAYLOR_ORDER", State.Free, Kind.Integer, units=""),
    "IX_BRANCH": Attr("IX_BRANCH", State.Private, Kind.Unknown, units=""),
    "DEFAULT_TRACKING_SPECIES": Attr("DEFAULT_TRACKING_SPECIES", State.Free, Kind.Switch, units=""),
    "HIGH_ENERGY_SPACE_CHARGE_ON": Attr(
        "HIGH_ENERGY_SPACE_CHARGE_ON", State.Free, Kind.Logical, units=""
    ),
    "PHOTON_TYPE": Attr("PHOTON_TYPE", State.Free, Kind.Switch, units=""),
    "LATTICE_TYPE": Attr("LATTICE_TYPE", State.Free, Kind.Switch, units=""),
    "LIVE_BRANCH": Attr("LIVE_BRANCH", State.Free, Kind.Logical, units=""),
    "GEOMETRY": Attr("GEOMETRY", State.Free, Kind.Switch, units=""),
    "P0C": Attr("P0C", State.Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Free, Kind.Real, units="eV"),
    "NO_END_MARKER": Attr("NO_END_MARKER", State.Free, Kind.Logical, units=""),
    "ELECTRIC_DIPOLE_MOMENT": Attr("ELECTRIC_DIPOLE_MOMENT", State.Free, Kind.Real, units=""),
    "LATTICE": Attr("LATTICE", State.Free, Kind.String, units=""),
    "MACHINE": Attr("MACHINE", State.Free, Kind.String, units=""),
    "ABSOLUTE_TIME_TRACKING": Attr("ABSOLUTE_TIME_TRACKING", State.Free, Kind.Logical, units=""),
    "PTC_EXACT_MISALIGN": Attr("PTC_EXACT_MISALIGN", State.Free, Kind.Logical, units=""),
    "PTC_EXACT_MODEL": Attr("PTC_EXACT_MODEL", State.Free, Kind.Logical, units=""),
    "RAN_SEED": Attr("RAN_SEED", State.Free, Kind.Real, units=""),
    "PARTICLE": Attr("PARTICLE", State.Free, Kind.Switch, units=""),
}

by_element["NULL_ELE"] = {
    "IX_BRANCH": Attr("IX_BRANCH", State.Private, Kind.Unknown, units=""),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["BEGINNING_ELE"] = {
    "L": Attr("L", State.Private, Kind.Unknown, units=""),
    "INHERIT_FROM_FORK": Attr("INHERIT_FROM_FORK", State.Free, Kind.Logical, units=""),
    "DETA_DS_MASTER": Attr("DETA_DS_MASTER", State.Private, Kind.Unknown, units=""),
    "IX_FIXER": Attr("IX_FIXER", State.Private, Kind.Unknown, units=""),
    "SPIN_DN_DPZ_X": Attr("SPIN_DN_DPZ_X", State.Free, Kind.Real, units=""),
    "SPIN_DN_DPZ_Y": Attr("SPIN_DN_DPZ_Y", State.Free, Kind.Real, units=""),
    "SPIN_DN_DPZ_Z": Attr("SPIN_DN_DPZ_Z", State.Free, Kind.Real, units=""),
    "X_STORED": Attr("X_STORED", State.Free, Kind.Real, units="m"),
    "PX_STORED": Attr("PX_STORED", State.Free, Kind.Real, units=""),
    "Y_STORED": Attr("Y_STORED", State.Free, Kind.Real, units="m"),
    "PY_STORED": Attr("PY_STORED", State.Free, Kind.Real, units=""),
    "Z_STORED": Attr("Z_STORED", State.Free, Kind.Real, units="m"),
    "PZ_STORED": Attr("PZ_STORED", State.Free, Kind.Real, units=""),
    "BETA_A_STORED": Attr("BETA_A_STORED", State.Free, Kind.Real, units="m"),
    "ALPHA_A_STORED": Attr("ALPHA_A_STORED", State.Free, Kind.Real, units=""),
    "BETA_B_STORED": Attr("BETA_B_STORED", State.Free, Kind.Real, units="m"),
    "ALPHA_B_STORED": Attr("ALPHA_B_STORED", State.Free, Kind.Real, units=""),
    "PHI_A_STORED": Attr("PHI_A_STORED", State.Free, Kind.Real, units=""),
    "PHI_B_STORED": Attr("PHI_B_STORED", State.Free, Kind.Real, units=""),
    "MODE_FLIP_STORED": Attr("MODE_FLIP_STORED", State.Free, Kind.Logical, units=""),
    "CMAT_11": Attr("CMAT_11", State.Free, Kind.Real, units=""),
    "CMAT_12": Attr("CMAT_12", State.Free, Kind.Real, units="m"),
    "CMAT_21": Attr("CMAT_21", State.Free, Kind.Real, units="1/m"),
    "CMAT_22": Attr("CMAT_22", State.Free, Kind.Real, units=""),
    "MODE_FLIP": Attr("MODE_FLIP", State.Free, Kind.Logical, units=""),
    "ETA_X_STORED": Attr("ETA_X_STORED", State.Free, Kind.Real, units="m"),
    "ETAP_X_STORED": Attr("ETAP_X_STORED", State.Free, Kind.Real, units=""),
    "ETA_Y_STORED": Attr("ETA_Y_STORED", State.Free, Kind.Real, units="m"),
    "ETAP_Y_STORED": Attr("ETAP_Y_STORED", State.Free, Kind.Real, units=""),
    "CMAT_11_STORED": Attr("CMAT_11_STORED", State.Free, Kind.Real, units=""),
    "CMAT_12_STORED": Attr("CMAT_12_STORED", State.Free, Kind.Real, units="m"),
    "CMAT_21_STORED": Attr("CMAT_21_STORED", State.Free, Kind.Real, units="1/m"),
    "CMAT_22_STORED": Attr("CMAT_22_STORED", State.Free, Kind.Real, units=""),
    "DBETA_DPZ_A_STORED": Attr("DBETA_DPZ_A_STORED", State.Free, Kind.Real, units="m"),
    "DBETA_DPZ_B_STORED": Attr("DBETA_DPZ_B_STORED", State.Free, Kind.Real, units="m"),
    "DALPHA_DPZ_A_STORED": Attr("DALPHA_DPZ_A_STORED", State.Free, Kind.Real, units=""),
    "DALPHA_DPZ_B_STORED": Attr("DALPHA_DPZ_B_STORED", State.Free, Kind.Real, units=""),
    "DETA_DPZ_X_STORED": Attr("DETA_DPZ_X_STORED", State.Free, Kind.Real, units="m"),
    "DETA_DPZ_Y_STORED": Attr("DETA_DPZ_Y_STORED", State.Free, Kind.Real, units="m"),
    "DETAP_DPZ_X_STORED": Attr("DETAP_DPZ_X_STORED", State.Free, Kind.Real, units=""),
    "DETAP_DPZ_Y_STORED": Attr("DETAP_DPZ_Y_STORED", State.Free, Kind.Real, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Private, Kind.Unknown, units=""),
    "P0C_START": Attr("P0C_START", State.Dependent, Kind.Real, units="eV"),
    "E_TOT_START": Attr("E_TOT_START", State.Dependent, Kind.Real, units="eV"),
    "P0C": Attr("P0C", State.Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Free, Kind.Real, units="eV"),
    "SPIN_X_STORED": Attr("SPIN_X_STORED", State.Free, Kind.Real, units=""),
    "SPIN_Y_STORED": Attr("SPIN_Y_STORED", State.Free, Kind.Real, units=""),
    "SPIN_Z_STORED": Attr("SPIN_Z_STORED", State.Free, Kind.Real, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Private, Kind.Unknown, units=""),
    "DCMAT_DPZ_11_STORED": Attr("DCMAT_DPZ_11_STORED", State.Free, Kind.Real, units=""),
    "DCMAT_DPZ_12_STORED": Attr("DCMAT_DPZ_12_STORED", State.Free, Kind.Real, units=""),
    "DCMAT_DPZ_21_STORED": Attr("DCMAT_DPZ_21_STORED", State.Free, Kind.Real, units=""),
    "DCMAT_DPZ_22_STORED": Attr("DCMAT_DPZ_22_STORED", State.Free, Kind.Real, units=""),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ETA_X": Attr("ETA_X", State.Free, Kind.Real, units="m"),
    "ETA_Y": Attr("ETA_Y", State.Free, Kind.Real, units="m"),
    "ETAP_X": Attr("ETAP_X", State.Free, Kind.Real, units=""),
    "ETAP_Y": Attr("ETAP_Y", State.Free, Kind.Real, units=""),
    "PHI_A": Attr("PHI_A", State.Free, Kind.Real, units="rad"),
    "ETA_Z": Attr("ETA_Z", State.Free, Kind.Real, units="m"),
    "DETA_DPZ_X": Attr("DETA_DPZ_X", State.Free, Kind.Real, units="m"),
    "DETA_DPZ_Y": Attr("DETA_DPZ_Y", State.Free, Kind.Real, units="m"),
    "DETAP_DPZ_X": Attr("DETAP_DPZ_X", State.Free, Kind.Real, units=""),
    "DETAP_DPZ_Y": Attr("DETAP_DPZ_Y", State.Free, Kind.Real, units=""),
    "S": Attr("S", State.Free, Kind.Real, units="m"),
    "REF_TIME": Attr("REF_TIME", State.Free, Kind.Real, units="sec"),
    "ALPHA_A": Attr("ALPHA_A", State.Free, Kind.Real, units=""),
    "ALPHA_B": Attr("ALPHA_B", State.Free, Kind.Real, units=""),
    "X_POSITION": Attr("X_POSITION", State.Free, Kind.Real, units="m"),
    "Y_POSITION": Attr("Y_POSITION", State.Free, Kind.Real, units="m"),
    "Z_POSITION": Attr("Z_POSITION", State.Free, Kind.Real, units="m"),
    "THETA_POSITION": Attr("THETA_POSITION", State.Free, Kind.Real, units="rad"),
    "PHI_POSITION": Attr("PHI_POSITION", State.Free, Kind.Real, units="rad"),
    "PSI_POSITION": Attr("PSI_POSITION", State.Free, Kind.Real, units="rad"),
    "BETA_A": Attr("BETA_A", State.Free, Kind.Real, units="m"),
    "BETA_B": Attr("BETA_B", State.Free, Kind.Real, units="m"),
    "DBETA_DPZ_A": Attr("DBETA_DPZ_A", State.Free, Kind.Real, units="m"),
    "DBETA_DPZ_B": Attr("DBETA_DPZ_B", State.Free, Kind.Real, units="m"),
    "DALPHA_DPZ_A": Attr("DALPHA_DPZ_A", State.Free, Kind.Real, units=""),
    "DALPHA_DPZ_B": Attr("DALPHA_DPZ_B", State.Free, Kind.Real, units=""),
    "PHI_B": Attr("PHI_B", State.Free, Kind.Real, units="rad"),
}

by_element["!LINE"] = {
    "L": Attr("L", State.Private, Kind.Unknown, units=""),
    "INHERIT_FROM_FORK": Attr("INHERIT_FROM_FORK", State.Free, Kind.Logical, units=""),
    "DETA_DS_MASTER": Attr("DETA_DS_MASTER", State.Private, Kind.Unknown, units=""),
    "IX_FIXER": Attr("IX_FIXER", State.Private, Kind.Unknown, units=""),
    "IX_BRANCH": Attr("IX_BRANCH", State.Private, Kind.Unknown, units=""),
    "SPIN_DN_DPZ_X": Attr("SPIN_DN_DPZ_X", State.Free, Kind.Real, units=""),
    "SPIN_DN_DPZ_Y": Attr("SPIN_DN_DPZ_Y", State.Free, Kind.Real, units=""),
    "SPIN_DN_DPZ_Z": Attr("SPIN_DN_DPZ_Z", State.Free, Kind.Real, units=""),
    "DEFAULT_TRACKING_SPECIES": Attr("DEFAULT_TRACKING_SPECIES", State.Free, Kind.Switch, units=""),
    "CMAT_11": Attr("CMAT_11", State.Free, Kind.Real, units=""),
    "CMAT_12": Attr("CMAT_12", State.Free, Kind.Real, units="m"),
    "CMAT_21": Attr("CMAT_21", State.Free, Kind.Real, units="1/m"),
    "CMAT_22": Attr("CMAT_22", State.Free, Kind.Real, units=""),
    "MODE_FLIP": Attr("MODE_FLIP", State.Free, Kind.Logical, units=""),
    "HIGH_ENERGY_SPACE_CHARGE_ON": Attr(
        "HIGH_ENERGY_SPACE_CHARGE_ON", State.Free, Kind.Logical, units=""
    ),
    "LIVE_BRANCH": Attr("LIVE_BRANCH", State.Free, Kind.Logical, units=""),
    "GEOMETRY": Attr("GEOMETRY", State.Free, Kind.Switch, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Private, Kind.Unknown, units=""),
    "P0C_START": Attr("P0C_START", State.Dependent, Kind.Real, units="eV"),
    "E_TOT_START": Attr("E_TOT_START", State.Dependent, Kind.Real, units="eV"),
    "P0C": Attr("P0C", State.Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Private, Kind.Unknown, units=""),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ETA_X": Attr("ETA_X", State.Free, Kind.Real, units="m"),
    "ETA_Y": Attr("ETA_Y", State.Free, Kind.Real, units="m"),
    "ETAP_X": Attr("ETAP_X", State.Free, Kind.Real, units=""),
    "ETAP_Y": Attr("ETAP_Y", State.Free, Kind.Real, units=""),
    "PHI_A": Attr("PHI_A", State.Free, Kind.Real, units="rad"),
    "ETA_Z": Attr("ETA_Z", State.Free, Kind.Real, units="m"),
    "DETA_DPZ_X": Attr("DETA_DPZ_X", State.Free, Kind.Real, units="m"),
    "DETA_DPZ_Y": Attr("DETA_DPZ_Y", State.Free, Kind.Real, units="m"),
    "DETAP_DPZ_X": Attr("DETAP_DPZ_X", State.Free, Kind.Real, units=""),
    "DETAP_DPZ_Y": Attr("DETAP_DPZ_Y", State.Free, Kind.Real, units=""),
    "S": Attr("S", State.Free, Kind.Real, units="m"),
    "REF_TIME": Attr("REF_TIME", State.Free, Kind.Real, units="sec"),
    "ALPHA_A": Attr("ALPHA_A", State.Free, Kind.Real, units=""),
    "ALPHA_B": Attr("ALPHA_B", State.Free, Kind.Real, units=""),
    "X_POSITION": Attr("X_POSITION", State.Free, Kind.Real, units="m"),
    "Y_POSITION": Attr("Y_POSITION", State.Free, Kind.Real, units="m"),
    "Z_POSITION": Attr("Z_POSITION", State.Free, Kind.Real, units="m"),
    "THETA_POSITION": Attr("THETA_POSITION", State.Free, Kind.Real, units="rad"),
    "PHI_POSITION": Attr("PHI_POSITION", State.Free, Kind.Real, units="rad"),
    "PSI_POSITION": Attr("PSI_POSITION", State.Free, Kind.Real, units="rad"),
    "BETA_A": Attr("BETA_A", State.Free, Kind.Real, units="m"),
    "BETA_B": Attr("BETA_B", State.Free, Kind.Real, units="m"),
    "DBETA_DPZ_A": Attr("DBETA_DPZ_A", State.Free, Kind.Real, units="m"),
    "DBETA_DPZ_B": Attr("DBETA_DPZ_B", State.Free, Kind.Real, units="m"),
    "DALPHA_DPZ_A": Attr("DALPHA_DPZ_A", State.Free, Kind.Real, units=""),
    "DALPHA_DPZ_B": Attr("DALPHA_DPZ_B", State.Free, Kind.Real, units=""),
    "PHI_B": Attr("PHI_B", State.Free, Kind.Real, units="rad"),
    "PARTICLE": Attr("PARTICLE", State.Free, Kind.Switch, units=""),
}

by_element["MATCH"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "BETA_A0": Attr("BETA_A0", State.Free, Kind.Real, units="m"),
    "ALPHA_A0": Attr("ALPHA_A0", State.Free, Kind.Real, units=""),
    "BETA_B0": Attr("BETA_B0", State.Free, Kind.Real, units="m"),
    "ALPHA_B0": Attr("ALPHA_B0", State.Free, Kind.Real, units=""),
    "BETA_A1": Attr("BETA_A1", State.Free, Kind.Real, units="m"),
    "ALPHA_A1": Attr("ALPHA_A1", State.Free, Kind.Real, units=""),
    "BETA_B1": Attr("BETA_B1", State.Free, Kind.Real, units="m"),
    "ALPHA_B1": Attr("ALPHA_B1", State.Free, Kind.Real, units=""),
    "DPHI_A": Attr("DPHI_A", State.Free, Kind.Real, units="rad"),
    "DPHI_B": Attr("DPHI_B", State.Free, Kind.Real, units="rad"),
    "ETA_X0": Attr("ETA_X0", State.Free, Kind.Real, units="m"),
    "ETAP_X0": Attr("ETAP_X0", State.Free, Kind.Real, units=""),
    "ETA_Y0": Attr("ETA_Y0", State.Free, Kind.Real, units="m"),
    "ETAP_Y0": Attr("ETAP_Y0", State.Free, Kind.Real, units=""),
    "ETA_X1": Attr("ETA_X1", State.Free, Kind.Real, units="m"),
    "ETAP_X1": Attr("ETAP_X1", State.Free, Kind.Real, units=""),
    "ETA_Y1": Attr("ETA_Y1", State.Free, Kind.Real, units="m"),
    "ETAP_Y1": Attr("ETAP_Y1", State.Free, Kind.Real, units=""),
    "C11_MAT0": Attr("C11_MAT0", State.Free, Kind.Real, units=""),
    "C12_MAT0": Attr("C12_MAT0", State.Free, Kind.Real, units="m"),
    "C21_MAT0": Attr("C21_MAT0", State.Free, Kind.Real, units="1/m"),
    "C22_MAT0": Attr("C22_MAT0", State.Free, Kind.Real, units=""),
    "MODE_FLIP0": Attr("MODE_FLIP0", State.Free, Kind.Logical, units=""),
    "C11_MAT1": Attr("C11_MAT1", State.Free, Kind.Real, units=""),
    "C12_MAT1": Attr("C12_MAT1", State.Free, Kind.Real, units="m"),
    "C21_MAT1": Attr("C21_MAT1", State.Free, Kind.Real, units="1/m"),
    "C22_MAT1": Attr("C22_MAT1", State.Free, Kind.Real, units=""),
    "MODE_FLIP1": Attr("MODE_FLIP1", State.Free, Kind.Logical, units=""),
    "X0": Attr("X0", State.Free, Kind.Real, units="m"),
    "PX0": Attr("PX0", State.Free, Kind.Real, units=""),
    "Y0": Attr("Y0", State.Free, Kind.Real, units="m"),
    "PY0": Attr("PY0", State.Free, Kind.Real, units=""),
    "Z0": Attr("Z0", State.Free, Kind.Real, units="m"),
    "PZ0": Attr("PZ0", State.Free, Kind.Real, units=""),
    "X1": Attr("X1", State.Free, Kind.Real, units="m"),
    "PX1": Attr("PX1", State.Free, Kind.Real, units=""),
    "Y1": Attr("Y1", State.Free, Kind.Real, units="m"),
    "PY1": Attr("PY1", State.Free, Kind.Real, units=""),
    "Z1": Attr("Z1", State.Free, Kind.Real, units="m"),
    "PZ1": Attr("PZ1", State.Free, Kind.Real, units=""),
    "MATRIX": Attr("MATRIX", State.Free, Kind.Switch, units=""),
    "KICK0": Attr("KICK0", State.Free, Kind.Switch, units=""),
    "RECALC": Attr("RECALC", State.Free, Kind.Logical, units=""),
    "DELTA_TIME": Attr("DELTA_TIME", State.Free, Kind.Real, units="sec"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["MONITOR"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "X_GAIN_ERR": Attr("X_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "Y_GAIN_ERR": Attr("Y_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "CRUNCH": Attr("CRUNCH", State.Free, Kind.Real, units="rad"),
    "NOISE": Attr("NOISE", State.Free, Kind.Real, units=""),
    "OSC_AMPLITUDE": Attr("OSC_AMPLITUDE", State.Free, Kind.Real, units="m"),
    "X_GAIN_CALIB": Attr("X_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "Y_GAIN_CALIB": Attr("Y_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "CRUNCH_CALIB": Attr("CRUNCH_CALIB", State.Free, Kind.Real, units="rad"),
    "X_OFFSET_CALIB": Attr("X_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "Y_OFFSET_CALIB": Attr("Y_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "TILT_CALIB": Attr("TILT_CALIB", State.Free, Kind.Real, units="rad"),
    "DE_ETA_MEAS": Attr("DE_ETA_MEAS", State.Free, Kind.Real, units=""),
    "N_SAMPLE": Attr("N_SAMPLE", State.Free, Kind.Real, units=""),
    "X_DISPERSION_ERR": Attr("X_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_ERR": Attr("Y_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "X_DISPERSION_CALIB": Attr("X_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_CALIB": Attr("Y_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "SPLIT_ID": Attr("SPLIT_ID", State.Private, Kind.Unknown, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["INSTRUMENT"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "X_GAIN_ERR": Attr("X_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "Y_GAIN_ERR": Attr("Y_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "CRUNCH": Attr("CRUNCH", State.Free, Kind.Real, units="rad"),
    "NOISE": Attr("NOISE", State.Free, Kind.Real, units=""),
    "OSC_AMPLITUDE": Attr("OSC_AMPLITUDE", State.Free, Kind.Real, units="m"),
    "X_GAIN_CALIB": Attr("X_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "Y_GAIN_CALIB": Attr("Y_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "CRUNCH_CALIB": Attr("CRUNCH_CALIB", State.Free, Kind.Real, units="rad"),
    "X_OFFSET_CALIB": Attr("X_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "Y_OFFSET_CALIB": Attr("Y_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "TILT_CALIB": Attr("TILT_CALIB", State.Free, Kind.Real, units="rad"),
    "DE_ETA_MEAS": Attr("DE_ETA_MEAS", State.Free, Kind.Real, units=""),
    "N_SAMPLE": Attr("N_SAMPLE", State.Free, Kind.Real, units=""),
    "X_DISPERSION_ERR": Attr("X_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_ERR": Attr("Y_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "X_DISPERSION_CALIB": Attr("X_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_CALIB": Attr("Y_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "SPLIT_ID": Attr("SPLIT_ID", State.Private, Kind.Unknown, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["HKICKER"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "KICK": Attr("KICK", State.Quasi_Free, Kind.Real, units=""),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "BL_KICK": Attr("BL_KICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["VKICKER"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "KICK": Attr("KICK", State.Quasi_Free, Kind.Real, units=""),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "BL_KICK": Attr("BL_KICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["RCOLLIMATOR"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "PX_APERTURE_WIDTH2": Attr("PX_APERTURE_WIDTH2", State.Free, Kind.Real, units=""),
    "PX_APERTURE_CENTER": Attr("PX_APERTURE_CENTER", State.Free, Kind.Real, units=""),
    "PY_APERTURE_WIDTH2": Attr("PY_APERTURE_WIDTH2", State.Free, Kind.Real, units=""),
    "PY_APERTURE_CENTER": Attr("PY_APERTURE_CENTER", State.Free, Kind.Real, units=""),
    "Z_APERTURE_WIDTH2": Attr("Z_APERTURE_WIDTH2", State.Free, Kind.Real, units="m"),
    "Z_APERTURE_CENTER": Attr("Z_APERTURE_CENTER", State.Free, Kind.Real, units="m"),
    "PZ_APERTURE_WIDTH2": Attr("PZ_APERTURE_WIDTH2", State.Free, Kind.Real, units=""),
    "PZ_APERTURE_CENTER": Attr("PZ_APERTURE_CENTER", State.Free, Kind.Real, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["ECOLLIMATOR"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "PX_APERTURE_WIDTH2": Attr("PX_APERTURE_WIDTH2", State.Free, Kind.Real, units=""),
    "PX_APERTURE_CENTER": Attr("PX_APERTURE_CENTER", State.Free, Kind.Real, units=""),
    "PY_APERTURE_WIDTH2": Attr("PY_APERTURE_WIDTH2", State.Free, Kind.Real, units=""),
    "PY_APERTURE_CENTER": Attr("PY_APERTURE_CENTER", State.Free, Kind.Real, units=""),
    "Z_APERTURE_WIDTH2": Attr("Z_APERTURE_WIDTH2", State.Free, Kind.Real, units="m"),
    "Z_APERTURE_CENTER": Attr("Z_APERTURE_CENTER", State.Free, Kind.Real, units="m"),
    "PZ_APERTURE_WIDTH2": Attr("PZ_APERTURE_WIDTH2", State.Free, Kind.Real, units=""),
    "PZ_APERTURE_CENTER": Attr("PZ_APERTURE_CENTER", State.Free, Kind.Real, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["GIRDER"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "REF_TILT": Attr("REF_TILT", State.Free, Kind.Real, units="rad"),
    "ORIGIN_ELE_REF_PT": Attr("ORIGIN_ELE_REF_PT", State.Free, Kind.Switch, units=""),
    "DX_ORIGIN": Attr("DX_ORIGIN", State.Free, Kind.Real, units="m"),
    "DY_ORIGIN": Attr("DY_ORIGIN", State.Free, Kind.Real, units="m"),
    "DZ_ORIGIN": Attr("DZ_ORIGIN", State.Free, Kind.Real, units="m"),
    "DTHETA_ORIGIN": Attr("DTHETA_ORIGIN", State.Free, Kind.Real, units="rad"),
    "DPHI_ORIGIN": Attr("DPHI_ORIGIN", State.Free, Kind.Real, units="rad"),
    "DPSI_ORIGIN": Attr("DPSI_ORIGIN", State.Free, Kind.Real, units="rad"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Free, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Free, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Free, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Free, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Free, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Free, Kind.Real, units="rad"),
    "REF_TILT_TOT": Attr("REF_TILT_TOT", State.Free, Kind.Real, units="rad"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "ORIGIN_ELE": Attr("ORIGIN_ELE", State.Free, Kind.String, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
}

by_element["CONVERTER"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "PC_OUT_MIN": Attr("PC_OUT_MIN", State.Free, Kind.Real, units="eV"),
    "PC_OUT_MAX": Attr("PC_OUT_MAX", State.Free, Kind.Real, units="eV"),
    "ANGLE_OUT_MAX": Attr("ANGLE_OUT_MAX", State.Free, Kind.Real, units="rad"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Dependent, Kind.Real, units="eV"),
    "E_TOT_START": Attr("E_TOT_START", State.Dependent, Kind.Real, units="eV"),
    "P0C": Attr("P0C", State.Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "DISTRIBUTION": Attr("DISTRIBUTION", State.Free, Kind.Switch, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "SPECIES_OUT": Attr("SPECIES_OUT", State.Free, Kind.Switch, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["!PARTICLE_START"] = {
    "X": Attr("X", State.Free, Kind.Real, units="m"),
    "PX": Attr("PX", State.Free, Kind.Real, units=""),
    "Y": Attr("Y", State.Free, Kind.Real, units="m"),
    "PY": Attr("PY", State.Free, Kind.Real, units=""),
    "Z": Attr("Z", State.Free, Kind.Real, units="m"),
    "PZ": Attr("PZ", State.Free, Kind.Real, units=""),
    "T": Attr("T", State.Free, Kind.Real, units="sec"),
    "E_PHOTON": Attr("E_PHOTON", State.Free, Kind.Real, units="eV"),
    "FIELD_X": Attr("FIELD_X", State.Free, Kind.Real, units=""),
    "FIELD_Y": Attr("FIELD_Y", State.Free, Kind.Real, units=""),
    "PHASE_X": Attr("PHASE_X", State.Free, Kind.Real, units="rad"),
    "PHASE_Y": Attr("PHASE_Y", State.Free, Kind.Real, units="rad"),
    "SIG_Z": Attr("SIG_Z", State.Free, Kind.Real, units="m"),
    "SIG_PZ": Attr("SIG_PZ", State.Free, Kind.Real, units=""),
    "SPIN_X": Attr("SPIN_X", State.Free, Kind.Real, units=""),
    "SPIN_Y": Attr("SPIN_Y", State.Free, Kind.Real, units=""),
    "SPIN_Z": Attr("SPIN_Z", State.Free, Kind.Real, units=""),
    "EMITTANCE_A": Attr("EMITTANCE_A", State.Free, Kind.Real, units="m*rad"),
    "EMITTANCE_B": Attr("EMITTANCE_B", State.Free, Kind.Real, units="m*rad"),
    "EMITTANCE_Z": Attr("EMITTANCE_Z", State.Free, Kind.Real, units="m*rad"),
}

by_element["PHOTON_FORK"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "DIRECTION": Attr("DIRECTION", State.Free, Kind.Integer, units=""),
    "NEW_BRANCH": Attr("NEW_BRANCH", State.Free, Kind.Logical, units=""),
    "IX_TO_BRANCH": Attr("IX_TO_BRANCH", State.Dependent, Kind.Integer, units=""),
    "IX_TO_ELEMENT": Attr("IX_TO_ELEMENT", State.Dependent, Kind.Integer, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "TO_LINE": Attr("TO_LINE", State.Free, Kind.String, units=""),
    "TO_ELEMENT": Attr("TO_ELEMENT", State.Free, Kind.String, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "REF_SPECIES": Attr("REF_SPECIES", State.Dependent, Kind.Switch, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["FORK"] = {
    "L": Attr("L", State.Dependent, Kind.Unknown, units="m"),
    "DIRECTION": Attr("DIRECTION", State.Free, Kind.Integer, units=""),
    "NEW_BRANCH": Attr("NEW_BRANCH", State.Free, Kind.Logical, units=""),
    "IX_TO_BRANCH": Attr("IX_TO_BRANCH", State.Dependent, Kind.Integer, units=""),
    "IX_TO_ELEMENT": Attr("IX_TO_ELEMENT", State.Dependent, Kind.Integer, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "TO_LINE": Attr("TO_LINE", State.Free, Kind.String, units=""),
    "TO_ELEMENT": Attr("TO_ELEMENT", State.Free, Kind.String, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "REF_SPECIES": Attr("REF_SPECIES", State.Dependent, Kind.Switch, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["MIRROR"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "REF_TILT": Attr("REF_TILT", State.Free, Kind.Real, units="rad"),
    "GRAZE_ANGLE": Attr("GRAZE_ANGLE", State.Free, Kind.Real, units="rad"),
    "CRITICAL_ANGLE": Attr("CRITICAL_ANGLE", State.Free, Kind.Real, units="rad"),
    "USE_REFLECTIVITY_TABLE": Attr("USE_REFLECTIVITY_TABLE", State.Free, Kind.Logical, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "REF_TILT_TOT": Attr("REF_TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "REF_WAVELENGTH": Attr("REF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "DISPLACEMENT": Attr("DISPLACEMENT", State.Free, Kind.Struct, units=""),
    "SEGMENTED": Attr("SEGMENTED", State.Free, Kind.Struct, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "REFLECTIVITY_TABLE": Attr("REFLECTIVITY_TABLE", State.Free, Kind.Struct, units=""),
    "CURVATURE": Attr("CURVATURE", State.Free, Kind.Struct, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "CURVATURE_X0_Y2": Attr("CURVATURE_X0_Y2", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X0_Y3": Attr("CURVATURE_X0_Y3", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X0_Y4": Attr("CURVATURE_X0_Y4", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X0_Y5": Attr("CURVATURE_X0_Y5", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X0_Y6": Attr("CURVATURE_X0_Y6", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X1_Y1": Attr("CURVATURE_X1_Y1", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X1_Y2": Attr("CURVATURE_X1_Y2", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X1_Y3": Attr("CURVATURE_X1_Y3", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X1_Y4": Attr("CURVATURE_X1_Y4", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X1_Y5": Attr("CURVATURE_X1_Y5", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X2_Y0": Attr("CURVATURE_X2_Y0", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X2_Y1": Attr("CURVATURE_X2_Y1", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X2_Y2": Attr("CURVATURE_X2_Y2", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X2_Y3": Attr("CURVATURE_X2_Y3", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X2_Y4": Attr("CURVATURE_X2_Y4", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X3_Y0": Attr("CURVATURE_X3_Y0", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X3_Y1": Attr("CURVATURE_X3_Y1", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X3_Y2": Attr("CURVATURE_X3_Y2", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X3_Y3": Attr("CURVATURE_X3_Y3", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X4_Y0": Attr("CURVATURE_X4_Y0", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X4_Y1": Attr("CURVATURE_X4_Y1", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X4_Y2": Attr("CURVATURE_X4_Y2", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X5_Y0": Attr("CURVATURE_X5_Y0", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X5_Y1": Attr("CURVATURE_X5_Y1", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X6_Y0": Attr("CURVATURE_X6_Y0", State.Free, Kind.Real, units="1/m^5"),
}

by_element["CRYSTAL"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "REF_TILT": Attr("REF_TILT", State.Free, Kind.Real, units="rad"),
    "TILT_CORR": Attr("TILT_CORR", State.Dependent, Kind.Real, units="rad"),
    "REF_ORBIT_FOLLOWS": Attr("REF_ORBIT_FOLLOWS", State.Free, Kind.Switch, units=""),
    "BRAGG_ANGLE_IN": Attr("BRAGG_ANGLE_IN", State.Dependent, Kind.Real, units="rad"),
    "BRAGG_ANGLE_OUT": Attr("BRAGG_ANGLE_OUT", State.Dependent, Kind.Real, units="rad"),
    "BRAGG_ANGLE": Attr("BRAGG_ANGLE", State.Dependent, Kind.Real, units="rad"),
    "DBRAGG_ANGLE_DE": Attr("DBRAGG_ANGLE_DE", State.Dependent, Kind.Real, units="rad/eV"),
    "DARWIN_WIDTH_SIGMA": Attr("DARWIN_WIDTH_SIGMA", State.Dependent, Kind.Real, units="rad"),
    "DARWIN_WIDTH_PI": Attr("DARWIN_WIDTH_PI", State.Dependent, Kind.Real, units="rad"),
    "PENDELLOSUNG_PERIOD_SIGMA": Attr(
        "PENDELLOSUNG_PERIOD_SIGMA", State.Dependent, Kind.Real, units="m"
    ),
    "PENDELLOSUNG_PERIOD_PI": Attr("PENDELLOSUNG_PERIOD_PI", State.Dependent, Kind.Real, units="m"),
    "GRAZE_ANGLE_IN": Attr("GRAZE_ANGLE_IN", State.Free, Kind.Real, units="rad"),
    "GRAZE_ANGLE_OUT": Attr("GRAZE_ANGLE_OUT", State.Free, Kind.Real, units="rad"),
    "ALPHA_ANGLE": Attr("ALPHA_ANGLE", State.Dependent, Kind.Real, units=""),
    "PSI_ANGLE": Attr("PSI_ANGLE", State.Free, Kind.Real, units="rad"),
    "V_UNITCELL": Attr("V_UNITCELL", State.Dependent, Kind.Real, units="m^3"),
    "IS_MOSAIC": Attr("IS_MOSAIC", State.Free, Kind.Logical, units=""),
    "MOSAIC_THICKNESS": Attr("MOSAIC_THICKNESS", State.Free, Kind.Real, units="m"),
    "MOSAIC_ANGLE_RMS_IN_PLANE": Attr(
        "MOSAIC_ANGLE_RMS_IN_PLANE", State.Free, Kind.Real, units="rad"
    ),
    "MOSAIC_ANGLE_RMS_OUT_PLANE": Attr(
        "MOSAIC_ANGLE_RMS_OUT_PLANE", State.Free, Kind.Real, units="rad"
    ),
    "MOSAIC_DIFFRACTION_NUM": Attr("MOSAIC_DIFFRACTION_NUM", State.Free, Kind.Integer, units=""),
    "B_PARAM": Attr("B_PARAM", State.Free, Kind.Real, units=""),
    "REF_CAP_GAMMA": Attr("REF_CAP_GAMMA", State.Dependent, Kind.Real, units=""),
    "USE_REFLECTIVITY_TABLE": Attr("USE_REFLECTIVITY_TABLE", State.Free, Kind.Logical, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "D_SPACING": Attr("D_SPACING", State.Dependent, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "REF_TILT_TOT": Attr("REF_TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "THICKNESS": Attr("THICKNESS", State.Free, Kind.Real, units="m"),
    "REF_WAVELENGTH": Attr("REF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "H_MISALIGN": Attr("H_MISALIGN", State.Free, Kind.Struct, units=""),
    "DISPLACEMENT": Attr("DISPLACEMENT", State.Free, Kind.Struct, units=""),
    "SEGMENTED": Attr("SEGMENTED", State.Free, Kind.Struct, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "REFLECTIVITY_TABLE": Attr("REFLECTIVITY_TABLE", State.Free, Kind.Struct, units=""),
    "CURVATURE": Attr("CURVATURE", State.Free, Kind.Struct, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "CRYSTAL_TYPE": Attr("CRYSTAL_TYPE", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "CURVATURE_X0_Y2": Attr("CURVATURE_X0_Y2", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X0_Y3": Attr("CURVATURE_X0_Y3", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X0_Y4": Attr("CURVATURE_X0_Y4", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X0_Y5": Attr("CURVATURE_X0_Y5", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X0_Y6": Attr("CURVATURE_X0_Y6", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X1_Y1": Attr("CURVATURE_X1_Y1", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X1_Y2": Attr("CURVATURE_X1_Y2", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X1_Y3": Attr("CURVATURE_X1_Y3", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X1_Y4": Attr("CURVATURE_X1_Y4", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X1_Y5": Attr("CURVATURE_X1_Y5", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X2_Y0": Attr("CURVATURE_X2_Y0", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X2_Y1": Attr("CURVATURE_X2_Y1", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X2_Y2": Attr("CURVATURE_X2_Y2", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X2_Y3": Attr("CURVATURE_X2_Y3", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X2_Y4": Attr("CURVATURE_X2_Y4", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X3_Y0": Attr("CURVATURE_X3_Y0", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X3_Y1": Attr("CURVATURE_X3_Y1", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X3_Y2": Attr("CURVATURE_X3_Y2", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X3_Y3": Attr("CURVATURE_X3_Y3", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X4_Y0": Attr("CURVATURE_X4_Y0", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X4_Y1": Attr("CURVATURE_X4_Y1", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X4_Y2": Attr("CURVATURE_X4_Y2", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X5_Y0": Attr("CURVATURE_X5_Y0", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X5_Y1": Attr("CURVATURE_X5_Y1", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X6_Y0": Attr("CURVATURE_X6_Y0", State.Free, Kind.Real, units="1/m^5"),
}

by_element["PIPE"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "X_GAIN_ERR": Attr("X_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "Y_GAIN_ERR": Attr("Y_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "CRUNCH": Attr("CRUNCH", State.Free, Kind.Real, units="rad"),
    "NOISE": Attr("NOISE", State.Free, Kind.Real, units=""),
    "OSC_AMPLITUDE": Attr("OSC_AMPLITUDE", State.Free, Kind.Real, units="m"),
    "X_GAIN_CALIB": Attr("X_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "Y_GAIN_CALIB": Attr("Y_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "CRUNCH_CALIB": Attr("CRUNCH_CALIB", State.Free, Kind.Real, units="rad"),
    "X_OFFSET_CALIB": Attr("X_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "Y_OFFSET_CALIB": Attr("Y_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "TILT_CALIB": Attr("TILT_CALIB", State.Free, Kind.Real, units="rad"),
    "DE_ETA_MEAS": Attr("DE_ETA_MEAS", State.Free, Kind.Real, units=""),
    "N_SAMPLE": Attr("N_SAMPLE", State.Free, Kind.Real, units=""),
    "X_DISPERSION_ERR": Attr("X_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_ERR": Attr("Y_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "X_DISPERSION_CALIB": Attr("X_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_CALIB": Attr("Y_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "SPLIT_ID": Attr("SPLIT_ID", State.Private, Kind.Unknown, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["CAPILLARY"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "CRITICAL_ANGLE_FACTOR": Attr("CRITICAL_ANGLE_FACTOR", State.Free, Kind.Real, units="rad*eV"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "N_SLICE_SPLINE": Attr("N_SLICE_SPLINE", State.Free, Kind.Real, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["MULTILAYER_MIRROR"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "REF_TILT": Attr("REF_TILT", State.Free, Kind.Real, units="rad"),
    "GRAZE_ANGLE": Attr("GRAZE_ANGLE", State.Free, Kind.Real, units="rad"),
    "D1_THICKNESS": Attr("D1_THICKNESS", State.Free, Kind.Real, units="m"),
    "D2_THICKNESS": Attr("D2_THICKNESS", State.Free, Kind.Real, units="m"),
    "V1_UNITCELL": Attr("V1_UNITCELL", State.Free, Kind.Real, units="m^3"),
    "V2_UNITCELL": Attr("V2_UNITCELL", State.Free, Kind.Real, units="m^3"),
    "N_CELL": Attr("N_CELL", State.Free, Kind.Integer, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "REF_TILT_TOT": Attr("REF_TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "REF_WAVELENGTH": Attr("REF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "DISPLACEMENT": Attr("DISPLACEMENT", State.Free, Kind.Struct, units=""),
    "SEGMENTED": Attr("SEGMENTED", State.Free, Kind.Struct, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "CURVATURE": Attr("CURVATURE", State.Free, Kind.Struct, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "MATERIAL_TYPE": Attr("MATERIAL_TYPE", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "CURVATURE_X0_Y2": Attr("CURVATURE_X0_Y2", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X0_Y3": Attr("CURVATURE_X0_Y3", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X0_Y4": Attr("CURVATURE_X0_Y4", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X0_Y5": Attr("CURVATURE_X0_Y5", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X0_Y6": Attr("CURVATURE_X0_Y6", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X1_Y1": Attr("CURVATURE_X1_Y1", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X1_Y2": Attr("CURVATURE_X1_Y2", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X1_Y3": Attr("CURVATURE_X1_Y3", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X1_Y4": Attr("CURVATURE_X1_Y4", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X1_Y5": Attr("CURVATURE_X1_Y5", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X2_Y0": Attr("CURVATURE_X2_Y0", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X2_Y1": Attr("CURVATURE_X2_Y1", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X2_Y2": Attr("CURVATURE_X2_Y2", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X2_Y3": Attr("CURVATURE_X2_Y3", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X2_Y4": Attr("CURVATURE_X2_Y4", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X3_Y0": Attr("CURVATURE_X3_Y0", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X3_Y1": Attr("CURVATURE_X3_Y1", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X3_Y2": Attr("CURVATURE_X3_Y2", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X3_Y3": Attr("CURVATURE_X3_Y3", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X4_Y0": Attr("CURVATURE_X4_Y0", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X4_Y1": Attr("CURVATURE_X4_Y1", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X4_Y2": Attr("CURVATURE_X4_Y2", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X5_Y0": Attr("CURVATURE_X5_Y0", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X5_Y1": Attr("CURVATURE_X5_Y1", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X6_Y0": Attr("CURVATURE_X6_Y0", State.Free, Kind.Real, units="1/m^5"),
}

by_element["E_GUN"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "DT_MAX": Attr("DT_MAX", State.Free, Kind.Real, units="sec"),
    "GRADIENT_TOT": Attr("GRADIENT_TOT", State.Dependent, Kind.Real, units="eV/m"),
    "GRADIENT": Attr("GRADIENT", State.Free, Kind.Real, units="eV/m"),
    "GRADIENT_ERR": Attr("GRADIENT_ERR", State.Free, Kind.Real, units="eV/m"),
    "VOLTAGE": Attr("VOLTAGE", State.Free, Kind.Real, units="Volt"),
    "VOLTAGE_ERR": Attr("VOLTAGE_ERR", State.Free, Kind.Real, units="Volt"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "RF_FREQUENCY": Attr("RF_FREQUENCY", State.Free, Kind.Real, units="Hz"),
    "RF_WAVELENGTH": Attr("RF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "AUTOSCALE_AMPLITUDE": Attr("AUTOSCALE_AMPLITUDE", State.Free, Kind.Logical, units=""),
    "AUTOSCALE_PHASE": Attr("AUTOSCALE_PHASE", State.Free, Kind.Logical, units=""),
    "EMIT_FRACTION": Attr("EMIT_FRACTION", State.Free, Kind.Real, units=""),
    "PHI0": Attr("PHI0", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_ERR": Attr("PHI0_ERR", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_MULTIPASS": Attr("PHI0_MULTIPASS", State.Private, Kind.Unknown, units=""),
    "PHI0_AUTOSCALE": Attr("PHI0_AUTOSCALE", State.Quasi_Free, Kind.Real, units="rad/2pi"),
    "FIELD_AUTOSCALE": Attr("FIELD_AUTOSCALE", State.Quasi_Free, Kind.Real, units=""),
    "VOLTAGE_TOT": Attr("VOLTAGE_TOT", State.Dependent, Kind.Real, units="Volt"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "P0C_REF_INIT": Attr("P0C_REF_INIT", State.Private, Kind.Unknown, units=""),
    "E_TOT_REF_INIT": Attr("E_TOT_REF_INIT", State.Private, Kind.Unknown, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["EM_FIELD"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "RF_FREQUENCY": Attr("RF_FREQUENCY", State.Free, Kind.Real, units="Hz"),
    "RF_WAVELENGTH": Attr("RF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "CONSTANT_REF_ENERGY": Attr("CONSTANT_REF_ENERGY", State.Free, Kind.Logical, units=""),
    "AUTOSCALE_AMPLITUDE": Attr("AUTOSCALE_AMPLITUDE", State.Free, Kind.Logical, units=""),
    "AUTOSCALE_PHASE": Attr("AUTOSCALE_PHASE", State.Free, Kind.Logical, units=""),
    "POLARITY": Attr("POLARITY", State.Free, Kind.Real, units=""),
    "PHI0": Attr("PHI0", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_ERR": Attr("PHI0_ERR", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_AUTOSCALE": Attr("PHI0_AUTOSCALE", State.Quasi_Free, Kind.Real, units="rad/2pi"),
    "FIELD_AUTOSCALE": Attr("FIELD_AUTOSCALE", State.Quasi_Free, Kind.Real, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT_START": Attr("E_TOT_START", State.Quasi_Free, Kind.Real, units="eV"),
    "P0C": Attr("P0C", State.Dependent, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Dependent, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["FLOOR_SHIFT"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "ORIGIN_ELE_REF_PT": Attr("ORIGIN_ELE_REF_PT", State.Free, Kind.Switch, units=""),
    "UPSTREAM_ELE_DIR": Attr("UPSTREAM_ELE_DIR", State.Dependent, Kind.Integer, units=""),
    "DOWNSTREAM_ELE_DIR": Attr("DOWNSTREAM_ELE_DIR", State.Dependent, Kind.Integer, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "ORIGIN_ELE": Attr("ORIGIN_ELE", State.Free, Kind.String, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["FIDUCIAL"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "ORIGIN_ELE_REF_PT": Attr("ORIGIN_ELE_REF_PT", State.Free, Kind.Switch, units=""),
    "DX_ORIGIN": Attr("DX_ORIGIN", State.Free, Kind.Real, units="m"),
    "DY_ORIGIN": Attr("DY_ORIGIN", State.Free, Kind.Real, units="m"),
    "DZ_ORIGIN": Attr("DZ_ORIGIN", State.Free, Kind.Real, units="m"),
    "DTHETA_ORIGIN": Attr("DTHETA_ORIGIN", State.Free, Kind.Real, units="rad"),
    "DPHI_ORIGIN": Attr("DPHI_ORIGIN", State.Free, Kind.Real, units="rad"),
    "DPSI_ORIGIN": Attr("DPSI_ORIGIN", State.Free, Kind.Real, units="rad"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "ORIGIN_ELE": Attr("ORIGIN_ELE", State.Free, Kind.String, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["UNDULATOR"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "KX": Attr("KX", State.Free, Kind.Real, units="1/m"),
    "B_MAX": Attr("B_MAX", State.Free, Kind.Real, units="T"),
    "G_MAX": Attr("G_MAX", State.Dependent, Kind.Real, units="1/m"),
    "OSC_AMPLITUDE": Attr("OSC_AMPLITUDE", State.Dependent, Kind.Real, units="m"),
    "K1X": Attr("K1X", State.Dependent, Kind.Real, units="1/m^2"),
    "K1Y": Attr("K1Y", State.Dependent, Kind.Real, units="1/m^2"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "POLARITY": Attr("POLARITY", State.Free, Kind.Real, units=""),
    "N_PERIOD": Attr("N_PERIOD", State.Free, Kind.Real, units=""),
    "L_PERIOD": Attr("L_PERIOD", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME_USER_SET": Attr("DELTA_REF_TIME_USER_SET", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Free, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "TERM": Attr("TERM", State.Free, Kind.Struct, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["DIFFRACTION_PLATE"] = {
    "L": Attr("L", State.Private, Kind.Unknown, units=""),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "FIELD_SCALE_FACTOR": Attr("FIELD_SCALE_FACTOR", State.Free, Kind.Real, units=""),
    "MODE": Attr("MODE", State.Free, Kind.Switch, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "REF_WAVELENGTH": Attr("REF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "DISPLACEMENT": Attr("DISPLACEMENT", State.Free, Kind.Struct, units=""),
    "SEGMENTED": Attr("SEGMENTED", State.Free, Kind.Struct, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "CURVATURE": Attr("CURVATURE", State.Free, Kind.Struct, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "CURVATURE_X0_Y2": Attr("CURVATURE_X0_Y2", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X0_Y3": Attr("CURVATURE_X0_Y3", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X0_Y4": Attr("CURVATURE_X0_Y4", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X0_Y5": Attr("CURVATURE_X0_Y5", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X0_Y6": Attr("CURVATURE_X0_Y6", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X1_Y1": Attr("CURVATURE_X1_Y1", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X1_Y2": Attr("CURVATURE_X1_Y2", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X1_Y3": Attr("CURVATURE_X1_Y3", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X1_Y4": Attr("CURVATURE_X1_Y4", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X1_Y5": Attr("CURVATURE_X1_Y5", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X2_Y0": Attr("CURVATURE_X2_Y0", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X2_Y1": Attr("CURVATURE_X2_Y1", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X2_Y2": Attr("CURVATURE_X2_Y2", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X2_Y3": Attr("CURVATURE_X2_Y3", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X2_Y4": Attr("CURVATURE_X2_Y4", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X3_Y0": Attr("CURVATURE_X3_Y0", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X3_Y1": Attr("CURVATURE_X3_Y1", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X3_Y2": Attr("CURVATURE_X3_Y2", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X3_Y3": Attr("CURVATURE_X3_Y3", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X4_Y0": Attr("CURVATURE_X4_Y0", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X4_Y1": Attr("CURVATURE_X4_Y1", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X4_Y2": Attr("CURVATURE_X4_Y2", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X5_Y0": Attr("CURVATURE_X5_Y0", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X5_Y1": Attr("CURVATURE_X5_Y1", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X6_Y0": Attr("CURVATURE_X6_Y0", State.Free, Kind.Real, units="1/m^5"),
}

by_element["PHOTON_INIT"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "SIG_X": Attr("SIG_X", State.Free, Kind.Real, units="m"),
    "SIG_Y": Attr("SIG_Y", State.Free, Kind.Real, units="m"),
    "SIG_Z": Attr("SIG_Z", State.Free, Kind.Real, units="m"),
    "SIG_VX": Attr("SIG_VX", State.Free, Kind.Real, units="m/s"),
    "SIG_VY": Attr("SIG_VY", State.Free, Kind.Real, units="m/s"),
    "SIG_E": Attr("SIG_E", State.Free, Kind.Real, units="eV"),
    "SIG_E2": Attr("SIG_E2", State.Free, Kind.Real, units="eV"),
    "E_CENTER": Attr("E_CENTER", State.Free, Kind.Real, units="eV"),
    "E2_CENTER": Attr("E2_CENTER", State.Free, Kind.Real, units="eV"),
    "E2_PROBABILITY": Attr("E2_PROBABILITY", State.Free, Kind.Real, units=""),
    "E_CENTER_RELATIVE_TO_REF": Attr(
        "E_CENTER_RELATIVE_TO_REF", State.Free, Kind.Logical, units=""
    ),
    "SPATIAL_DISTRIBUTION": Attr("SPATIAL_DISTRIBUTION", State.Free, Kind.Switch, units=""),
    "VELOCITY_DISTRIBUTION": Attr("VELOCITY_DISTRIBUTION", State.Free, Kind.Switch, units=""),
    "ENERGY_DISTRIBUTION": Attr("ENERGY_DISTRIBUTION", State.Free, Kind.Switch, units=""),
    "E_FIELD_X": Attr("E_FIELD_X", State.Free, Kind.Real, units="V/m"),
    "E_FIELD_Y": Attr("E_FIELD_Y", State.Free, Kind.Real, units="V/m"),
    "SCALE_FIELD_TO_ONE": Attr("SCALE_FIELD_TO_ONE", State.Free, Kind.Logical, units=""),
    "TRANSVERSE_SIGMA_CUT": Attr("TRANSVERSE_SIGMA_CUT", State.Free, Kind.Real, units=""),
    "DS_SLICE": Attr("DS_SLICE", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "REF_WAVELENGTH": Attr("REF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "ENERGY_PROBABILITY_CURVE": Attr("ENERGY_PROBABILITY_CURVE", State.Free, Kind.Struct, units=""),
    "PHYSICAL_SOURCE": Attr("PHYSICAL_SOURCE", State.Free, Kind.String, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["SAMPLE"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "MODE": Attr("MODE", State.Free, Kind.Switch, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "DISPLACEMENT": Attr("DISPLACEMENT", State.Free, Kind.Struct, units=""),
    "SEGMENTED": Attr("SEGMENTED", State.Free, Kind.Struct, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "CURVATURE": Attr("CURVATURE", State.Free, Kind.Struct, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "MATERIAL_TYPE": Attr("MATERIAL_TYPE", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "CURVATURE_X0_Y2": Attr("CURVATURE_X0_Y2", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X0_Y3": Attr("CURVATURE_X0_Y3", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X0_Y4": Attr("CURVATURE_X0_Y4", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X0_Y5": Attr("CURVATURE_X0_Y5", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X0_Y6": Attr("CURVATURE_X0_Y6", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X1_Y1": Attr("CURVATURE_X1_Y1", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X1_Y2": Attr("CURVATURE_X1_Y2", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X1_Y3": Attr("CURVATURE_X1_Y3", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X1_Y4": Attr("CURVATURE_X1_Y4", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X1_Y5": Attr("CURVATURE_X1_Y5", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X2_Y0": Attr("CURVATURE_X2_Y0", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X2_Y1": Attr("CURVATURE_X2_Y1", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X2_Y2": Attr("CURVATURE_X2_Y2", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X2_Y3": Attr("CURVATURE_X2_Y3", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X2_Y4": Attr("CURVATURE_X2_Y4", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X3_Y0": Attr("CURVATURE_X3_Y0", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X3_Y1": Attr("CURVATURE_X3_Y1", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X3_Y2": Attr("CURVATURE_X3_Y2", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X3_Y3": Attr("CURVATURE_X3_Y3", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X4_Y0": Attr("CURVATURE_X4_Y0", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X4_Y1": Attr("CURVATURE_X4_Y1", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X4_Y2": Attr("CURVATURE_X4_Y2", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X5_Y0": Attr("CURVATURE_X5_Y0", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X5_Y1": Attr("CURVATURE_X5_Y1", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X6_Y0": Attr("CURVATURE_X6_Y0", State.Free, Kind.Real, units="1/m^5"),
}

by_element["DETECTOR"] = {
    "L": Attr("L", State.Dependent, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "X_GAIN_ERR": Attr("X_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "Y_GAIN_ERR": Attr("Y_GAIN_ERR", State.Free, Kind.Real, units="m"),
    "CRUNCH": Attr("CRUNCH", State.Free, Kind.Real, units="rad"),
    "NOISE": Attr("NOISE", State.Free, Kind.Real, units=""),
    "OSC_AMPLITUDE": Attr("OSC_AMPLITUDE", State.Free, Kind.Real, units="m"),
    "X_GAIN_CALIB": Attr("X_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "Y_GAIN_CALIB": Attr("Y_GAIN_CALIB", State.Free, Kind.Real, units="m"),
    "CRUNCH_CALIB": Attr("CRUNCH_CALIB", State.Free, Kind.Real, units="rad"),
    "X_OFFSET_CALIB": Attr("X_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "Y_OFFSET_CALIB": Attr("Y_OFFSET_CALIB", State.Free, Kind.Real, units="m"),
    "TILT_CALIB": Attr("TILT_CALIB", State.Free, Kind.Real, units="rad"),
    "DE_ETA_MEAS": Attr("DE_ETA_MEAS", State.Free, Kind.Real, units=""),
    "N_SAMPLE": Attr("N_SAMPLE", State.Free, Kind.Real, units=""),
    "X_DISPERSION_ERR": Attr("X_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_ERR": Attr("Y_DISPERSION_ERR", State.Free, Kind.Real, units="m"),
    "X_DISPERSION_CALIB": Attr("X_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "Y_DISPERSION_CALIB": Attr("Y_DISPERSION_CALIB", State.Free, Kind.Real, units="m"),
    "SPLIT_ID": Attr("SPLIT_ID", State.Private, Kind.Unknown, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "PIXEL": Attr("PIXEL", State.Free, Kind.Struct, units=""),
    "DISPLACEMENT": Attr("DISPLACEMENT", State.Free, Kind.Struct, units=""),
    "SEGMENTED": Attr("SEGMENTED", State.Free, Kind.Struct, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "CURVATURE": Attr("CURVATURE", State.Free, Kind.Struct, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "CURVATURE_X0_Y2": Attr("CURVATURE_X0_Y2", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X0_Y3": Attr("CURVATURE_X0_Y3", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X0_Y4": Attr("CURVATURE_X0_Y4", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X0_Y5": Attr("CURVATURE_X0_Y5", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X0_Y6": Attr("CURVATURE_X0_Y6", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X1_Y1": Attr("CURVATURE_X1_Y1", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X1_Y2": Attr("CURVATURE_X1_Y2", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X1_Y3": Attr("CURVATURE_X1_Y3", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X1_Y4": Attr("CURVATURE_X1_Y4", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X1_Y5": Attr("CURVATURE_X1_Y5", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X2_Y0": Attr("CURVATURE_X2_Y0", State.Free, Kind.Real, units="1/m"),
    "CURVATURE_X2_Y1": Attr("CURVATURE_X2_Y1", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X2_Y2": Attr("CURVATURE_X2_Y2", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X2_Y3": Attr("CURVATURE_X2_Y3", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X2_Y4": Attr("CURVATURE_X2_Y4", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X3_Y0": Attr("CURVATURE_X3_Y0", State.Free, Kind.Real, units="1/m^2"),
    "CURVATURE_X3_Y1": Attr("CURVATURE_X3_Y1", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X3_Y2": Attr("CURVATURE_X3_Y2", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X3_Y3": Attr("CURVATURE_X3_Y3", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X4_Y0": Attr("CURVATURE_X4_Y0", State.Free, Kind.Real, units="1/m^3"),
    "CURVATURE_X4_Y1": Attr("CURVATURE_X4_Y1", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X4_Y2": Attr("CURVATURE_X4_Y2", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X5_Y0": Attr("CURVATURE_X5_Y0", State.Free, Kind.Real, units="1/m^4"),
    "CURVATURE_X5_Y1": Attr("CURVATURE_X5_Y1", State.Free, Kind.Real, units="1/m^5"),
    "CURVATURE_X6_Y0": Attr("CURVATURE_X6_Y0", State.Free, Kind.Real, units="1/m^5"),
}

by_element["SAD_MULT"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "RHO": Attr("RHO", State.Free, Kind.Real, units="m"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "KS": Attr("KS", State.Free, Kind.Real, units="1/m"),
    "E1": Attr("E1", State.Free, Kind.Real, units="rad"),
    "E2": Attr("E2", State.Free, Kind.Real, units="rad"),
    "FB1": Attr("FB1", State.Free, Kind.Real, units="m"),
    "FB2": Attr("FB2", State.Free, Kind.Real, units="m"),
    "FQ1": Attr("FQ1", State.Free, Kind.Real, units="m"),
    "FQ2": Attr("FQ2", State.Free, Kind.Real, units="m"),
    "EPS_STEP_SCALE": Attr("EPS_STEP_SCALE", State.Free, Kind.Real, units="m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "X_OFFSET_MULT": Attr("X_OFFSET_MULT", State.Free, Kind.Real, units="m"),
    "Y_OFFSET_MULT": Attr("Y_OFFSET_MULT", State.Free, Kind.Real, units="m"),
    "BS_FIELD": Attr("BS_FIELD", State.Free, Kind.Real, units="T"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Dependent, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Dependent, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["MASK"] = {
    "L": Attr("L", State.Private, Kind.Unknown, units=""),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "FIELD_SCALE_FACTOR": Attr("FIELD_SCALE_FACTOR", State.Free, Kind.Real, units=""),
    "MODE": Attr("MODE", State.Free, Kind.Switch, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "REF_WAVELENGTH": Attr("REF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["AC_KICKER"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "INTERPOLATION": Attr("INTERPOLATION", State.Free, Kind.Switch, units=""),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "R0_ELEC": Attr("R0_ELEC", State.Free, Kind.Real, units="m"),
    "R0_MAG": Attr("R0_MAG", State.Free, Kind.Real, units="m"),
    "PHI0_MULTIPASS": Attr("PHI0_MULTIPASS", State.Free, Kind.Real, units="rad/2pi"),
    "T_OFFSET": Attr("T_OFFSET", State.Free, Kind.Real, units="sec"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "FREQUENCIES": Attr("FREQUENCIES", State.Free, Kind.Struct, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "AMP_VS_TIME": Attr("AMP_VS_TIME", State.Free, Kind.Struct, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["LENS"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "RADIUS": Attr("RADIUS", State.Free, Kind.Real, units="m"),
    "FOCAL_STRENGTH": Attr("FOCAL_STRENGTH", State.Free, Kind.Real, units="1/m"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["CRAB_CAVITY"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "HARMON": Attr("HARMON", State.Free, Kind.Real, units=""),
    "HARMON_MASTER": Attr("HARMON_MASTER", State.Free, Kind.Logical, units=""),
    "GRADIENT": Attr("GRADIENT", State.Dependent, Kind.Real, units="eV/m"),
    "VOLTAGE": Attr("VOLTAGE", State.Free, Kind.Real, units="Volt"),
    "RF_FREQUENCY": Attr("RF_FREQUENCY", State.Free, Kind.Real, units="Hz"),
    "RF_WAVELENGTH": Attr("RF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "AUTOSCALE_AMPLITUDE": Attr("AUTOSCALE_AMPLITUDE", State.Private, Kind.Logical, units=""),
    "AUTOSCALE_PHASE": Attr("AUTOSCALE_PHASE", State.Private, Kind.Logical, units=""),
    "PHI0": Attr("PHI0", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_MULTIPASS": Attr("PHI0_MULTIPASS", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_AUTOSCALE": Attr("PHI0_AUTOSCALE", State.Private, Kind.Unknown, units="rad/2pi"),
    "FIELD_AUTOSCALE": Attr("FIELD_AUTOSCALE", State.Private, Kind.Unknown, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "N_RF_STEPS": Attr("N_RF_STEPS", State.Free, Kind.Integer, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["RAMPER"] = {
    "INTERPOLATION": Attr("INTERPOLATION", State.Free, Kind.Switch, units=""),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "X_KNOT": Attr("X_KNOT", State.Free, Kind.Struct, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "Y_KNOT": Attr("Y_KNOT", State.Free, Kind.Real, units=""),
    "SLAVE": Attr("SLAVE", State.Free, Kind.Real, units=""),
    "VAR": Attr("VAR", State.Free, Kind.Struct, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
}

by_element["!PTC_COM"] = {
    "MAX_FRINGE_ORDER": Attr("MAX_FRINGE_ORDER", State.Free, Kind.Integer, units=""),
    "EXACT_MISALIGN": Attr("EXACT_MISALIGN", State.Free, Kind.Logical, units=""),
    "OLD_INTEGRATOR": Attr("OLD_INTEGRATOR", State.Free, Kind.Logical, units=""),
    "EXACT_MODEL": Attr("EXACT_MODEL", State.Free, Kind.Logical, units=""),
    "VERTICAL_KICK": Attr("VERTICAL_KICK", State.Free, Kind.Integer, units=""),
}

by_element["RF_BEND"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "ROLL": Attr("ROLL", State.Free, Kind.Real, units="rad"),
    "REF_TILT": Attr("REF_TILT", State.Free, Kind.Real, units="rad"),
    "HARMON": Attr("HARMON", State.Quasi_Free, Kind.Real, units=""),
    "HARMON_MASTER": Attr("HARMON_MASTER", State.Free, Kind.Logical, units=""),
    "G": Attr("G", State.Quasi_Free, Kind.Real, units="1/m"),
    "DG": Attr("DG", State.Private, Kind.Unknown, units="1/m"),
    "RHO": Attr("RHO", State.Quasi_Free, Kind.Real, units="m"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "RF_FREQUENCY": Attr("RF_FREQUENCY", State.Quasi_Free, Kind.Real, units="Hz"),
    "RF_WAVELENGTH": Attr("RF_WAVELENGTH", State.Dependent, Kind.Real, units="m"),
    "PHI0": Attr("PHI0", State.Free, Kind.Real, units="rad/2pi"),
    "PHI0_MULTIPASS": Attr("PHI0_MULTIPASS", State.Free, Kind.Real, units="rad/2pi"),
    "L_RECTANGLE": Attr("L_RECTANGLE", State.Quasi_Free, Kind.Real, units="m"),
    "L_SAGITTA": Attr("L_SAGITTA", State.Dependent, Kind.Real, units="m"),
    "L_CHORD": Attr("L_CHORD", State.Quasi_Free, Kind.Real, units="m"),
    "FIDUCIAL_PT": Attr("FIDUCIAL_PT", State.Free, Kind.Switch, units=""),
    "INIT_NEEDED": Attr("INIT_NEEDED", State.Private, Kind.Unknown, units=""),
    "ANGLE": Attr("ANGLE", State.Quasi_Free, Kind.Real, units="rad"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "B_FIELD": Attr("B_FIELD", State.Quasi_Free, Kind.Real, units="T"),
    "DB_FIELD": Attr("DB_FIELD", State.Private, Kind.Unknown, units="T"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "ROLL_TOT": Attr("ROLL_TOT", State.Dependent, Kind.Real, units="rad"),
    "REF_TILT_TOT": Attr("REF_TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["GKICKER"] = {
    "X_KICK": Attr("X_KICK", State.Free, Kind.Real, units="m"),
    "PX_KICK": Attr("PX_KICK", State.Free, Kind.Real, units=""),
    "Y_KICK": Attr("Y_KICK", State.Free, Kind.Real, units="m"),
    "PY_KICK": Attr("PY_KICK", State.Free, Kind.Real, units=""),
    "Z_KICK": Attr("Z_KICK", State.Free, Kind.Real, units="m"),
    "PZ_KICK": Attr("PZ_KICK", State.Free, Kind.Real, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["FOIL"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "FINAL_CHARGE": Attr("FINAL_CHARGE", State.Free, Kind.Integer, units=""),
    "SCATTER_TEST": Attr("SCATTER_TEST", State.Free, Kind.Logical, units=""),
    "X1_EDGE": Attr("X1_EDGE", State.Free, Kind.Real, units="m"),
    "X2_EDGE": Attr("X2_EDGE", State.Free, Kind.Real, units="m"),
    "Y1_EDGE": Attr("Y1_EDGE", State.Free, Kind.Real, units="m"),
    "Y2_EDGE": Attr("Y2_EDGE", State.Free, Kind.Real, units="m"),
    "DTHICKNESS_DX": Attr("DTHICKNESS_DX", State.Free, Kind.Real, units=""),
    "F_FACTOR": Attr("F_FACTOR", State.Free, Kind.Real, units=""),
    "SCATTER_METHOD": Attr("SCATTER_METHOD", State.Free, Kind.Switch, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "THICKNESS": Attr("THICKNESS", State.Free, Kind.Real, units="m"),
    "NUM_STEPS": Attr("NUM_STEPS", State.Free, Kind.Integer, units=""),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "DENSITY": Attr("DENSITY", State.Free, Kind.Real, units="kg/m^3"),
    "DENSITY_USED": Attr("DENSITY_USED", State.Dependent, Kind.Real, units="kg/m^3"),
    "AREA_DENSITY": Attr("AREA_DENSITY", State.Quasi_Free, Kind.Real, units="kg/m^2"),
    "AREA_DENSITY_USED": Attr("AREA_DENSITY_USED", State.Dependent, Kind.Real, units="kg/m^2"),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "RADIATION_LENGTH": Attr("RADIATION_LENGTH", State.Free, Kind.Real, units="kg/m^2"),
    "RADIATION_LENGTH_USED": Attr(
        "RADIATION_LENGTH_USED", State.Dependent, Kind.Real, units="kg/m^2"
    ),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "MATERIAL_TYPE": Attr("MATERIAL_TYPE", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["THICK_MULTIPOLE"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "FRINGE_TYPE": Attr("FRINGE_TYPE", State.Free, Kind.Switch, units=""),
    "FRINGE_AT": Attr("FRINGE_AT", State.Free, Kind.Switch, units=""),
    "SPIN_FRINGE_ON": Attr("SPIN_FRINGE_ON", State.Free, Kind.Logical, units=""),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "HKICK": Attr("HKICK", State.Quasi_Free, Kind.Real, units=""),
    "VKICK": Attr("VKICK", State.Quasi_Free, Kind.Real, units=""),
    "BL_HKICK": Attr("BL_HKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "BL_VKICK": Attr("BL_VKICK", State.Quasi_Free, Kind.Real, units="T*m"),
    "PTC_CANONICAL_COORDS": Attr("PTC_CANONICAL_COORDS", State.Free, Kind.Logical, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "MULTIPASS_REF_ENERGY": Attr("MULTIPASS_REF_ENERGY", State.Private, Kind.Switch, units=""),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "INTEGRATOR_ORDER": Attr("INTEGRATOR_ORDER", State.Free, Kind.Integer, units=""),
    "NUM_STEPS": Attr("NUM_STEPS", State.Quasi_Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "CSR_DS_STEP": Attr("CSR_DS_STEP", State.Free, Kind.Real, units="m"),
    "LORD_PAD1": Attr("LORD_PAD1", State.Quasi_Free, Kind.Real, units="m"),
    "LORD_PAD2": Attr("LORD_PAD2", State.Quasi_Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "LR_SELF_WAKE_ON": Attr("LR_SELF_WAKE_ON", State.Free, Kind.Logical, units=""),
    "LR_WAKE_FILE": Attr("LR_WAKE_FILE", State.Free, Kind.String, units=""),
    "LR_FREQ_SPREAD": Attr("LR_FREQ_SPREAD", State.Free, Kind.Real, units="Hz"),
    "MULTIPOLES_ON": Attr("MULTIPOLES_ON", State.Free, Kind.Logical, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "TAYLOR_MAP_INCLUDES_OFFSETS": Attr(
        "TAYLOR_MAP_INCLUDES_OFFSETS", State.Free, Kind.Logical, units=""
    ),
    "CSR_METHOD": Attr("CSR_METHOD", State.Free, Kind.Switch, units=""),
    "SPACE_CHARGE_METHOD": Attr("SPACE_CHARGE_METHOD", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "SR_WAKE_FILE": Attr("SR_WAKE_FILE", State.Free, Kind.String, units=""),
    "SYMPLECTIFY": Attr("SYMPLECTIFY", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "FIELD_CALC": Attr("FIELD_CALC", State.Free, Kind.Switch, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "FIELD_OVERLAPS": Attr("FIELD_OVERLAPS", State.Free, Kind.Struct, units=""),
    "FIELD_MASTER": Attr("FIELD_MASTER", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "SCALE_MULTIPOLES": Attr("SCALE_MULTIPOLES", State.Free, Kind.Logical, units=""),
    "SR_WAKE": Attr("SR_WAKE", State.Free, Kind.Struct, units=""),
    "LR_WAKE": Attr("LR_WAKE", State.Free, Kind.Struct, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CARTESIAN_MAP": Attr("CARTESIAN_MAP", State.Free, Kind.Struct, units=""),
    "CYLINDRICAL_MAP": Attr("CYLINDRICAL_MAP", State.Free, Kind.Struct, units=""),
    "GRID_FIELD": Attr("GRID_FIELD", State.Free, Kind.Struct, units=""),
    "GEN_GRAD_MAP": Attr("GEN_GRAD_MAP", State.Free, Kind.Struct, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
    "A0": Attr("A0", State.Free, Kind.Real, units=""),
    "A1": Attr("A1", State.Free, Kind.Real, units="1/m"),
    "A2": Attr("A2", State.Free, Kind.Real, units="1/m^2"),
    "A3": Attr("A3", State.Free, Kind.Real, units="1/m^3"),
    "A4": Attr("A4", State.Free, Kind.Real, units="1/m^4"),
    "A5": Attr("A5", State.Free, Kind.Real, units="1/m^5"),
    "A6": Attr("A6", State.Free, Kind.Real, units="1/m^6"),
    "A7": Attr("A7", State.Free, Kind.Real, units="1/m^7"),
    "A8": Attr("A8", State.Free, Kind.Real, units="1/m^8"),
    "A9": Attr("A9", State.Free, Kind.Real, units="1/m^9"),
    "A10": Attr("A10", State.Free, Kind.Real, units="1/m^10"),
    "A11": Attr("A11", State.Free, Kind.Real, units="1/m^11"),
    "A12": Attr("A12", State.Free, Kind.Real, units="1/m^12"),
    "A13": Attr("A13", State.Free, Kind.Real, units="1/m^13"),
    "A14": Attr("A14", State.Free, Kind.Real, units="1/m^14"),
    "A15": Attr("A15", State.Free, Kind.Real, units="1/m^15"),
    "A16": Attr("A16", State.Free, Kind.Real, units="1/m^16"),
    "A17": Attr("A17", State.Free, Kind.Real, units="1/m^17"),
    "A18": Attr("A18", State.Free, Kind.Real, units="1/m^18"),
    "A19": Attr("A19", State.Free, Kind.Real, units="1/m^19"),
    "A20": Attr("A20", State.Free, Kind.Real, units="1/m^20"),
    "A21": Attr("A21", State.Free, Kind.Real, units="1/m^21"),
    "B0": Attr("B0", State.Free, Kind.Real, units=""),
    "B1": Attr("B1", State.Free, Kind.Real, units="1/m"),
    "B2": Attr("B2", State.Free, Kind.Real, units="1/m^2"),
    "B3": Attr("B3", State.Free, Kind.Real, units="1/m^3"),
    "B4": Attr("B4", State.Free, Kind.Real, units="1/m^4"),
    "B5": Attr("B5", State.Free, Kind.Real, units="1/m^5"),
    "B6": Attr("B6", State.Free, Kind.Real, units="1/m^6"),
    "B7": Attr("B7", State.Free, Kind.Real, units="1/m^7"),
    "B8": Attr("B8", State.Free, Kind.Real, units="1/m^8"),
    "B9": Attr("B9", State.Free, Kind.Real, units="1/m^9"),
    "B10": Attr("B10", State.Free, Kind.Real, units="1/m^10"),
    "B11": Attr("B11", State.Free, Kind.Real, units="1/m^11"),
    "B12": Attr("B12", State.Free, Kind.Real, units="1/m^12"),
    "B13": Attr("B13", State.Free, Kind.Real, units="1/m^13"),
    "B14": Attr("B14", State.Free, Kind.Real, units="1/m^14"),
    "B15": Attr("B15", State.Free, Kind.Real, units="1/m^15"),
    "B16": Attr("B16", State.Free, Kind.Real, units="1/m^16"),
    "B17": Attr("B17", State.Free, Kind.Real, units="1/m^17"),
    "B18": Attr("B18", State.Free, Kind.Real, units="1/m^18"),
    "B19": Attr("B19", State.Free, Kind.Real, units="1/m^19"),
    "B20": Attr("B20", State.Free, Kind.Real, units="1/m^20"),
    "B21": Attr("B21", State.Free, Kind.Real, units="1/m^21"),
}

by_element["PICKUP"] = {
    "L": Attr("L", State.Free, Kind.Real, units="m"),
    "TILT": Attr("TILT", State.Free, Kind.Real, units="rad"),
    "X_PITCH": Attr("X_PITCH", State.Free, Kind.Real, units="rad"),
    "Y_PITCH": Attr("Y_PITCH", State.Free, Kind.Real, units="rad"),
    "X_OFFSET": Attr("X_OFFSET", State.Free, Kind.Real, units="m"),
    "Y_OFFSET": Attr("Y_OFFSET", State.Free, Kind.Real, units="m"),
    "Z_OFFSET": Attr("Z_OFFSET", State.Free, Kind.Real, units="m"),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "X_PITCH_TOT": Attr("X_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "Y_PITCH_TOT": Attr("Y_PITCH_TOT", State.Dependent, Kind.Real, units="rad"),
    "X_OFFSET_TOT": Attr("X_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Y_OFFSET_TOT": Attr("Y_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "Z_OFFSET_TOT": Attr("Z_OFFSET_TOT", State.Dependent, Kind.Real, units="m"),
    "TILT_TOT": Attr("TILT_TOT", State.Dependent, Kind.Real, units="rad"),
    "DISPATCH": Attr("DISPATCH", State.Private, Kind.Unknown, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "NUM_STEPS": Attr("NUM_STEPS", State.Free, Kind.Integer, units=""),
    "DS_STEP": Attr("DS_STEP", State.Free, Kind.Real, units="m"),
    "X1_LIMIT": Attr("X1_LIMIT", State.Free, Kind.Real, units="m"),
    "X2_LIMIT": Attr("X2_LIMIT", State.Free, Kind.Real, units="m"),
    "Y1_LIMIT": Attr("Y1_LIMIT", State.Free, Kind.Real, units="m"),
    "Y2_LIMIT": Attr("Y2_LIMIT", State.Free, Kind.Real, units="m"),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "APERTURE_TYPE": Attr("APERTURE_TYPE", State.Free, Kind.Switch, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "APERTURE": Attr("APERTURE", State.Free, Kind.Real, units="m"),
    "X_LIMIT": Attr("X_LIMIT", State.Free, Kind.Real, units="m"),
    "Y_LIMIT": Attr("Y_LIMIT", State.Free, Kind.Real, units="m"),
    "OFFSET_MOVES_APERTURE": Attr("OFFSET_MOVES_APERTURE", State.Free, Kind.Logical, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "WALL": Attr("WALL", State.Free, Kind.Struct, units=""),
    "APERTURE_AT": Attr("APERTURE_AT", State.Free, Kind.Switch, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "CREATE_JUMBO_SLAVE": Attr("CREATE_JUMBO_SLAVE", State.Free, Kind.Logical, units=""),
    "ACCORDION_EDGE": Attr("ACCORDION_EDGE", State.Private, Kind.Unknown, units=""),
    "START_EDGE": Attr("START_EDGE", State.Private, Kind.Unknown, units=""),
    "END_EDGE": Attr("END_EDGE", State.Private, Kind.Unknown, units=""),
    "S_POSITION": Attr("S_POSITION", State.Private, Kind.Unknown, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}

by_element["FEEDBACK"] = {
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "INPUT_ELE": Attr("INPUT_ELE", State.Free, Kind.String, units=""),
    "OUTPUT_ELE": Attr("OUTPUT_ELE", State.Free, Kind.String, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
}

by_element["FIXER"] = {
    "IX_FIXER": Attr("IX_FIXER", State.Private, Kind.Unknown, units=""),
    "X_STORED": Attr("X_STORED", State.Free, Kind.Real, units="m"),
    "PX_STORED": Attr("PX_STORED", State.Free, Kind.Real, units=""),
    "Y_STORED": Attr("Y_STORED", State.Free, Kind.Real, units="m"),
    "PY_STORED": Attr("PY_STORED", State.Free, Kind.Real, units=""),
    "Z_STORED": Attr("Z_STORED", State.Free, Kind.Real, units="m"),
    "PZ_STORED": Attr("PZ_STORED", State.Free, Kind.Real, units=""),
    "BETA_A_STORED": Attr("BETA_A_STORED", State.Free, Kind.Real, units="m"),
    "ALPHA_A_STORED": Attr("ALPHA_A_STORED", State.Free, Kind.Real, units=""),
    "BETA_B_STORED": Attr("BETA_B_STORED", State.Free, Kind.Real, units="m"),
    "ALPHA_B_STORED": Attr("ALPHA_B_STORED", State.Free, Kind.Real, units=""),
    "PHI_A_STORED": Attr("PHI_A_STORED", State.Free, Kind.Real, units=""),
    "PHI_B_STORED": Attr("PHI_B_STORED", State.Free, Kind.Real, units=""),
    "MODE_FLIP_STORED": Attr("MODE_FLIP_STORED", State.Free, Kind.Logical, units=""),
    "ETA_X_STORED": Attr("ETA_X_STORED", State.Free, Kind.Real, units="m"),
    "ETAP_X_STORED": Attr("ETAP_X_STORED", State.Free, Kind.Real, units=""),
    "ETA_Y_STORED": Attr("ETA_Y_STORED", State.Free, Kind.Real, units="m"),
    "ETAP_Y_STORED": Attr("ETAP_Y_STORED", State.Free, Kind.Real, units=""),
    "CMAT_11_STORED": Attr("CMAT_11_STORED", State.Free, Kind.Real, units=""),
    "CMAT_12_STORED": Attr("CMAT_12_STORED", State.Free, Kind.Real, units="m"),
    "CMAT_21_STORED": Attr("CMAT_21_STORED", State.Free, Kind.Real, units="1/m"),
    "CMAT_22_STORED": Attr("CMAT_22_STORED", State.Free, Kind.Real, units=""),
    "DBETA_DPZ_A_STORED": Attr("DBETA_DPZ_A_STORED", State.Free, Kind.Real, units="m"),
    "DBETA_DPZ_B_STORED": Attr("DBETA_DPZ_B_STORED", State.Free, Kind.Real, units="m"),
    "DALPHA_DPZ_A_STORED": Attr("DALPHA_DPZ_A_STORED", State.Free, Kind.Real, units=""),
    "DALPHA_DPZ_B_STORED": Attr("DALPHA_DPZ_B_STORED", State.Free, Kind.Real, units=""),
    "DETA_DPZ_X_STORED": Attr("DETA_DPZ_X_STORED", State.Free, Kind.Real, units="m"),
    "DETA_DPZ_Y_STORED": Attr("DETA_DPZ_Y_STORED", State.Free, Kind.Real, units="m"),
    "DETAP_DPZ_X_STORED": Attr("DETAP_DPZ_X_STORED", State.Free, Kind.Real, units=""),
    "DETAP_DPZ_Y_STORED": Attr("DETAP_DPZ_Y_STORED", State.Free, Kind.Real, units=""),
    "DELTA_REF_TIME": Attr("DELTA_REF_TIME", State.Dependent, Kind.Real, units="sec"),
    "P0C_START": Attr("P0C_START", State.Private, Kind.Unknown, units=""),
    "E_TOT_START": Attr("E_TOT_START", State.Private, Kind.Unknown, units=""),
    "P0C": Attr("P0C", State.Quasi_Free, Kind.Real, units="eV"),
    "E_TOT": Attr("E_TOT", State.Quasi_Free, Kind.Real, units="eV"),
    "SPIN_X_STORED": Attr("SPIN_X_STORED", State.Free, Kind.Real, units=""),
    "SPIN_Y_STORED": Attr("SPIN_Y_STORED", State.Free, Kind.Real, units=""),
    "SPIN_Z_STORED": Attr("SPIN_Z_STORED", State.Free, Kind.Real, units=""),
    "REF_TIME_START": Attr("REF_TIME_START", State.Dependent, Kind.Real, units="sec"),
    "DCMAT_DPZ_11_STORED": Attr("DCMAT_DPZ_11_STORED", State.Free, Kind.Real, units=""),
    "DCMAT_DPZ_12_STORED": Attr("DCMAT_DPZ_12_STORED", State.Free, Kind.Real, units=""),
    "DCMAT_DPZ_21_STORED": Attr("DCMAT_DPZ_21_STORED", State.Free, Kind.Real, units=""),
    "DCMAT_DPZ_22_STORED": Attr("DCMAT_DPZ_22_STORED", State.Free, Kind.Real, units=""),
    "CHECK_SUM": Attr("CHECK_SUM", State.Private, Kind.Unknown, units=""),
    "ALIAS": Attr("ALIAS", State.Free, Kind.String, units=""),
    "MAT6_CALC_METHOD": Attr("MAT6_CALC_METHOD", State.Free, Kind.Switch, units=""),
    "TRACKING_METHOD": Attr("TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "PTC_INTEGRATION_TYPE": Attr("PTC_INTEGRATION_TYPE", State.Free, Kind.Switch, units=""),
    "SPIN_TRACKING_METHOD": Attr("SPIN_TRACKING_METHOD", State.Free, Kind.Switch, units=""),
    "IS_ON": Attr("IS_ON", State.Free, Kind.Logical, units=""),
    "DESCRIP": Attr("DESCRIP", State.Free, Kind.String, units=""),
    "TYPE": Attr("TYPE", State.Free, Kind.String, units=""),
    "REF_ORIGIN": Attr("REF_ORIGIN", State.Free, Kind.Switch, units=""),
    "ELE_ORIGIN": Attr("ELE_ORIGIN", State.Free, Kind.Switch, units=""),
    "SUPERIMPOSE": Attr("SUPERIMPOSE", State.Free, Kind.Struct, units=""),
    "OFFSET": Attr("OFFSET", State.Free, Kind.Real, units="m"),
    "REFERENCE": Attr("REFERENCE", State.Free, Kind.String, units=""),
    "WRAP_SUPERIMPOSE": Attr("WRAP_SUPERIMPOSE", State.Free, Kind.Logical, units=""),
}
