schema_id = "aeon.gp.schema.v1"
schema_version = "1.0.0"
world = "open"
rules = [
  { selector = "$.**%DateLiteral", constraints = { temporal_min_year = 1, temporal_max_year = 9999 } }
  { selector = "$.**%TimeLiteral", constraints = { temporal_max_second = 59, temporal_max_fraction_digits = 9 } }
  { selector = "$.**%DateTimeLiteral", constraints = { temporal_max_second = 59, temporal_max_fraction_digits = 9, temporal_min_year = 1, temporal_max_year = 9999 } }
  { selector = "$.**%WTCDateTimeLiteral", constraints = { temporal_max_second = 59, temporal_max_fraction_digits = 9, temporal_min_year = 1, temporal_max_year = 9999, temporal_context_policy = "aeon.gp.temporal.v1" } }
]
datatype_rules = {
  int = { type = "IntegerLiteral" }
  uint = { type = "IntegerLiteral", sign = "unsigned" }
  int8 = { type = "IntegerLiteral", min_value = -128, max_value = 127 }
  int16 = { type = "IntegerLiteral", min_value = -32768, max_value = 32767 }
  int32 = { type = "IntegerLiteral", min_value = -2147483648, max_value = 2147483647 }
  int64 = { type = "IntegerLiteral", min_value = -9223372036854775808, max_value = 9223372036854775807 }
  uint8 = { type = "IntegerLiteral", sign = "unsigned", min_value = 0, max_value = 255 }
  uint16 = { type = "IntegerLiteral", sign = "unsigned", min_value = 0, max_value = 65535 }
  uint32 = { type = "IntegerLiteral", sign = "unsigned", min_value = 0, max_value = 4294967295 }
  uint64 = { type = "IntegerLiteral", sign = "unsigned", min_value = 0, max_value = 18446744073709551615 }
  float = { type = "FloatLiteral" }
  float32 = { type = "FloatLiteral" }
  float64 = { type = "FloatLiteral" }
  date = { type = "DateLiteral", temporal_min_year = 1, temporal_max_year = 9999 }
  time = { type = "TimeLiteral", temporal_max_second = 59, temporal_max_fraction_digits = 9 }
  datetime = { type = "DateTimeLiteral", temporal_max_second = 59, temporal_max_fraction_digits = 9, temporal_min_year = 1, temporal_max_year = 9999 }
  wtc = { type = "WTCDateTimeLiteral", temporal_max_second = 59, temporal_max_fraction_digits = 9, temporal_min_year = 1, temporal_max_year = 9999, temporal_context_policy = "aeon.gp.temporal.v1" }
}
