# Generated by web/scripts/semantics.mjs from semantics/catalog.yaml. Do not edit.
apiVersion: v3.0.2
kind: DataContract
id: wardrobe-diary-voice-log
name: Dictation log
version: 0.4.1
status: active
domain: wardrobe-diary
dataProduct: The Wardrobe Diary Project
description:
  purpose: Every item description dictated or typed on the Log page ("Describe an item"), the garments the matcher proposed and the one the owner added (if any), to measure how well matching works and compare matchers.
  usage: Not public (owner-only); described for transparency.
team:
  - username: hoverfalt
    name: Olof Hoverfält
    role: owner
servers:
  - server: voice-log
    type: custom
    description: Firestore users/{uid}/voiceLog/{autoId}
schema:
  - name: voice-log
    physicalName: Firestore users/{uid}/voiceLog/{autoId}
    logicalType: object
    description: Every item description dictated or typed on the Log page ("Describe an item"), the garments the matcher proposed and the one the owner added (if any), to measure how well matching works and compare matchers.
    properties:
      - name: at
        logicalType: string
        physicalType: text
        required: true
        description: When it was entered (ISO time).
      - name: date
        logicalType: date
        physicalType: date
        required: true
        description: The day being logged.
      - name: text
        logicalType: string
        physicalType: text
        required: true
        description: The description as dictated or typed.
      - name: proposals
        logicalType: array
        physicalType: list of garment ids
        required: true
        description: The proposed garments, best first.
      - name: chosen
        logicalType: string
        physicalType: text
        required: false
        description: The garment added from the proposals, or empty if none was.
      - name: rank
        logicalType: integer
        physicalType: integer
        required: false
        description: The chosen garment's position in the proposals (0 = best).
      - name: mode
        logicalType: string
        physicalType: text
        required: false
        description: "match (best matches) or browse (only a garment type was said: that type's garments by photo, most worn lately first)."
      - name: matcher
        logicalType: string
        physicalType: text
        required: true
        description: Which matcher made the proposals, e.g. voiceMatch v1.
slaProperties:
  - property: frequency
    value: daily (logged in the app)
authoritativeDefinitions:
  - type: catalog
    url: https://wardrobediary.io/data#voice-log
