{
  "regexEscape": "%",
  "rules": {
    "vagueHourWithMinutes": {
      "extract": "$reVagueHour%s*$reHourMinuteSeparator%s*$reMinutes",
      "normalize": "xxxx-xx-xxt@group(0):@group(2)"
    },
    "vagueHourWithoutMinutes": {
      "extract": "$reVagueHour",
      "normalize": "xxxx-xx-xxt@group(0):00"
    },
    "knownHourWithMinutes": {
      "extract": "$reKnownHour%s*$reHourMinuteSeparator%s*$reMinutes",
      "normalize": "xxxx-xx-xxT@group(0):@group(2)"
    },
    "knownHourWithoutMinutes": {
      "extract": "$reKnownHour",
      "normalize": "xxxx-xx-xxT@group(0):00"
    },
    "noonOrMidnight": {
      "extract": "12($reHourMinuteSeparator00)?",
      "normalize": "xxxx-xx-xxt12:00"
    },
    "afterTwelve": {
      "extract": "12$reHourMinuteSeparator$reNonZeroMinutes",
      "normalize": "xxxx-xx-xxT12:@group(1)"
    },
    "vagueHourWithMinutesPrefixed": {
      "extract": "$prefix%s+$reVagueHour%s*$reHourMinuteSeparator%s*$reMinutes",
      "normalize": "xxxx-xx-xxt@group(1):@group(3)"
    },
    "knownHourWithMinutesPrefixed": {
      "extract": "$prefix%s+$reKnownHour%s*$reHourMinuteSeparator%s*$reMinutes",
      "normalize": "xxxx-xx-xxT@group(1):@group(3)"
    },
    "vagueHourWithoutMinutesPrefixed": {
      "extract": "$prefix%s+$reVagueHour",
      "normalize": "xxxx-xx-xxt@group(1):00"
    },
    "knownHourWithoutMinutesPrefixed": {
      "extract": "$prefix%s+$reKnownHour",
      "normalize": "xxxx-xx-xxT@group(1):00"
    },
    "noonOrMidnightPrefixed": {
      "extract": "$prefix%s+12($reHourMinuteSeparator00)?",
      "normalize": "xxxx-xx-xxt12:00"
    },
    "afterTwelvePrefixed": {
      "extract": "$prefix%s+12$reHourMinuteSeparator$reNonZeroMinutes",
      "normalize": "xxxx-xx-xxT12:@group(2)"
    }
  },
  "patterns": {
    "reVagueHour": [
      "0?%d",
      "1[01]"
    ],
    "reKnownHour": [
      "1[3-9]",
      "2[0-4]"
    ],
    "reMinutes": "[0-5]%d",
    "reNonZeroMinutes": "[1-5]%d",
    "reHourMinuteSeparator": "[.:]",
    "prefix": [
      "godz[.]?",
      "godzina[.]?"
    ]
  },
  "normalization": {
    "leadingHourZero": {
      "t0:": "t00:",
      "t1:": "t01:",
      "t2:": "t02:",
      "t3:": "t03:",
      "t4:": "t04:",
      "t5:": "t05:",
      "t6:": "t06:",
      "t7:": "t07:",
      "t8:": "t08:",
      "t9:": "t09:",
      "T0:": "T00:",
      "T1:": "T01:",
      "T2:": "T02:",
      "T3:": "T03:",
      "T4:": "T04:",
      "T5:": "T05:",
      "T6:": "T06:",
      "T7:": "T07:",
      "T8:": "T08:",
      "T9:": "T09:"
    }
  }
}