> For the complete documentation index, see [llms.txt](https://yams.yassrobotics.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yams.yassrobotics.com/api-reference/java-reference/java.md).

# Overview

The YAMS Java API is organized into six top-level areas: mechanisms (`yams.mechanisms`), mechanism configuration (`yams.mechanisms.config`), motor controllers (`yams.motorcontrollers`), swerve drive (`yams.swerve`), math and control (`yams.math`), and units/utilities (`yams.units`). Each mechanism class accepts a corresponding config object built with a fluent builder pattern, and all mechanisms publish telemetry to NetworkTables automatically.

**Top-level packages**

* `yams.mechanisms`: Arm, Elevator, Pivot, FlyWheel, DoubleJointedArm, DifferentialMechanism
* `yams.mechanisms.config`: ArmConfig, ElevatorConfig, PivotConfig, FlyWheelConfig, DifferentialMechanismConfig
* `yams.motorcontrollers`: SmartMotorController, SmartMotorControllerConfig, SparkWrapper, TalonFXWrapper
* `yams.swerve`: SwerveDrive, SwerveModule, SwerveDriveConfig, SwerveModuleConfig, SwerveInputStream
* `yams.gearing`: GearBox, Sprocket, MechanismGearing
* `yams.math`: SmartMath, ExponentialProfilePIDController, LQRConfig, LQRController, DerivativeTimeFilter
* `yams.units`: YUnits, EasyCRT
