aughtone-types
3.1.0indexedFacilitates shared data types across projects, addressing duplication issues. Includes types for Location, Locale, Currency, and potentially Duration shortcuts for types like Distance.
Facilitates shared data types across projects, addressing duplication issues. Includes types for Location, Locale, Currency, and potentially Duration shortcuts for types like Distance.
[!IMPORTANT] v3.0.0 Breaking Change: All GeoJSON geometry types (e.g.,
Point,Polygon) have been renamed with aGeoprefix (e.g.,GeoPoint,GeoPolygon).Moneynow usesBigDecimalfor its internal value to support sub-minor units, andTelemetryhas moved to thequantitativepackage.
This project follows a specialized documentation hierarchy.
Locale.current or localeFor("fr-CH").Money(12.50, Currency.Usd) or Money(BigDecimal("1.23456"), Currency.Eur).100.meters or 5.kilometers.UnitOfMeasure.Litre.symbol ("L"), MetricPrefix.Kilo.Url("https://pkg.dev"), Urn("urn:uuid:...").GeoUri(45.5, -122.6) (RFC 5870).BigInteger("999999999999999999999999") or BigDecimal("123.456").BigDecimal("1.255").setScale(2, RoundingMode.HALF_EVEN) -> 1.26.GeoPoint(45.5, -122.6, 100.0).toGeoJson() (RFC 7946).To ensure mathematical precision and behavior consistency, this library employs rigorous Differential Parity Testing against standard baseline libraries:
java.math.BigInteger and java.math.BigDecimal).This library includes embedded, machine-readable "skills" to help AI assistants understand its APIs and best practices.
META-INF/ai-skills/*.ai-skill.mdIf you are using an AI assistant (like Claude, Gemini, or ChatGPT) to write code with this library, paste this prompt first:
"Scan all project dependencies for AI Skill files in
META-INF/ai-skills/with the prefixio.github.aughtone. Use these to understand the API patterns, types, and governance for this library. If they are not found in the local classpath, refer to https://github.com/aughtone/aughtone-types for the source definitions."
| Category | Type | Standard / Compliance | Description |
|---|
| Financial | Money | Banker's Rounding | Arbitrary-precision monetary values with BigDecimal storage. |
Currency | ISO 4217 | Global currency definitions with scale factors. | |
| Localization | Locale | BCP 47 | Universal language, region, and script identifiers. |
| Quantitative | Coordinates | WGS84 | Geodetic latitude and longitude degrees. |
Distance | SI (Meters) | Linear distance with accuracy support. | |
Speed | SI (mps) | Rate of motion in meters per second. | |
Altitude | SI (Meters) | Vertical distance above/below reference. | |
Azimuth | Degrees | Compass bearing (0-360°). | |
Telemetry | Unified Domain | Comprehensive model with coordinates, azimuth, speed, and altitude. | |
| Geospatial | GeoJson | RFC 7946 | GeoPoint, GeoFeature, and GeoFeatureCollection models. |
| SI Units | UnitOfMeasure | SI / Imperial | Definitions for meters, liters, bytes, etc. |
MetricPrefix | SI Prefixes | Scaling factors from Quetta to Quecto. | |
| Identifiers | Url | RFC 3986 | Uniform Resource Locators (Web). |
Urn | RFC 8141 | Uniform Resource Names (Persistent IDs). | |
GeoUri | RFC 5870 | Geographic 'geo' URI scheme. | |
| Mathematics | BigInteger | Pure Kotlin | Arbitrary-precision integer math support. |
BigDecimal | Pure Kotlin | Arbitrary-precision decimal math with rounding support. | |
| Utilities | BitSet | Multiplatform | Space-efficient storage for bit-level flags. |
BankersValue | Half-to-Even | Precision math with bias-free rounding rules. |
Telemetry(coords, speed = 2.5.mps, azimuth = 90.degrees)Surfaced from shared tags and platforms — no rankings paid for.