{
    "initialJulianDate": initial TDB Julian Date in days,
    "offsetJulianDate": offset TDB Julian Date in days,
    "timeScale": speed factor for the simulation time,
    "celestialBodies": [{
            "id": PlanetID enum,
            "bodyType": BodyType enum,
            "rotationICRFtoTIRF": quaternion specifying the rotation from ICRF to body fixed rotating coordinates,
            "rotationTIRFtoICRF": quaternion specifying the rotation from body fixed rotating coordinates to ICRF,
            "radius": radius in meters
            "gm": gravitational parameter in SI units
            "flattening": flattening of the planet ellipsoid
            "name": name of the celestial body
            "solarBarycentricPosition": solar barycentric position vector in ICRF frame in meters,
            "solarBarycentricVelocity": solar barycentric velocity vector in ICRF frame in meters/second,
        }
    ],
    "propagatedBodies": [{
            "id": automatically assigned id,
            "bodyType": BodyType enum,
            "orbitalElements": { osculating orbital elements referred to the central body of this propagated body
                "specificAngularMomentum": specific angular momentum in m^2/s,
                "specificEnergy": specific mechanical energy in m^2/s^2,
                "inclination": inclination in radians,
                "semiLatusRectum": semi latus rectum in meters,
                "eccentricity": eccentricity,
                "semiMinorAxis": semi-minor axis in meters,
                "semiMajorAxis": semi-major axis in meters,
                "apoapsis": apoapsis distance in meters,
                "periapsis": periapsis distance in meters,
                "orbitalPeriod": orbital period in seconds,
                "ascendingNodeLongitude": longitude of ascending node in radians,
                "periapsisArgument": argument of periapsis in radians,
                "trueAnomaly": True anomaly in radians,
                "orbitNormal": normal vector of the orbital plane,
                "ascendingNodeDirection": ascending node vector,
                "periapsisDirection": periapsis vector,
                "latusRectumDirection": latus rectum vector
            },
            "orbitalPeriod": orbital period in seconds,
            "localPosition": position in local inertial coordinates of the central body, GCRF in Earth's case,
            "stateCovariance": Cartesian state (position, velocity) covariance matrix. Currently isn't propagated, so just a constant matrix,
            "localVelocity": velocity in local inertial coordinates of the central body, GCRF in Earth's case,
            "attitudeState": { variables describing the attitude state
                "attitude": attitude quaternion with respect to the inertial axes (ICRF),
                "attitudeCovariance": attitude covariance matrix, currently just a constant matrix,
                "maxAngularSpeed": max angular speed constraint for automatic pointing,
                "maxAngularAcceleration": max angular acceleration constraint for automatic pointing,
                "angularAcceleration": current angular acceleration,
                "angularSpeed": current angular speed
				},
            "spacecraftData": { descriptions of various spacecraft components
                "structure": [ descriptions of structural spacecraft elements
					{
                        "name": name of the structural part,
                        "id": automatically assigned id,
                        "parentID": id of the parent part,
                        "localPosition": position vector w.r.t. the parent part,
                        "localRotation": rotation vector w.r.t. the parent part, direction - axis of rotation, magnitude - rotation angle in radians
                        "size": size specified as vector of three dimensions in meters,
                        "mass": mass of the structural part,
                        "modelPrefabName": name of a premade part model,
                        "customModelGlb": path to custom part model in .glb format
                    }
                ],
                "solarPanels": [ descriptions of solar panels
					{
                        "structureId": automatically assigned id,
                        "powerEfficiency": power efficiency of the solar panel,
                        "area": area of the panel in m^2,
                        "maxPower": maximum power output of the panel in Watts,
                        "lightAmmountReceived": light amount received by the panel in Watts,
                        "powerGenerated": power output in Watts
                    }
                ],
                "batteries": [ descriptions of batteries
					{
                        "structureId": automatically assigned id,
                        "chargerEfficiency": charger efficiency as a decimal between 0 and 1,
                        "capacityWattHours": battery capacity in WattHours,
                        "chargeWattHours": charge level in WattHours,
                        "chargeFloat": charge as a decimal fraction between 0 and 1
                    }
                ],
                "sensors": [ descriptions of sensors
					{
                        "FoV": [horizontal field of view in degrees, vertical field of view in degrees],
                        "PixelDimensions": [horizontal dimension number of pixels, vertical dimension number of pixels],
                        "range": range of the sensor in meters,
                        "orientation": orientation quaternion with respect to propagated body frame,
                        "sensorType": SensorType enum,
                        "Ranges": [range to each visible target in meters],
                        "RangeUncertainty": range uncertainty as a variance value in m^2, currently just a constant number,
                        "LinesOfSight": [line of sight vectors to each visible target],
                        "AngleMeasurements": [angle coordinates to each visible target in radians],
                        "AngleUncertainties": [two uncertainty values for each angle measurement, currently just constant numbers],
                        "PixelCoordinates": [pixel coordinate pair for each visible target in frame]
                    }
                ],
                "PowerConsumption": mean power consumption of the spacecraft in Watts
            },
            "customModelPath": path to custom model in .glb format,
            "centralBody": PlanetID enum,
            "pointingMode": PointingMode enum,
            "pointingTarget": if CustomTarget is specified as pointingMode, this field specifies the id of the target station,
            "CustomPointingQuaternion": quaternion specifying the target attitude w.r.t. inertial axes (ICRF),
            "maneuvers": [list of scheduled maneuvers],
            "rigidBodyAttached": bool to toggle rigid body component, which propagates attitude dynamics, handles collisions and multi-body dynamics,
            "name": name of this propagated body,
            "solarBarycentricPosition": solar barycentric position vector in ICRF frame in meters,
            "solarBarycentricVelocity": solar barycentric velocity vector in ICRF frame in meters/second,
            "mass": mass of this propagated body
        }
    ],
    "groundStations": [{
            "bodyType": BodyType enum,
            "enabled": toggle to enable/disable this ground station,
            "name": name of the ground station,
            "id": automatically assigned id of the ground station,
            "planet_id": PlanetID enum,
            "localPositionTIRF": position in local rotating frame, in Earth's case that's ITRF, in meters,
            "localPositionECI": position in local inertial frame, in Earth's case that's GCRF, in meters,
            "solarBarycentricPosition": solar barycentric position vector in ICRF frame in meters,
            "localPlanetSurfaceNormal": planet surface normal vector at ground station location in local rotating frame, ITRF in Earth's case,
            "globalPlanetSurfaceNormal": planet surface normal vector at ground station location in global inertial frame ICRF
        }
    ]
}