Location as an EntryDimension #9

Closed
opened 2026-08-26 09:13:57 +00:00 by GKaszewski · 0 comments
Owner

What to build

Location is the coordinates a MoodEntry was logged at — supplied by the client, optional, and the prerequisite for Weather.

Precision is whatever the client sends; the server does not round or degrade it. Latitude and longitude are validated newtypes constrained to their real ranges, composed into a single coordinates value object rather than two loose floats.

This is the second dimension built on #1's pattern and should require no change to the composer or to any existing dimension. If it does, that is a defect in #1.

The client decides whether to offer location at all and handles its own permission flow; an entry without Location is complete and normal.

Acceptance criteria

  • Latitude and longitude are validated newtypes rejecting out-of-range values
  • Location is a self-contained dimension module following #1's pattern
  • Adding it required no edit to the composer or to any existing dimension module
  • Client can attach coordinates when creating or updating an entry
  • Coordinates round-trip at the precision the client sent
  • Entries without Location behave exactly as before

Blocked by

## What to build `Location` is the coordinates a `MoodEntry` was logged at — supplied by the client, optional, and the prerequisite for `Weather`. Precision is whatever the client sends; the server does not round or degrade it. Latitude and longitude are validated newtypes constrained to their real ranges, composed into a single coordinates value object rather than two loose floats. This is the second dimension built on #1's pattern and should require no change to the composer or to any existing dimension. If it does, that is a defect in #1. The client decides whether to offer location at all and handles its own permission flow; an entry without `Location` is complete and normal. ## Acceptance criteria - [ ] Latitude and longitude are validated newtypes rejecting out-of-range values - [ ] `Location` is a self-contained dimension module following #1's pattern - [ ] Adding it required no edit to the composer or to any existing dimension module - [ ] Client can attach coordinates when creating or updating an entry - [ ] Coordinates round-trip at the precision the client sent - [ ] Entries without `Location` behave exactly as before ## Blocked by - #1
GKaszewski added the ready-for-agent label 2026-08-26 09:13:57 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GKaszewski/k-mood#9