
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.
| 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. |
Locale.current or localeFor("fr-CH").Money(12.50, Currency.Usd) or Money(BigDecimal("1.23456"), Currency.Eur).Telemetry(coords, speed = 2.5.mps, azimuth = 90.degrees).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.md
If 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."
[!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.
| 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. |
Locale.current or localeFor("fr-CH").Money(12.50, Currency.Usd) or Money(BigDecimal("1.23456"), Currency.Eur).Telemetry(coords, speed = 2.5.mps, azimuth = 90.degrees).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.md
If 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."