{
  "@context": {
    "@vocab": "https://getmyluna.app/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "getmyluna": "https://getmyluna.app/schema#",
    "AskResponse": "getmyluna:AskResponse",
    "answer": {
      "@id": "getmyluna:answer",
      "@type": "xsd:string"
    },
    "reply": {
      "@id": "getmyluna:reply"
    },
    "model": {
      "@id": "getmyluna:model"
    },
    "context_used": {
      "@id": "getmyluna:context_used"
    },
    "guardrail": {
      "@id": "getmyluna:guardrail"
    },
    "usage_limit": {
      "@id": "getmyluna:usage_limit"
    },
    "saved_notes": {
      "@id": "getmyluna:saved_notes"
    },
    "ClinicResponse": "getmyluna:ClinicResponse",
    "region": {
      "@id": "getmyluna:region",
      "@type": "xsd:string"
    },
    "country": {
      "@id": "getmyluna:country",
      "@type": "xsd:string"
    },
    "suggested_timezone": {
      "@id": "getmyluna:suggested_timezone"
    },
    "age_days": {
      "@id": "getmyluna:age_days"
    },
    "schedule": {
      "@id": "getmyluna:schedule",
      "@container": "@list"
    },
    "next_visit_age": {
      "@id": "getmyluna:next_visit_age"
    },
    "help_numbers": {
      "@id": "getmyluna:help_numbers",
      "@container": "@list"
    },
    "ClinicVisit": "getmyluna:ClinicVisit",
    "age": {
      "@id": "getmyluna:age",
      "@type": "xsd:string"
    },
    "vaccines": {
      "@id": "getmyluna:vaccines",
      "@container": "@list"
    },
    "note": {
      "@id": "getmyluna:note",
      "@type": "xsd:string"
    },
    "ConsentEntry": "getmyluna:ConsentEntry",
    "granted": {
      "@id": "getmyluna:granted",
      "@type": "xsd:boolean"
    },
    "granted_at": {
      "@id": "getmyluna:granted_at"
    },
    "version": {
      "@id": "getmyluna:version",
      "@type": "xsd:string"
    },
    "text": {
      "@id": "getmyluna:text",
      "@type": "xsd:string"
    },
    "ConsentStatus": "getmyluna:ConsentStatus",
    "health": {
      "@id": "getmyluna:health",
      "@type": "@id"
    },
    "ai": {
      "@id": "getmyluna:ai",
      "@type": "@id"
    },
    "privacy_url": {
      "@id": "getmyluna:privacy_url",
      "@type": "xsd:string"
    },
    "DueDateResponse": "getmyluna:DueDateResponse",
    "ok": {
      "@id": "getmyluna:ok",
      "@type": "xsd:boolean"
    },
    "due_date": {
      "@id": "getmyluna:due_date",
      "@type": "xsd:string"
    },
    "expecting": {
      "@id": "getmyluna:expecting"
    },
    "ErrorResponse": "getmyluna:ErrorResponse",
    "error": {
      "@id": "getmyluna:error",
      "@type": "xsd:string"
    },
    "message": {
      "@id": "getmyluna:message"
    },
    "Event": "getmyluna:Event",
    "id": {
      "@id": "getmyluna:id",
      "@type": "xsd:string"
    },
    "ts": {
      "@id": "getmyluna:ts",
      "@type": "xsd:string"
    },
    "type": {
      "@id": "getmyluna:type",
      "@type": "xsd:string"
    },
    "author": {
      "@id": "getmyluna:author",
      "@type": "xsd:string"
    },
    "author_name": {
      "@id": "getmyluna:author_name"
    },
    "author_is_me": {
      "@id": "getmyluna:author_is_me"
    },
    "ml": {
      "@id": "getmyluna:ml"
    },
    "kind": {
      "@id": "getmyluna:kind"
    },
    "foods": {
      "@id": "getmyluna:foods"
    },
    "meal_type": {
      "@id": "getmyluna:meal_type"
    },
    "kg": {
      "@id": "getmyluna:kg"
    },
    "cm": {
      "@id": "getmyluna:cm"
    },
    "ug": {
      "@id": "getmyluna:ug"
    },
    "reactions": {
      "@id": "getmyluna:reactions"
    },
    "EventMutationResponse": "getmyluna:EventMutationResponse",
    "status": {
      "@id": "getmyluna:status",
      "@type": "xsd:string"
    },
    "event": {
      "@id": "getmyluna:event"
    },
    "removed": {
      "@id": "getmyluna:removed"
    },
    "live": {
      "@id": "getmyluna:live"
    },
    "EventsResponse": "getmyluna:EventsResponse",
    "events": {
      "@id": "getmyluna:events",
      "@container": "@list"
    },
    "Expecting": "getmyluna:Expecting",
    "days_until_due": {
      "@id": "getmyluna:days_until_due",
      "@type": "xsd:integer"
    },
    "due_date_reached": {
      "@id": "getmyluna:due_date_reached",
      "@type": "xsd:boolean"
    },
    "days_overdue": {
      "@id": "getmyluna:days_overdue",
      "@type": "xsd:integer"
    },
    "ExportResponse": "getmyluna:ExportResponse",
    "exported_at": {
      "@id": "getmyluna:exported_at",
      "@type": "xsd:string"
    },
    "family": {
      "@id": "getmyluna:family"
    },
    "profile": {
      "@id": "getmyluna:profile"
    },
    "week_plan": {
      "@id": "getmyluna:week_plan"
    },
    "recipes": {
      "@id": "getmyluna:recipes"
    },
    "snapshots": {
      "@id": "getmyluna:snapshots"
    },
    "notes": {
      "@id": "getmyluna:notes",
      "@container": "@list"
    },
    "FamilyAccessResponse": "getmyluna:FamilyAccessResponse",
    "members": {
      "@id": "getmyluna:members",
      "@container": "@list"
    },
    "can_manage_invites": {
      "@id": "getmyluna:can_manage_invites",
      "@type": "xsd:boolean"
    },
    "invites": {
      "@id": "getmyluna:invites",
      "@container": "@list"
    },
    "FamilyDeleteResponse": "getmyluna:FamilyDeleteResponse",
    "deleted": {
      "@id": "getmyluna:deleted",
      "@type": "xsd:string"
    },
    "FamilyMember": "getmyluna:FamilyMember",
    "email": {
      "@id": "getmyluna:email",
      "@type": "xsd:string"
    },
    "username": {
      "@id": "getmyluna:username",
      "@type": "xsd:string"
    },
    "display_name": {
      "@id": "getmyluna:display_name"
    },
    "name": {
      "@id": "getmyluna:name",
      "@type": "xsd:string"
    },
    "role": {
      "@id": "getmyluna:role",
      "@type": "xsd:string"
    },
    "created_at": {
      "@id": "getmyluna:created_at"
    },
    "FoodSuggestionsResponse": "getmyluna:FoodSuggestionsResponse",
    "suggestions": {
      "@id": "getmyluna:suggestions",
      "@container": "@list"
    },
    "HTTPValidationError": "getmyluna:HTTPValidationError",
    "detail": {
      "@id": "getmyluna:detail",
      "@container": "@list"
    },
    "HelpNumber": "getmyluna:HelpNumber",
    "key": {
      "@id": "getmyluna:key",
      "@type": "xsd:string"
    },
    "number": {
      "@id": "getmyluna:number",
      "@type": "xsd:string"
    },
    "tel": {
      "@id": "getmyluna:tel",
      "@type": "xsd:string"
    },
    "label": {
      "@id": "getmyluna:label",
      "@type": "xsd:string"
    },
    "InstalledResponse": "getmyluna:InstalledResponse",
    "InviteResponse": "getmyluna:InviteResponse",
    "code": {
      "@id": "getmyluna:code",
      "@type": "xsd:string"
    },
    "join_url": {
      "@id": "getmyluna:join_url",
      "@type": "xsd:string"
    },
    "expires_at": {
      "@id": "getmyluna:expires_at",
      "@type": "xsd:string"
    },
    "expires_in_hours": {
      "@id": "getmyluna:expires_in_hours",
      "@type": "xsd:integer"
    },
    "LiveStatus": "getmyluna:LiveStatus",
    "now": {
      "@id": "getmyluna:now",
      "@type": "xsd:string"
    },
    "asleep": {
      "@id": "getmyluna:asleep",
      "@type": "xsd:boolean"
    },
    "night_sleep": {
      "@id": "getmyluna:night_sleep"
    },
    "awake_minutes": {
      "@id": "getmyluna:awake_minutes"
    },
    "alert_level": {
      "@id": "getmyluna:alert_level"
    },
    "alert_msg": {
      "@id": "getmyluna:alert_msg"
    },
    "hungry_state": {
      "@id": "getmyluna:hungry_state"
    },
    "next_feed_at": {
      "@id": "getmyluna:next_feed_at"
    },
    "last_milk_ml": {
      "@id": "getmyluna:last_milk_ml"
    },
    "ml_today": {
      "@id": "getmyluna:ml_today"
    },
    "feeds_today": {
      "@id": "getmyluna:feeds_today"
    },
    "last_poop_hours_ago": {
      "@id": "getmyluna:last_poop_hours_ago"
    },
    "poop_status": {
      "@id": "getmyluna:poop_status"
    },
    "expected_bedtime_at": {
      "@id": "getmyluna:expected_bedtime_at"
    },
    "next_nap_window_at": {
      "@id": "getmyluna:next_nap_window_at"
    },
    "daily_milk_target_ml": {
      "@id": "getmyluna:daily_milk_target_ml"
    },
    "supplement_log": {
      "@id": "getmyluna:supplement_log"
    },
    "age_months": {
      "@id": "getmyluna:age_months"
    },
    "LogEventResponse": "getmyluna:LogEventResponse",
    "replayed": {
      "@id": "getmyluna:replayed",
      "@type": "xsd:boolean"
    },
    "unknown_foods": {
      "@id": "getmyluna:unknown_foods",
      "@container": "@list"
    },
    "warning": {
      "@id": "getmyluna:warning"
    },
    "MeResponse": "getmyluna:MeResponse",
    "user": {
      "@id": "getmyluna:user",
      "@type": "xsd:string"
    },
    "user_id": {
      "@id": "getmyluna:user_id",
      "@type": "xsd:string"
    },
    "family_id": {
      "@id": "getmyluna:family_id",
      "@type": "xsd:string"
    },
    "needs_name": {
      "@id": "getmyluna:needs_name",
      "@type": "xsd:boolean"
    },
    "MeasurementsResponse": "getmyluna:MeasurementsResponse",
    "measurements": {
      "@id": "getmyluna:measurements",
      "@container": "@list"
    },
    "NameResponse": "getmyluna:NameResponse",
    "Note": "getmyluna:Note",
    "tags": {
      "@id": "getmyluna:tags",
      "@container": "@list"
    },
    "NotesResponse": "getmyluna:NotesResponse",
    "NudgeSnoozeResponse": "getmyluna:NudgeSnoozeResponse",
    "until": {
      "@id": "getmyluna:until",
      "@type": "xsd:string"
    },
    "OkResponse": "getmyluna:OkResponse",
    "OnboardResponse": "getmyluna:OnboardResponse",
    "redirect": {
      "@id": "getmyluna:redirect",
      "@type": "xsd:string"
    },
    "PatternsResponse": "getmyluna:PatternsResponse",
    "patterns": {
      "@id": "getmyluna:patterns"
    },
    "daily_totals": {
      "@id": "getmyluna:daily_totals",
      "@container": "@list"
    },
    "today": {
      "@id": "getmyluna:today",
      "@container": "@list"
    },
    "nutrients_7d": {
      "@id": "getmyluna:nutrients_7d"
    },
    "nutrients_today": {
      "@id": "getmyluna:nutrients_today"
    },
    "nutrient_targets": {
      "@id": "getmyluna:nutrient_targets"
    },
    "allergens_today": {
      "@id": "getmyluna:allergens_today"
    },
    "allergen_grid": {
      "@id": "getmyluna:allergen_grid"
    },
    "baby_name": {
      "@id": "getmyluna:baby_name",
      "@type": "xsd:string"
    },
    "dob": {
      "@id": "getmyluna:dob",
      "@type": "xsd:string"
    },
    "age_display": {
      "@id": "getmyluna:age_display"
    },
    "flags": {
      "@id": "getmyluna:flags"
    },
    "Profile": "getmyluna:Profile",
    "gender": {
      "@id": "getmyluna:gender",
      "@type": "xsd:string"
    },
    "family_name": {
      "@id": "getmyluna:family_name",
      "@type": "xsd:string"
    },
    "timezone": {
      "@id": "getmyluna:timezone",
      "@type": "xsd:string"
    },
    "units": {
      "@id": "getmyluna:units",
      "@type": "xsd:string"
    },
    "solids_started": {
      "@id": "getmyluna:solids_started",
      "@type": "xsd:boolean"
    },
    "member_count": {
      "@id": "getmyluna:member_count",
      "@type": "xsd:integer"
    },
    "age_band_targets": {
      "@id": "getmyluna:age_band_targets"
    },
    "ProfileUpdateResponse": "getmyluna:ProfileUpdateResponse",
    "RecipeResponse": "getmyluna:RecipeResponse",
    "recipe": {
      "@id": "getmyluna:recipe"
    },
    "SignedOutResponse": "getmyluna:SignedOutResponse",
    "TokenInfo": "getmyluna:TokenInfo",
    "scopes": {
      "@id": "getmyluna:scopes",
      "@container": "@list"
    },
    "TokenResponse": "getmyluna:TokenResponse",
    "token": {
      "@id": "getmyluna:token",
      "@type": "xsd:string"
    },
    "luna_url": {
      "@id": "getmyluna:luna_url",
      "@type": "xsd:string"
    },
    "mcp_url": {
      "@id": "getmyluna:mcp_url",
      "@type": "xsd:string"
    },
    "TokensResponse": "getmyluna:TokensResponse",
    "tokens": {
      "@id": "getmyluna:tokens",
      "@container": "@list"
    },
    "UndoResponse": "getmyluna:UndoResponse",
    "ValidationError": "getmyluna:ValidationError",
    "loc": {
      "@id": "getmyluna:loc",
      "@container": "@list"
    },
    "msg": {
      "@id": "getmyluna:msg",
      "@type": "xsd:string"
    },
    "Warning_": "getmyluna:Warning_",
    "sleep_span": {
      "@id": "getmyluna:sleep_span"
    },
    "WeeklySummary": "getmyluna:WeeklySummary",
    "week": {
      "@id": "getmyluna:week",
      "@type": "xsd:string"
    },
    "week_start": {
      "@id": "getmyluna:week_start",
      "@type": "xsd:string"
    },
    "week_end": {
      "@id": "getmyluna:week_end",
      "@type": "xsd:string"
    },
    "current_week": {
      "@id": "getmyluna:current_week",
      "@type": "xsd:string"
    },
    "days_logged": {
      "@id": "getmyluna:days_logged",
      "@type": "xsd:integer"
    },
    "days_in_week": {
      "@id": "getmyluna:days_in_week",
      "@type": "xsd:integer"
    },
    "entries": {
      "@id": "getmyluna:entries",
      "@type": "xsd:integer"
    },
    "feeds": {
      "@id": "getmyluna:feeds",
      "@type": "xsd:integer"
    },
    "nappies": {
      "@id": "getmyluna:nappies",
      "@type": "xsd:integer"
    },
    "feeds_per_day": {
      "@id": "getmyluna:feeds_per_day",
      "@type": "xsd:decimal"
    },
    "nappies_per_day": {
      "@id": "getmyluna:nappies_per_day",
      "@type": "xsd:decimal"
    },
    "sleep_logged": {
      "@id": "getmyluna:sleep_logged",
      "@type": "xsd:boolean"
    },
    "sleep_minutes_per_day": {
      "@id": "getmyluna:sleep_minutes_per_day"
    },
    "by_author": {
      "@id": "getmyluna:by_author",
      "@container": "@list"
    },
    "WeeklySummaryAuthor": "getmyluna:WeeklySummaryAuthor",
    "is_me": {
      "@id": "getmyluna:is_me",
      "@type": "xsd:boolean"
    },
    "WeeklySummaryResponse": "getmyluna:WeeklySummaryResponse",
    "show": {
      "@id": "getmyluna:show",
      "@type": "xsd:boolean"
    },
    "reason": {
      "@id": "getmyluna:reason"
    },
    "summary": {
      "@id": "getmyluna:summary"
    },
    "WeeklySummarySeenResponse": "getmyluna:WeeklySummarySeenResponse",
    "LogEventRequest": "getmyluna:LogEventRequest",
    "client_id": {
      "@id": "getmyluna:client_id"
    },
    "EventEditRequest": "getmyluna:EventEditRequest",
    "changes": {
      "@id": "getmyluna:changes"
    },
    "EventIdRequest": "getmyluna:EventIdRequest",
    "EventReactRequest": "getmyluna:EventReactRequest",
    "emoji": {
      "@id": "getmyluna:emoji",
      "@type": "xsd:string"
    },
    "RecipeRequest": "getmyluna:RecipeRequest",
    "ingredients": {
      "@id": "getmyluna:ingredients",
      "@container": "@list"
    },
    "ProfileUpdateRequest": "getmyluna:ProfileUpdateRequest",
    "OnboardRequest": "getmyluna:OnboardRequest",
    "password": {
      "@id": "getmyluna:password",
      "@type": "xsd:string"
    },
    "client_today": {
      "@id": "getmyluna:client_today"
    },
    "acquisition": {
      "@id": "getmyluna:acquisition"
    },
    "health_consent": {
      "@id": "getmyluna:health_consent",
      "@type": "xsd:boolean"
    },
    "TokenRequest": "getmyluna:TokenRequest",
    "TokenRevokeRequest": "getmyluna:TokenRevokeRequest",
    "InviteRevokeRequest": "getmyluna:InviteRevokeRequest",
    "FamilyDeleteRequest": "getmyluna:FamilyDeleteRequest",
    "confirm": {
      "@id": "getmyluna:confirm",
      "@type": "xsd:string"
    },
    "FamilyDeleteConfirmRequest": "getmyluna:FamilyDeleteConfirmRequest",
    "LeaveFamilyRequest": "getmyluna:LeaveFamilyRequest",
    "AskRequest": "getmyluna:AskRequest",
    "question": {
      "@id": "getmyluna:question",
      "@type": "xsd:string"
    },
    "ConsentUpdate": "getmyluna:ConsentUpdate",
    "agree": {
      "@id": "getmyluna:agree",
      "@type": "xsd:boolean"
    },
    "NoteDeleteRequest": "getmyluna:NoteDeleteRequest",
    "AnalyticsRequest": "getmyluna:AnalyticsRequest",
    "props": {
      "@id": "getmyluna:props"
    },
    "NameRequest": "getmyluna:NameRequest",
    "ArrivedRequest": "getmyluna:ArrivedRequest",
    "DueDateRequest": "getmyluna:DueDateRequest",
    "WeeklySummarySeenRequest": "getmyluna:WeeklySummarySeenRequest",
    "NudgeSnoozeRequest": "getmyluna:NudgeSnoozeRequest"
  },
  "@type": "schema:Dataset",
  "schema:name": "Luna API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Luna's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-11-10) from openapi/getmyluna-app-openapi.json.",
  "dcterms:created": "2026-11-10",
  "dcterms:source": [
    "openapi/getmyluna-app-openapi.json"
  ]
}