spec weather_clothing 2025-01-01
"""
Weather-Based Clothing Recommendation
Shows how rules can make decisions based on conditions.
Simple logic that's easy to understand.
"""
data temperature: measure
-> unit celsius 1.0
-> minimum -70 celsius
-> maximum 70 celsius
data wind_speed: number
-> minimum 0
data is_raining: boolean
rule clothing_layer: "light"
unless temperature < 10 celsius then "warm"
unless temperature < 5 celsius then "very_warm"
unless temperature > 25 celsius then "none"
rule needs_jacket: no
unless temperature < 15 celsius then yes
unless is_raining then yes
unless wind_speed > 20 then yes
rule needs_umbrella: is_raining
rule needs_hat: no
unless temperature > 25 celsius then yes
unless temperature < 0 celsius then yes
rule comfort_level: "comfortable"
unless temperature < 5 celsius then "cold"
unless temperature > 30 celsius then "hot"
unless is_raining and temperature < 10 celsius
then "uncomfortable"
rule recommendation:
"Enjoy your day! You don't need a hat."
unless comfort_level is "cold"
then "Dress warmly and stay indoors if possible"
unless comfort_level is "hot"
then "Stay hydrated and seek shade"
unless comfort_level is "uncomfortable"
then "Consider postponing outdoor activities"